Вы находитесь на странице: 1из 29

AU 2014-2015

Université de Sousse
Institut Supérieur d'Informatique et des Techniques
de Communication – Hammam Sousse (ISITCom)

Travaux Pratiques
Programmation C Embarqué
Cas des Microcontrôleurs PIC

3éme année Licence Appliquée en Technologies des


Communications (3LAT)

Groupe :…………………………………………………………………………………………..

Nom et Prénom :………………………………………………………………………………………….

………………………………………………………………………………………………………………..
TP Programmation C Embarqué

Descriptif
Ces séances de travaux pratiques (TP) sont destinées à illustrer les notions qui ont été
présentées durant les séances de cours. Les étudiants sont amenés à concevoir et à
tester un certain nombre des programmes en langage C embarqué. L’objectif général
visé est qu’à l’issue de ces travaux pratiques, les étudiants seront capables de définir
l’environnement extérieur du PIC (électronique d’interfaçage et de commande)
depuis un cahier des charges et de pouvoir le programmer en langage C.

Ce travail de laboratoire est prévu sur 7 séances de 1 heure 30 chacune. Seront traités
dans ce travail : les microcontrôleurs en général, les PICs en particulier, avec leurs
possibilités. Egalement seront traités, le matériel et les logiciels nécessaires à leur
programmation et les bases du langage C adapté aux PICs et en particulier le
PIC16F84 en utilisant comme compilateur le MikroC. Ce PIC est inclut dans un
montage électronique réaliser sous ISIS et sous le quel on simule son fonctionnement.

Contenu
Les exemples traités seront : clignotement des LEDs, commande d’un moteur pas à
pas, mesure de la température avec un capteur de type LM35, gestion d’un afficheur
LCD et des afficheurs 7 segments, gestion d’un clavier, etc.

Connaissances préalables recommandées


Les pré-requis nécessaires sont :

− Connaissances du langage de programmation C ;


− Représentation de données en machine ;
− Logique binaire et systèmes numériques ;
− Notions de l’électricité de base (lois des mailles et lois des nœuds, etc.).

Logiciels à disposition

− Compilateur MikroC ;
− ISIS ;

Avant de commencer
Pour chaque tâche que vous aurez à réaliser, nous vous invitons à enregistrer votre
programme sous un nom particulier pour garder une sauvegarde du travail. Pour
faciliter le débogage et assurer la maintenance et la portabilité de vos codes, il est
primordial que vous commenciez par rédiger un algorigramme, que vous
commentiez clairement votre programme et que vous pensiez à le rendre le plus clair
possible.

Concernant l'évaluation de votre travail, nous vous demanderons de nous présenter


le programme correspondant à chaque tâche que vous aurez à programmer sur le
simulateur. Nous corrigerons également vos codes en portant une attention
particulière à la lisibilité.

AU 2014-2015 2
TP Programmation C Embarqué

Evaluation
Le travail est effectué en binômes. Un compte rendu sera exigé à l’issue de chaque
TP. Notant aussi que des préparations doivent être impérativement faites avant
chaque séance. La note finale sera fonction d’une note de participation/travail, d’une
note des comptes rendus et de la note de l’examen TP.

Références
J.Auvray « Electronique des signaux analogiques» Dunod

RA. Deluzurieux, M.Rami « Electronique analogique » Eyrolles

M. Girard « Amplificateur opérationnels » McGraw-Hill

« http://www.zonetronik.com » Consulté Septembre 2010

« http://www.lelectronique.com» Consulté Septembre 2010

« http://www.datasheetarchive.com » Consulté Septembre 2010

« http://www.vgies.com » Consulté Septembre 2010

AU 2014-2015 3
Programmation C Embarqué TP n°1

TP n°1
L’objectif de ce TP est d’écrire un programme C sous MikroC qui utilise les LEDs et les
boutons poussoirs, d'implanter et de simuler ce programme sur ISIS et de faire des
investigations pertinentes.

Exercice 1
On désire clignoter un LED à l’aide d’un microcontrôleur 16F84A comme donnée par
la figure suivante :

Figure 1 : Commande de clignotement d’une LED via un microcontrôleur 16F84A.

Le fonctionnement normal est décrit par le chronogramme suivant :

Figure 2 : Chronogramme de fonctionnement.

1) Proposer un algorigramme répondant à ce cahier de charge.

2) Ecrire le programme MikroC correspondant à ce cahier de charge.

