这个是依次从P1.0指向P1.7方向通过累加器递增亮灯,现在要反过来从1.7向1.0递增亮灯,求牢大解答
ORG 0000H ; 设置程序存储起始地址为0000H
AJMP MAIN ; 绝对跳转到标签MAIN
ORG 0030H ; 设置程序存储起始地址为0030H
MAIN: ; 主程序开始
MOV A, #0FFH ; 将255(十六进制的FF)加载到累加器A
MOV P1, A ; 将累加器A的值移动到端口P1
SETB P3.3 ; 设置P3.3为高电平(1)
LOOP: ; 循环开始
INC A ; 累加器A的值加1
SHOW: ; 显示标签
JNB P3.3, INCR ; 如果P3.3不是0,则跳转到INCR
JMP SHOW ; 无条件跳回SHOW
INCR: ; INCR标签
JNB P3.3, INCR ; 如果P3.3是0,则保持在INCR
MOV P1, A ; 将累加器A的值移动到端口P1
LCALL DELAY ; 调用延迟子程序
JMP LOOP ; 跳回LOOP开始新的循环
DELAY: ; 延迟子程序
MOV R4, #250 ; 将250加载到寄存器R4
D2: ; D2标签
MOV R5, #250 ; 将250加载到寄存器R5
DJNZ R5, $ ; R5减1,如果不为0则跳转到当前位置
DJNZ R4, D2 ; R4减1,如果不为0则跳转到D2
RET ; 从子程序返回
END ; 程序结束