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 Prog C Embarqué · 2018-10-12 · 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

  • Upload
    others

  • View
    12

  • Download
    5

Embed Size (px)

Citation preview

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é

AU 2014-2015 2

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é.

TP Programmation C Embarqué

AU 2014-2015 3

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

Programmation C Embarqué TP n°1

AU 2014-2015 4

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.

Programmation C Embarqué TP n°1

AU 2014-2015 5

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

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.

Programmation C Embarqué TP n°1

AU 2014-2015 6

…………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... 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.

Programmation C Embarqué TP n°1

AU 2014-2015 7

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.

Programmation C Embarqué TP n°1

AU 2014-2015 8

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é.

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

Programmation C Embarqué TP n°1

AU 2014-2015 9

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.

Programmation C Embarqué TP n°1

AU 2014-2015 10

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

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

Programmation C Embarqué TP n°2

AU 2014-2015 11

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.

Programmation C Embarqué TP n°2

AU 2014-2015 12

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.

Programmation C Embarqué TP n°2

AU 2014-2015 13

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

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

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

Programmation C Embarqué TP n°3

AU 2014-2015 14

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

Programmation C Embarqué TP n°3

AU 2014-2015 15

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.

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

Programmation C Embarqué TP n°3

AU 2014-2015 16

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.

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

Programmation C Embarqué TP n°4

AU 2014-2015 17

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

Programmation C Embarqué TP n°4

AU 2014-2015 18

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

suivante:

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;

Cycle RA5 RA3 RA2 RA1 RA0 PORTA

Marche AV

1

2 3 4

5

Arrêt 0 0 0 0 0 $00

Marche AR

1

2 3 4

5

Programmation C Embarqué TP n°4

AU 2014-2015 19

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.

Programmation C Embarqué TP n°4

AU 2014-2015 20

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

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

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

Programmation C Embarqué TP n°4

AU 2014-2015 21

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

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.

Programmation C Embarqué TP n°4

AU 2014-2015 22

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.

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

Programmation C Embarqué TP n°4

AU 2014-2015 23

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

Programmation C Embarqué

AU 2014-2015

Ce TP est composé de deux partiesclignotement d’un scooter équipé de 4 feux de direction. commander, via un PIC, un vérin pneumatique à double effet

Exercice 1

On désir commander les feux de ccomme illustré par la figure 1. Le scooter est équipé de 4 feux de directiongauche et deux à droite (en avant et en arrière). Le conducteur du scooter dispose, au niveau de la poignée du guidon d’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 commutateuautomatiquement après alignement du scooter sur la route.

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

TP n°5 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 vérin pneumatique à double effet.

On désir commander les feux de clignotement d’un scooter à l’aide d’un PIC 16F84A comme illustré par la figure 1. Le scooter est équipé de 4 feux de directiongauche et deux à droite (en avant et en arrière). Le conducteur du scooter dispose, au niveau de la poignée du guidon 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 à 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.

TP n°5

24

est de commander les feux de L’objectif de la deuxième est de savoir

lignotement 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

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

r à la position milieu se fait

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

Programmation C Embarqué TP n°5

AU 2014-2015 25

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

TRIS A RA4 RA3 RA2 RA1 RA0

0 0 0 0 0 0 …… .......

TRIS B RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

0 0 0 0 0 …… ....... .......

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

Programmation C Embarqué TP n°5

AU 2014-2015 26

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

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

Programmation C Embarqué

AU 2014-2015

Exercice 2

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

Figure

− 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 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 L− Au cours du recule, l’afficheur LCD doit afficher «− A la position l11, l’afficheur LCD doit afficher «− A la position l10, l’afficheur LCD doit afficher «

1) Compléter le branchement 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 l− Un interrupteur K10 modalisant le fonctionnement du capteur l

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

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

Le pré actionneur M1 est un distributeur qui distribue l’énergie fournie sans apporter aucune modification.

est utilisé pour arrêtée l’avancement.

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

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 LCD doit afficher « Sortie VérinAu cours du recule, l’afficheur LCD doit afficher « Recule Vérin

, l’afficheur LCD doit afficher « P en Bas ». , l’afficheur LCD doit afficher « P en Haut ». 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.

modalisant le fonctionnement du capteur lmodalisant le fonctionnement du capteur l

TP n°5

27

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

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

poussoir départ cycle en avance et en recul. Une impulsion sur le bouton poussoir déplace le vérin d’une position à une

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

Sortie Vérin ». Recule Vérin ».

hement du circuit de commande du vérin dans la figure 3 :

modalisant le fonctionnement du capteur l11. modalisant le fonctionnement du capteur l10.

Programmation C Embarqué TP n°5

AU 2014-2015 28

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

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

Programmation C Embarqué TP n°5

AU 2014-2015 29

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

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