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

標(biāo)題: 單片機(jī)秒表有點(diǎn)慢,這是什么情況?求解 [打印本頁(yè)]

作者: 2906225248    時(shí)間: 2018-12-19 20:56
標(biāo)題: 單片機(jī)秒表有點(diǎn)慢,這是什么情況?求解
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit LCD_RS=P2^6;  
  5. sbit LCD_RW=P2^5;
  6. sbit LCD_E=P2^7;
  7. sbit k2=P3^0;

  8. long int count,count1;
  9. char mil,sec,min,mil1,sec1,min1;

  10. unsigned char code table[ ]="          miaobiao  ";
  11. unsigned char code table1[ ]="    00:00:0   ";

  12. void delay(uint z)
  13. {
  14.         uchar j,k;
  15.         for(j=z;j>0;j--)
  16.         for(k=256;k>0;k--);
  17. }
  18. void write_com(uchar com)
  19. {
  20.         LCD_RS=0;
  21.         LCD_E=0;
  22.         LCD_RW=0;
  23.         LCD_DATAPINS=com;
  24.         delay(5);
  25.         LCD_E=1;
  26.         delay(5);
  27.         LCD_E=0;
  28. }

  29. void write_date(uchar date)
  30. {
  31.         LCD_RS=1;
  32.         LCD_E=0;
  33.         LCD_RW=0;
  34.         LCD_DATAPINS=date;
  35.         delay(5);
  36.         LCD_E=1;
  37.         delay(5);
  38.         LCD_E=0;
  39. }

  40. void init()
  41. {
  42.         uchar num;
  43.         LCD_E=0;
  44.         write_com(0x38);
  45.         write_com(0x0c);
  46.         write_com(0x06);
  47.         write_com(0x01);
  48.         write_com(0x80);
  49.         for(num=0;num<20;num++)
  50.         {
  51.                 write_date(table[num]);
  52.                 delay(5);
  53.         }
  54.         write_com(0x80+0x40);
  55.         for(num=0;num<12;num++)
  56.         {
  57.                 write_date(table1[num]);
  58.                 delay(5);
  59.         }
  60.         TMOD=0x01;
  61.         TH0=(65536-50000)/256;
  62.         TL0=(65536-50000)%256;
  63.         EA=1;
  64.         ET0=1;
  65.         EX0=1;
  66.         TR0=0;
  67. }

  68. void write_min(uchar add,uchar date)
  69. {
  70.         uchar one,two;
  71.         one=date/10;
  72.         two=date%10;
  73.         write_com(0x80+0x40+add);
  74.         write_date(0x30+one);
  75.         write_date(0x30+two);
  76. }

  77. void write_sec(uchar add,uchar date)
  78. {
  79.         uchar three,four;
  80.         three=date/10;
  81.         four=date%10;
  82.         write_com(0x80+0x40+add);
  83.         write_date(0x30+three);
  84.         write_date(0x30+four);
  85. }

  86. void write_mil(uchar add,uchar date)
  87. {
  88.         uchar five;
  89.         five=date%10;
  90.         write_com(0x80+0x40+add);
  91.         write_date(0x30+five);
  92. }

  93. void zjs()
  94. {
  95.         if(count==2)
  96.         {
  97.         delay(5);
  98.                 count=0;
  99.                 mil++;
  100.                 if(mil==10)
  101.                 {
  102.                         delay(5);
  103.                         mil=0;
  104.                         sec++;
  105.                         if(sec==60)
  106.                         {
  107.                                 delay(5);
  108.                                 sec=0;
  109.                                 min++;
  110.                                 if(min==60)
  111.                                 {
  112.                                         delay(5);
  113.                                         min=0;
  114.                                         mil=0;         
  115.                                 }
  116.                         }
  117.                 }
  118.         write_min(4,min);
  119.         write_sec(7,sec);
  120.         write_mil(10,mil);                        
  121.         }
  122. }

  123. void main()
  124. {
  125.         init();
  126.         while(1)
  127.         {
  128.                 zjs();
  129.         }
  130. }

  131. void int0() interrupt 0  
  132. {
  133.         delay(10);
  134.         TR0=~TR0;
  135. }

  136. void timer0() interrupt 1
  137. {
  138.         count++;
  139. }
復(fù)制代碼



作者: wulin    時(shí)間: 2018-12-19 21:59
T0中斷程序中沒有重裝TH0、TL0初值,當(dāng)然時(shí)間慢30%。
作者: 1092648746    時(shí)間: 2018-12-19 22:02
中斷里面不要放延時(shí)……,你既然開了定時(shí)器為何不用硬件計(jì)數(shù)來(lái)計(jì)時(shí)呢?為什么還要故意用循環(huán)延時(shí)呢?估計(jì)問題就是在這里,重新想想這個(gè)計(jì)時(shí)邏輯吧
作者: 通天塔    時(shí)間: 2018-12-19 22:20
定時(shí)器方式是   16位定時(shí)器/計(jì)數(shù)器
void int0() interrupt 0  
{
        delay(10);
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        TR0=~TR0;
}

作者: ssk7793    時(shí)間: 2018-12-20 09:35
可參考我發(fā)的定時(shí)器代碼,點(diǎn)我的主題
作者: 2906225248    時(shí)間: 2018-12-25 13:41
謝謝大佬




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 中文字幕在线观看 | 激情 婷婷| 国产精品综合网 | jizz在线免费观看 | 91久久国产综合久久91精品网站 | 亚洲精品一二三 | 久久国产精品一区 | 日韩电影一区 | 日韩成人免费视频 | 精品videossex高潮汇编 | 久久精品国产久精国产 | 在线看片国产精品 | 国产精品欧美一区二区三区 | 久久国内精品 | 亚洲欧美国产一区二区三区 | 国产乱码精品一品二品 | 一级国产精品一级国产精品片 | 狠狠操狠狠干 | 中文字幕国产精品 | 色视频www在线播放国产人成 | 中文字幕亚洲专区 | 精品国产一区二区三区免费 | 日本黄色短片 | 日韩电影免费在线观看中文字幕 | 免费一二区 | 国产日韩一区二区三免费 | 99精品国产一区二区三区 | 国产91网站在线观看 | 天天天操天天天干 | 美女视频一区二区三区 | 久久久久久久久久久久久久久久久久久久 | 女女百合av大片一区二区三区九县 | 日韩在线中文字幕 | 国产精品美女久久久久久免费 | 亚洲欧洲中文日韩 | 黄片毛片在线观看 | 爱爱小视频 | 人成久久 | 日韩精品一区二区三区久久 | 午夜影院在线观看免费 | 精品日本久久久久久久久久 |