;MOTOR BEKÖTÉSE: PIC-->L702B-->STEPPER MOTOR
;WHITE-BLACK=+
;RED=A1 -- PIC RB3
;ORANGE=B1 -- PIC RB2
;YELLOW=A2 -- PIC RB1
;BROWN=B2 -- PIC RB0
;MEGHAJTÓFESZÜLTSÉG: 5VDC
;MOTOR: EM-34 / STH-39D150-01 
;FIRMWARE: UniDrive V1.1

	INCLUDE "P16F628A.INC"
	LIST P=16F628A
	__CONFIG B'10000100001001'
;	__CONFIG B'11111100100001'
;**************************************************
;DEFINE LIST
;**************************************************
S1_DEF EQU B'00000001'
S2_DEF EQU B'00000011'
S3_DEF EQU B'00000010'
S4_DEF EQU B'00000110'
S5_DEF EQU B'00000100'
S6_DEF EQU B'00001100'
S7_DEF EQU B'00001000'
S8_DEF EQU B'00001001'
WLOOP EQU D'1'
COUNTA EQU D'1'
COUNTB EQU D'1'
;**************************************************
;UniDrive V1.1 Pre config
;**************************************************
	BSF STATUS,RP0
	MOVLW b'00000000'
	MOVWF TRISA
	MOVWF TRISB
	BCF STATUS,RP0
;**************************************************
;MOTOR STEPPING COMMANDS
;**************************************************
MAIN
	CALL BACK_F
	CALL WAIT
	CALL WAIT
	CALL WAIT
	CALL WAIT
	CALL WAIT
	CALL WAIT
	CALL WAIT
	CALL WAIT
	CALL WAIT
	CALL WAIT
	CALL WAIT
	CALL WAIT

	CALL MOVE_END
;**************************************************
;MICROSTEP COMMANDS DEFINE LIST
;**************************************************
S2
	MOVLW S2_DEF
	MOVWF PORTB
	RETURN
S4
	MOVLW S4_DEF
	MOVWF PORTB
	RETURN
S6
	MOVLW S6_DEF
	MOVWF PORTB
	RETURN
S8
	MOVLW S8_DEF
	MOVWF PORTB
	RETURN
;**************************************************
;1x4 PHASE STEPPING LEFTWARDS IN FORCED MODE
;**************************************************
BACK_F
	MOVLW S2_DEF
	MOVWF PORTB
	NOP
	MOVLW S4_DEF
	MOVWF PORTB
	NOP
	MOVLW S6_DEF
	MOVWF PORTB
	NOP
	MOVLW S8_DEF
	MOVWF PORTB
	NOP

	RETURN
;**************************************************
;1x4 PHASE STEPPING RIGHTWARDS IN FORCED MODE
;**************************************************
FRONT
	MOVLW S8_DEF
	MOVWF PORTB
	CALL BREAK
	MOVLW S6_DEF
	MOVWF PORTB
	CALL BREAK
	MOVLW S4_DEF
	MOVWF PORTB
	CALL BREAK
	MOVLW S2_DEF
	MOVWF PORTB
	CALL BREAK

	RETURN
;**************************************************
;STEP BREAKING SUBROUTINE
;**************************************************
BREAK
	DECFSZ WLOOP,1
	GOTO BREAK

	RETURN
;**************************************************
;WAIT LOOP ROUTINE
;**************************************************
WAIT          
DELAY_0  
	DECFSZ   COUNTA, 1
	GOTO    DELAY_0
DELAY_1
	DECFSZ  COUNTB, 1
	GOTO    DELAY_1
DELAY_2  
	DECFSZ   COUNTA, 1
	GOTO    DELAY_2
DELAY_3
	DECFSZ  COUNTB, 1
	GOTO    DELAY_3
DELAY_4  
	DECFSZ   COUNTA, 1
	GOTO    DELAY_4
DELAY_5
	DECFSZ  COUNTB, 1
	GOTO    DELAY_5
DELAY_6  
	DECFSZ   COUNTA, 1
	GOTO    DELAY_6
DELAY_7
	DECFSZ  COUNTB, 1
	GOTO    DELAY_7
DELAY_8  
	DECFSZ   COUNTA, 1
	GOTO    DELAY_8
DELAY_9
	DECFSZ  COUNTB, 1
	GOTO    DELAY_9
DELAY_10  
	DECFSZ   COUNTA, 1
	GOTO    DELAY_10
DELAY_11
	DECFSZ  COUNTB, 1
	GOTO    DELAY_11
DELAY_12  
	DECFSZ   COUNTA, 1
	GOTO    DELAY_12
DELAY_13
	DECFSZ  COUNTB, 1
	GOTO    DELAY_13
DELAY_14  
	DECFSZ   COUNTA, 1
	GOTO    DELAY_14
DELAY_15
	DECFSZ  COUNTB, 1
	GOTO    DELAY_15
	RETURN
;**************************************************
;UniDrive V1.1 FW END
;**************************************************
MOVE_END
	END
