Em hiện là sinh viên, đang học về Assembly lập trình cho 8051. Mới học có mấy buổi thầy cho bt điều khiển 32 LED sáng tắt (ko cho sử dụng thanh ghi DPTR), em đọc sách rồi tự viết đoạn code sau, chương trình dịch ko báo lỗi nhưng khi nạp vào chương trình mô phỏng của proteus thì nó không chạy. Không biết em đã làm sai chỗ nào nữa. (LED nối anot với nguồn) Mong mọi người giúp đỡ!
org 00h
batdau:
mov A, 00H
mov B, 0FFH
mov R0, #80H
mov R1, #07
led0:
mov @R0, A
acall tre_1s
mov @R0, B
inc R0
djnz R1, led0
mov R0, #90H
mov R1, #07
led1:
mov @R0, A
acall tre_1s
mov @R0, B
inc R0
djnz R1, led1
mov R0, #0A0H
mov R1, #07
led2:
mov @R0, A
acall tre_1s
mov @R0, B
inc R0
djnz R1, led2
mov R0, #0B0H
mov R1, #07
led3:
mov @R0, A
acall tre_1s
mov @R0, B
inc R0
djnz R1, led3
sjmp batdau
tre_1s:
mov r1, #10
loop3:
mov r2, #100
loop2:
mov r3, #100
loop1:
djnz r3,loop1
djnz r2,loop2
djnz r1,loop3
ret
end
org 00h
batdau:
mov A, 00H
mov B, 0FFH
mov R0, #80H
mov R1, #07
led0:
mov @R0, A
acall tre_1s
mov @R0, B
inc R0
djnz R1, led0
mov R0, #90H
mov R1, #07
led1:
mov @R0, A
acall tre_1s
mov @R0, B
inc R0
djnz R1, led1
mov R0, #0A0H
mov R1, #07
led2:
mov @R0, A
acall tre_1s
mov @R0, B
inc R0
djnz R1, led2
mov R0, #0B0H
mov R1, #07
led3:
mov @R0, A
acall tre_1s
mov @R0, B
inc R0
djnz R1, led3
sjmp batdau
tre_1s:
mov r1, #10
loop3:
mov r2, #100
loop2:
mov r3, #100
loop1:
djnz r3,loop1
djnz r2,loop2
djnz r1,loop3
ret
end
Comment