AU 2014-2015 4
Programmation C Embarqué TP n°1

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
Exercice 2
On désire automatiser la gestion des LEDs tricolores à l’aide d’un microcontrôleur
16F84A comme le montre la figure 3.

Figure 3 : Commande de 3 LED tricolores via un microcontrôleur 16F84A.

1) Ecrire un programme MicroC qui permet de faire clignoter les 3 LEDs tricolores
simultanément. Le fonctionnement normal est décrit par le chronogramme
suivant :

Figure 4 : Chronogramme de fonctionnement.

AU 2014-2015 5
Programmation C Embarqué TP n°1

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
1) On désire automatiser la gestion de feux tricolores, réglant la circulation d’un
carrefour à deux voies. Le cahier des charges stipule la possibilité de moduler les
temporisations par l’opérateur en fonction de la densité de la circulation. L’étude
se limitera à un seul feu et le fonctionnement normal est décrit par le
chronogramme donné par la figure 5. Proposer un algorigramme répondant à ce
cahier de charge.

AU 2014-2015 6
Programmation C Embarqué TP n°1

Figure 5 : Chronogramme de fonctionnement.

3) Ecrire le programme MikroC correspondant à ce cahier de charge.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
Exercice 3
On désire commander deux LEDs à l’aide d’un interrupteur via un microcontrôleur
PIC 16F84A comme donnée par la figure 6.

Figure 6 : Commande de deux LEDs à l’aide d’un interrupteur via un PIC 16F84A.

AU 2014-2015 7
Programmation C Embarqué TP n°1

1) Ecrire un programme MicroC qui permet de faire allumer et éteindre les deux
LEDs par un l’interrupteur.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

2) Ecrire un programme MicroC qui permet d’indiquer l’état ouvert ou fermé de


l’interrupteur :
− LED Bleu allumée : interrupteur ouvert.
− LED Vert allumée : interrupteur fermé.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 8
Programmation C Embarqué TP n°1

Exercice 4
On désire commander deux LEDs à l’aide de deux boutons poussoirs via un
microcontrôleur 16F84A comme donnée par la figure 7.

Figure 7 : Commande de deux LEDs à l’aide de deux boutons poussoirs via un PIC 16F84A.

Ecrire un programme MicroC qui permet de faire allumer la LED bleu pour une
durée de 300ms et la LED verte pour une durée de 500ms suite à l’action de l’un de
deux boutons poussoirs.

1) Proposer un algorigramme répondant à ce cahier de charge.

AU 2014-2015 9
Programmation C Embarqué TP n°1

2) Ecrire le programme MikroC correspondant à ce cahier de charge.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 10
Programmation C Embarqué TP n°2

TP n°2
L'objectif de ce TP est de faire concevoir et tester des programmes relatifs à la réalisation d’un
télérupteur et d’une minuterie.

Exercice 1
On désire commander une LED par plusieurs endroits à l’aide d’un microcontrôleur
16F84A via des boutons poussoir BPi (BP1, BP2.......BPn)

Figure 1 : Réalisation d’un télérupteur à l’aide un PIC 16F84A.

Une impulsion sur l’un des boutons poussoir BPi, la LED D s’allume, une deuxième
impulsion la LED s’éteint.

1) Proposer un algorigramme répondant à ce cahier de charge.

AU 2014-2015 11
Programmation C Embarqué TP n°2

2) Ecrire un programme MikroC qui répond au cahier de charge.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

Exercice 2
On désire réaliser une minuterie d’escalier à 3 temps réglable (1min, 3min, 5min) à
l’aide d’un microcontrôleur 16F84A.

Figure 2 : Réalisation d’une minuterie d’escalier à 3 temps réglable à l’aide d’un PIC 16F84A.

Le principe de fonctionnement est le suivant :

− Une impulsion sur l’un des boutons poussoir BPi, la LED D s’allume pendant
un temps T puis s’éteint.
− Deux imputions successive est sans effet.
− Le temps est réglable par un commutateur C à trois positions.

AU 2014-2015 12
Programmation C Embarqué TP n°2

1) Proposer un algorigramme répondant à ce cahier de charge.

2) Ecrire un programme MikroC qui répond au cahier de charge.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 13
Programmation C Embarqué TP n°3

TP n°3
L'objectif de ce TP est de prendre en main la commande d’afficheurs 7 segments et des
compteurs et des décompteurs.

Exercice 1
On désire commander un afficheur à 7 segments à fin de réaliser un compteur
modulo 10 à l’aide d’un microcontrôleur 16F84A.

