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

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

        Arduino學習筆記:倒計時讀數器

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月30日   【字體:

        本次實驗制作一個倒計時讀數器。

        1.一位共陰數碼管,限流電阻,短跳線9根(各色),長跳線黑1根。

        2.實物連接時,從Arduino根的digital口2至口9用各色短跳線接至共陰數碼管的a\b\c\d\e\f\g針腳,從Arduino的power口GND接出黑色長跳線至共陰數碼管的com針腳。

        3.連接圖如下,

         

         

        4.讀共陰數碼管的a\b\c\d\e\f\g針腳,使之點亮的原理說明:

        共陰數碼管的com腳接GND,當其它各針腳接入高電平時,該字段點亮。

            如:點亮a段,  a=1,b=0,c=0,d=0,e=0,f=0,g=0,h=0

            如:顯示數字8,a=1,b=1,c=1,d=1,e=1,f=1,g=1,h=0

            如:顯示數字5,a=1,b=0,c=1,d=1,e=0,f=1,g=1,h=0

        整理出數字0-9的顯示字段,形成一張二維數組表:

                a

        0- 0, 0, 1, 1, 1, 1, 1, 1

        1- 0, 0, 0, 0, 0, 1, 1, 0
        2- 0, 1, 0, 1, 1, 0, 1, 1
        3- 0, 1, 0, 0, 1, 1, 1, 1
        4- 0, 1, 1, 0, 0, 1, 1, 0
        5- 0, 1, 1, 0, 1, 1, 0, 1
        6- 0, 1, 1, 1, 1, 1, 0, 1
        7- 0, 0, 0, 0, 0, 1, 1, 1
        8- 0, 1, 1, 1, 1, 1, 1, 1
        9- 0, 1, 1, 0, 1, 1, 1, 1

         

        5.代碼

        -----------------------------------------

        #include

        //IO命名

        #define SEG_a 2    

        #define SEG_b 3
        #define SEG_c 4
        #define SEG_d 5
        #define SEG_e 6
        #define SEG_f 7
        #define SEG_g 8
        #define SEG_h 9

        unsigned char table[10][8] =
        {
         {0, 0, 1, 1, 1, 1, 1, 1},   //0
         {0, 0, 0, 0, 0, 1, 1, 0},   //1
         {0, 1, 0, 1, 1, 0, 1, 1},   //2
         {0, 1, 0, 0, 1, 1, 1, 1},   //3
         {0, 1, 1, 0, 0, 1, 1, 0},   //4
         {0, 1, 1, 0, 1, 1, 0, 1},   //5
         {0, 1, 1, 1, 1, 1, 0, 1},   //6
         {0, 0, 0, 0, 0, 1, 1, 1},   //7
         {0, 1, 1, 1, 1, 1, 1, 1},   //8
         {0, 1, 1, 0, 1, 1, 1, 1}   //9
        };

        void setup()
        {
         pinMode(SEG_a,OUTPUT);    //設置引腳為輸出
         pinMode(SEG_b,OUTPUT);
         pinMode(SEG_c,OUTPUT);
         pinMode(SEG_d,OUTPUT);
         pinMode(SEG_e,OUTPUT);
         pinMode(SEG_f,OUTPUT);
         pinMode(SEG_g,OUTPUT);
         pinMode(SEG_h,OUTPUT);
        }

        void loop()
        {
         unsigned char i;

         for( i = 10 ; i > 0 ; i--)    //循環顯示0-9
         {
          digitalWrite(SEG_a,table[i-1][7]); //設置a引腳的電平
          digitalWrite(SEG_b,table[i-1][6]);
          digitalWrite(SEG_c,table[i-1][5]);
          digitalWrite(SEG_d,table[i-1][4]);
          digitalWrite(SEG_e,table[i-1][3]);
          digitalWrite(SEG_f,table[i-1][2]);
          digitalWrite(SEG_g,table[i-1][1]);
          digitalWrite(SEG_h,table[i-1][0]);

          delay(1000);      //延遲1s
         }
        }

        ------------------------------------------

        二維數組表從table[0][0]開始存儲內容,至table[9][7]結束。為防止循環變量在執行過程中i--,變為負數,影響下一輪的loop,因此在讀二維數組表時用i-1小技巧。

         

        6.實驗視頻,如下:

         

        7.改進讀數器

         

        關閉窗口

        相關文章

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