ISET DE GABES LEAII41 ENSEIGNANT : M. TAYARI LASSAAD CLASSE : LEAII41 TD MICROCONTROLEURS PIC PROGRAMMATION EN MIKROC A.U 2015/2016 Sem 2 PARTIE I L objectif de cette partie 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 organigramme ou un algorithme répondant à ce cahier de charge. TP MICROCONTROLEURS Page 1
2) Proposer un Programme MIKROC répondant à ce cahier de charge. 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. TD MICROCONTROLEURS Page 2
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 algorithme répondant à ce cahier de charge. TD MICROCONTROLEURS Page 3
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. TD MICROCONTROLEURS Page 4
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é. TD MICROCONTROLEURS Page 5
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 organigramme ou un algorithme répondant à ce cahier de charge. TD MICROCONTROLEURS Page 6
2) Ecrire le programme MikroC correspondant à ce cahier de charge. TD MICROCONTROLEURS Page 7
PARTIE II 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 organigramme ou un algorithme répondant à ce cahier de charge. TD MICROCONTROLEURS Page 8
2) Ecrire un programme MikroC qui répond au cahier de charge. 3) proposer une autre solution en utilisant les interruptions (câblage + programme) TD MICROCONTROLEURS Page 9
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. 1) Proposer un organigramme ou un algorithme répondant à ce cahier de charge. TD MICROCONTROLEURS Page 10
2) Ecrire un programme MikroC qui répond au cahier de charge. TD MICROCONTROLEURS Page 11
PARTIE II L'objectif de cette partie 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 DCBA RB6 RB5 RB4 RB3 RB2 RB1 RB0 PortB 0000 0 1 1 1 1 1 1 $3F 0001 0010 0011 0100 0101 0110 0111 1000 1001 TD MICROCONTROLEURS Page 12
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. TD MICROCONTROLEURS Page 13
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. TD MICROCONTROLEURS Page 14
PARTIE IV En première partie, l'objectif de cete partie 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 TD MICROCONTROLEURS Page 15
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 AV 2 3 4 5 Arrêt 0 0 0 0 0 $00 Marche AR 1 2 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; TD MICROCONTROLEURS Page 16
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. TD MICROCONTROLEURS Page 17
Figure 3: Commande d un afficheur 7 segments via un PIC 16F841. 1) Ecrire le programme MikroC qui répond à ce cahier de charge. TD MICROCONTROLEURS Page 20
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: TD MICROCONTROLEURS Page 21
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. TD MICROCONTROLEURS Page 22
TD MICROCONTROLEURS Page 23
PARTIE V Cette partie est composé de deux sous 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. Exercice 1 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 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 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. TD MICROCONTROLEURS Page 24
1) A partir de la figure 1, compléter les affectations des deux registres TRIS A et TRIS B. TRIS A RA 4 RA 3 RA 2 RA 1 RA 0 0 0 0 0 0 0... TRIS B RB 7 RB 6 RB 5 RB 4 RB 3 RB 2 RB 1 RB 0 0 0 0 0 0...... 2) Proposer un organigramme ou un algorithme répondant à ce cahier de charge. TD MICROCONTROLEURS Page 25
3) Ecrire le programme MikroC du clignotant assurant la commande des feux. TD MICROCONTROLEURS Page 26
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 LCD 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 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. TD MICROCONTROLEURS Page 27
Figure 3: Commande d un vérin pneumatique via un PIC 16F84A. 1) Proposer un organigramme ou un algorithme répondant à ce cahier de charge. TD MICROCONTROLEURS Page 28
4) Ecrire le programme MikroC qui repond à ce cahier des charges.. TD MICROCONTROLEURS Page 29