wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8069|回復: 7
收起左側

51單片機秒表程序設計 有四個按鍵分別是計次,顯示多次計次時間,復位,啟停

  [復制鏈接]
ID:711823 發表于 2020-5-15 16:29 | 顯示全部樓層 |閱讀模式
功能:秒表精確到10ms,有四個按鍵分別是計次,顯示多次計次時間,復位,啟停。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
123.png

5.png

12.png

單片機源程序如下:
  1. #include<reg52.h>

  2. sbit KEY1 = P3^0;  //計次
  3. sbit KEY2 = P3^1;  //從快到慢顯示計次數
  4. sbit KEY3 = P3^2;  //復位
  5. sbit KEY4 = P3^3;  //啟停秒表
  6. unsigned char code LedChar[] = {  //數碼管顯示字符轉換表
  7.     0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
  8.     0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
  9. };
  10. unsigned char LedBuff[6] = {  //數碼管顯示緩沖區
  11.     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
  12. };
  13. unsigned char KeySta[4] = {1,1,1,1};  //當前按鍵狀態
  14. unsigned char T0RH = 0;
  15. unsigned char T0RL = 0;
  16. bit kd = 0;
  17. bit lk = 1;
  18. bit stopwatchRefresh = 1;
  19. bit stopwatchRunning = 0;
  20. unsigned char DecimalPart = 0;
  21. unsigned int  IntegerPart = 0;

  22. void ConfigTimer0(unsigned int ms);
  23. void stopwatchDisplay();
  24. void KeyDriver();
  25. void main()
  26. {
  27.         EA = 1;
  28.         ConfigTimer0(2);
  29.         while(1)
  30.         {
  31.                 if(stopwatchRefresh)
  32.                 {
  33.                         stopwatchRefresh = 0;
  34.                         stopwatchDisplay();
  35.                 }
  36.                 KeyDriver();
  37.         }
  38. }
  39. void ConfigTimer0(unsigned int ms)
  40. {
  41.         unsigned long tmp;
  42.        
  43.         tmp = 11059200/12;
  44.         tmp = (tmp*ms)/1000;
  45.         tmp = 65536 - tmp;
  46.         tmp +=18;      //定時誤差補償
  47.        
  48.         T0RH = (unsigned char)(tmp>>8);
  49.         T0RL = (unsigned char)tmp;
  50.         TMOD &=0xf0;
  51.   TMOD |=0X01;
  52.         TH0 = T0RH;
  53.         TL0 = T0RL;
  54.         ET0 = 1;
  55.         TR0 = 1;
  56. }
  57. void stopwatchDisplay()
  58. {
  59.         signed char i;
  60.         unsigned char buf[4];
  61.         LedBuff[0] = LedChar[DecimalPart%10];
  62.         LedBuff[1] = LedChar[DecimalPart/10];
  63.         buf[0] = IntegerPart%10;
  64.         buf[1] = IntegerPart/10%10;
  65.         buf[2] = IntegerPart/100%10;
  66.         buf[3] = IntegerPart/1000%10;
  67.         for(i=3;i>=1;i--)
  68.         {
  69.                 if(buf[i]==0)
  70.                 {
  71.                         LedBuff[i+2]=0xFF;
  72.                 }else break;
  73.         }
  74.         for(;i>=0;i--)
  75.         {
  76.                 LedBuff[i+2] = LedChar[buf[i]];
  77.         }
  78.          LedBuff[2] &=0x7f;
  79. }
  80. void Stopwatchjc()
  81. {
  82.         signed char i;
  83.         unsigned char buf[4];
  84.         static unsigned char Dec[10] = 0;
  85.   static unsigned int  Int[10] = 0;
  86.         static char cnt = 0;
  87.         static char cnt1 = 0;
  88.         Dec[cnt] = DecimalPart;
  89.         Int[cnt] = IntegerPart;
  90.         cnt++;
  91.         if(kd == 1)
  92.         {
  93.                 LedBuff[0] = LedChar[Dec[cnt1]%10];
  94.                 LedBuff[1] = LedChar[Dec[cnt1]/10];
  95.                 buf[0] = Int[cnt1]%10;
  96.                 buf[1] = Int[cnt1]/10%10;
  97.                 buf[2] = Int[cnt1]/100%10;
  98.                 buf[3] = Int[cnt1]/1000%10;
  99.                 for(i=3;i>=1;i--)
  100.                 {
  101.                         if(buf[i]==0)
  102.                         {
  103.                                 LedBuff[i+2]=0xFF;
  104.                         }else break;
  105.                 }
  106.                 for(;i>=0;i--)
  107.                 {
  108.                         LedBuff[i+2] = LedChar[buf[i]];
  109.                 }
  110.                  LedBuff[2] &=0x7f;
  111.                
  112.                 cnt1++;
  113.                
  114.         }                       
  115.        
  116.        
  117. }
  118. void Stopwatchsy()
  119. {
  120.         stopwatchRunning = 0;
  121.         kd = 1;
  122.         stopwatchRefresh = 1;       
  123. }
  124. void StopwatchAction()
  125. {
  126.         stopwatchRunning = ~stopwatchRunning;
  127. }
  128. void StopwatchReset()
  129. {
  130.         stopwatchRunning = 0;
  131.         lk = 0;
  132.         DecimalPart = 0;
  133.         IntegerPart = 0;
  134.         stopwatchRefresh = 1;       
  135. }

  136. void KeyDriver()     //按鍵驅動函數
  137. {
  138.           static unsigned char backup[4] = {1,1,1,1}; //按鍵值備份,保存前一次的掃描值
  139.     unsigned char i;
  140.             for(i=0;i<4;i++)
  141.                         {
  142.         if (KeySta[i] != backup[i])  //當前值與前次值不相等說明此時按鍵有動作
  143.         {
  144.             if (backup[i] == 0)   //如果前次值為0,則說明當前是彈起動作
  145.             {
  146.                                                           if(i==0)
  147.                                                                   Stopwatchjc();      //計次
  148.                                                                 else if(i==1)
  149.                                                                   Stopwatchsy();      //從快到慢
  150.                                                           else if(i==2)         //復位
  151.                                                                         StopwatchReset();
  152.                                                                 else if(i==3)                                        //啟停秒表
  153.                                                                         StopwatchAction();
  154.                                                                
  155.             }
  156.             backup[i] = KeySta[i];   //更新備份為當前值,以備進行下次比較
  157.         }
  158.                         }
  159. }
  160. void LedScan()
  161. {
  162.           static unsigned char i=0;
  163.           P0 = 0xFF;
  164.                 switch(i)       //每過1ms從低到高位刷新一個數碼管
  165.                 {
  166.                         case 0:P2=0x01;i++; P0=        LedBuff[0]; break;
  167.                         case 1:P2=0x02;i++; P0=        LedBuff[1]; break;
  168.                         case 2:P2=0x04;i++; P0=        LedBuff[2]; break;
  169.                         case 3:P2=0x08;i++; P0=        LedBuff[3]; break;
  170.                         case 4:P2=0x10;i++; P0=        LedBuff[4]; break;
  171.                         case 5:P2=0x20;i=0; P0=        LedBuff[5]; break;
  172.                         default :break;
  173.                 }
  174. }
  175. void KeyScan()
  176. {
  177.         static unsigned char keybuf[4] ={ 0xFF,0xFF,0xFF,0xFF};  //掃描緩沖區,保存一段時間內的掃描值
  178.   static unsigned char i=0;
  179.         keybuf[0] = (keybuf[0]<<1) | KEY1;  //緩沖區左移一位,并將當前掃描值移入最低位
  180.         keybuf[1] = (keybuf[1]<<1) | KEY2;  //緩沖區左移一位,并將當前掃描值移入最低位
  181.         keybuf[2] = (keybuf[2]<<1) | KEY3;  //緩沖區左移一位,并將當前掃描值移入最低位
  182.         keybuf[3] = (keybuf[3]<<1) | KEY4;  //緩沖區左移一位,并將當前掃描值移入最低位
  183.         for(i=0;i<4;i++)
  184.         {
  185.                 if (keybuf[i] == 0x00)
  186.                 {   //連續8次掃描值都為0,即16ms內都只檢測到按下狀態時,可認為按鍵已按下
  187.                                 KeySta[i] = 0;
  188.                 }
  189.                 else if (keybuf[i] == 0xFF)
  190.                 {   //連續8次掃描值都為1,即16ms內都只檢測到彈起狀態時,可認為按鍵已彈起
  191.                                 KeySta[i] = 1;
  192.                 }
  193.                 else
  194.                 {}  //其它情況則說明按鍵狀態尚未穩定,則不對KeySta變量值進行更新
  195.         }
  196. }
  197. void StowatchCount()
  198. {
  199.         if(stopwatchRunning)
  200.         {
  201.                 DecimalPart++;
  202.                 if(DecimalPart>=100)
  203.                 {
  204.                         DecimalPart=0;
  205.                         IntegerPart++;
  206.                         if(IntegerPart>=10000)
  207.                         {
  208.                                 IntegerPart=0;
  209.                         }
  210.                 }
  211.                 stopwatchRefresh=1;
  212.         }
  213. }
  214. void InterruptTimer0() interrupt 1
  215. {
  216.         static unsigned char ter10ms = 0;
  217.         TH0 = T0RH;  //重新加載重載值
  218.         TL0 = T0RL;
  219.         LedScan();   //數碼管掃描顯示
  220.         KeyScan();   //按鍵掃描
  221.         ter10ms++;
  222.         if (ter10ms>=5)
  223.         {
  224.                 ter10ms = 0;
  225.                 StowatchCount();
  226.         }
  227. }
