<p id="zbb5z"></p>
    <pre id="zbb5z"></pre>

      <pre id="zbb5z"><ruby id="zbb5z"><mark id="zbb5z"></mark></ruby></pre>
        <ruby id="zbb5z"></ruby>
        <pre id="zbb5z"></pre>
          <p id="zbb5z"><dfn id="zbb5z"></dfn></p>

            <p id="zbb5z"><mark id="zbb5z"><thead id="zbb5z"></thead></mark></p><output id="zbb5z"></output>

                <pre id="zbb5z"><del id="zbb5z"></del></pre>
                <p id="zbb5z"></p>
                <pre id="zbb5z"></pre>

                  <ruby id="zbb5z"></ruby>

                    <p id="zbb5z"><mark id="zbb5z"><th id="zbb5z"></th></mark></p>

                            <del id="zbb5z"></del><pre id="zbb5z"></pre>

                                  <pre id="zbb5z"></pre><del id="zbb5z"></del>

                                    <p id="zbb5z"><del id="zbb5z"></del></p>

                                    <pre id="zbb5z"><b id="zbb5z"></b></pre>

                                    <pre id="zbb5z"><mark id="zbb5z"></mark></pre>
                                    <output id="zbb5z"></output>

                                      <p id="zbb5z"><ruby id="zbb5z"><mark id="zbb5z"></mark></ruby></p>

                                        <pre id="zbb5z"></pre>

                                                <pre id="zbb5z"><b id="zbb5z"></b></pre>

                                                <ruby id="zbb5z"><b id="zbb5z"></b></ruby>
                                                <p id="zbb5z"></p>

                                                  <pre id="zbb5z"></pre><pre id="zbb5z"><b id="zbb5z"></b></pre>

                                                          <track id="zbb5z"><ruby id="zbb5z"></ruby></track>
                                                          <p id="zbb5z"></p>

                                                            <ruby id="zbb5z"></ruby>
                                                                    <ruby id="zbb5z"><b id="zbb5z"></b></ruby>
                                                                          <del id="zbb5z"></del>

                                                                            <p id="zbb5z"><del id="zbb5z"><thead id="zbb5z"></thead></del></p>
                                                                            <p id="zbb5z"></p>

                                                                            <p id="zbb5z"><cite id="zbb5z"></cite></p>
                                                                            <pre id="zbb5z"><ruby id="zbb5z"></ruby></pre><pre id="zbb5z"><b id="zbb5z"></b></pre>

                                                                              <del id="zbb5z"></del>

                                                                                <p id="zbb5z"></p>

                                                                                <big id="zbb5z"><ruby id="zbb5z"></ruby></big>
                                                                                <output id="zbb5z"></output>

                                                                                  <ruby id="zbb5z"><b id="zbb5z"><thead id="zbb5z"></thead></b></ruby>
                                                                                  <p id="zbb5z"><cite id="zbb5z"></cite></p>

                                                                                      <output id="zbb5z"></output>
                                                                                        <p id="zbb5z"></p>
                                                                                          <ruby id="zbb5z"><b id="zbb5z"></b></ruby>

                                                                                            <p id="zbb5z"><del id="zbb5z"><thead id="zbb5z"></thead></del></p><pre id="zbb5z"></pre>
                                                                                            <pre id="zbb5z"><del id="zbb5z"><mark id="zbb5z"></mark></del></pre>

                                                                                            <p id="zbb5z"><cite id="zbb5z"></cite></p>
                                                                                            <p id="zbb5z"></p>

                                                                                                  0
                                                                                                  收藏
                                                                                                  微博
                                                                                                  微信
                                                                                                  復制鏈接

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

                                                                                                  提問于
                                                                                                  2024-03-31 16:13

                                                                                                  ? ???STC12C2052AD單片機控制的數碼管時鐘,數碼管是共陽4位時鐘數碼管,由于使用單片機真驅,電路比較簡單,且使用的材料和工具也很簡單,用數碼管顯示,單片機控制,兩個按鍵調時,蜂鳴器整點報時。所需要的元件如下:

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



                                                                                                  ? ???源程序如下:
                                                                                                  1. #include ??//聲明頭文件

                                                                                                  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. }

                                                                                                  收藏 152 0 0
                                                                                                  亚洲精品免费看>>在线免费观看视频>>亚洲精品免费看