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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1563|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

做了個基于單片機的數(shù)字時鐘,顯示880,請大家?guī)兔纯词悄睦锏膯栴}?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:943668 發(fā)表于 2021-6-24 08:55 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. void Delayms(uint x);
  6. sbit L=P2^0;
  7. sbit LA=P2^1;
  8. sbit LB=P2^2;
  9. void Display();
  10. sbit key1=P1^5;
  11. sbit key2=P1^6;
  12. sbit key3=P1^7;

  13. /*位碼*/uchar tablew[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
  14. /*位選*/uchar shu[8]={0};
  15. /*共陰極*/
  16. uchar table6[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  17. uint aa,bb,cc,dd;
  18. void main()
  19. {
  20. TMOD=0x01;//設(shè)置工作方式
  21. TH0=(65536-1000)/256;//設(shè)置定時器高八位
  22. TL0=(65536-1000)%256;//設(shè)置定時器低八位
  23. ET0=1;//打開定時器T0的中斷開關(guān)
  24. TR0=1;//啟動定時器T0工作
  25. EA=0;//打開總中斷開關(guān)

  26. while(1)
  27.               {
  28.      uchar mshi,mge,fshi,fge,sshi,sge;
  29.      if(key1==0)
  30.      {
  31.                             EA=1;
  32.      }
  33.      else if(key2==0)
  34.               {
  35.                 EA=0;
  36.               }
  37.      else if(key3==0)
  38.      {
  39.       bb=0;cc=0;dd=0;
  40.       }
  41.       else;

  42.       mshi=bb/10;
  43.       mge=bb%10;
  44.       if(bb>59)
  45.                  {
  46. bb=0;
  47. cc++;
  48. }
  49. fshi=cc/10;
  50. fge=cc%10;
  51. if(cc>59)
  52. {
  53. cc=0;
  54. dd++;
  55. }
  56. sshi=dd/10;
  57. sge=dd%10;
  58. if(dd>23)
  59. {
  60. dd=0;
  61. }

  62. shu[7]=table6[mge];
  63. shu[6]=table6[mshi];
  64. shu[5]=0x40;
  65. shu[4]=table6[fge];
  66. shu[3]=table6[fshi];
  67. shu[2]=0x40;
  68. shu[1]=table6[sge];
  69. shu[0]=table6[sshi];
  70. Display();
  71. }
  72. }
  73. void int0_0() interrupt 1
  74. {
  75. TH0=(65536-1000)/256;
  76. TL0=(65536-1000)%256;
  77. aa++;//1ms加一次
  78. if(aa>1000)
  79. {
  80. aa=0;
  81. bb++;//1S加一次
  82. }

  83. }
  84. void Display()
  85. {
  86. uint i;
  87. for(i=0;i<8;i++)
  88. {
  89. P2=tablew[i];
  90. P0=shu[i];
  91. Delayms(1);
  92. }
  93. }
  94. void Delayms(uint x)
  95. {
  96. uchar j;
  97. while(x--)
  98.               {
  99.                             for(j=0;j<125;j++);
  100.               }
  101. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:846569 發(fā)表于 2021-6-24 10:10 | 只看該作者
看到了你這個代碼的問題,Display函數(shù)中的for循環(huán)里P0 = shu;這句話錯了,shu是一個數(shù)組,你這樣寫keil會警告的,雖說keil有警告也能運行,但是一定要清楚警告了些什么;
其次,你的程序有一些還可以改進的地方,T0定時器僅僅是計算時間的,因此可以將其定時時間改大點,時間越小對while影響越大,建議改成50ms。
另外進階寫法是把顯示數(shù)碼管的代碼放到T1中斷里,T1中斷定時3ms左右,每進入一次中斷顯示對應(yīng)位,這樣做的好處是主程序while里的代碼可以及時運行,而不會因為delay導(dǎo)致運算不及時,當然這也是后面你需要對時鐘再進階時的操作。
另外,很明顯你的代碼是在仿真里運行的,如果你要上機到實物則需要加按鍵消抖。
如果后續(xù)你還要再加按鍵更改顯示時間之類的代碼,可以私聊我

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品在线一区二区 | 国产女人与拘做视频免费 | 欧美亚洲一区二区三区 | 亚洲激情专区 | 久视频在线 | 亚洲国产精品成人综合久久久 | 欧美aⅴ | 最新免费黄色网址 | 亚洲一区中文字幕在线观看 | 精品国产一区二区三区性色 | 精品国产伦一区二区三区观看说明 | 国产精品无码专区在线观看 | 91精品国产乱码久久久久久久久 | 日韩av一二三区 | 在线中文字幕视频 | 欧美一区二区免费电影 | 久色网| 国产精品久久久久久 | 国产欧美精品一区二区三区 | 国外成人在线视频 | 国产伦精品一区二区三区精品视频 | 一区二区三区韩国 | 亚洲狠狠爱| 国产区视频在线观看 | 免费观看日韩精品 | 国产在线一区二区三区 | 日韩a在线 | 伊人操| 一区二区在线不卡 | 日韩av免费在线观看 | 精品国产乱码久久久久久影片 | 午夜手机在线视频 | 国产精品777一区二区 | 成人国产一区二区三区精品麻豆 | 黄视频国产 | 特级生活片 | 日韩精品一区二区三区在线观看 | 一区二区三区中文字幕 | 日韩久久成人 | 国产精品一区在线观看 | 日韩av第一页 |