找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1154|回復: 0
打印 上一主題 下一主題
收起左側

單片機秒表程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:422259 發(fā)表于 2018-11-7 12:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源程序如下:
  1. #include"reg52.h"
  2. sbitkey=P3^7;
  3. unsignedchar led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//字模
  4. unsignedint count=0,num1=0,num2=0;
  5. unsignedchar work=0,block=0,record=0,situation=1;
  6. voidT0_srv (void) interrupt 1  //定時器0,定時1秒,刷新秒表顯示  
  7. {
  8. TH0 =(65536-50000)/256;  
  9. TL0 =(65536-50000)%256;
  10.    count++;
  11.    if(count==20)
  12.    {count=0;
  13.    if(num1==9&&num2==9) num1=num2=0;
  14.   else{
  15.    if(num1==9) num2++,num1=0;
  16.      else num1++;
  17.    }}
  18. }
  19. voidT1_srv (void) interrupt 3   //定時器1,定時200ms,用來判斷短按和長按
  20. {
  21.    TH1 =(65536-20000)/256;
  22.   TL1 =(65536-20000)%256;
  23.   record++;
  24. if(record==10)
  25. { record=0;
  26.     if(key==0) situation=0;
  27.     elsesituation=1,work=!work;
  28.    block=1;
  29. }
  30. }
  31. voiddelay()
  32. {
  33.    unsigned int i=2000;
  34.    while(i--);
  35. }
  36. voidcheck()//按鍵檢索函數
  37. {
  38.    if(key==0){ //判斷按鍵長短
  39.      delay();
  40.      if(key==0) {TR0=0,TR1=1;
  41.     while(!block);
  42.      TR1=0;TH1=(65536-50000)/256;TL1=(65536-50000)%256;block=0;//開啟定時器1,計時200ms,以此判斷長按和短按
  43.      if(situation==0){while(!key);work=0;TR0=0,TH0=(65536-50000)/256;TL0=(65536-50000)%256;num1=num2=0;}//長按清零
  44.      else{ //短按開始或者暫停秒表
  45.      if(work==0) TR0=0;
  46.      else TR0=1;}}}
  47.    }
  48. voidmain(){
  49.   TMOD=0x11; //定時器工作組1
  50.   TH0=(65536-50000)/256;  //定時器初值設定
  51.   TL0=(65536-50000)%256;
  52.   TH1=(65536-50000)/256;  
  53.   TL1 =(65536-50000)%256;
  54.   EA=1;
  55.   ET0=1;
  56.    ET1=1;
  57.   TR0=0;
  58.    TR1=0;
  59. P0=led_mod[num1];
  60. P2=led_mod[num2];
  61.   while(1)
  62. {
  63. check();//按鍵檢索
  64. P0=led_mod[num1];delay();//死循環(huán)顯示秒表計數
  65. P2=led_mod[num2];delay();
  66. }}
復制代碼

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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