流水灯设计: 程序设计的时候是从D1-D8再从D8-D1的流水灯 开始时候应该是D1先亮

ORG 00H
START:
MOV A,#0FFH
CLR C
MOV R1,#8
RIGHT:
RRC A
MOV P2,A
CALL DELAY
DJNZ R1,RIGHT
MOV R2,#7
LEFT:
RLC A
MOV P2,A
CALL DELAY
DJNZ R2,LEFT
JMP START
DELAY:
MOV R3,#20
D1:
MOV R4,#20
D2:
MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
END
但是按照这样电路仿真 发现D8先亮 先是D8-D1亮一次 然后才正确的运行,怀疑是刚开始有延时 或者 仿真软件的问题 仿真软件用的是keil uvision 4 和 proteus 7 professional 谁能告诉我为什么啊 新手刚自学呢

因为你的LED是D1在低位,而单片机中是高位在前的。你可以改程序也可以改LED(D8改到左边)
RIGHT: ;右移,即从高位往低位移,这样就是D8先亮
RRC A ;这条改成RLC,左移,就是D0先亮了
。。。
LEFT:
RLC A ;改成RRC,就是右移。
温馨提示:答案为网友推荐,仅供参考