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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8380|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的數(shù)字時(shí)鐘

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
以前做的一個(gè)基于51單片機(jī)的數(shù)字時(shí)鐘,有四個(gè)按鍵,可以設(shè)置時(shí)間、設(shè)置鬧鐘,增加時(shí)間,減少時(shí)間。


單片機(jī)源程序:
  1. main.c
  2. #include "bsp.h"

  3. void main()
  4. {
  5.         bsp_init();
  6.         while(1)
  7.         {
  8.          key_scan();         //三個(gè)按鍵各自的實(shí)現(xiàn)
  9.          set_showvalue();         //按下一個(gè)按鍵,將時(shí)間變成可以在數(shù)碼管上顯示的數(shù)
  10.                  bsp_scan();         //將時(shí)間送到數(shù)碼管上顯示
  11.                  delay(1);
  12.   }
  13. }


  14. bsp_key.c
  15. #include"bsp.h"
  16. sbit P1_0=P1^0;    //時(shí)鐘暫停鍵
  17. sbit P1_1=P1^1;
  18. sbit P1_2=P1^2;    //增加一秒
  19. sbit P1_3=P1^3;    //減少一秒



  20. void key_scan(void)
  21. {
  22.   
  23.   if(P1_0==0)        //此鍵實(shí)現(xiàn)暫停  
  24.   {
  25.     delay(5);
  26.         if(P1_0==0)
  27.         {
  28.           TR0=0;//定時(shí)器啟動(dòng)位關(guān)閉
  29.         }
  30.   }
  31.   
  32.   
  33.   if(P1_1==0)       //此鍵設(shè)置鬧鐘
  34.   {
  35.     delay(5);
  36.         if(P1_1==0)
  37.         {
  38.           TR0=1; //定時(shí)器啟動(dòng)位開(kāi)啟
  39.         }
  40.   }
  41.   
  42.   
  43.   if(P1_2==0)     //此鍵實(shí)現(xiàn)時(shí)間的一秒的增加
  44.   {
  45.     delay(5);
  46.         if(P1_2==0)
  47.         {  
  48.           delay(5);
  49.           while(!P1_2);    //消除按鍵抖動(dòng)
  50.           delay(5);
  51.           while(!P1_2);
  52.           sec++;
  53.           if(sec==60)
  54.       {
  55.             sec=0;
  56.                 min++;
  57.                 if(min==60)
  58.                 {
  59.                   min=0;
  60.                   hour++;
  61.                   if(hour==24)
  62.                   {
  63.                     hour=0;
  64.                   }
  65.                 }
  66.       }
  67.         }
  68. }
  69.   
  70.   
  71.   
  72.   
  73.   if(P1_3==0)      //此鍵實(shí)現(xiàn)時(shí)間一秒的減少
  74.   {
  75.     delay(5);
  76.         if(P1_3==0)
  77.         {
  78.           delay(5);                       
  79.           while(!P1_3);
  80.           delay(5);
  81.           while(!P1_3);
  82.           sec--;
  83.           if(sec==0)
  84.           {
  85.            sec=59;
  86.                 if(min==0)
  87.                 {
  88.                   min=59;
  89.                   if(hour==0)
  90.                   {
  91.                     hour=23;
  92.                         min=59;
  93.                         sec=59;
  94.                   }
  95.                   else
  96.                   {
  97.                     hour--;
  98.                   }
  99.                 }
  100.                    else
  101.                 {
  102.                         min--;
  103.                 }
  104.           }
  105.         }
  106.   }
  107. }

  108. bsp_seg.c
  109. #include "bsp.h"
  110. code char WEI[6]={0XDF,0XEF,0XF7,0XFB,0XFD,0XFE};       //位選碼
  111. code char DUAN[11]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0XFF};
  112. unsigned char show[6]={0x00};


  113. void bsp_scan(void)
  114. {
  115.         static unsigned char index =0;
  116.         P2=WEI[index];     //1101 1111
  117.         P0=show[index];   //P0 = DUAN[[index];   顯示固定的0-5
  118.         index++;
  119.         if(index==6)
  120.         index=0;
  121.        
  122. /*        P2 = WEI[0];         //顯示自己的生日
  123.         P0 = DUAN[9];
  124.         delay(1);
  125.         P2 = WEI[1];
  126.         P0 = DUAN[6];
  127.         delay(1);
  128.         P2 = WEI[2];
  129.         P0 = DUAN[1];
  130.         delay(1);
  131.         P2 = WEI[3];
  132.         P0 = DUAN[0];
  133.         delay(1);
  134.         P2 = WEI[4];
  135.         P0 = DUAN[3];
  136.         delay(1);
  137.         P2 = WEI[5];
  138.         P0 = DUAN[0];
  139.         delay(1); */
  140.        
  141. }



  142. void set_showvalue(void)
  143. {
  144.         show[0]=DUAN[hour/10];//小時(shí)的十位
  145.         show[1]=DUAN[hour%10];//小時(shí)的個(gè)位
  146.        
  147.         show[2]=DUAN[min/10];
  148.         show[3]=DUAN[min%10];
  149.        
  150.         show[4]=DUAN[sec/10];
  151.         show[5]=DUAN[sec%10];
  152. }

  153. bsp_timer.c
  154. #include "bsp.h"


  155. unsigned char tick0=0;
  156. unsigned char  sec=0,min=0,hour=0;


  157. void Time0_Init(void)   //定時(shí)器0初始化
  158. {
  159.         TMOD |= 0X01;            //方式一,軟件清零
  160.         TH0=(65536-50000)/256;      //50ms
  161.         TL0=(65536-50000)%256;
  162.            EA=1;
  163.     ET0=1;
  164.     TR0=1;
  165. }



  166. void INT_TIME0() interrupt 1
  167. {
  168.         TH0=(65536-50000)/256;
  169.         TL0=(65536-50000)%256;
  170.         tick0++;
  171.         if(tick0==20)
  172.         {
  173.                 tick0=0;
  174.             sec++;
  175.             if(sec==60)
  176.                 {
  177.            sec=0;
  178.                    min++;
  179.                 if(min==60)
  180.                         {
  181.                         min=0;
  182.                         hour++;
  183.                     {
  184.                  if(hour=24)
  185.                                  hour=0;
  186.             }
  187.                                         }
  188.                         }
  189.     }
  190. }

  191. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼



