em viết đoạn code này:
org 0000h
JMP START
DELAY: MOV R1,#20 ; 20x50us=1s
L3: MOV TMOD,#01H ; Ch? d? timer 16bit
MOV TH0,#HIGH(-50000) ; 50us
MOV TL0,#LOW(-50000)
SETB TR0 ; timer b?t dàu d?m
JNB TF0,$ ; nh?y tai ch? n?u TF0=1
CLR TR0 ; TR0=0 nh?ng d?m
CLR TF0 ; TF0=0 cho l?n tràn ti?p
DJNZ R1,L3 ; Giam R1 xu?ng 1 và nh?y t?i L3 nêu L3>0
RET
START:
L: MOV P2,#0FFH
MOV R1,#8
MOV R0,#0
LAP1: MOV DPTR,#BANG
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
INC r0
LCALL DELAY
DJNZ R1,LAP1
JMP L
BANG: DB 7EH,3CH,18H,00H,81H,0C3H,0E7H,0FFH
END
NÓ chạy đúng ý em rồi. nhưng mà nó chạy 1 lần rồi thôi. ko lặp lại được. E điều khiển 8 led ở p2. dùng 89c52
org 0000h
JMP START
DELAY: MOV R1,#20 ; 20x50us=1s
L3: MOV TMOD,#01H ; Ch? d? timer 16bit
MOV TH0,#HIGH(-50000) ; 50us
MOV TL0,#LOW(-50000)
SETB TR0 ; timer b?t dàu d?m
JNB TF0,$ ; nh?y tai ch? n?u TF0=1
CLR TR0 ; TR0=0 nh?ng d?m
CLR TF0 ; TF0=0 cho l?n tràn ti?p
DJNZ R1,L3 ; Giam R1 xu?ng 1 và nh?y t?i L3 nêu L3>0
RET
START:
L: MOV P2,#0FFH
MOV R1,#8
MOV R0,#0
LAP1: MOV DPTR,#BANG
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
INC r0
LCALL DELAY
DJNZ R1,LAP1
JMP L
BANG: DB 7EH,3CH,18H,00H,81H,0C3H,0E7H,0FFH
END
NÓ chạy đúng ý em rồi. nhưng mà nó chạy 1 lần rồi thôi. ko lặp lại được. E điều khiển 8 led ở p2. dùng 89c52
Comment