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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4065|回復: 11
收起左側

單片機10s秒表兩個開關怎么實現

  [復制鏈接]
ID:256067 發表于 2017-12-1 11:39 | 顯示全部樓層 |閱讀模式
求助!我要做個10s的秒表。有兩個按鍵,一個按鍵是電源,一個是開關。
當按下開關時,前提電源開關也按下了,數碼管開始走動,再按下開關會暫停定時器,再按清零(已實現)。
關鍵是電源另一個功能。當再按下電源開關時,數碼管熄滅,定時器停止。(未實現)
有沒有大神能夠告訴我怎么實現這個功能,關系到我掛不掛科的事情......
QQ截圖20171201113034.png
單片機代碼如下:
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code Dsy_Code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  5. sbit Key_Start = P2^2;
  6. sbit Key_Power=P2^3;
  7. sbit dp = P0^7;                                                                                                       //小數點
  8. uchar num=0;  //定時器的計數
  9. uchar count=0;//數碼管的計數
  10. uchar Key_Num=0;//按鍵次數的計數
  11. uchar Power_Num=0;
  12. bit Key_State=1,Power_State=1;
  13. void DelayMS(uint x){
  14.         uchar i;
  15.         while(x--)
  16.                 for(i=0;i<120;i++);
  17. }
  18. void Dsy(){  //顯示函數
  19.         P2=0xfd;
  20.         P0=Dsy_Code[num%10];
  21.         DelayMS(2);
  22.         P2=0xfe;
  23.         P0=Dsy_Code[num/10];
  24.         dp=1;
  25.         DelayMS(2);
  26. }
  27. void Timer()interrupt 1{  //定時器
  28.         TH0=(65536-50000)/256;  //50ms
  29.         TL0=(65536-50000)%256;
  30.         count++;
  31.         if(count==2){
  32.                 count=0;
  33.                 num++;
  34.                 if(num==100)
  35.                         num=0;
  36.         }
  37. }
  38. void Key_Handle(){//按鍵處理
  39.         if(Key_State==0){
  40.                 Key_Num=(Key_Num+1)%3;
  41.                 switch(Key_Num){
  42.                         case 1:IE=0x82;TR0=1;break;
  43.                         case 2:IE=0x00;TR0=0;break;
  44.                         case 0:IE=0x00;TR0=0;num=0;break;
  45.                 }
  46.         }
  47. }
  48. void main(){
  49.         TMOD=0x01;
  50.         TH0=(65536-50000)/256;  //10ms
  51.         TL0=(65536-50000)%256;
  52.         if(Power_State!=Key_Power){
  53.                 DelayMS(10);
  54.                 if(Power_State!=Key_Power){
  55.                         Power_Num++;
  56.                         if(Power_Num%2==1){
  57.                                 while(1){
  58.                                         if(Key_State!=Key_Start){
  59.                                         DelayMS(10);
  60.                                         Key_State=Key_Start;
  61.                                         Key_Handle();
  62.                                         }
  63.                                 Dsy();
  64.                                 }
  65.                         }
  66.                 }
  67.         }
  68. }
復制代碼



回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:256126 發表于 2017-12-1 14:29 | 顯示全部樓層
這簡單了,電源開關就總開關好了,一按電源開關,把所有電關掉,就好啦。屏也不亮了數據也沒了正好啊
回復

使用道具 舉報

ID:222948 發表于 2017-12-1 17:18 | 顯示全部樓層
什么時候交我幫你完成
回復

使用道具 舉報

ID:222948 發表于 2017-12-1 17:23 | 顯示全部樓層
有什么不懂的可以找我

秒表.zip

29.99 KB, 下載次數: 31

評分

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

查看全部評分

回復

使用道具 舉報

ID:256067 發表于 2017-12-4 10:02 | 顯示全部樓層
999333 發表于 2017-12-1 17:23
有什么不懂的可以找我

感謝大佬,我理解了!!不好意思,今天才看見,非常感謝!!!
回復

使用道具 舉報

ID:1082198 發表于 2023-6-5 16:54 | 顯示全部樓層
Runningit 發表于 2017-12-4 10:02
感謝大佬,我理解了!!不好意思,今天才看見,非常感謝!!!

能講解一下顯示函數的那一塊嘛
回復

使用道具 舉報

ID:1082198 發表于 2023-6-5 16:56 | 顯示全部樓層
有些代碼看不懂,比如顯示函數那一塊

回復

使用道具 舉報

ID:1082282 發表于 2023-6-6 01:13 | 顯示全部樓層
開關按鈕可以通過設定變量來實現不同的功能,這個已經解決。
電源按鈕如果不去切斷單片機電源,可以做一個假斷電,即數碼管全部不顯示,用0x00應該能實現,然后將程序重置即可

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:116103 發表于 2023-6-6 06:02 | 顯示全部樓層
按下POWER電源鍵后,給數碼管的段碼是00(共陰),讓EA=0,停止計數中斷。
回復

使用道具 舉報

ID:1082051 發表于 2023-6-6 12:59 | 顯示全部樓層
秒表這東西我也不會,在線求助
回復

使用道具 舉報

ID:1074358 發表于 2023-6-6 13:29 | 顯示全部樓層
定時器停止  可以用EEPROM將斷電時的數據保存  供下次上電時繼續使用保存的數據
回復

使用道具 舉報

ID:1004455 發表于 2023-6-9 17:04 | 顯示全部樓層
寫個中斷函數就可以實現
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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