36 0 423KB
UNIVERSITE IBN TOFAIL ÉCOLE NATIONALE DES SCIENCES APPLIQUÉES (ENSA)
Formation Continue Licence d’Université Spécialisée (LUS) : Ingénierie Electriques, Energie Renouvelables et Management de la Qualité (IEERMAQ)
TP1 : PORTS DU MICROCONTROLEUR 16F84A I. OBJECTIF L’objectif de ce TP est de permettre aux étudiants de maitriser la programmation en langage C, associée au microcontrôleur PIC16F84A. Dans ce TP sont abordées les notions de base sur les PORTS A et B. Les outils logiciels utilisés pour ce faire sont : MiKroC for PIC pour l’édition, la compilation et la simulation des programmes écrits en langage C PROTEUS ISIS pour la simulation du fonctionnement de ces programmes sous forme d’un schéma
II. PORTS A ET B
Figure 1 : Brochage du 16F84 Un PORT sert pour entrer et sortir des informations. Le 16F84 est doté de deux PORTS A et B. Le PORT A est constitué de 5 pins bidirectionnels : RA0 à RA4. Le PORT B est constitué de 8 pins bidirectionnels: RB0 à RB7. La configuration des pins des PORTS A et/ou B en entrées ou en sorties est assurée par un registre de direction appelé TRISA associé au PORTA et TRISB associé au PORTB.
Figure 2 : Configuration du bit RA4 du PORTA du 16F84 Page 1 sur 4
Comme l’indique le schéma de la figure 2, si le bit b2 du registre TRISA est mis à 0 la broche RA4 sera configurée en sortie, alors que si b2 est mis à 1 la broche RA4 sera configurée en entrée.
Les bits du TRISA et TRISB sont désignés, respectivement, en MiKroC par TRISA.F0 à TRISA.F4 et TRISB.F0 à TRISB.F7 Les entrées du PORTB peuvent être connectées à une résistance de rappel au +5V de manière interne, cette sélection s’effectuant par le bit 7 du registre OPTION (mettre à zéro le bit 7 (RBPU/) pour valider les résistances de rappel au +5V).
Figure 3 : Registre OPTION du PIC 16F84
Travail 1 : Comme l’indique la figure 4, on connecte deux interrupteurs G_LED et R_LED respectivement sur les broches RB1 et RB4 et deux leds LED-RED et LED-GREEN respectivement sur les broches RA0 et RA1 , et ce sans utiliser de résistance pullup interne.
Figure 4 : Application 1 On désire écrire un programme C qui ne fait rien si on n'appuie sur aucun bouton poussoir, fait clignoter la LED rouge si l'on appuie sur un bouton R_LED, fait clignoter la LED verte si on appuie sur l'autre bouton G_LED, et les deux LEDs si l'on appuie sur les deux boutons. Page 2 sur 4
1. Donner les 4 valeurs possibles de la variable interrupteurs avec l'instruction interrupteurs = PORTB & 0x12; 2. Compléter le morceau de code, écrit en MiKroC for PIC et donné par la figure 5, pour en faire un programme qui répond à l’application souhaitée, puis faire la simulation sous le logiciel ISIS ?
Figure 5 : Morceau de programme en langage C
Travail 2 : Comme l’indique la figure 6, on se propose de faire clignoter 8 LEDs branchées sur le port B du PIC16F84A de deux façons différentes. RN1 est un réseau de résistance, composé de 8 résistances, accessible sous ISIS sous le nom RES16DIPIS.
Figure 6 : Application 2
Page 3 sur 4
a. Dès que le PIC est activé, tous les LEDS clignotent avec une période d’une seconde. Et ça doit se répéter 20 fois.
Figure 7 b. Après cela, les 4 LEDs paires et impaires doivent clignoter alternativement sans cesse avec une périodicité d’une Seconde.
Figure 8 1. Compléter le morceau de code de la figure 9, écrit en MiKroC for PIC, pour répondre à la question a, puis faire la simulation sous ISIS?
Figure 9 : Morceau de code en langage C 2. Donner un code qui englobe les questions a et b, puis faire la simulation sous ISIS ?
Page 4 sur 4