Mong mọi người giúp đỡ : Đề bài này là : Khi ấn K_1 Thì led D1 sáng và Tất cả các led D5-->D10 cũng sáng
Tiếp tục ấn K2 thì led D2 sáng và led D5-> D10 sáng từ trái qua phải
Tiếp tục ấn K3 thì D3 sáng và led D5-> D10 sáng từ phải qua trái
Tiếp tục ấn K4 thì D4 sáng và led D5 ---> D0 nhấp nháy
E đang học Vi xử lý nên cũng chưa biết được nhiều . e Viết code chưa được đúng cho lắm , Mong Mọi người giúp đỡ sửa code này giúp e với . Thank
CODE
.define
k_1 p3_0
k_2 p3_1
k_3 p3_2
k_4 p3_4
D5 p1_0
D6 p1_1
D7 p1_2
D8 p1_3
D9 P1_4
D10 P1_5
D1 p2_0
D2 p2_1
D3 p2_2
D4 p2_3
.enddefine
;-------------------------------------------
.code
org 0x0000
ljmp main
//==========================================
org 0x0030
main:
setb D5
setb D6
setb D7
setb D8
setb D9
setb D10
setb D1
setb D2
setb D3
setb D4
loop:
jb k_1,cont1
jnb k_1,$
clr D1
clr D5
clr D6
clr D7
clr D8
clr D9
clr D10
ljmp loop
cont1:
jb k_2,cont2
jnb k_2,$
clr D2
mov r1,#6
bat_dau:
setb P1
CALL DELAY
clr D5
CALL DELAY
clr D6
CALL DELAY
clr D7
CALL DELAY
clr D8
CALL DELAY
clr D9
CALL DELAY
clr D10
CALL DELAY
DJNZ R1,bat_dau
ljmp loop
cont2:
jb k_3,cont3
jnb k_3,$
clr D3
mov r2,#6
bat_dau_1:
clr P1
CALL DELAY
setb D5
CALL DELAY
setb D6
CALL DELAY
setb D7
CALL DELAY
setb D8
CALL DELAY
setb D9
CALL DELAY
setb D10
CALL DELAY
DJNZ R2,bat_dau_1
ljmp loop
cont3:
jb k_4,cont4
jnb k_4,$
clr led4
mov r3,#6
bat_dau_2:
clr P1
CALL DELAY_1
setb P1
CALL DELAY_1
DJNZ R2,bat_dau_2
ljmp loop
cont4:
ljmp loop
ljmp main
//==========================================
DELAY:
MOV R0,#200
LAP:
MOV R7,#200
LAP2:
NOP
NOP
NOP
DJNZ R1,LAP2
DJNZ R7,LAP
RET
//==========================================
delay_1:
DELAY:
MOV R5,#50
LAP_5:
NOP
NOP
DJNZ R5,LAP_5
RET
//==========================================
.endcode
.end
Comment