Algorithme
Tout ou Rien Exemple de programme C
#pragma symbols code debug
objectextend optimize(4)
#include <reg51.h>
#include <stdio.h>
//commandes par transistors MosFet
sbit MD=P3^1;
sbit MG=P3^0;
sbit LED=P3^5;
// Procédures d'interruptions
void STOP (void); // Int0 Fin de course
//Prog principal
void main (void)
{
P1=0xFF;
//INITs interruptions
EX0=1;IT0=0;EA=1;
//Programme de suivi de ligne tout ou rien
do
{
P1 = 0xFF;
capt = P1;
switch (capt) // codage de la position
{
case 0x7F : MD=1;MG=0;LED=1;break;
case 0x3F : MD=1;MG=0;LED=1;break;
case 0xBF : MD=1;MG=0;LED=1;break;
case 0x9F : MD=1;MG=0;LED=1;break; // Arret moteur Gauche
case 0xDF : MD=1;MG=0;LED=1;break;
case 0xCF : MD=1;MG=0;LED=1;break;
case 0xEF : MD=1;MG=1;LED=0;break;
case 0xE7 : MD=1;MG=1;LED=0;break; //position centrale
case 0xF7 : MD=1;MG=1;LED=0;break;
case 0xF3 : MD=0;MG=1;LED=1;break;
case 0xFB : MD=0;MG=1;LED=1;break;
case 0xF9 : MD=0;MG=1;LED=1;break; // Arret moteur Droit
case 0xFD : MD=0;MG=1;LED=1;break;
case 0xFC : MD=0;MG=1;LED=1;break;
case 0xFE : MD=0;MG=1;LED=1;break;
}
}
while(1);
}
// ****************************************************
void STOP (void) interrupt 0 //Arret
{
MD=0;MG=0;
for (;;);
}
|