欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2510|回復: 2
收起左側(cè)

單片機定時器0~99循環(huán)自加器程序,數(shù)字飛快跳動,縮短delay也不行

[復制鏈接]
ID:376199 發(fā)表于 2019-1-31 19:22 | 顯示全部樓層 |閱讀模式
任務(wù)目的是用單片機控制兩個數(shù)碼管,實現(xiàn)0~99的循環(huán)自加。

電路原理圖如下:
QQ截圖20190131191920.png

我的單片機代碼如下所示:
  1. #include<reg51.h>
  2. #define u8 unsigned char;
  3. #define u16 unsigned int;

  4. u8 seg[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};                 //共陽0~9段碼

  5. void delay(void)
  6. {
  7.         int i;

  8.         for(i = 0; i < 20; i++)
  9.                 ;
  10. }

  11. void main(void)
  12. {
  13.         char i = 1, time = 0;
  14.         char ten, one;
  15.         
  16.         P0 = 0xc0;                                                                                  //初始化
  17.         P2 = 0xfc;
  18.         TMOD = 0X01;
  19.         TH0 = (65536 - 50000) / 256;
  20.         TL0 = (65536 - 50000) % 256;
  21.         TR0 = 1;
  22.         
  23.         while(1)
  24.         {
  25.                 if(TF0 == 1)
  26.                 {
  27.                         if(i == 20)                                                                  //延時一秒
  28.                         {
  29.                                 i = 0;
  30.                                 /*ten = time / 10;
  31.                                 one = time % 10;
  32.                                 P2 = 0xfe;
  33.                                 P0 = seg[one];
  34.                                 delay();
  35.                                 P2 = 0xfd;
  36.                                 P0 = seg[ten]; */
  37.                                 if(time == 99)
  38.                                         time = 0;
  39.                                 else
  40.                                         time++;
  41.                         }
  42.                         i++;
  43.                         TF0 = 0;
  44.                         TH0 = (65536 - 50000) / 256;
  45.                         TL0 = (65536 - 50000) % 256;
  46.                 }

  47.                 ten = time / 10;                                                          //數(shù)碼管顯示
  48.                 one = time % 10;
  49.                 P2 = 0xfe;
  50.                 P0 = seg[one];
  51.                 delay();
  52.                 P2 = 0xfd;
  53.                 P0 = seg[ten];
  54.                 delay();
  55.         }               
  56. }
復制代碼
仿真結(jié)果為兩個數(shù)碼管的數(shù)字飛快跳動,且無法辨認,即使縮短delay(),效果也無變化。

求各位的指教。

回復

使用道具 舉報

ID:424598 發(fā)表于 2019-2-1 08:51 來自觸屏版 | 顯示全部樓層
延時太短,建議你看看別人51的延時函數(shù)
回復

使用道具 舉報

ID:94031 發(fā)表于 2019-2-1 09:00 | 顯示全部樓層
應(yīng)該加大delay(),而不是縮短delay()。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表