em đang thực hành môn Vi Điều khiển viết code cho 89c51 điều khiển quét led chạy từ 1 đến 1000 dưới đây là đoạn Code em viết , nhưng không hiểu mô phỏng trên proteus không được , không biết có gì sai , mong các cao nhân trợ giúp ;
ORG 0H
AJMP MAIN
MAIN:
ORG 0030H
MOV DPTR,#DATALED
MOV R0,#0h
MOV R1,#0h
MOV R2,#0h
MOV R3,#0h
LOOP:
MOV A,R0
MOVC A,@A+DPTR
ACALL DELAY1S
MOV P2,#01h
MOV P1,A
ACALL DELAY
INC R0
CJNE R0,#10,NEXT
INC R1
MOV R0,#0
NEXT:
MOV A,R1
MOVC A,@A+DPTR
ACALL DELAY
MOV P2,#02h
MOV P1,A
CJNE R1,#10,NEXT2
INC R2
MOV R1,#0
NEXT1:
MOV A,R2
MOVC A,@A+DPTR
MOV P2,#04h
MOV P1,A
ACALL DELAY
CJNE R2,#10,NEXT2
INC R3
MOV R2,#0
NEXT2:
MOV A,R3
MOVC A,@A+DPTR
MOV P2,#08h
MOV P1,A
ACALL DELAY
CJNE R3,#10,LOOP
LJMP MAIN
DELAY1S:
MOV R5,#255
LOOP2: MOV R6,#200
DJNZ R6,$
DJNZ R5,LOOP2
RET
DELAY:
MOV R7,100
DJNZ R7,$
RET
ORG 0300H
DATALED:
DB 40h,0F9h,0A4h,0B0h,099h,012h,002h,078h,000h,010h
END
ORG 0H
AJMP MAIN
MAIN:
ORG 0030H
MOV DPTR,#DATALED
MOV R0,#0h
MOV R1,#0h
MOV R2,#0h
MOV R3,#0h
LOOP:
MOV A,R0
MOVC A,@A+DPTR
ACALL DELAY1S
MOV P2,#01h
MOV P1,A
ACALL DELAY
INC R0
CJNE R0,#10,NEXT
INC R1
MOV R0,#0
NEXT:
MOV A,R1
MOVC A,@A+DPTR
ACALL DELAY
MOV P2,#02h
MOV P1,A
CJNE R1,#10,NEXT2
INC R2
MOV R1,#0
NEXT1:
MOV A,R2
MOVC A,@A+DPTR
MOV P2,#04h
MOV P1,A
ACALL DELAY
CJNE R2,#10,NEXT2
INC R3
MOV R2,#0
NEXT2:
MOV A,R3
MOVC A,@A+DPTR
MOV P2,#08h
MOV P1,A
ACALL DELAY
CJNE R3,#10,LOOP
LJMP MAIN
DELAY1S:
MOV R5,#255
LOOP2: MOV R6,#200
DJNZ R6,$
DJNZ R5,LOOP2
RET
DELAY:
MOV R7,100
DJNZ R7,$
RET
ORG 0300H
DATALED:
DB 40h,0F9h,0A4h,0B0h,099h,012h,002h,078h,000h,010h
END
Comment