Figure 1 : Commande d’un afficheur 7 segments via un PIC 16F84A.

1) Remplir la table de vérité suivant de l’afficheur à 7 segments.

Segment G F E D C B A
PortB
DCBA RB6 RB5 RB4 RB3 RB2 RB1 RB0

0000 0 1 1 1 1 1 1 $3F
0001
0010
0011
0100
0101
0110
0111
1000
1001

AU 2014-2015 14
Programmation C Embarqué TP n°3

2) Ecrire un programme MikroC qui permet de réaliser le fonctionnement suivant :


− Compteur modulo 10 commandé par l’interrupteur 1.
− Décompteur modulo 10 commandé par l’interrupteur 2.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
3) Ecrire un programme MikroC qui permet de réaliser le fonctionnement suivant :
− Compteur des nombres pairs commandé par l’interrupteur 1.
− Compteur des nombres impairs commandé par l’interrupteur 2.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 15
Programmation C Embarqué TP n°3

Exercice 2
On désire réaliser un compteur modulo 100 par deux afficheurs multiplexés à l’aide
d’un microcontrôleur 16F84A.

Figure 2 : Commande de deux afficheurs multiplexés via un PIC 16F84A.

Ecrire un programme MikroC qui permet de réaliser le compteur modulo 100. Les
deux pines RA0 et RA1 permette de sélectionner l’un de deux afficheurs 7 segments.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 16
Programmation C Embarqué TP n°4

TP n°4
En première partie, l'objectif de ce TP est de prendre en main avec la commande d’un moteur
pas à pas via un PIC16F84. La deuxième partie comprend la commande d’un afficheur 7
segments via un clavier. En troisièmes partie, l’objectif est maitriser une chaine simplifier de
traitement du signal, elle s’intéresse à l’acquisition d’un signal analogique (Dans notre cas la
température via un capteur LM35), le traiter puis afficher sa valeur sur un afficheur LCD.

Exercice 1
On désire commander un moteur pas à pas à l’aide d’un PIC 16F84A (figure 1)
conformément au chronogramme illustré par la figure 2 :

Figure 1 : Commande d’un moteur pas à pas à l’aide d’un PIC 16F841.

Figure 2 : Chronogramme de fonctionnement du moteur pas à pas commandé par un PIC16F84A.

1) Selon le schéma du circuit logique, déterminer la valeur du registre TRISB :

TRISB = (…………………)16

AU 2014-2015 17
Programmation C Embarqué TP n°4

2) A partir du chronogramme du moteur pas à pas, remplir sa table de vérité

suivante:

Cycle RA5 RA3 RA2 RA1 RA0 PORTA

1
Marche 2
AV 3
4
5
Arrêt 0 0 0 0 0 $00
1
Marche 2
AR 3
4
5

3) Compléter l’algorithme suivant qui correspond au cahier de charge proposé.

Algorithme moteur_pas_pas;
variable i : integer ;
Constante sequence : array[5]of byte = ($......,$.......,$.......,$.......$.....);
Début
Trisa = $........; Trisb = $........; Porta = $........;
Tant que (1=1) faire
Début
Selon porta
$...........: Pour i = 4 downto 0 Faire
Début
.....................................;
.....................................;
Fin pour;
$...........: Portb = 0;
$...........: Pour i = 0 to 4 Faire
Début
.....................................;
.....................................;
Fin pour;
Fin Selon ;
Fin tant que ;
Fin;

AU 2014-2015 18
Programmation C Embarqué TP n°4

4) Transformé cet algorithme en programme MikroC.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

Exercice 2
On désire commander un afficheur à 7 segments à l’aide d’un microcontrôleur
16F84A via un clavier à 12 touches (Figure 3).

Le principe de fonctionnement est le suivant :

− L’appui sur une touche de 0 à 9 affiche sa valeur sur l’afficheur 7 segments.


− L’appui sur la touche (*) affiche la lettre E sur l’afficheur 7 segments.
− L’appui sur la touche (#) affiche la lettre F sur l’afficheur 7 segments.

AU 2014-2015 19
Programmation C Embarqué TP n°4

Figure 3: Commande d’un afficheur 7 segments via un PIC 16F841.

1) Ecrire le programme MikroC qui répond à ce cahier de charge.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 20
Programmation C Embarqué TP n°4

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

