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

QQ登錄

只需一步,快速開始

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

單片機(jī)LED大時(shí)鐘制作 原理圖源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:76686 發(fā)表于 2015-4-12 00:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
     這是一款單片機(jī)時(shí)鐘原理圖源程序,該款單片機(jī)時(shí)鐘使用的單片機(jī)是STC89C52RC,顯示數(shù)碼管是用發(fā)光二極管焊的,設(shè)計(jì)一四個(gè)按鍵,分別是用來調(diào)整時(shí)間小時(shí)、分鐘用的。實(shí)物是由一塊單片機(jī)最小系統(tǒng)板及自己焊接的數(shù)碼顯示板組成,單片機(jī)最小系統(tǒng)板上設(shè)計(jì)RS232-TTL的電平轉(zhuǎn)換電路,這樣燒寫單片機(jī)程序就不需要額外的硬件,讓初學(xué)者學(xué)習(xí)實(shí)作這塊單片機(jī)時(shí)鐘板變得簡(jiǎn)單省費(fèi)用。源程序及電原理圖的PROTEL格式的文件這了方便愛好者者使用,已壓縮成壓縮包,需要的可以從下面的地址自己下載,這里只是將制作好的實(shí)物及JPG格式的原理圖貼出來。實(shí)物中用到的單片機(jī)最小系統(tǒng)本空間有具體的制作方法,大家可以參考制作。


      制作資料下載: 單片機(jī)時(shí)鐘原理圖源程序.rar (199.09 KB, 下載次數(shù): 86)



下面是電路原理圖:


    推薦:

          手把手制作單片機(jī)最小系統(tǒng):http://www.torrancerestoration.com/bbs/dpj-33306-1.html
          用單片機(jī)最小系統(tǒng)做18B20溫度測(cè)量試驗(yàn):http://www.torrancerestoration.com/bbs/dpj-31415-1.html

