开始当一个周期后,会出现所有灯都熄灭的状态,再重新点亮
分析原因
P3值 R1
1-1111 1111-0 7 1
1-1111 1110-1 6 2
。。。
1-0111 1111-1 0 8
1-1011 1111-1 7 1
1-1101 1111-1 6 2
。。。
1-1111 1110-1 2 7
故将MOV R1, #08H,改为MOV R1, #07H,结果符合预期
另外,好习惯加入CLR C
最终程序如下:
ORG 00H
MOV A, #0FFH
CLR C
MOV R1, #08H
TURNRIGHT:
MOV P1, A
RLC A
CALL DELAY
DJNZ R1,TURNRIGHT
MOV R1, #07H
JMP TURNLEFT
TURNLEFT:
MOV P1, A
RRC A
CALL DELAY
DJNZ R1,TURNLEFT
MOV R1, #07H
JMP TURNRIGHT
DELAY:
MOV R3,#50
D1:
MOV R4,#20H
D2:
MOV R5,#248
DJNZ R5,$; R5-1 != 0 则循环该语句
DJNZ R4,D2
DJNZ R3,D1
RET ;返回主程序
END