higher
Mechanical
- May 9, 2005
- 1
Hello. Can anyone out there please correct my 45,90,180,270 and -45,-90,-180,-270 conversion routines and complete the 2 missing routines. I will be in a greatful appreciation.Here is my code:
org 0000h
jmp MAIN
org 0100h
MAIN: CALL ROLLSTOP
mov p3,#11111111b
START: jb p3.0,FORWARD ;PIN 3.0 IS ON - forward
jnb p3.0,REVERSE ;PIN 3.0 IS OFF - reverse
jmp start
FORWARD: MOV A,#98 ;WAIT 1sec TO START RUNNING
CALL WAITS
CALL INITFORWARD ;SET MOTOR IN FORWARD MOTION
CALL WAITS
CALL FORWARDSHAFT
CALL WAITS
CALL ROLLSTOP
jmp start ; ß---clockwise
;SET MOTOR IN REVERSE MOTION
REVERSE: MOV A,#98 ;WAIT 1sec TO START RUNNING
CALL WAITS
CALL INITREV
CALL WAITS
CALL REVERSESHAFT
CALL ROLLSTOP
jmp start ; ß---counterclockwise
WAITS: MOV R2, A ;FULL WAITS (SHORT) IS APPR.2 sec
WAIT2: DJNZ R0,WAIT2
MOV R0, #00000011B
DJNZ R1, WAIT2
RET
PAUSE: MOV A, #49 ;PAUSE 1/2sec AFTER MOVING
CALL WAITS
RET
;SET FORWARD MOTION
INITFORWARD: ;The unipolar stepper motor begins in motion ( Phase 1)
MOV P1,#00000001B ;1
CALL PAUSE
MOV P1,#00000010B ;2
CALL PAUSE
MOV P1,#00000100B ;4
CALL PAUSE
MOV P1,#00001000B ;8
CALL PAUSE
RET
;SET REVERSE MOTION
INITREV: ;The unip. step. motor begins its backw. motion ( Phase 2)
MOV P1,#00001000B ;8
CALL PAUSE
MOV P1,#00000100B ;4
CALL PAUSE
MOV P1,#00000010B ;2
CALL PAUSE
MOV P1,#00000001B ;1
CALL PAUSE
RET
FORWARDSHAFT: ;Turn shaft in certain positions during FORWARD movement
MOV P1,#00010001B ;Turn it 45 degrees.
CALL WAITS
MOV P1,#10000010B ;Turn it 90 degrees.
CALL WAITS
MOV P1,#00001001B ;Turn it 180 degrees.
CALL WAITS
MOV P1,#01000010B ;Turn it 270 degrees.
CALL WAITS
LJMP START
RET
REVERSESHAFT: ;Turn shaft in certain positions during REVERSE movement
MOV P1,#01000010B ;Turn it -270 degrees
CALL WAITS
MOV P1,#00001001B ;Turn it -180 degrees
CALL WAITS
MOV P1,#10000010B ;Turn it -90 degrees
CALL WAITS
MOV P1,#00010001B ;Turn it -45 degrees
CALL WAITS
LJMP START
RET
;FASTROUTINE: ;Maximum speed to the UNIPOLAR STEPPER
;SLOWROUTINE: ;Minimum speed to the UNIPOLAR STEPPER
ROLLSTOP: MOV P1,#00000000B ;TURN OFF MOTOR
RET
END
org 0000h
jmp MAIN
org 0100h
MAIN: CALL ROLLSTOP
mov p3,#11111111b
START: jb p3.0,FORWARD ;PIN 3.0 IS ON - forward
jnb p3.0,REVERSE ;PIN 3.0 IS OFF - reverse
jmp start
FORWARD: MOV A,#98 ;WAIT 1sec TO START RUNNING
CALL WAITS
CALL INITFORWARD ;SET MOTOR IN FORWARD MOTION
CALL WAITS
CALL FORWARDSHAFT
CALL WAITS
CALL ROLLSTOP
jmp start ; ß---clockwise
;SET MOTOR IN REVERSE MOTION
REVERSE: MOV A,#98 ;WAIT 1sec TO START RUNNING
CALL WAITS
CALL INITREV
CALL WAITS
CALL REVERSESHAFT
CALL ROLLSTOP
jmp start ; ß---counterclockwise
WAITS: MOV R2, A ;FULL WAITS (SHORT) IS APPR.2 sec
WAIT2: DJNZ R0,WAIT2
MOV R0, #00000011B
DJNZ R1, WAIT2
RET
PAUSE: MOV A, #49 ;PAUSE 1/2sec AFTER MOVING
CALL WAITS
RET
;SET FORWARD MOTION
INITFORWARD: ;The unipolar stepper motor begins in motion ( Phase 1)
MOV P1,#00000001B ;1
CALL PAUSE
MOV P1,#00000010B ;2
CALL PAUSE
MOV P1,#00000100B ;4
CALL PAUSE
MOV P1,#00001000B ;8
CALL PAUSE
RET
;SET REVERSE MOTION
INITREV: ;The unip. step. motor begins its backw. motion ( Phase 2)
MOV P1,#00001000B ;8
CALL PAUSE
MOV P1,#00000100B ;4
CALL PAUSE
MOV P1,#00000010B ;2
CALL PAUSE
MOV P1,#00000001B ;1
CALL PAUSE
RET
FORWARDSHAFT: ;Turn shaft in certain positions during FORWARD movement
MOV P1,#00010001B ;Turn it 45 degrees.
CALL WAITS
MOV P1,#10000010B ;Turn it 90 degrees.
CALL WAITS
MOV P1,#00001001B ;Turn it 180 degrees.
CALL WAITS
MOV P1,#01000010B ;Turn it 270 degrees.
CALL WAITS
LJMP START
RET
REVERSESHAFT: ;Turn shaft in certain positions during REVERSE movement
MOV P1,#01000010B ;Turn it -270 degrees
CALL WAITS
MOV P1,#00001001B ;Turn it -180 degrees
CALL WAITS
MOV P1,#10000010B ;Turn it -90 degrees
CALL WAITS
MOV P1,#00010001B ;Turn it -45 degrees
CALL WAITS
LJMP START
RET
;FASTROUTINE: ;Maximum speed to the UNIPOLAR STEPPER
;SLOWROUTINE: ;Minimum speed to the UNIPOLAR STEPPER
ROLLSTOP: MOV P1,#00000000B ;TURN OFF MOTOR
RET
END