本程序源代碼如下:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  5. sbit d1=P1^0;//定義d1
  6. sbit d2=P1^7;//定義d1
  7. sbit key1=P3^2;//按鍵定義
  8. sbit key2=P3^3;
  9. sbit key3=P3^4;
  10. sbit key4=P3^5;
  11. sbit LED1=P2^3;
  12. sbit LED2=P2^2;
  13. sbit LED3=P2^1;
  14. sbit LED4=P2^0;

  15. uchar temp,aa,miaos,miaog,qian,bai,shi,ge,fen,sh,bb,mh;
  16. void display(uchar qian,uchar bai,uchar shi,
  17. uchar ge);
  18. void delay(uint z)
  19. {
  20.         uint x,y;
  21.         for(x=z;x>0;x--)
  22.         for(y=110;y>0;y--);
  23. }
  24. void init();
  25. void main()
  26. {       
  27.         init();//初始化子程序
  28.         mh=1;
  29.         while(1)
  30.         {       
  31.                 if(key1==0)
  32.                 {
  33.                         delay(200);
  34.                         while(key1==0);
  35.                         fen++;
  36.                         if(fen==59)
  37.                         {
  38.                                 fen=0;
  39.                         }
  40.                 }
  41.                 if(key2==0)
  42.                 {
  43.                         delay(200);
  44.                         while(key2==0);
  45.                         if(fen!=0)
  46.                         {
  47.                                 fen--;
  48.                         }
  49.                         if(fen==0)
  50.                         {
  51.                                 fen=59;
  52.                         }
  53.                 }
  54.                 if(key3==0)
  55.                 {
  56.                         delay(200);
  57.                         while(key3==0);
  58.                         sh++;
  59.                         if(sh==23)
  60.                         {
  61.                                 sh=0;
  62.                         }
  63.                 }
  64.                 if(key4==0)
  65.                 {
  66.                         delay(200);
  67.                         while(key4==0);
  68.                         if(sh!=0)
  69.                         {
  70.                                 sh--;
  71.                         }
  72.                         if(sh==0)
  73.                         {
  74.                                 sh=23;
  75.                         }

  76.                 }
  77.                 if(aa==20)
  78.                 {
  79.                         bb++;
  80.                         aa=0;
  81.                         miaog=bb%10;
  82.                         miaos=bb/10%6;
  83.                         mh=~mh;
  84.                 }
  85.                 if(bb==60)
  86.                 {
  87.                         fen++;
  88.                         bb=0;
  89.                 }
  90.                 ge=fen%10;
  91.                 shi=fen/10%6;
  92.                 if(fen==60)
  93.                 {        sh++;
  94.                         fen=0;
  95.                         fen=0;
  96.                        
  97.                 }
  98.                 bai=sh%10;
  99.                 qian=sh/10;
  100.                 if(bai==10)
  101.                 bai=0;
  102.                 if(qian==2)
  103.                 {
  104.                         if(bai==4)
  105.                         {
  106.                                 qian=0;
  107.                                 bai=0;
  108.                         }
  109.                 }
  110.                 if(sh==24)
  111.                 {       
  112.                         sh=0;
  113.                 }
  114.                 display(qian,bai,shi,ge);
  115.         }
  116. }



  117. void display(uchar qian,uchar bai,uchar shi,
  118. uchar ge)
  119. {
  120.         LED1=1;
  121.         P0=table[qian];
  122.         LED1=0;
  123.         delay(1);
  124.         LED1=1;

  125.         LED2=1;
  126.         P0=table[bai];
  127.         LED2=0;
  128.         delay(1);
  129.         LED2=1;

  130.                        
  131.         LED2=1;       
  132.         if(mh==1)
  133.         {
  134.            P0=0x7F;               
  135.         }
  136.         else P0=0xFF;
  137.         LED2=0;       
  138.         delay(3);
  139.         LED2=1;
  140.                                
  141.         LED3=1;
  142.         P0=table[shi];
  143.         LED3=0;
  144.         delay(1);
  145.         LED3=1;
  146.                
  147.         LED4=1;
  148.         P0=table[ge];
  149.         LED4=0;
  150.         delay(1);
  151.         LED4=1;
  152. }

  153. void init()
  154. {       
  155.         d1=1;
  156.         d2=1;
  157.         fen=0;
  158.         sh=0;
  159.         temp=0;
  160.         TMOD=0x01;
  161.         TH0=(65536-50000)/256;
  162.         TL0=(65536-50000)%256;
  163.         EA=1;
  164.         ET0=1;
  165.         TR0=1;       
  166. }

  167. void timer0() interrupt 1
  168. {
  169.         TH0=(65536-50000)/256;
  170.         TL0=(65536-50000)%256;
  171.         aa++;       
  172. }
復(fù)制代碼





評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
qjzyx + 5 絕世好帖!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:70614 發(fā)表于 2015-4-20 20:19 | 只看該作者
謝謝樓主分享。我認(rèn)識(shí)你一年多了可是沒和你說過一句話
回復(fù)

使用道具 舉報(bào)

板凳
ID:78768 發(fā)表于 2015-5-3 20:25 | 只看該作者
很棒。。。。。。。。。。。。
回復(fù)

使用道具 舉報(bào)

地板
ID:19947 發(fā)表于 2015-8-8 23:18 | 只看該作者
原理圖內(nèi)段碼需不需要上拉電阻?
回復(fù)

使用道具 舉報(bào)

5#
ID:130231 發(fā)表于 2017-3-12 21:35 | 只看該作者
不錯(cuò),我也下載看看。
回復(fù)

使用道具 舉報(bào)

6#
ID:192615 發(fā)表于 2017-5-7 06:35 | 只看該作者
很棒。。。。。。。。。。。。
回復(fù)

使用道具 舉報(bào)

7#
ID:261637 發(fā)表于 2017-12-15 15:38 | 只看該作者
不錯(cuò),我也下載看看。
回復(fù)

使用道具 舉報(bào)

8#
ID:266116 發(fā)表于 2017-12-25 21:18 | 只看該作者
從圖上看很好,平常都是用89C2051做的,改天就做個(gè)試試!
回復(fù)

使用道具 舉報(bào)

9#
ID:269121 發(fā)表于 2017-12-30 11:15 | 只看該作者
很棒,有時(shí)間做一個(gè)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表