Vous êtes sur la page 1sur 3

LIST P=16F84A

INCLUDE "P16F84A.INC"
__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 CDIGOS
*****************************************************************
ORG 0

Inicio:
bsf STATUS,RP0 ; Selecciona Banco 1 de registros.
bsf TRISA,0 ; Estas lneas se configuran como entrada.
bsf TRISA,1
bsf TRISA,2
clrf TRISB ; Las lneas del Puerto B se configuran como salidas.
bcf STATUS,RP0 ; Selecciona Banco 0 de registros.
movlw b'00001010'
movwf PORTB
again7
btfsc PORTA,2
goto atras
Principal:
btfsc SensorDerecha ; Ha salido por la derecha?, detecta blanco?
goto salta

btfsc SensorIzquierda; por la izquierda 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 derecho est encima de la lnea
; negra, gira a la derecha.
btfsc SensorIzquierda ; Ha salido tambin la izquierda?
goto salta1
btfsc SensorDerecha ;por la derecha tambien tambien?
goto no_2
movlw 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 izquierda tambien?
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 lnea
; negra, gira a la derecha.
btfsc SensorIzquierda ; Ha salido tambin la izquierda?
goto salta111
btfsc SensorDerecha ;por la derecha tambien tambien?
goto no_21
movlw b'00001001' ; dar vueltas.
goto ActivaSalida ;
no_21:
movlw b'00000001' ; Para girar a la izquierda.
goto ActivaSalida ;
salta111:

; No, est en el borde derecho. Sigue recto.

movlw b'00000101'
goto ActivaSalida
END