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

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

        單片機IO并行口直接驅動LED顯示技術

        作者:89s51   來源:不詳   點擊數:  更新時間:2007年05月18日   【字體:

        1.     實驗任務

        如圖13所示,利用AT89S51單片機的P0端口的P0.0-P0.7連接到一個共陰數碼管的a-h的筆段上,數碼管的公共端接地。在數碼管上循環顯示0-9數字,時間間隔0.2秒。

         

         

        2.     電路原理圖

        圖4.7.1

        3.     系統板上硬件連線

        把“單片機系統”區域中的P0.0/AD0-P0.7/AD7端口用8芯排線連接到“四路靜態數碼顯示模塊”區域中的任一個數碼管的a-h端口上;要求:P0.0/AD0與a相連,P0.1/AD1與b相連,P0.2/AD2與c相連,……,P0.7/AD7與h相連。

        4.     程序設計內容

        (1.       LED數碼顯示原理

        七段LED顯示器內部由七個條形發光二極管和一個小圓點發光二極管組成,根據各管的極管的接線形式,可分成共陰極型和共陽極型。

        LED數碼管的g~a七個發光二極管因加正電壓而發亮,因加零電壓而不以發亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼,下面給出共陰極的字形碼見表2

        “0”

        3FH

         

        “8”

        7FH

         

        “1”

        06H

         

        “9”

        6FH

         

        “2”

        5BH

         

        “A”

        77H

         

        “3”

        4FH

         

        “b”

        7CH

         

        “4”

        66H

         

        “C”

        39H

         

        “5”

        6DH

         

        “d”

        5EH

         

        “6”

        7DH

         

        “E”

        79H

         

        “7”

        07H

         

        “F”

        71H

         

        (2.       由于顯示的數字0-9的字形碼沒有規律可循,只能采用查表的方式來完成我們所需的要求了。這樣我們按著數字0-9的順序,把每個數字的筆段代碼按順序排好!建立的表格如下所示:TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

        5.程序框圖

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

        圖4.7.2

        6.匯編源程序

                                    ORG 0

        START:               MOV R1,#00H

        NEXT:                MOV A,R1

                                    MOV DPTR,#TABLE

                                    MOVC A,@A+DPTR

                                    MOV P0,A

                                    LCALL DELAY

                                    INC R1

                                    CJNE R1,#10,NEXT

                                    LJMP START

        DELAY:              MOV R5,#20

        D2:                      MOV R6,#20

        D1:                      MOV R7,#248

                                    DJNZ R7,$

                                    DJNZ R6,D1

                                    DJNZ R5,D2

                                    RET

        TABLE:              DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

                                    END

        7. C語言源程序

        #include <AT89X51.H>

        unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,

                                    0x6d,0x7d,0x07,0x7f,0x6f};

        unsigned char dispcount;

         

        void delay02s(void)

        {

          unsigned char i,j,k;

          for(i=20;i>0;i--)

          for(j=20;j>0;j--)

          for(k=248;k>0;k--);

        }

         

        void main(void)

        {

          while(1)

            {

              for(dispcount=0;dispcount<10;dispcount++)

                {

                  P0=table[dispcount];

                  delay02s();

                }

            }

        }  

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