control de motores dc

buenas amigo estoy diseñando un programa en asm usando el pic 16f877 para controlar dos motores a ambos sentidos utilizando un driver de motores l293b las entradas al pic son señales digitales quiero que me ayuden en lo posible no soy muy bueno haciendo programas en asm y quisiera que me dijieran algun error que podria tener o cualquier otra cosa agradeciendo de ante mano a todos saludos

list p=16f877

#INCLUDE<P16F877.INC>
__CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC ; code protec off

adelante equ 0x10
derecha equ 0x11
izquierda equ 0x12
retrocede equ 0x13
entrada equ 0x14

org 0x00
goto inicio
org 0x10

inicio
movlw 0x2E
movwf adelante
movlw 0x25
movwf izquierda
movlw 0x2D
movwf derecha
movlw 0x36
movwf retrocede


clrf PORTA
bsf STATUS,5
movlw 0x06
movlw ADCON1
movlw 0x1f
movwf TRISA
bcf STATUS,5

clrf PORTB
bsf STATUS,5
movlw 0x06
movlw ADCON1
movlw 0x00
movwf TRISB
bcf STATUS,5

movwf PORTB

lee
movlw PORTA
andlw 0x1f
movf entrada,w
sublw 0x12
btfsc STATUS,Z
goto uno
movlw adelante
movwf PORTB
goto lee


uno
movlw entrada
sublw 0x14
btfsc STATUS,Z
goto dos
movlw izquierda
movwf PORTB
goto lee


dos
movlw entrada
sublw 0x16
btfsc STATUS,Z
goto tres
movlw derecha
movwf PORTB
goto lee

tres
movlw entrada
sublw 0x18
btfsc STATUS,Z
goto lee
movlw retrocede
movwf PORTB
goto lee

end
 
Atrás
Arriba