#include <18f4550.h>
#fuses INTRC_IO,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN   
#use delay(clock=4000000)

int distancia1, tiempo1;
int distancia2, tiempo2;
int distancia3, tiempo3;


#define trig1 pin_A1//////////1ER
#define echo1 pin_A0//////////ULTRASONICO
#define trig2 pin_A5//////////2DO
#define echo2 pin_A4//////////ULTRASONICO
#define trig3 pin_C1//////////3ER
#define echo3 pin_C0//////////ULTRASONICO
#USE standard_io(b)


void main()
{                          
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);  //INICIAMOS TIMER CON DVISIÓN 8//

while(1)
{
////////////////Primer Ultrasonico////////////////////////////////////////////
output_low(trig1);
delay_us(20);
output_high(trig1);                     //ACTIVAMOS EL DISPARO DURANTE 20 MICROSEGUNDOS// 
delay_us(20);                       
output_low(trig1);                      //APAGAMOS EL DISPARO//
while(!input(echo1))                    //ES UN WHILE NEGADO, MIENTRAS NO SE DETECTE NADA QUE ESTE CARGANDO EL TIMER EN 0 SIEMPRE//
{}
set_timer1(0);                         
while(input(echo1))                     //CUANDO YA DETECTO UN OBJETO QUE SUELTE EL TIMER1 Y NOS DE SU TIEMPO DE RETARDO//
{}

tiempo1=get_timer1();
distancia1=((tiempo1/2)*8)/(29.0);         //FORMULA PARA CM
if(distancia1<=10)
{
output_high(pin_a2);
output_low(pin_a3);
}
if(distancia1>=11)
{
output_high(pin_a3);
output_low(pin_a2);
}
delay_ms(200);

////////////////Segundo Ultrasonico////////////////////////////////////////////
output_low(trig2);
delay_us(20);
output_high(trig2);                     //ACTIVAMOS EL DISPARO DURANTE 20 MICROSEGUNDOS// 
delay_us(20);                       
output_low(trig2);                      //APAGAMOS EL DISPARO//
while(!input(echo2))                    //ES UN WHILE NEGADO, MIENTRAS NO SE DETECTE NADA QUE ESTE CARGANDO EL TIMER EN 0 SIEMPRE//
{}
set_timer1(0);                         
while(input(echo2))                     //CUANDO YA DETECTO UN OBJETO QUE SUELTE EL TIMER1 Y NOS DE SU TIEMPO DE RETARDO//
{}

tiempo2=get_timer2();
distancia2=((tiempo2/2)*8)/(29.0);         //FORMULA PARA CM
if(distancia2<=10)
{
output_high(pin_b1);
output_low(pin_b7);
}
if(distancia2>=11)
{
output_high(pin_b7);
output_low(pin_b1);
}
delay_ms(200);
////////////////Tercer Ultrasonico////////////////////////////////////////////
output_low(trig3);
delay_us(20);
output_high(trig3);                     //ACTIVAMOS EL DISPARO DURANTE 20 MICROSEGUNDOS// 
delay_us(20);                       
output_low(trig3);                      //APAGAMOS EL DISPARO//
while(!input(echo3))                    //ES UN WHILE NEGADO, MIENTRAS NO SE DETECTE NADA QUE ESTE CARGANDO EL TIMER EN 0 SIEMPRE//
{}
set_timer1(0);                         
while(input(echo3))                     //CUANDO YA DETECTO UN OBJETO QUE SUELTE EL TIMER1 Y NOS DE SU TIEMPO DE RETARDO//
{}

tiempo3=get_timer2();
distancia3=((tiempo3/2)*8)/(29.0);         //FORMULA PARA CM
if(distancia3<=10)
{
output_high(pin_c2);
output_low(pin_c4);
}
if(distancia3>=11)
{
output_high(pin_c4);
output_low(pin_c2);
}
delay_ms(200);
}///void main
}///while principal

