Vous êtes sur la page 1sur 41

TP :

MICROCONTROLEUR
S
Systèmes à microcontrôleurs

Travail élaboré par : ER-RAFFALI CHAIMAA


BENYAZZA RIHAB
Filière : génie mécatronique
TP1 : FAMILIARISATION AVEC MPLAB X
Objectif
L’objectif de ce TP est de permettre à l’élève ingénieur de se familiariser avec la
programmation en assembleur, associé au microcontrôleur PIC16F84A. Ce TP permet aussi
la prise en main des logiciels suivants :
 MAPLB X IDE pour l’édition, la compilation et la simulation des programmes écrits
en assembleur.
 PROTEUS ISIS pour la simulation du fonctionnement de ces programmes sous
forme d’un schéma.

TRAVAIL 1
 La compilation sous le logiciel MPLAB X IDE :
 le schéma de l’application sous le logiciel PROTEUS ISIS :

 la vérification fonctionnement de l’application en manipulant l’interrupteur.


TRAVAIL 2
nous voulons élaborer un programme en assembleur pour un PIC16F84A, et qui aura comme fonction de
réaliser le clignotement d’une LED montée sur la broche RB1 du port B.

1) La fréquence de clignotement de la LED sachant que la fréquence de l’horloge est f=8MHz :


Fréquence de clignotement = 1/T de clignotement
Fréquence de clignotement = 1/ (1/ (8*10^6) *2*[1+1+100+100*(99*1+2+99*2) +99*1+2+99*2+2] *4)=33Hz

2) Le code sous MPLAB X IDE


1. Le schéma sous PROTEUS ISIS :

TRAVAIL 3 :
Le travail 3 consiste à élaborer un programme en assembleur pour un PIC16F84A qui permet de
réaliser un compteur 8 bits. L’état du compteur est visualisé par 8 LEDs branchées sur le port B du
PIC16F84A.

On se sert du sous-programme de temporisation qu’on a utilisé sur le travail 2 pour passer d’un état à
l’autre du compteur.
Il faut ajouter à ce sous-programme un troisième compteur, comp3, pour augmenter la temporisation.

 Le programme est le suivant :


 Le schéma sous PROTEUS ISIS :
Le travail est bien réalisé.
TP2 : TRAFIC ROUTIER A BASE DU PIC 16F84 SOUS MPLAB X
Objectif
L’objectif de ce TP est de permettre à l’élève ingénieur de maitriser la programmation en assembleur,
associée au microcontrôleur PIC16F84A. Dans ce TP sont abordés les notions de sous-programme, le
Timer, TMR0, et les interruptions.

TRAVAIL

On a compilé le programme suivant sous le logiciel MPLAB

On a réalisé le schéma suivant sous ISIS PROTEUS


Apres simulation sous isis PROTEUS on a eu le résultat dessus.

2- Verification du temps de temporisation 10s


3- on a défini le registre option_reg de la façon suivante

On aura une pré-division de 256


T=256*256=0.065536s
- Nombredefois(1s)=1/T=15.25
- Nombredefois(10s)=1/T=152.58

Donc on aura

4- le programme avec int interruption est le suivant


Le schéma est le suivant :
TP3 : FAMILIARISATION avec mikroc Pro for PIC
Introduction
A travers ce TP, nous allons aborder les notions de base

D’un microcontrôleur PIC16F84A. Pour atteindre ce but nous allons réaliser deux
exercices en utilisant le logiciel MikroC for PIC pour écrire les programmes nécessaires
en langage C et le logiciel PROTEUS ISIS pour réaliser les schémas demandés.

La fonction principale d’un port est de faire entrer et sortir une information. Notre pic est
constitué de deux ports :

Le PORTA qui est constitué de 5 pins. Le PORTB qui


est constitué de 8 pins.

Ses ports peuvent être configurés en entrée ou en sortie en fonction de nos besoins.

TRAVAIL1
Durant ce premier exercice, nous allons connecter deux LED (LED_GREEN et
LED_RED) sur les broches RA0 et RA1, et deux interrupteurs (G_LED, R_LED)
aux broches RB1 et RB4.
Nous allons illustrer ce propos à travers le schéma ci- dessous réalisé sur PROTEUS ISIS
1) Interrupteurs=PORTB & 0x12 :

Les 4 valeurs possibles de la variable interrupteurs sont :

 0x00 : les deux leds sont éteintes.


 0x02 : la led red clignote.
 0x10 : la led green clignote.
 0x12 : les deux leds clignotent

2) Ecrire du Code sur MIKRO C et simulation sous ISIS

- Les ports B sont configurés en entrées, les ports A sont configurés


en sorties.

- Nous allons illustrer ce propos à travers le schéma ci- dessous réalisé


sur PROTEUS ISIS

- Voila le code sous MIKROC


Dans cette figure on appuie sur le button poussoir pour la LED_GREEN, et automatiquement
la LED s’allume par contre la LED rouge reste eteinte

Par contre cette fois ci on appuie sur Le Button poussoir rouge et la LED ROUGE s’allume et la VERTE
reste éteinte
TRAVAIL2
On réalise le montage suivant sous ISIS PROTEUS

a) On écrit le code suivant sous MIKRO C


