Crear sumobot, control de un motor a pasos

Hola a todos espero puedan ayudarme, necesito hacer un sumobot controlado con un joystick, tengo que usar un pic 16f877 pero tambien tengo que usar un motor a pasos unipolar para la direccion es decir si empujo el joystick --> tiene que girar 70 pasos a la derecha y mover las llantas (ese es mi mayor problema) , aparte debe tener una pala mecanica que al presionar el boton del joystick por favor ayudenme con mi programa aqui les dejo lo que he hecho hasta ahorita. tmbn se escuchan propuestas para la carcasa por favor jejej

usare estas combinaciones para el joystick

00010000 adelante
00001000 izquierda
00000100 atras
00000010 derecha
00000001 pala


list=p16f877
#include <p16f877.inc>
cblock0x20
contador
checa
endc
org 0x00
bsf STATUS,RP0
movlw 0xFF
movwf TRISB ;configurar puertob como entrada
movlw 0X00
movwf TRISD
bcf STATUS,RP0
movfw PORTB ;mandar palabra de entrada en puertob al acumulador
movwf checa ;mandar acumulador a "checa"
movlw b'1001' ;mover palabra 1001 al acumulador para asi checar si esta pulsado adelante derecha
subwf checa,w ;restar checa al acumulador
btfss STATUS,Z ;si el acumulador es 0 salta para ir a giraderecha

;aqui estoy trabado pk pienso que podria checar asi cada una de las combinaciones y ya la que sea pss ya mandar a gira derecha o gira izquierda respectivamente pero recordar que pulsar el boton derecho solo gira las llantas mas no avanza hasta que se presione adelante derecha o atras derecha

giraderecha call Tabla
incf contador
movlw .70
subwf contador,w
btfss STATUS,Z
goto giraderecha
btfss PORTB,2
goto posicion0
goto gira derecha


Tabla addw PCL,F ;controlar el motor a pasos que gire a la derecha
retlw 1000
0100
0010
0001

Tabla2 addw PCL,F ;para que el motor gire izquierda
retlw 0001
0010
0100
1000
[/code]
 
Atrás
Arriba