mình đang lập trình để điều khiển 8led nối với 8 chân P0 sáng dồn(led1 nối với p0.0,.....)
mình viết được cái chương trình này nhưng khi chạy mô phỏng thì nó không như ý muốn (0 là sáng)
mình hỏi bạn mình thì nó bảo do khi chạy xong 1 vòng lặp thì PC trỏ lại vị trí ban đầu.nên nó không giữ được trạng thái cuối vòng lặp như mình mong muốn
mình post bài lên.bạn nào biết cách khắc phục sửa giúp mình với.thanks mọi người nhiều
ORG 0000H
SJMP MAIN
ORG 0030H ;/// bo qua vung ngat
MAIN:
MOV R1,#8 ;/// so lan lap
MOV P0,#0FFH ;/// tat het led
BATDAU:
MOV 40H,P0 ;/// lay o nho 40H lam trung gian
MOV 35H,R1 ;/// de cho R0=R1
MOV R0,35H ;/// de cho R0=R1
CLR C
MOV A,#0FFH
DICH:
RLC A
MOV R2,A
ANL A,40H
MOV P0,A
MOV A,R2
LCALL TRE
DJNZ R0,DICH
DJNZ R1,BATDAU
;///////////
TRE:
MOV R7,#2
KT:
MOV R6,#255
KT1:
MOV R5,#255
KT2:
DJNZ R5,KT2
DJNZ R6,KT1
DJNZ R7,KT
RET
END
mình viết được cái chương trình này nhưng khi chạy mô phỏng thì nó không như ý muốn (0 là sáng)
mình hỏi bạn mình thì nó bảo do khi chạy xong 1 vòng lặp thì PC trỏ lại vị trí ban đầu.nên nó không giữ được trạng thái cuối vòng lặp như mình mong muốn
mình post bài lên.bạn nào biết cách khắc phục sửa giúp mình với.thanks mọi người nhiều
ORG 0000H
SJMP MAIN
ORG 0030H ;/// bo qua vung ngat
MAIN:
MOV R1,#8 ;/// so lan lap
MOV P0,#0FFH ;/// tat het led
BATDAU:
MOV 40H,P0 ;/// lay o nho 40H lam trung gian
MOV 35H,R1 ;/// de cho R0=R1
MOV R0,35H ;/// de cho R0=R1
CLR C
MOV A,#0FFH
DICH:
RLC A
MOV R2,A
ANL A,40H
MOV P0,A
MOV A,R2
LCALL TRE
DJNZ R0,DICH
DJNZ R1,BATDAU
;///////////
TRE:
MOV R7,#2
KT:
MOV R6,#255
KT1:
MOV R5,#255
KT2:
DJNZ R5,KT2
DJNZ R6,KT1
DJNZ R7,KT
RET
END
Comment