新聞中心

        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();
        }
        }
        }


        評論


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

        關(guān)閉
        主站蜘蛛池模板: 宜兴市| 宁夏| 桃园市| 红河县| 新宁县| 遵化市| 新民市| 鄂州市| 乐山市| 洱源县| 开平市| 滨州市| 新绛县| 辽宁省| 县级市| 临颍县| 霍林郭勒市| 东宁县| 根河市| 甘泉县| 江西省| 高陵县| 德化县| 盈江县| 抚宁县| 克山县| 昆明市| 临潭县| 德化县| 开封县| 怀化市| 县级市| 昆明市| 石阡县| 项城市| 平阳县| 扶余县| 轮台县| 门源| 平凉市| 泸溪县|