Você está na página 1de 2

LIST P=16F84A

#INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC

REG1 EQU 0CH


REG2 EQU 0DH
REG3 EQU 0EH
REG4 EQU 10H
CONT EQU 11H
CONTR EQU 12H

reset org 00H ;pulsar reset


goto inicio
org 05h

inicio

bsf STATUS,RP0 ;elige el banco 1 pone a 1 RP0


movlw b'00000000' ;configura portB como salida
movwf TRISB
movlw b'00001111' ;configura portA como salida
movwf TRISA
bcf STATUS,5 ;elige el banco 0
clrf PORTA
clrf PORTB

sensores
btfss PORTA,1 ;CENTRO
goto ver_dere_izq
movlw b'00000101'
movwf PORTB
;call retardo100ms
btfsc PORTA,0 ;DERECHO
goto girar_dere
btfsc PORTA,2 ;IZQUIERDO
goto girar_izq
goto sensores

adelante
movlw b'00000101'
movwf PORTB
;call retardo100ms
goto sensores

girar_dere
movlw b'00000100'
movwf PORTB
;call retardo100ms
btfss PORTA,1 ;CENTRO
goto girar_dere
btfss PORTA,0 ;DERECHO
goto adelante
goto girar_dere

girar_izq
movlw b'00000001'
movwf PORTB
;call retardo100ms
btfss PORTA,1 ;CENTRO
goto girar_izq
btfss PORTA,2 ;IZQUIERDO
goto adelante
goto girar_izq

ver_dere_izq
btfss PORTA,0 ;DERECHO
goto ver_izq
btfsc PORTA,2 ;IZQUIERDO
goto adelante
goto girar_dere

ver_izq
btfss PORTA,2 ;IZQUIERDO
goto adelante
goto girar_izq

atras
movlw b'000001010'
movwf PORTB
call retardo100ms
goto sensores

parar movlw b'000000000'


movwf PORTB
call retardo100ms
goto sensores

retardo100ms
movlw .255
movwf REG1
cargarREG2
movlw .255
movwf REG2
decre1 decfsz REG2
goto decre1
decfsz REG1
goto cargarREG2
RETURN
END

Você também pode gostar