You are on page 1of 2

processor 16f88

INCLUDE <P16F88.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CounterA EQU 0X0C
CounterB EQU 0X0D
CounterC EQU 0X0E
CounterD EQU 0X0F
CounterE EQU 0X10
CounterF EQU 0X11
CounterG EQU 0X12
#DEFINE SENS_ADE PORTA,0
#DEFINE SENS_TRA PORTA,1
#DEFINE LIN_ADE PORTB,0
#DEFINE LIN_TRA PORTB,1
BSF STATUS,RP0
MOVLW 0X0F
MOVWF TRISB
MOVLW 0XFF
MOVWF TRISA
BCF STATUS,RP0
CLRF PORTB
BSF PORTA,2
call RET_5S
INICIO
BTFSC SENS_ADE
GOTO LINEA_A1
BTFSC SENS_TRA
GOTO LINEA_TRA1
GOTO NO_OPONENTE
GOTO INICIO
LINEA_A1
BTFSS LIN_ADE
GOTO AVANZA_ATRAS1
GOTO AVANZA_ADELANTE
LINEA_TRA1
BTFSS LIN_TRA
GOTO AVANZA_ADELANTE1
GOTO AVANZA_ATRAS
NO_OPONENTE
BTFSS LIN_ADE
GOTO AVANZA_ATRAS1
BTFSS LIN_TRA
GOTO AVANZA_ADELANTE1
GOTO GIRAR
AVANZA_ADELANTE
MOVLW 0X50
MOVWF PORTB
GOTO INICIO
AVANZA_ATRAS1
MOVLW 0XA0
MOVWF PORTB
CALL RET_2
GOTO INICIO
AVANZA_ADELANTE1
MOVLW 0X50
MOVWF PORTB
CALL RET_2
GOTO INICIO
AVANZA_ATRAS
MOVLW 0XA0
MOVWF PORTB
GOTO INICIO

GIRAR
MOVLW 0X90
MOVWF PORTB
GOTO INICIO
RET_2
movlw D'11'
movwf CounterG
movlw D'38'
movwf CounterF
movlw D'93'
movwf CounterE
loop decfsz CounterE,1
goto loop
decfsz CounterF,1
goto loop
decfsz CounterG,1
goto loop
retlw 0
RET_5S
movlw D'26'
movwf CounterC
movlw D'94'
movwf CounterB
movlw D'109'
movwf CounterA
loop1 decfsz CounterA,1
goto loop
decfsz CounterB,1
goto loop
decfsz CounterC,1
goto loop1
retlw 0
END

You might also like