Vous êtes sur la page 1sur 5

Université M’hamed Bougara

Faculté de technologie
Département Ingénierie des Systèmes Électriques et Électroniques

Master 1 électronique des systèmes embarques


TEST du TP Réalisation des projets
Durée : 1heure
Enseignante : Mme H. TOUATI
Nom :…………………………………………. Prénom :……………………………………. La note :……………….

Exercice 1 : 6pts
Voici le schéma (Figure1)
1.1. Ecrivez par deux méthodes un code en MIKRO C qui exécute les taches suivantes :
 D1 et D3 s’allument quand D2 est éteint
 D2 s’allumer quand D1 et D3 sont éteintes.

Figure 1

[1]
La solution
La première méthode 3pts

void main() {
TRISA=0xff;
TRISB=0x00;
while(1){
if(PORTA.F3==1){
PORTB.F1=1;
PORTB.F6=1;
}
else{
PORTB.F1=0;
PORTB.F6=0;
}
if(PORTB.F1 ==0 && PORTB.F6==0){
PORTB.F3=1;
}
else
PORTB.F3=0;

}
}

[2]
La deuxième méthode 3pts

void main() {
TRISA=0xff;
TRISB=0x00;
while(1){
if(PORTA.F3==1){
PORTB.F3=1;
}
else{
PORTB.F3=0;
}
if(PORTB.F3 ==0 ){
PORTB.F1=1;
PORTB.F6=1;
}
else {
PORTB.F1=0;
PORTB.F6=0;
}
}
}

[3]
Exercice 2 4pts (3pts sur le code et 1pt sur les commentaires)
Voici le schéma (Figure 2)
Ecrivez un code bien commenté en MIKRO C qui permet :
 D’allumer D1 et D2 quand vous fermer le premier interrupteur
 D3 et D4 va clignoter quand vous fermer le deuxième interrupteur

Figure 2
La solution

[4]
void main() {

TRISA=0x00; // configurer PORTA comme sortie

TRISB=0xff; //configurer PORTB comme entrée

while(1){ //Boucle infinie

if(PORTB.F4==1 && PORTB.F7==1) {// les 2 boutons sont appuyées en même temps

PORTA.F0=1;//D1 va allumer

PORTA.F2=1; //D4 va clignoter

PORTA.F1=1; //D2 va allumer

PORTA.F3=1; //D3 va clignoter

delay_ms(100); //délais de 0.1s

PORTA.F1=0;

PORTA.F3=0;

delay_ms(100);

else if ( PORTB.F4==0 || PORTB.F7==0 ){ //on va ouvrir l’interrupteur 1 ou l’interrupteur 2

PORTA=0x00;//les leds s’éteignant

} }

[5]

Vous aimerez peut-être aussi