void main(){
unsigned int v0,v1,v2,v3,v5;
ADC_Init(); // Initialize ADC module with default set
TRISA = 0xFF; // PORTA is input
TRISB = 0; // PORTB is output
PORTB=0X00;
PORTA=0X00;
ADCON1=0x0F;
// cnt = 0; // Reset counter
while(1); {
ADCON0=0b11000101; // Configure chanal 0
delay_us(3000);
v0 = ADC_Read(0); // Get 10-bit results of AD conversion
delay_us(3000);
ADCON0=0b11001101; // Configure chanal 1
delay_us(3000);
v1 = ADC_Read(1); // Get 10-bit results of AD conversion
delay_us(3000);
ADCON0=0b11100101; // Configure chanal 4
delay_us(3000);
v5 = ADC_Read(5); // Get 10-bit results of AD conversion
delay_us(3000);
if ((v0>v5)||(v1>v5));
{if (v0>v1) // comparaison des tensions des capteurs LDR1 et LDR2 si v0>v1
{
PORTB.f0=1; // pour tourné le moteur dans le sens 1 la sortie de pic RB0==1 et RB1==0
PORTB.f1=0; // PORTB.1=0;
}
else // sinon
{
PORTB.f0=0; // pour tourné le moteur dans le sens 1 la sortie de pic RB0==0 et RB1==1
PORTB.f1=1; // PORTB.1=0;
}
}
if ((v0<v5)&&(v1<v5));
{
PORTB.f0=0; // pour tourné le moteur dans le sens 1 la sortie de pic RB0==1 et RB1==0
PORTB.f1=0; // PORTB.1=0;
}
//SENS VERTICALE;
ADCON0=0b11010101; // Configure chanal 2
delay_us(3000);
v2 = ADC_Read(2); // Get 10-bit results of AD conversion
delay_us(3000);
ADCON0=0b11011101; // Configure chanal 3
delay_us(3000);
v3 = ADC_Read(3); // Get 10-bit results of AD conversion
delay_us(3000);
ADCON0=0b11100101; // Configure chanal 4
delay_us(3000);
v5 = ADC_Read(5); // Get 10-bit results of AD conversion
delay_us(3000);
if ((v2>v5)||(v3>v5));
{if (v2>v3) // comparaison des tensions des capteurs LDR2 et LDR3 si v2>v3
{
PORTB.f2=1; // pour tourné le moteur dans le sens 1 la sortie de pic RB2==1 et RB3==0
PORTB.f3=0;
}
else // sinon
{
PORTB.f2=0; // pour tourné le moteur dans le sens 1 la sortie de pic RB0==0 et RB1==1
PORTB.f3=1; // PORTB.1=0;
}
}
if ((v2<v5)&(v3<v5));
{
PORTB.f2=0; // pour tourné le moteur dans le sens 1 la sortie de pic RB2==0 et RB3==1
PORTB.f3=0;
}
}
}