附录
附录一:源程序
ORG 0000H AJMP STOP ORG 1000H K1 EQU P3.2 K2 EQU P3.3 K3 EQU P3.4
STOP: MOV P2,#0FFH LOOP: JNB K1,Z_M2 JNB K2,F_M2 JNB K3,STOP1 JMP LOOP
STOP1: ACALL DELAY JNB K3,$ LCALL DELAY AJMP STOP
Z_M2: ACALL DELAY JNB K,$ ACALL DELAY AJMP Z_M
F_M2: ACALL DELAY JNB K2,$ ACALL DELAY AJMP F_M
;正转子程序
Z_M: MOV R0,#00H Z_M1: MOV A,R0 MOV DPTR,#TABLE MOVC A,@A+DPTR JZ Z_M MOV P2,A JNB K3,STOP1 JNB K2,F_M2 ACALL DELAY INC R0 AJMP Z_M1 RET
;步进电机停止
第 15 页 共 18 页
;反转子程序 F_M: MOV R0,#05H F_M1: MOV A,R0
MOV DPTR,#TABLE MOVC A,@A+DPTR JZ F_M MOV P2,A JNB K3,STOP1 JNB K1,Z_M2 ACALL DELAY INC R0 AJMP F_M1 RET
DELAY: MOV R6,#40 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET
;控制码表 TABLE: DB 0FCH,0F9H,0F3H,0F6H DB 00H ;正转结束码 DB 0F7H,0F3H,0FBH,0F9H DB 0FDH,0FCH,0FEH,0F6H DB 00H ;反转结束码
END
;延时时间20ms
;正转 ;反转
附录二:改变电机转速的源程序
ORG 0000H AJMP MAIN ORG 1000H MAIN: ACALL Z_M ACALL F_M MOV R5,#250 ACALL DELAY JMP MAIN
;主程序
第 16 页 共 18 页
Z_M: ;正转子程序 MOV R0,#20 MOV A,#11001100B LOOP: MOV P0,A MOV R5,#50 ACALL DELAY RL A
DJNZ R0,LOOP RET
F_M: ;反转子程序 MOV R1,#200 MOV A,#00110011B LOOP1: MOV P0,A MOV R5,#5 ACALL DELAY RR A DJNZ R1,LOOP1 RET
DELAY: ;延时程序 DLY1: MOV R6,#100 MOV R7,#100 DJNZ R7,$ DJNZ R6,DLY2 DJNZ R5,DLY1 RET END
第 17 页 共 18 页