控制电机转向时,转45°可以,为什么加恢复原状时出现先转90°,再向回转45°
[复制链接]
原程序1:(51单片机P0口输出) OUT EQU P0 ORG 0000H LOOP: JNB P1.3,LEFT JMP LOOP LEFT: MOV DPTR,#TABLE MOV R3,#01H MOV A,R3 MOVC A,@A+DPTR MOV OUT,A CALL DELAY JMP STOP DELAY: MOV R7,#100 D1: MOV R6,#249 DJNZ R6,$ DJNZ R7,D1 RET STOP: ORL P0,#0FFH TABLE: DB 1 END 源程序2(加恢复后): ORG 0000H LOOP: JNB P1.3,LEFT JNB P1.4,RIGHT JMP LOOP LEFT: MOV DPTR,#TABLE MOV R0,#01H MOV A,R0 MOVC A,@A+DPTR MOV P0,A CALL DELAY JMP STOP RIGHT: MOV DPTR,#TABLE MOV R1,#02H MOV A,R1 MOVC A,@A+DPTR MOV P0,A CALL DELAY JMP STOP DELAY: MOV R3,#100 D1: MOV R2,#249 DJNZ R2,$ DJNZ R3,D1 RET STOP: ORL P0,#0FFH JMP LOOP TABLE: DB 1 DB 9(混合式) END
第一个程序是转了45°,第二个程序想让电机左转45°,再右转45°以恢复原状。
但是第二个程序在PROTUES上仿真时点击左转按钮后左转了90°,点击右转按钮时,向右转了45°,结果是向左转了45°,没恢复到原来位置。
|