復制代碼

所有資料51hei提供下載:
51秒表.rar (70.02 KB, 下載次數: 179)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:749164 發表于 2020-5-17 19:42 | 顯示全部樓層
仿真文件打不開呀 樓主你看看?
回復

使用道具 舉報

ID:711823 發表于 2020-5-21 10:06 | 顯示全部樓層
furuiabc 發表于 2020-5-17 19:42
仿真文件打不開呀 樓主你看看?

你是用的proteus 8.0嗎
回復

使用道具 舉報

ID:711823 發表于 2020-5-21 10:19 | 顯示全部樓層
SAFASDF 發表于 2020-5-21 10:06
你是用的proteus 8.0嗎

Proteus 8.0及以上版本生成的仿真電路圖文件類型是Proteus Project(.pdsprj),是無法生成 .DSN 文件的
我傳的是(.pdsprj)文件
回復

使用道具 舉報

ID:362692 發表于 2020-5-21 10:59 來自觸屏版 | 顯示全部樓層
furuiabc 發表于 2020-5-17 19:42
仿真文件打不開呀 樓主你看看?

下載功能沒了嗎
回復

使用道具 舉報

6#
無效樓層,該帖已經被刪除
7#
無效樓層,該帖已經被刪除
8#
無效樓層,該帖已經被刪除
ID:446774 發表于 2020-6-10 09:58 | 顯示全部樓層
你好樓主
回復

