@ DEVICE MCLR_OFF, XT_OSC, WDT_OFF, LVP_OFF, BOD_OFF, PWRT_OFF, PROTECT_OFF
DEFINE OSC 4 'define el oscilador a 4MHZ
CMCON = 7 'comparadores off
TrisA=%11111111 'todo el port A como entrada
TrisB=%00000000 'todo el port B como salida
PORTA = %11111111 'todo el port A en 1
PORTB = %00000000 'pone a cero todo el puerto b
derecho var porta.0
izquierdo var porta.1
pulso var portb.0
x var byte
low pulso
inicio:
pulsout pulso,100 'avanza si no hay bumper en contacto
if derecho=0 AND IZQUIERDO=1 then doblaizq 'ir a doblaizq si hay contacto en bumper derecho
if DERECHO=1 AND izquierdo=0 then doblader 'ir a doblader si hay contacto en bumper izquierdo
if derecho=0 and izquierdo=0 then retro 'ir a retro si ambos bumpers estan
goto inicio
doblader: 'contacto en bumper derecho, ir a la izquierda
for x=1 to 10
pulsout pulso,200
pause 200
next
for x=1 to 10
pulsout pulso,250
pause 200
next
goto inicio
doblaizq: 'contacto en bumper izquierdo, ir a la derecha
for x=1 to 10
pulsout pulso,250
pause 200
next
for x=1 to 10
pulsout pulso,200
pause 200
next
goto inicio
retro:
for x=1 to 10 'ambos bumpers en contacto
pulsout pulso,150 ' retrocede y dobla a la derecha
pause 200
next
for x=1 to 10
pulsout pulso,250
pause 200
next
goto inicio