中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 拉幕式數(shù)碼顯示技術(shù)

        拉幕式數(shù)碼顯示技術(shù)

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

        1. 實驗任務(wù)

        AT89S51P0.0/AD0P0.7/AD7端口接數(shù)碼管的ah端,8位數(shù)碼管的S1S8通過74LS138譯碼器的Y0Y7來控制選通每個數(shù)碼管的位選端。AT89S51P1.0P1.2控制74LS138A,B,C端子。在8位數(shù)碼管上從右向左循環(huán)顯示“12345678”。能夠比較平滑地看到拉幕的效果。

        2.電路原理圖

        4.21.1

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

        (1. 把“系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD78芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的ah端口上;

        (2. 把“三八譯碼模塊”區(qū)域中的Y0Y78芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的S1S8端口上;

        (3. 把“單片機系統(tǒng)”區(qū)域中的P1.0P1.2端口用3根導(dǎo)線連接到“三八譯碼模塊”區(qū)域中的A、B、C“端口上;

        4.程序設(shè)計方法

        (1. 動態(tài)數(shù)碼顯示技術(shù);如何進行動態(tài)掃描,由于一次只能讓一個數(shù)碼管顯示,因此,要顯示8位的數(shù)據(jù),必須經(jīng)過讓數(shù)碼管一個一個輪流顯示才可以,同時每個數(shù)碼管顯示的時間大約在1ms4ms之間,所以為了保證正確顯示,我必須每隔1ms,就得刷新一個數(shù)碼管。而這刷新時間我們采用單片機的定時/計數(shù)器T0來控制,每定時1ms對數(shù)碼管刷新一次,T0采用方式2

        (2. 在進行數(shù)碼顯示的時候,要對顯示單元開辟8個顯示緩沖區(qū),每個顯示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。

        5.程序框圖

        主程序框圖


        中斷服務(wù)程序

        6.匯編源程序

        DISPBUF EQU 30H

        DISPCNT EQU 38H

        DISPBIT EQU 39H

        T1CNTA EQU 3AH

        T1CNTB EQU 3BH

        CNT EQU 3CH

        ORG 00H

        LJMP START

        ORG 0BH

        LJMP INT_T0

        START: MOV DISPCNT,#8

        MOV A,#10

        MOV R1,#DISPBUF

        LP: MOV @R1,A

        INC R1

        DJNZ DISPCNT,LP

        MOV DISPBIT,#00H

        MOV T1CNTA,#00H

        MOV T1CNTB,#00H

        MOV CNT,#00H

        MOV TMOD,#01H

        MOV TH0,#(65536-1000) / 256

        MOV TL0,#(65536-1000) MOD 256

        SETB TR0

        SETB ET0

        SETB EA

        SJMP $

        INT_T0:

        MOV TH0,#(65536-1000) / 256

        MOV TL0,#(65536-1000) MOD 256

        MOV A,DISPBIT

        ADD A,#DISPBUF

        MOV R0,A

        MOV A,@R0

        MOV DPTR,#TABLE

        MOVC A,@A+DPTR

        MOV P0,A

        MOV A,P1

        ANL A,#0F8H

        ADD A,DISPBIT

        MOV P1,A

        INC DISPBIT

        MOV A,DISPBIT

        CJNE A,#08H,NEXT

        MOV DISPBIT,#00H

        NEXT: INC T1CNTA

        MOV A,T1CNTA

        CJNE A,#50,LL1

        MOV T1CNTA,#00H

        INC T1CNTB

        MOV A,T1CNTB

        CJNE A,#8,LL1

        MOV T1CNTB,#00H

        INC CNT

        MOV A,CNT

        CJNE A,#9,LLX

        MOV CNT,#00H

        MOV A,CNT

        LLX: CJNE A,#01H,NEX1

        MOV 30H,#8

        LL1: LJMP DONE

        NEX1: CJNE A,#02H,NEX2

        MOV 31H,#8

        MOV 30H,#8

        LJMP DONE

        NEX2: CJNE A,#03H,NEX3

        MOV 32H,#8

        MOV 31H,#8

        MOV 30H,#8

        LJMP DONE

        NEX3: CJNE A,#04H,NEX4

        MOV 33H,#8

        MOV 32H,#8

        MOV 31H,#8

        MOV 30H,#8

        LJMP DONE

        NEX4: CJNE A,#05H,NEX5

        MOV 34H,#8

        MOV 33H,#8

        MOV 32H,#8

        MOV 31H,#8

        MOV 30H,#8

        LJMP DONE

        NEX5: CJNE A,#06H,NEX6

        MOV 35H,#8

        MOV 34H,#8

        MOV 33H,#8

        MOV 32H,#8

        MOV 31H,#8

        MOV 30H,#8

        LJMP DONE

        NEX6: CJNE A,#07H,NEX7

        MOV 36H,#8

        MOV 35H,#8

        MOV 34H,#8

        MOV 33H,#8

        MOV 32H,#8

        MOV 31H,#8

        MOV 30H,#8

        LJMP DONE

        NEX7: CJNE A,#08H,NEX8

        MOV 37H,#8

        MOV 36H,#8

        MOV 35H,#8

        MOV 34H,#8

        MOV 33H,#8

        MOV 32H,#8

        MOV 31H,#8

        MOV 30H,#8

        LJMP DONE

        NEX8: CJNE A,#00H,DONE

        MOV 37H,#10

        MOV 36H,#10

        MOV 35H,#10

        MOV 34H,#10

        MOV 33H,#10

        MOV 32H,#10

        MOV 31H,#10

        MOV 30H,#10

        LL: LJMP DONE

        DONE: RETI

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

        END

        7.C語言源程序

        #include AT89X51.H>

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

        0x66,0x6d,0x7d,0x07,

        0x7f,0x6f,0x77,0x7c,

        0x39,0x5e,0x79,0x71,0x00};

        unsigned char dispbitcode[]={0xf8,0xf9,0xfa,0xfb,

        0xfc,0xfd,0xfe,0xff};

        unsigned char dispbuf[8]={16,16,16,16,16,16,16,16};

        unsigned char dispbitcnt;

        unsigned int t02scnt;

        unsigned char t5mscnt;

        unsigned char u;

        unsigned char i;

        void main(void)

        {

        TMOD=0x02;

        TH0=0x06;

        TL0=0x06;

        TR0=1;

        ET0=1;

        EA=1;

        while(1);

        }

        void t0(void) interrupt 1 using 0

        {

        t5mscnt++;

        if(t5mscnt==4)

        {

        t5mscnt=0;

        P0=dispcode[dispbuf[dispbitcnt]];

        P1=dispbitcode[dispbitcnt];

        dispbitcnt++;

        if(dispbitcnt==8)

        {

        dispbitcnt=0;

        }

        }

        t02scnt++;

        if(t02scnt==1600)

        {

        t02scnt=0;

        u++;

        if(u==9)

        {

        u=0;

        }

        for(i=0;i8;i++)

        {

        dispbuf[i]=16;

        }

        for(i=0;iu;i++)

        {

        dispbuf[i]=8;

        }

        }

        }



        評論


        相關(guān)推薦

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

        關(guān)閉