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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 27807|回復: 18
收起左側

STC12C2052AD單片機控制的數碼管時鐘程序及電路圖

  [復制鏈接]
ID:76686 發表于 2015-4-11 20:01 | 顯示全部樓層 |閱讀模式
     STC12C2052AD單片機控制的數碼管時鐘,數碼管是共陽4位時鐘數碼管,由于使用單片機真驅,電路比較簡單,且使用的材料和工具也很簡單,用數碼管顯示,單片機控制,兩個按鍵調時,蜂鳴器整點報時。所需要的元件如下:

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



     源程序如下:
  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};//數碼管段位碼定義

  8. unsigned int time; //全局秒基準定義

  9. /*-------------------------------------延時函數-------------------------------------*/

  10. void delayms (unsigned int a){

  11. unsigned int i;

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

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

  14. }

  15. }

  16. /*----------------------------------蜂鳴器驅動函數----------------------------------*/

  17. void beep (void)

  18. {   

  19. unsigned char i=30;

  20. while(i--)

  21. {

  22. speaker=~speaker;

  23. delayms(3);

  24.     }

  25. }

  26. /*----------------------------------數碼管驅動函數----------------------------------*/

  27. void display (unsigned char hour,min)

  28. {

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

  30. P3=0xf8; //數碼管位選

  31. P1 = LED[H1];     //數碼管段選

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

  33. P3=0xf4; //數碼管位選

  34. P1 = LED[H2];     //數碼管段選

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

  36. P3=0xf2; //數碼管位選

  37. P1 = LED[M1];     //數碼管段選

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

  39. P3=0xf1; //數碼管位選

  40. P1 = LED[M2];     //數碼管段選

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

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

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

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

  45. M2=min;//取分個位

  46. /*--------------------------------------時定義--------------------------------------*/

  47. H1=hour/10;//取時十位

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

  49. H2=hour;//取時個位

  50. }

  51. /*-----------------------------------按鍵去抖函數-----------------------------------*/

  52. void qudou (unsigned char hour,min)

  53. {

  54. unsigned char i;

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

  56. display (hour,min);

  57. }

  58. }

  59. /*--------------------------------------主函數--------------------------------------*/

  60. void main(void)

  61. {

  62. ////定時器初始設置

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

  64. TH0=0x3C;//定時器初始產生50ms時基信號

  65. TL0=0xB0;//定時器初始產生50ms時基信號

  66. ET0=1;//開定時器中斷

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

  68. TR0=1;//啟動定時器

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

  70. while(1)

  71. {

  72. unsigned char hour,min;//定義時分


  73. display (hour,min);//調用顯示函數


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

  75. {

  76. time=0;

  77. min++;

  78.    }

  79. if (min>59)//60分向時進1

  80. {

  81. min=0;

  82. hour++;

  83. beep ();

  84.     }

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

  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. /*-----------------------------------中斷服務程序-----------------------------------*/

  101. void Timer0_Routine(void) interrupt 1

  102. {

  103. unsigned char a;

  104. TH0=0x3C;//定時器初始產生50ms時基信號

  105. TL0=0xB0;//定時器初始產生50ms時基信號

  106.     a++;//定時器循環計數20次為一秒

  107. if (a==20){//定時器循環計數20次為一秒

  108. a=0;//次數清零,從新循環計數

  109. time++;//秒加一

  110. }

  111. }
復制代碼




回復

使用道具 舉報

ID:78768 發表于 2015-5-3 20:28 | 顯示全部樓層
很棒收藏一下
回復

使用道具 舉報

ID:56948 發表于 2015-5-14 08:28 來自手機 | 顯示全部樓層
謝謝分享,學習了
回復

使用道具 舉報

ID:99130 發表于 2016-4-24 23:18 | 顯示全部樓層
時間慢很多,亮度不行
回復

使用道具 舉報

ID:120990 發表于 2016-7-5 13:02 來自手機 | 顯示全部樓層
我問一下我是初學者怎么生成不了hex文件
回復

使用道具 舉報

ID:136894 發表于 2016-9-2 20:30 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:166817 發表于 2017-2-27 02:01 | 顯示全部樓層
謝謝分享,謝謝樓主。!
回復

使用道具 舉報

ID:194701 發表于 2017-5-8 12:41 | 顯示全部樓層
謝謝分享,謝謝樓主。。
回復

使用道具 舉報

ID:214577 發表于 2017-6-26 18:46 | 顯示全部樓層
請問一下有PCB圖嗎
回復

使用道具 舉報

ID:214577 發表于 2017-6-26 18:47 | 顯示全部樓層
有PCB圖嗎
回復

使用道具 舉報

ID:229641 發表于 2018-1-31 23:14 來自手機 | 顯示全部樓層
看了半天電路圖也沒有找到4個100歐姆電阻放哪里了
回復

使用道具 舉報

ID:164302 發表于 2018-2-8 17:31 | 顯示全部樓層
忙了一下午的 結果,不太理想。。。。。。。。。。。!
1.jpg
回復

使用道具 舉報

ID:249545 發表于 2018-4-18 09:32 | 顯示全部樓層
老師的作品好厲害呀
回復

使用道具 舉報

ID:266802 發表于 2018-7-1 23:15 | 顯示全部樓層
sui13816469793 發表于 2018-2-8 17:31
忙了一下午的 結果,不太理想。。。。。。。。。。。!

有源代碼嗎,四個上拉電阻用了沒
回復

使用道具 舉報

ID:248420 發表于 2018-11-10 00:34 | 顯示全部樓層

RE: STC12C2052AD單片機控制的數碼管時鐘程序及電路圖

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

做出來的結果如何  有多慢 ??也打算弄個
回復

使用道具 舉報

ID:248420 發表于 2018-11-10 00:36 | 顯示全部樓層
206004430 發表于 2018-7-1 23:15
有源代碼嗎,四個上拉電阻用了沒

哥們 效果怎么樣
回復

使用道具 舉報

ID:423007 發表于 2019-3-1 01:03 | 顯示全部樓層
能不能發一個程序文件,我自己剛入門不太理解如何轉換文件
回復

使用道具 舉報

ID:645254 發表于 2019-12-18 13:23 來自手機 | 顯示全部樓層
陳婷 發表于 2019-3-1 01:03
能不能發一個程序文件,我自己剛入門不太理解如何轉換文件

你想要什么樣的程序文件
回復

使用道具 舉報

ID:170800 發表于 2022-5-14 10:30 | 顯示全部樓層
共陽極沒有接驅動三極管,電流不會過大,影響單片機正常工作嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩一区二区三区 | 欧美精品一区二区三区在线播放 | 日韩欧美亚洲综合 | 日韩成人在线视频 | 黄色在线免费网站 | 91欧美精品成人综合在线观看 | 精品视频一区二区 | 888久久久 | 一级欧美一级日韩片 | 国产一区二区久久 | www.蜜桃av| 精品亚洲一区二区 | 久久伊人亚洲 | 成人在线中文字幕 | 成人国产a | 国产 欧美 日韩 一区 | 一区二区三区播放 | 玖草资源 | 久久99深爱久久99精品 | 久久www免费人成看片高清 | 日本三级播放 | av网站在线播放 | 黄 色 毛片免费 | 中文字幕视频网 | 精品三区 | 久久精品一 | 精品一区二区久久久久久久网站 | 永久免费在线观看 | 亚洲天堂中文字幕 | 国产视频福利在线观看 | 亚洲国产激情 | 91精产国品一二三区 | 中文字幕影院 | 亚洲国产视频一区 | 在线视频一区二区三区 | 日韩成人在线电影 | 日韩精品欧美精品 | 国产精品久久久久久久久久久久 | 视频一区二区国产 | 欧美精品一区三区 | 日韩一区二区三区视频在线观看 |