仿真和源碼下載:
數(shù)字時(shí)鐘源程序.zip (56.6 KB, 下載次數(shù): 135)
數(shù)字時(shí)鐘protues仿真.zip (81.03 KB, 下載次數(shù): 108)




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:420451 發(fā)表于 2018-11-4 13:27 | 只看該作者
謝謝,學(xué)到了
回復(fù)

使用道具 舉報(bào)

板凳
ID:375860 發(fā)表于 2018-12-27 11:16 | 只看該作者
學(xué)到了
回復(fù)

使用道具 舉報(bào)

地板
ID:456130 發(fā)表于 2018-12-29 08:59 | 只看該作者
寫(xiě)的太好了,感謝樓主分享
回復(fù)

使用道具 舉報(bào)

5#
ID:930641 發(fā)表于 2021-6-1 14:19 | 只看該作者
受益頗多,多謝樓主的分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产露脸对白88av | 鲁视频 | 成人国产精品免费观看 | 视频在线亚洲 | 毛片视频网址 | 精品国产1区2区3区 一区二区手机在线 | 亚洲精品91 | 亚洲人人| 香蕉视频一区二区 | 在线成人av | 久久久免费毛片 | 日本a视频| 国产精品国产成人国产三级 | 九九伦理电影 | 久久精品网| 国产成人精品一区二 | 在线观看黄色电影 | 久久91精品国产 | 国产aⅴ爽av久久久久久久 | 一级全黄视频 | 国产欧美在线视频 | 欧美日韩久久精品 | 亚洲国产精品久久 | 国产97碰免费视频 | 亚洲免费在线 | 激情五月婷婷丁香 | 国产一区二区欧美 | 天天爽夜夜骑 | 不卡一区二区三区四区 | 久草视频在线播放 | 亚洲欧美视频一区二区 | 欧美日韩福利 | 狠狠伊人 | 亚洲影音先锋 | 日韩欧美一区二区三区免费观看 | 国内自拍视频在线观看 | 免费看片在线播放 | 一区二区三区视频免费看 | 欧美午夜视频 | 亚洲国产精品视频一区 | 亚洲欧美在线一区 |