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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 31694|回復: 64
收起左側

我做的單片機電子時鐘 含原理圖 源碼

  [復制鏈接]
ID:121043 發表于 2016-5-16 13:08 | 顯示全部樓層 |閱讀模式
這是我花了好久時間做的一個電子時鐘,沒有按照老師的要求去做,而是按照我自己的思路做的。完全是自己的原創,沒有抄襲,里面有很多不足的地方,希望大神能修改了與我分享。

飛機里面包含硬件系統和軟件系統,使用的是51單片機。

仿真電路圖:
0.png 0.png

所有資料下載: 時鐘計時.rar (57.11 KB, 下載次數: 280)



電子時鐘程序源碼:
  1. /*************  頭文件與宏定義  ************/
  2. #include <reg52.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. /*************  數組與位碼  ************/
  6. uchar code DSY_CODE[]=
  7. {
  8.         0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,
  9. };//第11個為-

  10. uchar code Scan_BITs[]=
  11. {
  12.           0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80
  13. };
  14. uchar data Buffer_Counts[8];
  15. uchar KeyNO=16;
  16. uchar Key_N;

  17. uint Count_H=23; //小時
  18. //uint Count_A;          //顯示-
  19. uint Count_M=59; //分鐘
  20. //uint Count_B;         //顯示-
  21. uint Count_S=00; //秒
  22. uint TCNT;

  23. /*************  延時程序  ************/
  24. void DelayMS(uint x)
  25. {
  26.         uchar t;
  27.         while(x--)
  28.         {
  29.                  for(t=0;t<120;t++);
  30.         }
  31. }

  32. /*************  鍵處理  ************/
  33. void Keys_Scan()
  34. {
  35.         uchar Tmp;
  36.         P1 = 0xff;
  37.         DelayMS(1);
  38.         Tmp = P1 ^ 0xff;
  39.         while(P1!=0xff) {}
  40.         switch(Tmp)
  41.         {
  42.                  case 1:KeyNO=0;break;
  43.                 case 2:KeyNO=1;break;
  44.                 case 4:KeyNO=2;break;
  45.         case 8:KeyNO=3;break;
  46.                 case 16:KeyNO=4;break;
  47.         }
  48. }

  49. /*************  段碼顯示  ************/
  50. void Show_Counts()
  51. {
  52.         uint i;
  53.         Buffer_Counts[0] = Count_H / 10;
  54.         Buffer_Counts[1] = Count_H % 10;//小時
  55.        
  56.         Buffer_Counts[2] =10;

  57.         Buffer_Counts[3] = Count_M / 10;
  58.         Buffer_Counts[4] = Count_M % 10;//分鐘       
  59.        
  60.         Buffer_Counts[5] =10;

  61.         Buffer_Counts[6] = Count_S / 10;
  62.         Buffer_Counts[7] = Count_S % 10;//秒       
  63.                 for(i=0;i<8;i++)
  64.         {
  65.                  P2 = ~Scan_BITs[i];
  66.                 P0 = ~DSY_CODE[Buffer_Counts[i]];
  67.                 DelayMS(1);
  68.         }
  69. }

  70. /*************  時間到進位  ************/
  71. void TIME_INT0() interrupt 1
  72. {        TH0=(65536-5000)/256;
  73.         TL0=(65536-5000)%256;
  74.         TCNT ++;
  75.         if(TCNT==20)
  76.         {
  77.     Count_S++;
  78.         TCNT=0;
  79.           if(Count_S==60)
  80.           {
  81.           Count_M++;
  82.           Count_S=0;
  83.             if(Count_M==60)
  84.             {
  85.                 Count_H++;
  86.             Count_M=0;
  87.               if(Count_H==24)
  88.               {
  89.               Count_H=0;
  90.           Count_M=0;
  91.               Count_S=0;
  92.               TCNT=0;
  93.               }
  94.             }
  95.       }  
  96.   }
  97. }

  98. /*************  主函數  ************/
  99. void main()
  100. {
  101.     TMOD = 0x01;
  102.         TH0  = (65536-5000)/256;
  103.         TL0  = (65536-5000)%256;
  104.         EA=1;
  105.         ET0=1;
  106.         TR0 = 0;
  107.         while(1)
  108.         { if(P1 != 0xff)
  109.             {Keys_Scan();}
  110.                 switch(KeyNO)
  111.                 {
  112.                  case 0:        
  113.                              if(Key_N>2)
  114.                                                  Key_N=0;
  115.                                          else if(Key_N==0)
  116.                                                   TR0=~TR0;
  117.                                          else
  118.                                                  Key_N++;
  119.                                 break;
  120.                  case 1:
  121.                              if(~TR0)Count_H++;
  122.                                           
  123.                                           {
  124.                                            if(Count_H==24)
  125.                                            Count_H=0;
  126.                                            Count_M=0;
  127.                                            Count_S=0;
  128.                                            }break;
  129.                  case 2:
  130.                              if(~TR0)Count_M++;
  131.                                            {
  132.                                            if(Count_M==60)
  133.                                            Count_M=0;
  134.                                            Count_S=0;
  135.                                            }
  136.                                           break;
  137.                  case 3:
  138.                              if(~TR0)Count_S++;
  139.                                           {
  140.                                            if(Count_S==60)Count_S=0;
  141.                                            }break;
  142.                  case 4:          if(Key_N==0)
  143.                              Count_H=0;
  144.                                          Count_M=0;
  145.                                          Count_S=0;
  146.                                           break;
  147.                  }
  148.                 KeyNO=5;
  149.             Show_Counts();
  150.             }
  151. }













  152. /*void main()
  153. {
  154. while(1)
  155. {
  156.     TMOD=0x01;
  157.         TH0=(65536-5000)/256;
  158.         TL0=(65536-5000)%256;
  159.         EA=1;
  160.         ET0=1;
  161.         TR0=1;
  162.         Show_Counts();
  163. switch(P1)
  164. {
  165. case 1: Count_H++;
  166. case 2: Count_M++;       
  167. case 4: Count_S++;
  168. }
  169. }

  170. } */
