Vous êtes sur la page 1sur 41

Module :

Systèmes Microprogrammés
--Systèmes à Microcontrôleurs--

FILIERE : Génie Mécatronique d’Automobile

Réalisé par :

Soufiane Mnioulat 17005177


Omar Louarrat 17004925
TP1 : FAMILIARISATION AVEC MPLAB X
Objectif
Le but de ce travail pratique est de se familiariser avec la programmation en assembleur associé
au microcontrôleur PIC16F848A et de savoir travailler sous MPLAB X IDE pour la compilation et
PROTEUS ISIS pour la simulation du fonctionnement des programmes sous forme de schéma

TRAVAIL 1
Le premier travail consiste à réaliser un montage qui va nous permettre de faire une simulation
d’un programme écrit en assembleur dans le but d’allumer ou éteindre une led branchée sur RB1
selon les états de l’interrupteur qui est sur la broche RB0.

Le montage sous PROTEUS ISIS est comme suit :

Etape1 : l’écriture du programme sous MPLAB X IDE et le compiler.


La compilation s’est bien passée comme vous voyez dans la capture suivante.

Etape 2 : téléversement du code qu’on a écrit en assembleur au PIC16F84A.

Le travail 1 est bien réalisé, comme vous voyez sur la capture d’écran la led s’allume lorsqu’on
appuie sur l’interrupteur.
TRAVAIL 2
Dans le deuxième travail nous élaborons un programme qui a pour fonction la réalisation de
clignotement d’une LED montée sur la broche RB1 du port B du PIC16F84A dont la fréquence de
clignotement est fixée par le sous-programme, de temporisation, suivant :

1. La fréquence de clignotement de la LED :

La fréquence de l’horloge est f = 8MHZ.


La période de clignotement de la LED fixée par le sous-programme est :

Tcl= Ti*2*[1+1+100+100*(99*1+2+99*2) +99*1+2+99*2+2] *4


= Ti*242424
Avec Ti=1/Fi=1/ (8*10^6) s
Donc Fcl=1/Tcl=Fi/242424 d’où Fcl= 33HZ

2. Le programme de clignotement sous MPLAB X IDE est comme suit :


3. 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.
DI

LED-RED

D3
PIC16F84A
D3
PIC16F84A
DI

D3
PIC16F84A
<NEXT»
DI

EX
D3
PIC16F84A
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.
• aot *;

for{i=O:i<SO;i++)

delay msll00);

is delay_ms|l00D);

delay ms{2000);

delay

msll5O);

delay_ms{l5O);
iot i;

ae iay_i»s t k nn j :

aeiay in tkoo :j

de lay me { 1 0 0 0 } •

deIay_ms(2000):

delay me{100OO } ;
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 1
LES 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


U1
OS C1/C LKINRA0
OS C2/C LKO U TRA1 RA2
MC LRRA3
”” RA4/T0 CKI

RB3 RB4 RB5 RBO RB7

PIC 10F8'4A

LCD1

RV1

U1
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