代码如下:
START:
MOV R0, #5
LOOP:
MOV P2, #0FFH
CALL DELAY
MOV P2, #040H
CALL DELAY
DJNZ R0, LOOP
DELAY:
MOV R3, #50
D1: MOV R4, #20
D2: MOV R5, #248
DJNZ R5, $
DJNZ R4, D2
DJNZ R3, D1
RET
END
其实是忘了在LOOP的最后一行加上 JMP START
但是出人意料的是它竟然连续闪了 10 次。按理说只能闪烁 5 次呀,因为 R0 计数是 5 呀。怎么回事呢?
R0 不是已经赋值为 5 了么?
另外那个单步执行我也试了,的确是两次,但是似乎很难看出为什么....