Ce programme permet de faire clignoter les 8LEDs 20fois avec une
périodicité de 1seconde.
2) Nous allons écrire un programme pour réaliser la consigne de la question a et b au
même temps.
Ce code permet de faire clignoter toutes les 8LEDs 20fois pour une
periode de 1seconde.
TP4 : TRAFIC ROUTIER A BASE DU PIC 16F84 SOUS
MIKROC PRO FOR PIC
Objectif
L’objectif de ce TP est de permettre aux étudiants de maitriser la programmation en C embarqué,
associé au microcontrôleur PIC16F84A.
Les outils logiciels utilisés pour ce faire sont :
- mikroC PRO 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.

Description du
TP
PARTIE I : La première partie de ce TP consiste à créer un programme qui organise la circulation des
véhicules dans un croisement. Le croisement est composé d’une route principale et une route
secondaire, sur les deux routes il y a trois lampes, vert, rouge et orange. Pour chacune des deux voies.
Dans chacune des deux voies de la route secondaire il y a un capteur de présence de véhicules
(Capteur1 et 2).
Donc on a commencé par la configuration des ports B comme sortie et les ports A comme entrée. Si
le microcontrôleur ne reçoit aucune formation de la part des deux capteurs, la route principale est
autorisée (la lampe rouge est allumée). La présence d’un véhicule sur la route secondaire sera
transformée par l’un des deux capteurs cette fois-ci la lampe verte sur la route principale clignote
pendant 10 secondes, ensuite la lampe orange s’allume pendant une seconde ensuite la lampe rouge
s’allume, sur l’autre cote la lampe rouge reste allumée pendant deux secondes ensuite la lampe verte
s’allume pendant 10 secondes et clignote pendant 3 secondes vient ensuite l’orange et enfin la lampe
rouge. On revient par la suite sur le fonctionnement fixe qui est le rouge pour la route secondaire et le
vert pour la route principale.

PARTIE II : Dans La deuxième partie, on refait la même chose mais cette fois-ci on ajoute deux
boutons poussoirs pour qu’un piéton puisse traverser la route principale dans. Le fonctionnement
normal reste le même dans l’absence des véhicules sur la route secondaire et des piétons qui veulent
passer sur la
route principale. Alors dès qu’un véhicule ou un piéton est présent le capteur va informer le
microcontrôleur de changer l’état des lampes. Donc on aura à la fin la lampe verte sur la voie
secondaire et la lampe rouge sur la voie principale, cet état va rester pendant 10 secondes après on
revient au fonctionnement fixe.
TP5 : COMMANDE D’UN ECRAN LCD A BASE DU PIC16F84A
Objectif
Le PIC 16F84A est présenté sous forme de 2 types de boîtiers différents. Le classique «
traversant » DIP18, ou 2 versions CMS (SOIC 18 et SSOP20).

Le PIC 16F84A s’alimente par une tension continue comprise entre 2 et 5V pour les versions
commerciales et industrielles, par les broches VSS (pin 5) et VDD (pin 14).

Il possède 2 pins pour l’horloge notées OSC1 et OSC2 : on placera le quartz entre ces 2 pattes,
ou la sortie d’un oscillateur sur l’entre OSC1/CLKIN.

Nous trouvons 2 ports A et B : le port B est composé de 8 entrées sorties (IO paramétrables par
logiciel) et un port A composé de 5 entrées sorties uniquement. En tout le nombre d’entrées
sorties est de 5+8=13.


VSS et VDD : broches d'alimentation (3 à 5 V).

OSC1 et OSC2 : signaux d'horloges, ces broches peuvent recevoir un circuit RC .

CLKIN : peut être connectée à une horloge
externe (0 à 4, 10 ou 20 MHz).

MCLR : Reset (Master Clear).

RA0, ..., RA4 : 5 entrées/sorties du port A.

RB0, ..., RB7 : 8 entrées/sorties du port B.

T0CKI : Entrée d'horloge externe du timer TMR0.

INT : entrée d'interruption externe.
BUT du TP
L’objectif de ce TP est de savoir comment commander un écran LCD (Liquid Crystal
Display) 2x16, à base d’un microcontrôleur PIC16F84A en utilisant la programmation
en C embarqué. 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.

TRAVAIL
1LES BASES DES AFFICHEURS LCD
LCD est l'acronyme de Liquid Crystal Display (en anglais), ce qui signifie en français
écran à cristaux liquides.
un afficheur LCD n'est jamais direct. Il faut envoyer une série de commandes à
l'afficheur, qui les interprète et qui réalise en fonction certaines actions dont
l'affichage des caractères. On distingue 2 types de commandes : les instructions et
les données.
1) Réalisation du montage sous ISIS PROTEUS

2) Test code figure3


Simulation du code dessus sous ISIS PROTEUS

3) voir library LCD pour savoir les commandes et leurs utilites

4) Test du code figure 4 et simulation sous ISIS PROTEUS


Test figure 5 et simulation sous ISIS
5) défilement du Text1 5fois de la gauche vers la droite et de la
droite vers la gauche 5fois, puis affichage du text1 et text2
Simulation sous isis
Ecriture du Text1, --AFFICHAGE—, de la gauche vers la droite 5fois
Puis l’affichage de –AFFICHAGE—5fois de la droite vers la gauche
Finalement l’affichage de text1 et text2
CONCLUSION
A L’aide de ce TP on a pu développer un programme C qui fait commander
un LCD et de simuler à base de microcontrôleur PIC 16F84A de Microchip
via un environnement graphique simple et interactif.

Vous aimerez peut-être aussi