<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        單片機定時器0實現信號交通燈程序

        作者:寒竹子   來源:本站原創   點擊數:  更新時間:2014年03月23日   【字體:

        本程序所用的原理圖下載: 點這里 ,單片機芯片使用的stc89c52

        /*
        *功能:定時器0實現信號交通燈

        *日期:2013-05-07-08:41
        *作者:徐冉
        *特別說明:本程序代碼已經通過調試,僅供學習使用;
        *
        */
        /***********AT89C52-RC 單片機實驗板***********/
        /*****************51hei-開發板*********************/
        #include <reg52.h>
        typedef unsigned int uint;
        typedef unsigned char uchar;
        sbit LED_hong = P1^0;//紅信號燈
        sbit LED_lv = P1^2; //綠信號燈
        sbit wela = P2^7;
        sbit dula = P2^6;
        uchar code table[] = {      
            0x3F,  //"0"
                        0x06,  //"1"
                        0x5B,  //"2"
                        0x4F,  //"3"
                        0x66,  //"4"
                        0x6D,  //"5"
                        0x7D,  //"6"
                        0x07,  //"7"
                        0x7F,  //"8"
                        0x6F,  //"9"
                        0x77,  //"A"
                        0x7C,  //"B"
                        0x39,  //"C"
                        0x5E,  //"D"
                        0x79,  //"E"
                        0x71,  //"F"
                        0x76,  //"H"
                        0x38,  //"L"
                        0x37,  //"n"
                        0x3E,  //"u"
                        0x73,  //"P"
                        0x5C,  //"o"
                        0x40,  //"-"
                        0x00,  //熄滅
                        0x00  //自定義
         };
        uchar num = 30, counter;
        void init();
        void display(uint num);
        void delay(uint xms);
        void  main()
        {
         init();
         while(1)
         {
          if(counter == 50)
          {
           counter = 0;
           num--;
           if(num == 0)
           { 
            num = 30;
            LED_hong = ~LED_hong;
            LED_lv = ~LED_lv;
           }
            }
           display(num); 
          }
        }


        void init()
        {
         LED_hong = 0;
         LED_lv = 1;
         TMOD = 0x01;
         TH0 = 0xB8;
         TL0 = 0x00;
         TR0 = 1;
         EA = 1;
         ET0 = 1;


        }


        void display(uint num)
        {
         uchar shi, ge;


         shi = num / 10 % 10;
         ge = num % 10;


         dula = 1;
         P0 = table[shi];
         dula = 0;
         P0 = 0xff;
         wela = 1;
         P0 = 0xfe;
         wela = 0;
         P0 = 0x00;
         delay(1);


            dula = 1;
         P0 = table[ge];
         dula = 0;
         P0 = 0xff;
         wela = 1;
         P0 = 0xfd;
         wela = 0;
         P0 = 0x00;
         delay(1);
        }


        void delay(uint xms)
        {
         uint i, j;
         for(i = xms; i > 0; i--)
          for(j = 125; j > 0; j--);
        }


        void int_time0() interrupt  1
        {
          TH0 = 0xB8;
          TL0 = 0x00;
          counter++;
         
        }

         

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