LIST P=16f628A
INCLUDE<P16f628A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _BOREN_OFF & _PWRTE_ON & _MCLRE_OFF & _LVP_OFF & _XT_OSC
CBLOCK 0x20
Velocidad
ENDC
#DEFINE EntradaSentido PORTA,4
ORG 0
Inicio
bsf STATUS,RP0
movlw b'00011111'
movwf TRISA
clrf TRISB
bcf STATUS,RP0
movlw 0X07
movwf CMCON
Principal
movf PORTA,W
andlw b'00001111'
btfss STATUS,Z
goto ParaMotor
movlw .50
movwf Velocidad
btfsc EntradaSentido
goto A_Izquierda
call GiroDerecha
goto Fin
A_Izquierda
call GiroIzquierda
goto Fin
ParaMotor
clrf PORTB
Fin goto Principal
SeleccionaVelocidad
addwf PCL,F
DT 0,d'75',d'70',d'65',d'60',d'55',d'50',d'45',d'40'
DT ,d'35',d'30',d'25',d'20',d'15',d'10',d'5'
GiroIzquierda
movlw b'00110101'
call ActivaSalida
movlw b'00110110'
call ActivaSalida
movlw b'00111010'
call ActivaSalida
movlw b'00111001'
call ActivaSalida
return
GiroDerecha
movlw b'00111001'
call ActivaSalida
movlw b'00111010'
call ActivaSalida
movlw b'00110110'
call ActivaSalida
movlw b'00110101'
call ActivaSalida
return
CBLOCK
Contador
ENDC
ActivaSalida
movwf PORTB
movf Velocidad,W
movwf Contador
Retardo
call Retardo_1ms
decfsz Contador,F
goto Retardo
return
Retardo_1ms
movlw .145
movwf 0x39
a nop
nop
nop
nop
DECFSZ 0x39
GOTO a
END