Chào các bạn, mình đang tự học lập trình ASM cho 8051, nên mong được giúp đỡ, bài toán của mình như sau:
khi p1.5=1 thì led sáng dần từ p1.0 đến p1.4 và từ p2.0 đến p2.4 và chân p2.5 nhấp nháy
khi p1.6=1 thì led sáng dần từ p1.0 đến p1.4 và từ p2.0 đến p2.4 (với tốc độ khác trên) và chân p2.5, p2.6 nhấp nháy
khi p1.7=1 thì led sáng dần từ p1.0 đến p1.4 và từ p2.0 đến p2.4 (với tốc độ khác trên) và chân p2.5, p2.6 nhấp nháy
mình gửi kèm file lập trình và mô phỏng proteus 8.1 nhờ các bạn giúp đỡ
ORG 0000
MAIN:
KEY1:
JNB P1.5,$
LCALL CT1
LCALL CT11
CALL NHAY1
JMP KEY1
KEY2:
JNB P1.6,$
LCALL CT1
LCALL CT2
JMP KEY2
KEY3:
JNB P1.7,$
LCALL CT1
LCALL CT3
JMP KEY3
CT1: ;CHAY BINH THUONG
CLR P1.6
SETB P1.0
LCALL DELAY
CLR P1.0
LCALL DELAY
SETB P1.1
LCALL DELAY
CLR P1.1
LCALL DELAY
SETB P1.2
LCALL DELAY
CLR P1.2
LCALL DELAY
SETB P1.3
LCALL DELAY
CLR P1.3
LCALL DELAY
SETB P1.4
LCALL DELAY
CLR P1.4
LCALL DELAY
SJMP CT1
NHAY1:
SETB P2.5
LCALL DELAY4
CLR P2.5
LCALL DELAY4
JMP NHAY1
NHAY2:
SETB P2.6
LCALL DELAY4
CLR P2.6
LCALL DELAY4
JMP NHAY2
CT11: ;CHAY BINH THUONG
CLR P1.5
SETB P2.0
LCALL DELAY
CLR P2.0
LCALL DELAY
SETB P2.1
LCALL DELAY
CLR P2.1
LCALL DELAY
SETB P2.2
LCALL DELAY
CLR P2.2
LCALL DELAY
SETB P2.3
LCALL DELAY
CLR P2.3
LCALL DELAY
SETB P2.4
LCALL DELAY
CLR P2.4
LCALL DELAY
SJMP CT11
CT2: ;CHAY NHANH NHAT
CLR P1.5
SETB P2.0
LCALL DELAY1
CLR P2.0
LCALL DELAY1
SETB P2.1
LCALL DELAY1
CLR P2.1
LCALL DELAY1
SETB P2.2
LCALL DELAY1
CLR P2.2
LCALL DELAY1
SETB P2.3
LCALL DELAY1
CLR P2.3
LCALL DELAY1
SETB P2.4
LCALL DELAY1
CLR P2.4
LCALL DELAY1
SJMP CT2
CT3: ;CHAY CHAM NHAT
CLR P1.5
SETB P2.0
LCALL DELAY3
CLR P2.0
LCALL DELAY3
SETB P2.1
LCALL DELAY3
CLR P2.1
LCALL DELAY3
SETB P2.2
LCALL DELAY3
CLR P2.2
LCALL DELAY3
SETB P2.3
LCALL DELAY3
CLR P2.3
LCALL DELAY3
SETB P2.4
LCALL DELAY3
CLR P2.4
LCALL DELAY3
SJMP CT3
DELAY: ;BINH THUONG
MOV R2,#90
HERE1:MOV R3,#190
HERE2JNZ R3,HERE2
DJNZ R2,HERE1
RET
DELAY1: ;NHANH NHAT
MOV R4,#80
HERE11:MOV R5,#150
HERE22JNZ R5,HERE22
DJNZ R4,HERE11
RET
DELAY3: ;CHAM NHAT
MOV R6,#255
HERE3:MOV R7,#255
HERE4: DJNZ R7,HERE4
DJNZ R6,HERE3
RET
DELAY4:
push 7
push 6
push 5
push 4
mov r4,#1
mov r5,#20
mov r6,#200
mov r7,#249
djnz r7,$
djnz r6,$-4
djnz r5,$-8
djnz r4,$-12
pop 4
pop 5
pop 6
pop 7
RET
END
khi p1.5=1 thì led sáng dần từ p1.0 đến p1.4 và từ p2.0 đến p2.4 và chân p2.5 nhấp nháy
khi p1.6=1 thì led sáng dần từ p1.0 đến p1.4 và từ p2.0 đến p2.4 (với tốc độ khác trên) và chân p2.5, p2.6 nhấp nháy
khi p1.7=1 thì led sáng dần từ p1.0 đến p1.4 và từ p2.0 đến p2.4 (với tốc độ khác trên) và chân p2.5, p2.6 nhấp nháy
mình gửi kèm file lập trình và mô phỏng proteus 8.1 nhờ các bạn giúp đỡ
ORG 0000
MAIN:
KEY1:
JNB P1.5,$
LCALL CT1
LCALL CT11
CALL NHAY1
JMP KEY1
KEY2:
JNB P1.6,$
LCALL CT1
LCALL CT2
JMP KEY2
KEY3:
JNB P1.7,$
LCALL CT1
LCALL CT3
JMP KEY3
CT1: ;CHAY BINH THUONG
CLR P1.6
SETB P1.0
LCALL DELAY
CLR P1.0
LCALL DELAY
SETB P1.1
LCALL DELAY
CLR P1.1
LCALL DELAY
SETB P1.2
LCALL DELAY
CLR P1.2
LCALL DELAY
SETB P1.3
LCALL DELAY
CLR P1.3
LCALL DELAY
SETB P1.4
LCALL DELAY
CLR P1.4
LCALL DELAY
SJMP CT1
NHAY1:
SETB P2.5
LCALL DELAY4
CLR P2.5
LCALL DELAY4
JMP NHAY1
NHAY2:
SETB P2.6
LCALL DELAY4
CLR P2.6
LCALL DELAY4
JMP NHAY2
CT11: ;CHAY BINH THUONG
CLR P1.5
SETB P2.0
LCALL DELAY
CLR P2.0
LCALL DELAY
SETB P2.1
LCALL DELAY
CLR P2.1
LCALL DELAY
SETB P2.2
LCALL DELAY
CLR P2.2
LCALL DELAY
SETB P2.3
LCALL DELAY
CLR P2.3
LCALL DELAY
SETB P2.4
LCALL DELAY
CLR P2.4
LCALL DELAY
SJMP CT11
CT2: ;CHAY NHANH NHAT
CLR P1.5
SETB P2.0
LCALL DELAY1
CLR P2.0
LCALL DELAY1
SETB P2.1
LCALL DELAY1
CLR P2.1
LCALL DELAY1
SETB P2.2
LCALL DELAY1
CLR P2.2
LCALL DELAY1
SETB P2.3
LCALL DELAY1
CLR P2.3
LCALL DELAY1
SETB P2.4
LCALL DELAY1
CLR P2.4
LCALL DELAY1
SJMP CT2
CT3: ;CHAY CHAM NHAT
CLR P1.5
SETB P2.0
LCALL DELAY3
CLR P2.0
LCALL DELAY3
SETB P2.1
LCALL DELAY3
CLR P2.1
LCALL DELAY3
SETB P2.2
LCALL DELAY3
CLR P2.2
LCALL DELAY3
SETB P2.3
LCALL DELAY3
CLR P2.3
LCALL DELAY3
SETB P2.4
LCALL DELAY3
CLR P2.4
LCALL DELAY3
SJMP CT3
DELAY: ;BINH THUONG
MOV R2,#90
HERE1:MOV R3,#190
HERE2JNZ R3,HERE2
DJNZ R2,HERE1
RET
DELAY1: ;NHANH NHAT
MOV R4,#80
HERE11:MOV R5,#150
HERE22JNZ R5,HERE22
DJNZ R4,HERE11
RET
DELAY3: ;CHAM NHAT
MOV R6,#255
HERE3:MOV R7,#255
HERE4: DJNZ R7,HERE4
DJNZ R6,HERE3
RET
DELAY4:
push 7
push 6
push 5
push 4
mov r4,#1
mov r5,#20
mov r6,#200
mov r7,#249
djnz r7,$
djnz r6,$-4
djnz r5,$-8
djnz r4,$-12
pop 4
pop 5
pop 6
pop 7
RET
END
Comment