Hiện em đang làm chương trình yêu cầu như sau :
-- Đếm từ 0 đến 9 điều kiện mỗi lần ấn nút nhảy tiến 1 số " Ví dụ 1>>2 >>3 " đến 9 thì không tăng thêm được nữa
--- Đếm từ 9 về 0 điều kiện mỗi lần ấn nút nhảy lùi 1 số " 9>>>8<<7 " đến 0 thì không giảm thêm nữa
$include(reg51.inc)
org 0000h
KT:
JB P3.4,KT2
KT1:
JNB P3.4,KT1
CALL MAIN
KT2:
JB P3.5,KT
KT3:
JNB P3.5,KT3
CALL MAIN1
MAIN:
MOV R1,#00H
LAP:
MOV A,R1
MOV DPTR,#BM
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
INC R1
CJNE R1,#0AH,LAP
SJMP KT
MAIN1:
MOV R2,#0AH
LAP1:
MOV A,R2
MOV DPTR,#BM
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
DEC R2
CJNE R2,#0FFH,LAP1
SJMP KT2
DELAY:
MOV R5,#04H
LOOP1:
MOV R6,#50
LOOP2:
CALL DELAYMS
DJNZ R6,LOOP2
DJNZ R5,LOOP1
DELAYMS:
MOV R7,#250
LOOP:
DEC R7
MOV A,R7
CJNE A,#0,LOOP
RET
BM : DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END
-- Đếm từ 0 đến 9 điều kiện mỗi lần ấn nút nhảy tiến 1 số " Ví dụ 1>>2 >>3 " đến 9 thì không tăng thêm được nữa
--- Đếm từ 9 về 0 điều kiện mỗi lần ấn nút nhảy lùi 1 số " 9>>>8<<7 " đến 0 thì không giảm thêm nữa
$include(reg51.inc)
org 0000h
KT:
JB P3.4,KT2
KT1:
JNB P3.4,KT1
CALL MAIN
KT2:
JB P3.5,KT
KT3:
JNB P3.5,KT3
CALL MAIN1
MAIN:
MOV R1,#00H
LAP:
MOV A,R1
MOV DPTR,#BM
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
INC R1
CJNE R1,#0AH,LAP
SJMP KT
MAIN1:
MOV R2,#0AH
LAP1:
MOV A,R2
MOV DPTR,#BM
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
DEC R2
CJNE R2,#0FFH,LAP1
SJMP KT2
DELAY:
MOV R5,#04H
LOOP1:
MOV R6,#50
LOOP2:
CALL DELAYMS
DJNZ R6,LOOP2
DJNZ R5,LOOP1
DELAYMS:
MOV R7,#250
LOOP:
DEC R7
MOV A,R7
CJNE A,#0,LOOP
RET
BM : DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END
Comment