復制代碼


評分

參與人數 10黑幣 +94 收起 理由
dfdfuhuh + 3 絕世好帖!
dianzhongmiao + 5
程慕雨 + 2 很給力!
azx321045 + 5 很給力!
可樂333 + 4 贊一個!
逸興 + 10
zhf1229 + 5 贊一個!
小末末 + 5 共享資料的黑幣獎勵!
cqhejian + 5 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:170778 發表于 2017-3-14 22:50 | 顯示全部樓層
厲害的,頂一個
回復

使用道具 舉報

ID:96881 發表于 2017-3-15 10:24 | 顯示全部樓層
謝謝您分享,這個思路不一樣,學習借鑒一下
回復

使用道具 舉報

ID:186622 發表于 2017-4-6 14:49 | 顯示全部樓層
厲害,學習了
回復

使用道具 舉報

ID:190884 發表于 2017-4-18 16:45 | 顯示全部樓層
厲害了
回復

使用道具 舉報

ID:196847 發表于 2017-5-14 18:34 | 顯示全部樓層
666666,厲害了。
回復

使用道具 舉報

ID:214821 發表于 2017-6-26 16:27 | 顯示全部樓層
紅紅火火好好
回復

使用道具 舉報

ID:217081 發表于 2017-7-4 16:17 | 顯示全部樓層
厲害。。。。。
回復

使用道具 舉報

ID:207702 發表于 2017-7-4 18:18 來自手機 | 顯示全部樓層
這種數碼管是什么原來怎么控制段選位選
回復

使用道具 舉報

ID:258649 發表于 2017-12-7 15:16 | 顯示全部樓層
學習了
回復

使用道具 舉報

ID:258032 發表于 2017-12-7 23:18 | 顯示全部樓層
先記錄下來,對學單片機真的很有幫助
回復

使用道具 舉報

ID:262101 發表于 2017-12-15 16:32 | 顯示全部樓層
先記錄下來,對學單片機真的很有幫助
回復

使用道具 舉報

ID:262101 發表于 2017-12-17 13:29 | 顯示全部樓層
為什么時鐘的秒表部分跑得這么快,是不是程序出了問題??
回復

使用道具 舉報

ID:269632 發表于 2018-1-16 11:25 | 顯示全部樓層
好厲害
回復

使用道具 舉報

ID:280438 發表于 2018-1-28 17:01 | 顯示全部樓層
qwertyuiop1230 發表于 2017-12-17 13:29
為什么時鐘的秒表部分跑得這么快,是不是程序出了問題??

感覺應該是晶振的頻率不一樣吧
回復

使用道具 舉報

ID:280438 發表于 2018-1-30 15:22 | 顯示全部樓層
不知道樓主仿真時候 是否發現秒走的很快..........我不知道定時器中的值設置是否正確?
回復

使用道具 舉報

