我的流水方式不能随着开关的变化而变化,刚刚学。以下是我写的代码:怎么修改我的代码让它能随开关的变化而变化。
ORG 0000H LJMP MAIN ORG 0030H MAIN: SETB P1.2 SETB P1.1 JB P1.1 ,NEXT JB P1.2,NEXT1 AJMP LOOP4 NEXT1:AJMP LOOP2 NEXT:JB P1.2,NEXT2 AJMP LOOP3 NEXT2:AJMP LOOP1 //开关的状态对应流水彩灯的方式
DL1:MOV R3,#20 L1: MOV R1,#20 L2: MOV R2,#250 DJNZ R2,$ DJNZ R1,L2 DJNZ R3,L1 RET //延时0.2s
DL2:MOV R4,#30 L3: MOV R5,#20 L4: MOV R6,#250 DJNZ R6,$ DJNZ R5,L4 DJNZ R4,L3 RET //延时0.3s
DL3:MOV R3,#40 L5: MOV R1,#20 L6: MOV R2,#250 DJNZ R2,$ DJNZ R1,L6 DJNZ R3,L5 RET //延时0.4s
LOOP1:MOV A,#10000000B MOV R7,#08H START1:MOV P3,A LCALL DL1 DJNZ R7,N1 AJMP LOOP1 N1:RR A AJMP START1 //方式1
LOOP2:MOV R0,#07H MOV R7,#10000000B MOV A,#10000000B START2:MOV P3,A LCALL DL2 DJNZ R0,N2 MOV P3,#00H AJMP LOOP2 N2:RR A ORL A,R7 MOV R7,A AJMP START2 //方式2
LOOP3:MOV P3,#0FFH LCALL DL3 MOV P3,#01111110B LCALL DL3 MOV P3,#00111100B LCALL DL3 MOV P3,#00011000B LCALL DL3 MOV P3,#00H LCALL DL3 AJMP LOOP3 //方式3
LOOP4:MOV P3,#00H LCALL DL3 MOV A,#01H MOV R7,#08H START3: MOV P3,A LCALL DL3 DJNZ R7,N3 MOV R7,#07H N4: RR A MOV P3,A LCALL DL3 DJNZ R7,N4 AJMP LOOP4 N3: RL A AJMP START3 END //方式4
|