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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機數字鐘(兩個定時器,優先級)

[復制鏈接]
跳轉到指定樓層
樓主
數字鐘電路原理圖如下:


單片機源程序如下:
  1. #include"reg51.h"

  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit k1 = P0^0;//按鍵調時間加一  秒
  5. sbit k2 = P0^1;                                //分
  6. sbit k3 = P0^2;                                //時
  7. sbit k4 = P0^7;             //暫停


  8. char code smduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,   //共陽
  9.                                         0x80,0x90,0xbf};        //0-9和-

  10. uchar ms = 0,sec = 0,min =0,hour = 12;//定義變量
  11. uchar i = 0;
  12. /**************延時函數,有參******/
  13. void delay(uchar h)//延時xms
  14. {
  15.         uchar k;
  16.                  for(;h > 0;h--)
  17.                         {
  18.                                  for(k = 110;k > 0;k--);
  19.                         }
  20. }

  21. /********定時器初始化************/
  22. void csh()
  23. {
  24.         TMOD = 0x11;//T0,T1工作方式1
  25.         TH1 = (65536 - 2500) / 256;           //給初值        T1給2.5ms
  26.         TL1 = (65536 - 2500) % 256;
  27.         TH0 = (65536 - 50000) / 256;                 //T0給50ms
  28.         TL0 = (65536 - 50000) % 256;
  29.         //開中斷
  30.         ET1 = 1;
  31.         ET0 = 1;
  32.         EA = 1;
  33.         //二級中斷嵌套令T0 50ms優先
  34.         PT0 = 1;
  35.         //開定時器
  36.         TR0 = 1;
  37.         TR1 = 1;
  38. }

  39. /****************按鍵函數*******/
  40. void key()
  41. {
  42.          if(k1 == 0) //秒
  43.          {
  44.                  delay(10);//延時10ms
  45.                 if(k1 == 0)
  46.                 {
  47.                         if(sec > 59) sec = 0;
  48.                         else sec++;                                                     
  49.                 }
  50.          while(k1 == 0);
  51.          }                                                        
  52.          if(k2 == 0)//分
  53.          {
  54.                  delay(10);//延時10ms,
  55.                 if(k2 == 0)
  56.                 {
  57.                         if(min > 59) min = 0;
  58.                         else min++;
  59.                 }
  60.          while(k2 == 0);
  61.          }
  62.          if(k3 == 0) //時
  63.          {
  64.                  delay(10);//延時10ms
  65.                 if(k3 == 0)
  66.                 {
  67.                         if(hour > 23) hour = 0;
  68.                         else hour++;
  69.                 }
  70.             while(k3 == 0);
  71.          }
  72.          if(k4 == 0)
  73.          {
  74.                  delay(10);//延時10ms
  75.                 if(k4 == 0)
  76.                 {
  77.                          TR0 = 0;
  78.                         TR1 = 0;
  79.                 }
  80.                 while(k4 == 0);
  81.          }
  82.        
  83.                

  84. }




  85. /***********定時器T0中斷(產生時間數據)*********/
  86. void i_time() interrupt 1
  87. {
  88.         TH0 = (65536 - 50000) / 256;                 //初值
  89.         TL0 = (65536 - 50000) % 256;
  90.         if(ms > 19)        //1s時間到
  91.         {
  92.                 ms = 0;
  93.                 if(sec >59)        //1min時間到
  94.                         {
  95.                                 sec = 0;
  96.                                         if (min>59)//1h到
  97.                                         {
  98.                                                 min = 0;
  99.                                                 if(hour > 23) hour = 0;
  100.                                                 else hour++;
  101.                                         }
  102.                                         else min++;
  103.                         }
  104.                 else sec++;
  105.         }
  106.         else ms++;//50ms中斷計數
  107.        
  108. }
  109. /***********定時器T1中斷(產生動態掃描)*********/
  110. void t_display() interrupt 3
  111. {
  112.         TH1 = (65536 - 2500) / 256;//給初值        T1給2.5ms
  113.         TL1 = (65536 - 2500) % 256;       
  114.         i++;
  115.         if(i > 7) i =0;
  116.         switch(i)
  117.                 {
  118.                        
  119.                         case 0:P3 = 0x00; P2 = smduan[sec % 10]; P3 = 0x01;  //第0次中斷,顯示秒個位
  120.                                 break;
  121.                         case 1: P3 = 0x00;P2 = smduan[sec / 10]; P3 = 0x02;  //第1次中斷,顯示秒十位
  122.                                 break;
  123.                         case 2:P3 = 0x00; P2 = smduan[10]; P3 = 0x04;  //第2次中斷,顯示-
  124.                                 break;
  125.                         case 3:P3 = 0x00; P2 = smduan[min % 10]; P3 = 0x08;  //第3次中斷,顯示分個位
  126.                                 break;
  127.                         case 4: P3 = 0x00;P2 = smduan[min / 10]; P3 = 0x10;  //第4次中斷,顯示分十位
  128.                                 break;
  129.                         case 5: P3 = 0x00;P2 = smduan[10]; P3 = 0x20;  //第5次中斷,顯示-
  130.                                 break;
  131.                         case 6:P3 = 0x00; P2 = smduan[hour % 10]; P3 = 0x40;  //第6次中斷,顯示時個位
  132.                                 break;
  133.                         case 7:P3 = 0x00; P2 = smduan[hour / 10]; P3 = 0x80;  //第7次中斷        ,顯示時十位
  134.                                 break;
  135.                   }                                  
  136. }

  137. /***************主函數************/
  138. main()
  139. {
  140.         csh();
  141.         while(1)
  142.         {
  143.                 key();
  144.         }                                                       
  145. }
復制代碼

所有資料51hei提供下載:
KEIL.zip (25.43 KB, 下載次數: 33)


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 三区四区在线观看 | 毛片1 | 91精品在线播放 | 黄视频在线网站 | 国产午夜精品一区二区三区嫩草 | 久久精品亚洲欧美日韩久久 | 久久精品国产v日韩v亚洲 | 婷婷久| 精品在线一区 | 丁香综合 | 91大神新作在线观看 | 中文字幕一区二区在线观看 | 在线第一页 | 欧美在线一区二区三区 | 午夜专区 | 国产一区二区久久 | 美女视频一区二区三区 | 国产成人免费 | 精品日韩一区 | 青青久草| 欧美日韩亚洲国产综合 | 精品视频一区二区三区 | 日韩视频在线播放 | 九九国产 | 国产精品精品久久久 | 欧美日韩久久精品 | 国产精品视频导航 | 久草院线| 国产高清免费 | 欧美日韩精品中文字幕 | 欧美精品二区三区 | 本地毛片| 亚洲国产伊人 | 日韩在线国产 | 精品国产一区二区国模嫣然 | 久操伊人 | 日本电影韩国电影免费观看 | 精品国产精品一区二区夜夜嗨 | 卡通动漫第一页 | 91麻豆产精品久久久久久 | 岛国在线免费观看 |