在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            數(shù)字鐘

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

            1.實驗任務

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

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

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

            (4. P0.2/AD2控制“時”的調整,每按一次加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/AD1P0.2/AD2端口分別用導線連接到“獨立式鍵盤”區(qū)域中的SP3、SP2、SP1端口上;

            4.相關基本知識

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

            }

            }



            評論


            相關推薦

            技術專區(qū)

            關閉