使用道具 舉報

ID:316613 發表于 2020-11-4 18:02 | 顯示全部樓層
大佬太牛逼了,解決了燃眉之急,也學習了代碼看起來好復雜,沒備注真不好看呢。但是大佬牛逼!
回復

使用道具 舉報

ID:316613 發表于 2020-11-4 18:19 | 顯示全部樓層
親測有效!需要按下查詢按鍵在按下記次按鍵就能看到記次的值了 5次是沒問題的
回復

使用道具 舉報

12#
無效樓層,該帖已經被刪除
13#
無效樓層,該帖已經被刪除
14#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
国产精品亚洲成人| 亚洲黄色av片| 亚洲国产婷婷香蕉久久久久久99 | 亚洲精品视频免费在线观看| 欧美一区二区视频观看视频| 欧洲国产伦久久久久久久| 一本高清dvd不卡在线观看| 色天天色综合| 国产乱人伦丫前精品视频| 亚洲精品观看| 婷婷五月色综合香五月| 欧美重口另类| 日韩精品电影| 欧美成人一品| 免费亚洲网站| 精品亚洲aⅴ乱码一区二区三区| 精品亚洲成a人| 暴力调教一区二区三区| 久久在线免费观看| 一区二区视频在线看| 亚洲一区二区欧美| 欧美亚洲国产一卡| 日韩精品一区二区三区在线| 日韩国产一区三区| 日韩视频在线免费| 7777精品视频| 亚洲精品日韩av| 久久av一区二区| 一区二区视频在线观看| 人妻少妇精品无码专区二区| 精品999在线| 蜜桃av在线免费观看| 国产在线第二页| 色噜噜在线播放| 91成年人视频| 亚洲熟妇无码乱子av电影| 国产成人av免费在线观看| 99久久人妻精品免费二区| av片中文字幕| 男人添女人荫蒂免费视频| 日产国产精品精品a∨| 岛国视频一区| 91免费国产网站| 国产精品老女人精品视频| 久久久久久久999| 日韩亚洲欧美中文在线| 亚洲毛片一区二区| 日韩av综合网| 精品国产乱码久久久久久1区2区 | 国产在线播放一区三区四| 影音先锋久久精品| 999久久久亚洲| 日韩在线高清| 日韩免费久久| 第九色区aⅴ天堂久久香| 国产成人三级| 精品视频亚洲| 日韩国产欧美一区二区| 色婷婷一区二区三区| 欧美aaaaaaaaaaaa| 久久精品影视| 激情久久婷婷| 午夜亚洲精品| 免费久久99精品国产| 久久精品国产网站| 国产精品亚洲视频| hitomi一区二区三区精品| 91在线观看地址| 91网页版在线| 国产欧美一区二区三区在线看蜜臀 | 免费在线观看av网站| eeuss影院www在线观看| jizz在线免费观看| 羞羞视频在线免费国产| 欧亚av在线| 色尼玛亚洲综合影院| av成人免费看| 亚洲啊v在线免费视频| 清纯唯美亚洲经典中文字幕| 日韩中出av| 欧美偷拍综合| 亚洲国产导航| 日本人妖一区二区| 国产毛片精品一区| 2020国产成人综合网| 中文字幕av一区 二区| 亚洲激情图片qvod| 欧美写真视频网站| 亚洲国产另类久久精品 | 日本不卡视频一区| 日本中文字幕在线观看视频| 第四色播日韩| 久久久久久国产精品免费无遮挡 | 少妇太紧太爽又黄又硬又爽| 国产视频高清免费| shkd中文字幕久久在线观看| 国产精品x8x8一区二区| 激情av综合网| 色婷婷av一区| 国内精品久久久久久影视8| 亚洲图色在线| 成人激情五月天| 少妇人妻精品一区二区三区| 在线成年人视频| 影音先锋欧美激情| 国模少妇一区二区三区| 欧美久久免费观看| 国产精品久久电影观看| 国产免费黄色av| 国产小视频在线看| 午夜福制92视频| 免费在线国产视频| 欧美不卡一区| 一区二区三区在线视频免费| 久久国产一区二区三区| 亚洲欧洲久久| 国产亚洲精品久久久久久豆腐| 四虎影院免费在线| 亚洲91av| 男人天堂亚洲| 婷婷精品进入| 亚洲激情校园春色| 欧美国产激情18| 久久福利一区二区| 精品无码av在线| aaawww| vam成人资源在线观看| 国产一区二区美女| 精品日韩成人av| 精品无码久久久久国产| 182在线视频| 性欧美videos粗暴| 涩涩涩在线视频| 久久一区中文字幕| 欧美精品三级日韩久久| 99一区二区| 朝桐光av一区二区三区| 麻豆精品视频在线原创| 国产传媒在线| 日韩国产欧美三级| 欧美一区二区国产| 麻豆亚洲一区| 天天操天天操天天操天天操天天操| 一个人免费观看在线视频www| 国产福利亚洲| 粉嫩蜜臀av国产精品网站| 亚洲中文字幕一区| 久久99国产综合精品免费| 国内精品麻豆| 久操视频在线免费播放| 亚洲欧美校园春色| 丰满白嫩尤物一区二区| 欧美日韩国产精品成人| 日韩av123| 国产黄色激情视频| 久久精品一区二区三区四区五区| 亚洲激情丁香| av二区在线| 久久不见久久见国语| 国产a级毛片一区| 69av一区二区三区| 国产精品视频中文字幕91| 波多野结衣50连登视频| 久久久久久欧美精品se一二三四| 欧美成人高清手机在线视频| 尤物在线视频| 色999国产精品| 久久精品人人做人人爽97| 日韩激情视频在线| 乱一区二区三区在线播放| 91精品又粗又猛又爽| 欧美午夜影院在线视频| 最新天堂网www| 青青草在线视频免费观看| 亚洲一区二区蜜桃| 性做久久久久久免费观看欧美| 日本美女高清在线观看免费| 久久天天东北熟女毛茸茸| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美最猛性xxxxx喷水| 香蕉视频亚洲一级| 一二三四中文字幕| 久久久久无码国产精品一区李宗瑞 | 日本一区二区三区视频在线观看| 亚洲の无码国产の无码步美| 六月丁香综合网| 国产有码在线| 99久久综合狠狠综合久久aⅴ| 国产精品久久毛片av大全日韩| 国产亚洲精品久久久久动| 亚洲欧洲日韩综合二区| 全网免费在线播放视频入口 | 日韩欧美网址| 一级女性全黄久久生活片免费| 国产精品一区二区免费视频| 色天堂在线视频| 日本少妇一区二区| va婷婷在线免费观看| h在线观看网站| 日韩五码电影| 99久久国产免费看| 精品国产一区二区三区久久狼黑人 | 国产精品chinese在线观看| 国产韩日精品| 麻豆精品久久精品色综合| 精品国产青草久久久久福利| 人偷久久久久久久偷女厕| 精品一区在线观看视频| 先锋影院av| 偷窥自拍亚洲色图精选| 136国产福利精品导航| 日本欧美精品在线| 欧美午夜精品一区二区| 四虎成年永久免费网站| 欧美舌奴丨vk视频| 91在线丨porny丨国产| 免费91麻豆精品国产自产在线观看| 少妇高潮喷水在线观看| 国产精品系列视频| 搞黄网站在线看| 国产乱码精品一区二区三区av | 91精品店在线| 久久久久久97三级| 88xx成人精品| 污网站免费观看| 青青草.com| 日韩中出av| 色呦呦国产精品| 国产在线资源一区| 九九热精品在线观看| 国内福利写真片视频在线 | 国产小视频在线看| 深夜影院在线观看| 先锋影音久久久| 亚洲精品一区二区三区婷婷月| 久久手机在线视频| 亚洲第一色视频| 毛片无码国产| 国产精品不卡在线观看| 成人中心免费视频| 亚洲精品卡一卡二| 色综合久久网女同蕾丝边| 久久精品导航| 中文字幕视频一区二区在线有码| 性刺激的欧美三级视频| 91蝌蚪视频九色| 色天天久久综合婷婷女18| 日韩视频在线观看一区二区| av在线免费观看国产| 婷婷av一区二区三区| 不卡精品视频| 天天色综合天天| 亚洲7777| 国模私拍视频在线| 国产精品毛片无码| 一本色道亚洲精品aⅴ| 黄黄视频在线观看| 男人天堂av网| 日本免费一区二区视频| 狠狠色狠狠色综合日日小说| 亚洲国产婷婷香蕉久久久久久99| 艳妇乳肉豪妇荡乳av| 亚洲欧美一区二区三区| 国产精品人人做人人爽人人添| 7777精品伊久久久大香线蕉语言 | 在线观看日韩电影| 天天操天天干天天玩| 亚洲人成电影院在线观看| www.神马久久| 欧美日韩一区二区三区四区| 六月丁香激情网| 西西午夜视频| 激情欧美亚洲| 久久久国产一区| 在线观看日本中文字幕| 飘雪影院手机免费高清版在线观看 | 亚洲不卡在线播放| 超碰在线免费播放| 国产精品欧美一区二区三区| 精品国产乱码久久久久久郑州公司 | 欧美日韩精品系列| 99re在线视频免费观看| 日本免费看黄| 香蕉久久夜色精品国产| 久久免费视频在线| 国产一卡二卡在线播放| 在线观看v片| 精品久久久久久亚洲精品| 欧美黑人在线观看| 你懂的网站在线观看| 亚洲一区自拍| 97精品国产aⅴ7777| 日韩精品一区二区不卡| 亚洲经典中文字幕| 国产精品一区二区人妻喷水| 华人av在线| 日韩精品一区二区三区中文精品| 二区三区四区视频| 欧美成年网站| 美女啪啪无遮挡免费久久网站| 国产精品sm调教免费专区| 欧美韩日一区| 国产区精品在线观看| 亚洲精品在线播放视频| 国产一区二区久久| 一级黄色免费在线观看| 天堂中文字幕| 洋洋成人永久网站入口| 黄色a级三级三级三级| 2020日本在线视频中文字幕| 日韩区在线观看| 免费无码毛片一区二区app| 久久影院资源站| 青青久久av北条麻妃海外网| 色综合视频在线| 蜜臀av亚洲一区中文字幕| 亚洲美女搞黄| 在线国产网址| 色8久久人人97超碰香蕉987| 久久久久久九九九九九| 久久久久久亚洲精品美女| 久久成人免费视频| 神马久久久久久久久久| 老司机精品视频导航| 天天做天天爱天天高潮| 成年女人的天堂在线| 欧美高清一级片在线| caoporn91| 欧美理论在线播放| 97人人干人人| www 四虎| 色偷偷88欧美精品久久久| 国产精品1区2区3区4区| 动漫视频在线一区| 国产精品2018| 写真福利片hd在线播放| 中文字幕第一区二区| 欧洲成人午夜精品无码区久久| 日韩黄色三级在线观看| 91精品国产自产91精品| 欧洲vodafone精品| 久久先锋影音av| 被黑人猛躁10次高潮视频| 久久婷婷五月综合色丁香| 欧美精品videosex牲欧美| 久久综合香蕉| 久久嫩草精品久久久久| 秋霞午夜一区二区| 在线免费电影网| 亚洲欧美日韩在线不卡| 精品无码人妻一区二区免费蜜桃 | 欧美一区日本一区韩国一区| 国产成人在线视频观看| 在线亚洲国产精品网站| 少妇精品久久久久久久久久| 蜜桃视频在线观看网站| 亚洲精品一区二区三区香蕉| 国产伦子伦对白视频| 国产成人午夜精品影院观看视频 | 凹凸国产熟女精品视频| 天堂中文av在线资源库| 九色精品免费永久在线| 韩国xxxx做受gayxxxx| 亚洲视频在线一区观看| 卡一卡二卡三在线观看| 93在线视频精品免费观看| 欧美日韩另类丝袜其他| jizz在线免费观看| 国产亚洲欧洲高清一区| ririsao中文字幕免费| 国产精品私人自拍| 黑人と日本人の交わりビデオ| 自由日本语亚洲人高潮| 狠狠精品干练久久久无码中文字幕| 欧美日韩经典丝袜| 欧美国产第一页| 超污黄色软件| 欧美午夜精品久久久久久孕妇 | 全国男人的天堂天堂网| 国产精品你懂的在线欣赏| 成人国产精品久久久网站| 香蕉国产精品| 久久久久久久香蕉| 中文在线а√在线8| 国产91热爆ts人妖在线| 免费观看黄色网| 日韩成人性视频| 一本之道久久| 亚洲成人精品一区二区| 日本熟妇毛耸耸xxxxxx| 美女国产一区二区| 污视频在线观看免费网站| 性人久久久久| 日韩欧美在线观看强乱免费| 四虎影院观看视频在线观看| 高清视频欧美一级| 老司机很黄的视频免费| 日韩电视剧在线观看免费网站| 日韩在线一二三| 在线看不卡av|