找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC12C2052AD單片機(jī)控制的數(shù)碼管時(shí)鐘程序及電路圖

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:76686 發(fā)表于 2015-4-11 20:01 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
     STC12C2052AD單片機(jī)控制的數(shù)碼管時(shí)鐘,數(shù)碼管是共陽4位時(shí)鐘數(shù)碼管,由于使用單片機(jī)真驅(qū),電路比較簡單,且使用的材料和工具也很簡單,用數(shù)碼管顯示,單片機(jī)控制,兩個(gè)按鍵調(diào)時(shí),蜂鳴器整點(diǎn)報(bào)時(shí)。所需要的元件如下:

       材料有以下這些:
        STC12C2052AD單片機(jī)一片
        黃色共陽4位時(shí)鐘數(shù)碼管一塊
        6mm×6mm按鍵兩個(gè)
        杜邦線插針2p兩個(gè)
        無源蜂鳴器一個(gè)
        20腳+14腳芯片座各一個(gè)
        洞洞板一塊(截取一小部分)
        100歐電阻4個(gè)



     源程序如下:
  1. #include <STC12C2052AD.h>  //聲明頭文件

  2.   

  3. sbit key1=P3^4;  //按鍵接口定義

  4. sbit key2=P3^5;  //按鍵接口定義

  5. sbit speaker=P3^7;  //蜂鳴器接口定義

  6. /************************************************************************************/

  7. unsigned char code LED[10]={0x20,0xA7,0x90,0x82,0x07,0x42,0x40,0xA6,0x00,0x02};//數(shù)碼管段位碼定義

  8. unsigned int time; //全局秒基準(zhǔn)定義

  9. /*-------------------------------------延時(shí)函數(shù)-------------------------------------*/

  10. void delayms (unsigned int a){

  11. unsigned int i;

  12. while( --a != 0){

  13. for(i = 0; i < 600; i++);

  14. }

  15. }

  16. /*----------------------------------蜂鳴器驅(qū)動(dòng)函數(shù)----------------------------------*/

  17. void beep (void)

  18. {   

  19. unsigned char i=30;

  20. while(i--)

  21. {

  22. speaker=~speaker;

  23. delayms(3);

  24.     }

  25. }

  26. /*----------------------------------數(shù)碼管驅(qū)動(dòng)函數(shù)----------------------------------*/

  27. void display (unsigned char hour,min)

  28. {

  29. unsigned char H1,H2,M1,M2;

  30. P3=0xf8; //數(shù)碼管位選

  31. P1 = LED[H1];     //數(shù)碼管段選

  32. delayms (2); //掃描延時(shí)

  33. P3=0xf4; //數(shù)碼管位選

  34. P1 = LED[H2];     //數(shù)碼管段選

  35. delayms (2); //掃描延時(shí)

  36. P3=0xf2; //數(shù)碼管位選

  37. P1 = LED[M1];     //數(shù)碼管段選

  38. delayms (2); //掃描延時(shí)

  39. P3=0xf1; //數(shù)碼管位選

  40. P1 = LED[M2];     //數(shù)碼管段選

  41. delayms (2); //掃描延時(shí)

  42. /*--------------------------------------分定義--------------------------------------*/

  43. M1=min/10;//取分十位

  44. min=min%10;//取余  

  45. M2=min;//取分個(gè)位

  46. /*--------------------------------------時(shí)定義--------------------------------------*/

  47. H1=hour/10;//取時(shí)十位

  48. hour=hour%10;//取余  

  49. H2=hour;//取時(shí)個(gè)位

  50. }

  51. /*-----------------------------------按鍵去抖函數(shù)-----------------------------------*/

  52. void qudou (unsigned char hour,min)

  53. {

  54. unsigned char i;

  55. for(i=0;i<25;i++){//循環(huán)顯示,等于鍵盤去抖的功能

  56. display (hour,min);

  57. }

  58. }

  59. /*--------------------------------------主函數(shù)--------------------------------------*/

  60. void main(void)

  61. {

  62. ////定時(shí)器初始設(shè)置

  63. TMOD=0x01;//定時(shí)器工作方式1

  64. TH0=0x3C;//定時(shí)器初始產(chǎn)生50ms時(shí)基信號(hào)

  65. TL0=0xB0;//定時(shí)器初始產(chǎn)生50ms時(shí)基信號(hào)

  66. ET0=1;//開定時(shí)器中斷

  67. EA=1;//開總中斷

  68. TR0=1;//啟動(dòng)定時(shí)器

  69. /*************************************************************************************/

  70. while(1)

  71. {

  72. unsigned char hour,min;//定義時(shí)分


  73. display (hour,min);//調(diào)用顯示函數(shù)


  74. if (time>59)//60秒向分進(jìn)1

  75. {

  76. time=0;

  77. min++;

  78.    }

  79. if (min>59)//60分向時(shí)進(jìn)1

  80. {

  81. min=0;

  82. hour++;

  83. beep ();

  84.     }

  85. if (hour>23)//24時(shí)時(shí)分秒清零

  86. {

  87. hour=0;

  88. min=0;

  89. time=0;

  90. }

  91. /*-----------------------------------按鍵判斷程序-----------------------------------*/

  92. if(key1==0)

  93. qudou (hour,min);

  94. if (key1==0) {hour++;}


  95. if(key2==0)

  96. qudou (hour,min);

  97. if (key2==0) {min++;}

  98. }

  99. }

  100. /*-----------------------------------中斷服務(wù)程序-----------------------------------*/

  101. void Timer0_Routine(void) interrupt 1

  102. {

  103. unsigned char a;

  104. TH0=0x3C;//定時(shí)器初始產(chǎn)生50ms時(shí)基信號(hào)

  105. TL0=0xB0;//定時(shí)器初始產(chǎn)生50ms時(shí)基信號(hào)

  106.     a++;//定時(shí)器循環(huán)計(jì)數(shù)20次為一秒

  107. if (a==20){//定時(shí)器循環(huán)計(jì)數(shù)20次為一秒

  108. a=0;//次數(shù)清零,從新循環(huán)計(jì)數(shù)

  109. time++;//秒加一

  110. }

  111. }
