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

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

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

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

      2. 新聞中心

        數(shù)字鐘

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

        1.實驗任務(wù)

        (1. 開機時,顯示120000的時間開始計時;

        (2. P0.0/AD0控制“秒”的調(diào)整,每按一次加1秒;

        (3. P0.1/AD1控制“分”的調(diào)整,每按一次加1分;

        (4. P0.2/AD2控制“時”的調(diào)整,每按一次加1個小時;

        2.電路原理圖

        4.20.1

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

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

        (2. 把“系統(tǒng):區(qū)域中的P3.0P3.7端口用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的S1S8端口上;

        (3. 把“系統(tǒng)”區(qū)域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分別用導(dǎo)線連接到“獨立式鍵盤”區(qū)域中的SP3、SP2、SP1端口上;

        4.相關(guān)基本知識

        (1. 動態(tài)數(shù)碼顯示的方法

        (2. 獨立式按鍵識別過程

        (3. “時”,“分”,“秒”數(shù)據(jù)送出顯示處理方法

        5.程序框圖

        6.匯編源程序

        SECOND EQU 30H

        MINITE EQU 31H

        HOUR EQU 32H

        HOURK BIT P0.0

        MINITEK BIT P0.1

        SECONDK BIT P0.2

        DISPBUF EQU 40H

        DISPBIT EQU 48H

        T2SCNTA EQU 49H

        T2SCNTB EQU 4AH

        TEMP EQU 4BH

        ORG 00H

        LJMP START

        ORG 0BH

        LJMP INT_T0

        START: MOV SECOND,#00H

        MOV MINITE,#00H

        MOV HOUR,#12

        MOV DISPBIT,#00H

        MOV T2SCNTA,#00H

        MOV T2SCNTB,#00H

        MOV TEMP,#0FEH

        LCALL DISP

        MOV TMOD,#01H

        MOV TH0,#(65536-2000) / 256

        MOV TL0,#(65536-2000) MOD 256

        SETB TR0

        SETB ET0

        SETB EA

        WT: JB SECONDK,NK1

        LCALL DELY10MS

        JB SECONDK,NK1

        INC SECOND

        MOV A,SECOND

        CJNE A,#60,NS60

        MOV SECOND,#00H

        NS60: LCALL DISP

        JNB SECONDK,$

        NK1: JB MINITEK,NK2

        LCALL DELY10MS

        JB MINITEK,NK2

        INC MINITE

        MOV A,MINITE

        CJNE A,#60,NM60

        MOV MINITE,#00H

        NM60: LCALL DISP

        JNB MINITEK,$

        NK2: JB HOURK,NK3

        LCALL DELY10MS

        JB HOURK,NK3

        INC HOUR

        MOV A,HOUR

        CJNE A,#24,NH24

        MOV HOUR,#00H

        NH24: LCALL DISP

        JNB HOURK,$

        NK3: LJMP WT

        DELY10MS:

        MOV R6,#10

        D1: MOV R7,#248

        DJNZ R7,$

        DJNZ R6,D1

        RET

        DISP:

        MOV A,#DISPBUF

        ADD A,#8

        DEC A

        MOV R1,A

        MOV A,HOUR

        MOV B,#10

        DIV AB

        MOV @R1,A

        DEC R1

        MOV A,B

        MOV @R1,A

        DEC R1

        MOV A,#10

        MOV@R1,A

        DEC R1

        MOV A,MINITE

        MOV B,#10

        DIV AB

        MOV @R1,A

        DEC R1

        MOV A,B

        MOV @R1,A

        DEC R1

        MOV A,#10

        MOV@R1,A

        DEC R1

        MOV A,SECOND

        MOV B,#10

        DIV AB

        MOV @R1,A

        DEC R1

        MOV A,B

        MOV @R1,A

        DEC R1

        RET

        INT_T0:

        MOV TH0,#(65536-2000) / 256

        MOV TL0,#(65536-2000) MOD 256

        MOV A,#DISPBUF

        ADD A,DISPBIT

        MOV R0,A

        MOV A,@R0

        MOV DPTR,#TABLE

        MOVC A,@A+DPTR

        MOV P1,A

        MOV A,DISPBIT

        MOV DPTR,#TAB

        MOVC A,@A+DPTR

        MOV P3,A

        INC DISPBIT

        MOV A,DISPBIT

        CJNE A,#08H,KNA

        MOV DISPBIT,#00H

        KNA: INC T2SCNTA

        MOV A,T2SCNTA

        CJNE A,#100,DONE

        MOV T2SCNTA,#00H

        INC T2SCNTB

        MOV A,T2SCNTB

        CJNE A,#05H,DONE

        MOV T2SCNTB,#00H

        INC SECOND

        MOV A,SECOND

        CJNE A,#60,NEXT

        MOV SECOND,#00H

        INC MINITE

        MOV A,MINITE

        CJNE A,#60,NEXT

        MOV MINITE,#00H

        INC HOUR

        MOV A,HOUR

        CJNE A,#24,NEXT

        MOV HOUR,#00H

        NEXT: LCALL DISP

        DONE: RETI

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

        TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH

        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[]={0xfe,0xfd,0xfb,0xf7,

        0xef,0xdf,0xbf,0x7f};

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

        unsigned char dispbitcnt;

        unsigned char second;

        unsigned char minite;

        unsigned char hour;

        unsigned int tcnt;

        unsigned char mstcnt;

        unsigned char i,j;

        void main(void)

        {

        TMOD=0x02;

        TH0=0x06;

        TL0=0x06;

        TR0=1;

        ET0=1;

        EA=1;

        while(1)

        {

        if(P0_0==0)

        {

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

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

        if(P0_0==0)

        {

        second++;

        if(second==60)

        {

        second=0;

        }

        dispbuf[0]=second%10;

        dispbuf[1]=second/10;

        while(P0_0==0);

        }

        }

        if(P0_1==0)

        {

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

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

        if(P0_1==0)

        {

        minite++;

        if(minite==60)

        {

        minite=0;

        }

        dispbuf[3]=minite%10;

        dispbuf[4]=minite/10;

        while(P0_1==0);

        }

        }

        if(P0_2==0)

        {

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

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

        if(P0_2==0)

        {

        hour++;

        if(hour==24)

        {

        hour=0;

        }

        dispbuf[6]=hour%10;

        dispbuf[7]=hour/10;

        while(P0_2==0);

        }

        }

        }

        }

        void t0(void) interrupt 1 using 0

        {

        mstcnt++;

        if(mstcnt==8)

        {

        mstcnt=0;

        P1=dispcode[dispbuf[dispbitcnt]];

        P3=dispbitcode[dispbitcnt];

        dispbitcnt++;

        if(dispbitcnt==8)

        {

        dispbitcnt=0;

        }

        }

        tcnt++;

        if(tcnt==4000)

        {

        tcnt=0;

        second++;

        if(second==60)

        {

        second=0;

        minite++;

        if(minite==60)

        {

        minite=0;

        hour++;

        if(hour==24)

        {

        hour=0;

        }

        }

        }

        dispbuf[0]=second%10;

        dispbuf[1]=second/10;

        dispbuf[3]=minite%10;

        dispbuf[4]=minite/10;

        dispbuf[6]=hour%10;

        dispbuf[7]=hour/10;

        }

        }



        評論


        相關(guān)推薦

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

        關(guān)閉