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


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