Exercice 3
On souhaite réaliser un thermomètre programmable à base d’un PIC. Ce système est
constitué d’une partie analogique (capteur de température, amplificateur et
résistances) et d’une partie numérique (PIC 16f877A et un afficheur LCD 2x16). La
configuration du thermomètre programmable est donnée par le schéma synoptique
de la figure 4:

Figure 4: Schéma synoptique d’un thermomètre programmable.

AU 2014-2015 21
Programmation C Embarqué TP n°4

1) Calculer le gain de l’amplificateur puis en déduire la valeur de la résistance R2 si


R3= 1k Ω .
− Sachant que le capteur LM35 a une sensibilité de 10mV/°C.
− Soit pour une température Tmax = 100°C la tension VT(max) = 1V et la tension
Vout(max) = 5V.
− La plage du thermomètre est de [0°C à 100°C].

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
2) Ecrire un programme MikroC illustrant l'acquisition de la tension Vout, via le
convertisseur analogique numérique du PIC (AN0), et l'affichage de la
température correspondante.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 22
Programmation C Embarqué TP n°4

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 23
Programmation C Embarqué TP n°5

TP n°5
Ce TP est composé de deux parties : L'objectif de la première est de commander les feux de
clignotement d’un scooter équipé de 4 feux de direction. L’objectif de la deuxième est de savoir
commander, via un PIC, un vérin pneumatique à double effet.
effet

Exercice 1
On désir commander les feux de clignotement
clignotement d’un scooter à l’aide d’un PIC 16F84A
comme illustré par la figure 1. Le scooter est équipé de 4 feux de direction : deux à
gauche et deux à droite (en avant et en arrière). Le conducteur du scooter dispose, au
niveau de la poignée du guidon d’un d’un commutateur (Clign) à 3 positions. Ce
commutateur une fois positionné à gauche ou à droite par le conducteur, enclenche
simultanément à la fréquence de 2Hz, le clignotement des deux feux correspondants
accompagné d’un bip sonore. Le retour du commutateur
commutateur à la position milieu se fait
automatiquement après alignement du scooter sur la route.

Figure 1: Commande des feux de clignotement d’un scooter à l’aide d’un PIC 16F84A.

AU 2014-2015 24
Programmation C Embarqué TP n°5

1) A partir de la figure 1, compléter les affectations des deux registres TRIS A et


TRIS B.

RA4 RA3 RA2 RA1 RA0


TRIS A
0 0 0 0 0 0 …… .......

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0


TRIS B
0 0 0 0 0 …… ....... .......

2) Proposer un algorigramme répondant à ce cahier de charge.

AU 2014-2015 25
Programmation C Embarqué TP n°5

3) Ecrire le programme MikroC du clignotant assurant la commande des feux.

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 26
Programmation C Embarqué TP n°5

Exercice 2
On désire commander le vérin pneumatique C1 à double effet (figure 2) à l’aide d’un
PIC16F84A.

Figure 2: Commande d’un vérin pneumatique.

− Le pré actionneur M1 est un distributeur qui distribue l’énergie fournie sans


apporter aucune modification.
− Le capteur l11 est utilisé pour arrêtée l’avancement.
− Le capteur l10 est utilisé pour arrêtée la recule.

Le vérin est commandé via un seul bouton poussoir départ cycle en avance et en
recul. Une impulsion sur le bouton poussoir déplace le vérin d’une position à une
autre.

Un afficheur LCD indique l’état et la position du vérin comme illustré par la figure 3 :

− Au cours de l’avancement, l’afficheur LCDL doit afficher « Sortie Vérin ».


− Au cours du recule, l’afficheur LCD doit afficher « Recule Vérin ».
− A la position l11, l’afficheur LCD doit afficher « P en Bas ».
− A la position l10, l’afficheur LCD doit afficher « P en Haut ».
1) Compléter le branchement
hement du circuit de commande du vérin dans la figure 3 :
− Le bouton poussoir départ cycle BP.
− Une LED rouge indique l’avancement du vérin.
− Une LED bleu indique le recul du vérin.
− Un interrupteur K11 modalisant le fonctionnement du capteur l11.
− Un interrupteur K10 modalisant le fonctionnement du capteur l10.

AU 2014-2015 27
Programmation C Embarqué TP n°5

Figure 3: Commande d’un vérin pneumatique via un PIC 16F84A.

1) Proposer un algorigramme répondant à ce cahier de charge.

AU 2014-2015 28
Programmation C Embarqué TP n°5

4) Ecrire le programme MikroC qui repond à ce cahier des charges..

…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...
…………………………………………………………………………………………………...

AU 2014-2015 29