新聞中心

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

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

        作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
        1.實(shí)驗(yàn)任務(wù)
        如圖13所示,利用AT89S51單片機(jī)的P0端口的P0.0-P0.7連接到一個(gè)共陰數(shù)碼管的a-h(huán)的筆段上,數(shù)碼管的公共端接地。在數(shù)碼管上循環(huán)顯示0-9數(shù)字,時(shí)間間隔0.2秒。
        2.電路原理

        圖4.7.1
        3.系統(tǒng)板上硬件連線
        把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0-P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)數(shù)碼管的a-h(huán)端口上;要求:P0.0/AD0與a相連,P0.1/AD1與b相連,P0.2/AD2與c相連,……,P0.7/AD7與h相連。
        4.程序設(shè)計(jì)內(nèi)容
        (1.LED數(shù)碼顯示原理
        七段LED顯示器內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的極管的接線形式,可分成共陰極型和共陽極型。
        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ù)字0-9的字形碼沒有規(guī)律可循,只能采用查表的方式來完成我們所需的要求了。這樣我們按著數(shù)字0-9的順序,把每個(gè)數(shù)字的筆段代碼按順序排好!建立的表格如下所示:TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
        5.程序框圖
















        圖4.7.2
        6.匯編源程序
        ORG0
        START:MOVR1,#00H
        NEXT:MOVA,R1
        MOVDPTR,#TABLE
        MOVCA,@A+DPTR
        MOVP0,A
        LCALLDELAY
        INCR1
        CJNER1,#10,NEXT
        LJMPSTART
        DELAY:MOVR5,#20
        D2:MOVR6,#20
        D1:MOVR7,#248
        DJNZR7,$
        DJNZR6,D1
        DJNZR5,D2
        RET
        TABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
        END
        7.C語言源程序
        #include
        unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,
        0x6d,0x7d,0x07,0x7f,0x6f};
        unsignedchardispcount;

        voiddelay02s(void)
        {
        unsignedchari,j,k;
        for(i=20;i>0;i--)
        for(j=20;j>0;j--)
        for(k=248;k>0;k--);
        }

        voidmain(void)
        {
        while(1)
        {
        for(dispcount=0;dispcount<10;dispcount++)
        {
        P0=table[dispcount];
        delay02s();
        }
        }
        }


        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 南陵县| 宜州市| 秦皇岛市| 湖口县| 宁南县| 抚宁县| 珲春市| 治多县| 嘉兴市| 垫江县| 海安县| 阳朔县| 林芝县| 孟津县| 银川市| 宜兰县| 微博| 英吉沙县| 淮滨县| 崇文区| 太仓市| 柯坪县| 靖远县| 临泉县| 竹山县| 黑山县| 柘城县| 得荣县| 静乐县| 平江县| 清徐县| 望江县| 竹北市| 平泉县| 方城县| 瑞金市| 南阳市| 资阳市| 白河县| 咸阳市| 松滋市|