復(fù)制代碼




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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:78768 發(fā)表于 2015-5-3 20:28 | 只看該作者
很棒收藏一下
回復(fù)

使用道具 舉報(bào)

板凳
ID:56948 發(fā)表于 2015-5-14 08:28 來自觸屏版 | 只看該作者
謝謝分享,學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

地板
ID:99130 發(fā)表于 2016-4-24 23:18 | 只看該作者
時(shí)間慢很多,亮度不行
回復(fù)

使用道具 舉報(bào)

5#
ID:120990 發(fā)表于 2016-7-5 13:02 來自觸屏版 | 只看該作者
我問一下我是初學(xué)者怎么生成不了hex文件
回復(fù)

使用道具 舉報(bào)

6#
ID:136894 發(fā)表于 2016-9-2 20:30 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

7#
ID:166817 發(fā)表于 2017-2-27 02:01 | 只看該作者
謝謝分享,謝謝樓主。!
回復(fù)

使用道具 舉報(bào)

8#
ID:194701 發(fā)表于 2017-5-8 12:41 | 只看該作者
謝謝分享,謝謝樓主。。
回復(fù)

使用道具 舉報(bào)

9#
ID:214577 發(fā)表于 2017-6-26 18:46 | 只看該作者
請問一下有PCB圖嗎
回復(fù)

使用道具 舉報(bào)

10#
ID:214577 發(fā)表于 2017-6-26 18:47 | 只看該作者
有PCB圖嗎
回復(fù)

使用道具 舉報(bào)

11#
ID:229641 發(fā)表于 2018-1-31 23:14 來自觸屏版 | 只看該作者
看了半天電路圖也沒有找到4個(gè)100歐姆電阻放哪里了
回復(fù)

使用道具 舉報(bào)

12#
ID:164302 發(fā)表于 2018-2-8 17:31 | 只看該作者
忙了一下午的 結(jié)果,不太理想。。。。。。。。。。。!

1.jpg (170.91 KB, 下載次數(shù): 127)

1.jpg
回復(fù)

使用道具 舉報(bào)

13#
ID:249545 發(fā)表于 2018-4-18 09:32 | 只看該作者
老師的作品好厲害呀
回復(fù)

使用道具 舉報(bào)

14#
ID:266802 發(fā)表于 2018-7-1 23:15 | 只看該作者
sui13816469793 發(fā)表于 2018-2-8 17:31
忙了一下午的 結(jié)果,不太理想。。。。。。。。。。。!

有源代碼嗎,四個(gè)上拉電阻用了沒
回復(fù)

使用道具 舉報(bào)

15#
ID:248420 發(fā)表于 2018-11-10 00:34 | 只看該作者

RE: STC12C2052AD單片機(jī)控制的數(shù)碼管時(shí)鐘程序及電路圖

206004430 發(fā)表于 2018-7-1 23:15
有源代碼嗎,四個(gè)上拉電阻用了沒

做出來的結(jié)果如何  有多慢 ??也打算弄個(gè)
回復(fù)

使用道具 舉報(bào)

16#
ID:248420 發(fā)表于 2018-11-10 00:36 | 只看該作者
206004430 發(fā)表于 2018-7-1 23:15
有源代碼嗎,四個(gè)上拉電阻用了沒

哥們 效果怎么樣
回復(fù)

使用道具 舉報(bào)

17#
ID:423007 發(fā)表于 2019-3-1 01:03 | 只看該作者
能不能發(fā)一個(gè)程序文件,我自己剛?cè)腴T不太理解如何轉(zhuǎn)換文件
回復(fù)

使用道具 舉報(bào)

18#
ID:645254 發(fā)表于 2019-12-18 13:23 來自觸屏版 | 只看該作者
陳婷 發(fā)表于 2019-3-1 01:03
能不能發(fā)一個(gè)程序文件,我自己剛?cè)腴T不太理解如何轉(zhuǎn)換文件

你想要什么樣的程序文件
回復(fù)

使用道具 舉報(bào)

19#
ID:170800 發(fā)表于 2022-5-14 10:30 | 只看該作者
共陽極沒有接驅(qū)動(dòng)三極管,電流不會(huì)過大,影響單片機(jī)正常工作嗎?
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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