新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > I/O并行口直接驅(qū)動(dòng)LED顯示

        I/O并行口直接驅(qū)動(dòng)LED顯示

        作者: 時(shí)間:2011-02-27 來(lái)源:網(wǎng)絡(luò) 收藏

        1. 實(shí)驗(yàn)任務(wù)

        如圖13所示,利用AT89S51P0端口的P0.0P0.7連接到一個(gè)共陰數(shù)碼管的ah的筆段上,數(shù)碼管的公共端接地。在數(shù)碼管上循環(huán)顯示09數(shù)字,時(shí)間間隔0.2秒。

        2. 電路原理圖

        4.7.1

        3. 系統(tǒng)板上硬件連線

        把“系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)數(shù)碼管的ah端口上;要求:P0.0/AD0a相連,P0.1/AD1b相連,P0.2/AD2c相連,……P0.7/AD7h相連。

        4. 程序設(shè)計(jì)內(nèi)容

        (1. LED數(shù)碼顯示原理

        七段LED顯示器內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的極管的接線形式,可分成共陰極型和共陽(yáng)極型。

        LED數(shù)碼管的g~a七個(gè)發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不以發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼,下面給出共陰極的字形碼見表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. 由于顯示的數(shù)字09的字形碼沒有規(guī)律可循,只能采用查表的方式來(lái)完成我們所需的要求了。這樣我們按著數(shù)字09的順序,把每個(gè)數(shù)字的筆段代碼按順序排好!建立的表格如下所示:TABLE DB 3FH06H5BH4FH66H6DH7DH07H7FH6FH

        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語(yǔ)言源程序

        #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;dispcount10;dispcount++)

        {

        P0=table[dispcount];

        delay02s();

        }

        }

        }



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 大埔区| 思茅市| 云安县| 谷城县| 文登市| 通渭县| 闽清县| 富平县| 治县。| 永宁县| 集贤县| 苏州市| 蓬溪县| 遂宁市| 罗定市| 什邡市| 富裕县| 繁峙县| 岱山县| 平南县| 雅安市| 綦江县| 宁远县| 孝感市| 龙岩市| 湖州市| 东乡县| 兴国县| 阜宁县| 镇坪县| 北碚区| 潞城市| 马关县| 含山县| 黄平县| 和静县| 云霄县| 荆州市| 平塘县| 乌兰察布市| 永宁县|