久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2556|回復: 5
打印 上一主題 下一主題
收起左側

C語言show_second函數里面for循環 i!=0xff什么意思 還有定時初值怎么計算的

[復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:433060 發表于 2018-12-28 09:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源碼:
  1. uchar time_buffer[]={0,0,0,0};
  2. uchar LCD_display_buffer[]={"00:00:00:00"};


  3. void show_second()
  4. {
  5. uchar i;
  6. lcd_pos(0x45);
  7. for(i=3;i!=0xff;i--)
  8. {
  9. LCD_display_buffer[2*i+1]=time_buffer[ i]/10+'0';[ i]
  10. LCD_display_buffer[2*i]=time_buffer[ i]%10+'0';[ i]
  11. lcd_wdat(LCD_display_buffer[2*i+1]);
  12. lcd_wdat(LCD_display_buffer[2*i]);
  13. lcd_wdat(":");
  14. }
  15. }

  16. void time0() interrupt 1 using 0
  17. {
  18. TH0=-10000/256;
  19. TL0=-10000%256;
  20. time_buffer[0]++;
  21. if (time_buffer[0]==100)
  22. {
  23. time_buffer[0]=0;
  24. time_buffer[1]++;
  25. }

  26. if (time_buffer[1]==60)
  27. {
  28. time_buffer[1]=0;
  29. time_buffer[2]++;
  30. }

  31. if (time_buffer[2]==60)
  32. {
  33. time_buffer[2]=0;
  34. time_buffer[3]++;
  35. }

  36. if (time_buffer[3]==24)
  37. {
  38. time_buffer[3]=0;
  39. }
  40. }


  41.   void display_string(uchar * str,uchar lineno)        
  42. {
  43. uchar k;
  44. lcd_pos(lineno);
  45. for(k=0;k<16;k++)
  46. lcd_wdat(str[k]);
  47. }

  48. void main()
  49. {
  50. uchar i;
  51. IE=0X82;
  52. TMOD=0X01;
  53. TH0=-10000/256;
  54. TL0=-10000%256;
  55. lcd_init();
  56. display_string(msg1,0x00);
  57. display_string(msg2,0x40);
  58. EA=1;
  59. ET0=1;
  60. while(1)
  61. {
  62. if(k1==0)
  63. {
  64. delay(100);
  65. i=++keycount;
  66. switch(i)
  67. {
  68. case1:
  69. case3:TR0=1;
  70.        display_string(prompts[i-1],0);
  71.            break;
  72. case2:
  73. case4:TR0=0;
  74.        display_string(prompts[i-1],0);
  75.            break;
  76.            default:TR0=0;
  77.            break;
  78. }
  79. while(k1==0);
  80. }
  81. else
  82. if(k2==0)
  83. {
  84. TR0=0;
  85. keycount=0;
  86. for(i=0;i<4;i++)
  87. time_buffer[ i]=0;[ i]
  88. display_string(msg1,0);
  89. delay(100);
  90. while(k2==0);
  91. }
  92. show_second();
  93. }               
  94. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:449525 發表于 2018-12-28 10:49 | 只看該作者
i初始值是3,不等于0xff,就執行下面的函數,執行完在自身加1
定時器,看你晶振用的多少,假設你用的12M,51單片機12個時鐘周期,所以就是1M,1次就是1us。定時器往上計數,設置定時器幾位的,16位的就是65535。
來個例子 定時50ms ,就是初始值15535,定時器16位。就這樣,自己慢慢去看吧,基礎東西。
回復

使用道具 舉報

板凳
ID:433060 發表于 2018-12-28 11:50 來自手機 | 只看該作者
初值我會了  但是為啥必須不等于0xff  
回復

使用道具 舉報

地板
ID:123289 發表于 2018-12-28 12:27 | 只看該作者
0xff  =256 ,不等于0xff  與 等于0xff,誤差1,用什么取決于你計算的結果需要用多大的數字。  
回復

使用道具 舉報

5#
ID:164602 發表于 2018-12-28 14:59 | 只看該作者
其實就是循環四次的意思
i=3,再i--,當i由3減少到0即循環了四次了,再減一次,就是255,即0xff,就不循環了
回復

使用道具 舉報

6#
ID:456666 發表于 2018-12-28 15:12 | 只看該作者
i初始值是3,不等于0xff,就執行下面的函數,執行完在自身加1
定時器,看你晶振用的多少,假設你用的12M,51單片機12個時鐘周期,所以就是1M,1次就是1us。定時器往上計數,設置定時器幾位的,16位的就是65535。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产91久久综合桃花 | 在线欧美视频 | 成人小视频在线免费观看 | 日韩成人高清在线 | 亚洲精品一区二区 | 黄色大全免费看 | 蜜桃臀av一区二区三区 | 日韩久草| 黄色一级视频免费 | 激情五月婷婷综合 | 亚洲国产成人精品久久久国产成人一区 | 欧美成人激情 | 亚洲一区二区久久 | 成人免费大片黄在线播放 | 欧美在线观看一区 | 男人天堂网址 | 国产一区二区三区免费 | 九九在线视频 | av黄色国产 | 久久久久久久av | 国产精品毛片一区二区三区 | 999久久久 | 成人性生交大片免费看中文带字幕 | 亚洲精品不卡 | 一区二区三区在线播放视频 | 久久综合伊人一区二区三 | 亚洲在线视频 | 亚洲久久一区 | 韩日一区二区 | 五月精品视频 | 欧美不卡一区二区三区 | 亚洲精品久久嫩草网站秘色 | 99精品一级欧美片免费播放 | av在线一区二区三区 | 亚洲a一区| 欧美日韩一区二区视频在线观看 | 中文字幕亚洲欧美 | 国产a级毛片 | 黄色网址在线免费观看 | h片免费在线观看 | 日日草天天干 |