Programa Para Seguidor De Linea
INCLUDE
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
#DEFINE SensorDerecha PORTA,0 ; Sensor óptico Derecho.
#DEFINE SensorIzquierda PORTA,1 ; Sensor óptico Izquierdo.#DEFINE RETRO PORTA,2 ; SWITCH
; ZONA DE CÓDIGOS *****************************************************************
ORG 0
Inicio:
bsf STATUS,RP0 ; Selecciona Banco 1 de registros.
bsfTRISA,0 ; Estas líneas se configuran como entrada.
bsf TRISA,1
bsf TRISA,2
clrf TRISB ; Las líneas del Puerto B se configuran como salidas.
bcf STATUS,RP0 ; Selecciona Banco 0 de registros.movlw b'00001010'
movwf PORTB
again
btfsc PORTA,2
goto atras
Principal:
btfsc SensorDerecha ; ¿Ha salido por la derecha?, ¿detecta blanco?
goto salta
btfsc SensorIzquierda; ¿por laizquierda tambien?
goto no_1
movlw b'00001001' ; dar vueltas.
goto ActivaSalida ;
no_1:
movlw b'00001000' ; Para girar a la derecha.
goto ActivaSalida ;
salta: ;No, el detector derechoestá encima de la línea
; negra, gira a la derecha.
btfsc SensorIzquierda ; ¿Ha salido también la izquierda?
goto salta1
btfsc SensorDerecha ;¿por la derecha tambien tambien?
goto no_2movlw b'00000110' ; dar vueltas.
goto ActivaSalida ;
no_2:
movlw b'00000010' ; Para girar a la izquierda.
goto ActivaSalida ;
salta1: ; No, está en el borde derecho. Sigue recto.movlw b'00001010'
ActivaSalida:
movwf PORTB
goto again
atras:
btfsc SensorDerecha ; ¿Ha salido por la derecha?, ¿detecta blanco?
goto salta11
btfsc SensorIzquierda; ¿por la izquierdatambien?
goto no_11
movlw b'00000110' ; dar vueltas.
goto ActivaSalida ;
no_11:
movlw b'00000100' ; Para girar a la derecha.
goto ActivaSalida ;
salta11: ;No, el detector derecho estáencima de la línea
; negra, gira a la derecha.
btfsc SensorIzquierda ; ¿Ha salido también la izquierda?
goto salta111
btfsc SensorDerecha ;¿por la derecha tambien tambien?
goto no_21...
Regístrate para leer el documento completo.