La salle dispose de trois guichets donneurs de service. Chaque guichet dispose d’un bouton d’appel de client, un autre bouton de fermeture de guichet et un afficheur situé au dessus du guichet. Si l’administrateur de guichet appuie sur le bouton d’appel de client, le numéro demandé s’affiche sur l’afficheur de guichet et sur un autre afficheur au milieu de la salle d’attente. Si l’administrateur de guichet appuie sur le bouton de fermeture, le symbole de fermeture (FE) s’affiche sur l’afficheur de guichet. Le système électronique réalisé doit contrôler l’état des boutons disponibles dans chaque guichet pour incrémenter le numéro d’appel de clients et permet de donner en fin de journée le nombre de client traités par chaque guichet.


- un bouton d’appel de client
- un bouton de fermeture de guichet
- un afficheur 7 segments pour afficher le numéro de client
Programmation en mikroC
Une partie du code source
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374if(portd.f1==0) // FE1
{
while (portd.f2!=0)
{
FE1 :
if (portc.f1==0) goto FE;
affichageNG(k);
bcd(max3(t,y,z));affichagemax(d1,d2);
bcd(t); affichage3(d1,d2);
porta.f0=0;portb=segment[10];porta.f0=1;delay_ms(1);
porta.f0=0;portb=segment[11];porta.f1=1;delay_ms(1);
bcd(z); affichage2(d1,d2);
if(portd.f3==0)
{
if(max3(t,y,z)==99) t=y=z=0;
z=max3(t,y,z)+1; s2++;
k=2 ; delay_ms(300);
}
if(portd.f5==0)
{
if(max3(t,y,z)==99) t=y=z=0;
t=max3(t,y,z)+1; s3++;
k=3; delay_ms(300);
}
if(portd.f4==0) // FE1 et FE2
{ while (portd.f3!=0)
{ if (portc.f1==0)goto FE;
affichageNG(k);
bcd(max3(t,y,z));affichagemax(d1,d2);
bcd(t);
affichage3(d1,d2);
porta.f0=0;portb=segment[10];porta.f0=1;delay_ms(1);
porta.f0=0;portb=segment[11];porta.f1=1;delay_ms(1); porta.f1=0;
porta.f2=0;portb=segment[10];porta.f2=1;delay_ms(1);
porta.f2=0;portb=segment[11];porta.f3=1;delay_ms(1); porta.f3=0;
if(portd.f5==0)
{if(max3(t,y,z)==99) t=y=z=0;
t=max3(t,y,z)+1; s3++;
k=3; delay_ms(300);
}
if(portd.f2==0) goto FE2 ;
}
}
if(portd.f6==0) // FE1 et FE3
{
while (portd.f5!=0)
{ if (portc.f1==0)goto FE;
affichageNG(k);
bcd(max3(t,y,z));affichagemax(d1,d2);
portd.f0=0;portb=segment[10];portd.f0=1;delay_ms(1);
portd.f0=0;portb=segment[11];portc.f4=1;delay_ms(1);portc.f4=0;
porta.f0=0;portb=segment[10];porta.f0=1;delay_ms(1);
porta.f0=0;portb=segment[11];porta.f1=1;delay_ms(1);
bcd(z);
affichage2(d1,d2);
if(portd.f3==0)
{
if(max3(t,y,z)==99) t=y=z=0;
z=max3(t,y,z)+1; s2++;
k=2 ; delay_ms(300);
}
if(portd.f2==0)goto FE3;
}
}
}
}
Enregistrer un commentaire
Click to see the code!
To insert emoticon you must added at least one space before the code.