您的位置:設計參考

                    設計參考

                    設計參考/Design Reference

                    AT89S51單片機計數器的設計

                    -----2019-05-06

                     1.實驗任務

                    利用AT89S51單片機的P1.0-P1.3接四個發光二極管L1-L4,用來指示當前計數的數據;用P1.4-P1.7作為預置數據的輸入端,接四個撥動開關K1-K4,用P3.6/WR和P3.7/RD端口接兩個輕觸開關,用來作加計數和減計數開關。具體的電路原理圖如下圖所示

                    2.電路原理圖

                    AT89S51單片機計數器的設計

                    圖4.12.1

                    3.系統板上硬件連線

                    (1).把“單片機系統”區域中的P1.0-P1.3端口用8芯排線連接到“八路發光二極管指示模塊”區域中的L1-L4上;要求:P1.0對應著L1,P1.1對應著L2,P1.2對應著L3,P1.3對應著L4;

                    (2).把“單片機系統”區域中的P3.0/RXD,P3.1/TXD,P3.2/INT0,P3.3/INT1用導線連接到“四路撥動開關”區域中的K1-K4上; (3).把“單片機系統”區域中的P3.6/WR,P3.7/RD用導線連接到“獨立式鍵盤”區域中的SP1和SP2上;

                    4.程序設計內容

                    (1).兩個獨立式按鍵識別的處理過程;

                    (2).預置初值讀取的問題

                    (3).LED輸出指示

                    5.程序框圖

                    圖4.12.2

                    6.匯編源程序

                    COUNT EQU 30H

                    ORG 00H

                    START: MOV A,P3

                    ANL A,#0FH

                    MOV COUNT,A

                    MOV P1,A

                    SK2: JB P3.6,SK1

                    LCALL DELY10MS

                    JB P3.6,SK1

                    INC COUNT

                    MOV A,COUNT

                    CJNE A,#16,NEXT

                    MOV A,P3

                    ANL A,#0FH

                    MOV COUNT,A

                    NEXT: MOV P1,A

                    WAIT: JNB P3.6,WAIT

                    LJMP SK2

                    SK1: JB P3.7,SK2

                    LCALL DELY10MS

                    JB P3.7,SK2

                    DEC COUNT

                    MOV A,COUNT

                    CJNE A,#0FFH,NEX

                    MOV A,P3

                    ANL A,#0FH

                    MOV COUNT,A

                    NEX: MOV P1,A

                    WAIT2: JNB P3.7,WAIT2

                    LJMP SK2

                    DELY10MS: MOV R6,#20

                    MOV R7,#248

                    D1: DJNZ R7,$

                    DJNZ R6,D1

                    RET

                    END

                    7.C語言源程序

                    #include

                    unsigned char curcount;

                    void delay10ms(void)

                    {

                    unsigned char i,j;

                    for(i=20;i》0;i--)

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

                    }

                    void main(void)

                    {

                    curcount=P3 & 0x0f;

                    P1=~curcount;

                    while(1)

                    {

                    if(P3_6==0)

                    {

                    delay10ms();

                    if(P3_6==0)

                    {

                    if(curcount》=15)

                    {

                    curcount=15;

                    }

                    else

                    {

                    curcount++;

                    }

                    P1=~curcount;

                    while(P3_6==0);

                    }

                    }

                    if(P3_7==0)

                    {

                    delay10ms();

                    if(P3_7==0)

                    {

                    if(curcount《=0)

                    {

                    curcount=0;

                    }

                    else

                    {

                    curcount--;

                    }

                    P1=~curcount;

                    while(P3_7==0);

                    }

                    }

                    }

                    }

                    [返回]
                    欧美精品v在线视频,色拍日本欧洲亚洲另类图片,大香伊蕉在人线99国产图片,日本高清在线中字视频,2020正在播放久久久久久|国产性天天综合