ID:281244 發表于 2018-1-31 18:03 | 顯示全部樓層
很有創意的實驗。
回復

使用道具 舉報

ID:298337 發表于 2018-3-28 15:11 | 顯示全部樓層
感謝樓主分享
回復

使用道具 舉報

ID:304260 發表于 2018-4-9 10:39 | 顯示全部樓層
樓主很厲害
回復

使用道具 舉報

ID:328839 發表于 2018-5-13 16:56 | 顯示全部樓層
真的很不錯呀
回復

使用道具 舉報

ID:317900 發表于 2018-5-15 08:31 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:331153 發表于 2018-5-16 11:36 | 顯示全部樓層
謝謝樓主分享
回復

使用道具 舉報

ID:331153 發表于 2018-5-16 16:48 | 顯示全部樓層
謝謝樓主分享
回復

使用道具 舉報

ID:283987 發表于 2018-5-16 19:03 | 顯示全部樓層
謝謝樓主分享   學習了
回復

使用道具 舉報

ID:329821 發表于 2018-5-19 14:53 | 顯示全部樓層
謝謝樓主分享
回復

使用道具 舉報

ID:340304 發表于 2018-5-29 09:41 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:351232 發表于 2018-6-13 17:09 | 顯示全部樓層
思路就是不一樣
回復

使用道具 舉報

ID:351232 發表于 2018-6-13 17:10 | 顯示全部樓層
思路就是不一樣很有幫助
回復

使用道具 舉報

ID:351232 發表于 2018-6-13 17:20 | 顯示全部樓層
思路清晰 對初學很有幫助
回復

使用道具 舉報

ID:350863 發表于 2018-6-14 09:58 來自手機 | 顯示全部樓層
剛好學到這里能用到!
回復

使用道具 舉報

ID:352736 發表于 2018-6-15 23:27 | 顯示全部樓層
很給力
回復

使用道具 舉報

ID:348510 發表于 2018-6-16 21:56 | 顯示全部樓層
下載看看
回復

使用道具 舉報

ID:348510 發表于 2018-6-17 08:24 | 顯示全部樓層
為什么下載了沒用啊 只顯示前面3個燈
回復

使用道具 舉報

ID:353236 發表于 2018-6-17 14:04 | 顯示全部樓層
厲害呀
回復

使用道具 舉報

ID:354277 發表于 2018-6-19 14:08 | 顯示全部樓層
怎么加鬧鐘
回復

使用道具 舉報

ID:354521 發表于 2018-6-19 18:17 | 顯示全部樓層
你這個很棒啊,自己編寫的程序
回復

使用道具 舉報

ID:352182 發表于 2018-6-19 23:05 | 顯示全部樓層
謝謝分享,已下載做為研究
回復

使用道具 舉報

ID:409518 發表于 2018-10-14 17:42 | 顯示全部樓層
為什么我的時鐘不動啊
回復

使用道具 舉報

ID:378372 發表于 2018-10-14 20:19 | 顯示全部樓層
很   贊
回復

使用道具 舉報

ID:73182 發表于 2018-10-15 16:52 | 顯示全部樓層
仿真可以,不知樓主實物做出了沒?正在著手做一個,請教下液晶不加供電不知道IO腳的電流是否夠?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人一二三 | 国产精品久久久av | 米奇7777狠狠狠狠视频 | 伊人精品一区二区三区 | 国产精品美女久久久久久久网站 | 久久99精品久久久久久琪琪 | 成人精品一区二区三区中文字幕 | 欧美精品在线一区 | 91国内视频在线 | 中日韩av | 免费在线性爱视频 | 一区二区免费视频 | 伊人焦久影院 | 亚洲不卡在线观看 | 在线中文视频 | 中文字幕高清一区 | 国产伦一区二区三区视频 | 性色在线| 女女百合av大片一区二区三区九县 | 久久国产综合 | 日韩插插 | 一区二区视频免费观看 | 华丽的挑战在线观看 | 欧美影院 | 中文字幕在线人 | 久久网一区二区 | 中文字幕亚洲视频 | 亚洲欧洲精品在线 | 欧美激情久久久 | 国外成人在线视频 | 亚洲一区欧美 | 久久只有精品 | 性欧美hd | 国产亚洲精品综合一区 | 国产伦精品一区二区三区高清 | 久草网址 | 岛国午夜| 99re6热在线精品视频播放 | 亚洲视频免费在线观看 | 中文字幕11页 | 国产一区二区在线91 |