Vous êtes sur la page 1sur 12

compte-rendu de projet de Travaux

Pratiques

Architecture et mise en oeuvre des


microcontroleurs

Auteur: enseignant:
Ouriya mara Christophe H. kizil
Table des matières
Introduction 2

1 Environnement logiciel 2
1.1 Généralité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Schéma et explication du PIC24FJ128GA010 . . . . . . . . . . . . . . . 6

2 Partie 1 7
2.1 explications et définitions des mots clés . . . . . . . . . . . . . . . . . . 7
2.2 lire et écrire sur les ports E/S d’un pic . . . . . . . . . . . . . . . . . . 8

3 partie 2: compilation 9
3.1 allumer une led . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 chemillard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 chenillard à l’aide d’un boutton . . . . . . . . . . . . . . . . . . . . . . 10

4 conclusion 11

compte-rendu mplab ouriya page 1 université de lorraine


Ces séances de travaux pratiques (TP) sont destinées à illustrer les notions qui vous
ont été présentées en cours. Pour cela, vous aurez à concevoir et à tester un certain
nombre de programmes soit en langage assembleur soit en langage C. Pour chaque
tâche que vous aurez à réaliser, nous vous invitons à enregistrer votre programme sous
un nom particulier pour garder une sauvegarde de travail. Pour faciliter le débogage
et assurer la maintenance et la portabilité de vos codes. L’objectif de cette manipu-
lation est d’explorer le fonctionnement d’un microcontrôleur 16 bits de la série PIC
(Peripheral Interface Controller) 24F(PIC24FJ128GA010) à l’aide du logiciel MPLAB
IDE et Proteus Professional. Dans La première partie du TP, on va présenter la struc-
ture d’un programme écrit en langage C et on décortiquera ses différentes parties. La
deuxième partie du TP consiste à :
• Compiler le programme,
• Chercher les erreurs et les corriger afin d’assurer l’allumage des leds.

1 Environnement logiciel
1.1 Généralité
Pour réaliser cette manipulation on va utiliser l’environnement de développement
(IDE) de MICROCHIP (( MPLAB )). MPLAB IDE est un environnement gratuit de
programmation pour les micro-contrôleurs de la famille Microchip. Il contient tous les
outils nécessaires à la mise au point d’une application avec un cœur de microcontrôleur
PIC. Il contient un :
• Editeur de texte interactif,
• Compilateur assembleur (et C),
• Simulateur.
Téléchargements et installations: Afin de programmer un PIC, vous aurez besoin de
deux programmes sur votre PC. Un environnement de développement, c’est à dire
le logiciel dans lequel vous écrirez votre programme, qui dispose entre autres d’un
débogueur, et un compilateur. Bien qu’on soit totalement libre d’en choisir d’autre,
MPLAB est l’environnement de développement proposé par Microchip, constructeur
des PICs.
Édition et Compilation du programme: Cette partie permet d’apprendre à créer un
projet MPLAB, saisir un programme en assembleur et le compiler.
1. Démarrage – Avant de commencer, créer le répertoire lab1 puis dans ce répertoire
créer à nouveau un répertoire interrupteur. – Copier dans ce dernier répertoire les fi-
chiers –A la suite Lancer le logicielle MPLAB IDE à partir de l’icône qui se trouve sur
votre bureau.
2. Création d’un nouveau projet avec (( Project )) – Cliquer sur Project )) Project . . . –
Cliquer sur Suivant ¿puis sélectionner PIC24fj128GA010 dans le menu déroulant Device.

compte-rendu mplab ouriya page 2 université de lorraine


figure 1: choix du pic (1)
- Cliquer sur Suivant puis sélectionner (( Microchip MPASM Toolsuite )) et (( MPASM
Assembler )) afin de pouvoir programmer en Assembleur.
– Cliquer sur Suivant ¿puis dans le champ (( Project Name )) saisir le nom du pro-
jet (ex :lab) et dans le champ (( Project Directory )) aller chercher à l’aide du bouton
(( Browse )), le dossier créé au début : MTT/TLS01/lab.
– Cliquer sur Suivant ¿et ajouter les fichiers (( Add )) ))
– Cliquer sur Suivant ¿puis sur Terminer.
3. Édition du programme Créer un nouveau fichier dans le projet, File )) Add New Files
to Project. . .

figure 2: choix du nom


L’enregistrer dans le répertoire projet avec l’extension, MPLAB Editor se lance Saisir
le programme (( lab )) et enregistrer.

compte-rendu mplab ouriya page 3 université de lorraine


figure 3 : installation et création projet MPLab
4.Compilation – Cliquer sur Project )) Build All . . . ou sur l’icône de la barre de menu
ou encore Ctrl+F10 pour compiler le projet complet. Erreurs et warnings sont signalés
dans la fenêtre Output ainsi que le résultat de la compilation BUILD SUCCEEDED
ou BUILD FAILED. En double-cliquant sur une erreur ou un warning dans la fenêtre
Output.
5. Simulation:
Avant d’envoyer un programme au C, vous pouvez tester son fonctionnement dans le
simulateur (Debugger) MPLAB SIM. Pour lancer le simulateur, cliquer sur Debugger ))
Select Tool )) MPLAB SIM. Une nouvelle barre d’outils est ajoutée ainsi qu’un onglet
(( MPLAB SIM )) dans la fenêtre Output. Le simulateur fonctionne selon trois modes :
– le mode Step By Step qui permet de faire une exécution pas à pas du programme
(vous êtes alors l’horloge du C). – le mode Animate qui exécute automatiquement le
programme mais à une vitesse réduite pour que l’on puisse suivre l’éxécution. – le mode
Run où le programme est exécuté automatiquement à la vitesse du PC. Dans les deux
premiers modes, nous obtenons des résultats au fuir et à mesure de la simulation alors
que dans le dernier, les résultats ne sont visibles que lorsque la simulation est stoppée.
Dans ce paragraphe, nous nous intéressons aux modes Animate et Step By Step car ils
nous permettent de voir qu’elle est l’influence des entrées sur les sorties. Le réglage de

compte-rendu mplab ouriya page 4 université de lorraine


la fréquence de l’oscillateur utilisé se fait dans Debugger )) Settings . . . .
6.Proteuse:
Proteus est un logiciel de simulation sophistiqué d’automatisation de conception électronique
(EDA). L’énorme bibliothèque d’appareils et la large gamme de périphériques consti-
tuent l’avantage particulier de ce simulateur. La fonction d’instrumentation virtuelle
offre une excellente opportunité pour la simulation d’unités de microcontrôleurs. Proteus
Virtual System Modeling (VSM) combine la simulation de circuits SPICE en mode
mixte, des composants animés et des modèles de microprocesseurs pour faciliter des
simulations complètes de conceptions basées sur des microcontrôleurs. Pour la toute
première fois, il est possible de développer et de tester de telles conceptions avant la
construction d’un prototype physique . Les étapes nécessaires à la simulation d’appli-
cations basées sur des microcontrôleurs

figure 4: installation proteuse

compte-rendu mplab ouriya page 5 université de lorraine


1.2 Schéma et explication du PIC24FJ128GA010
les PICs sont des microcontrolleurs 8bit, le fonctionnement d’un microcontrôleur 16
bits de la série PIC (Peripheral Interface Controller) 24F utilisant l’EDI MPLAB et
le logiciel Proteus Professional. Les PIC sont des microcontrôleurs rentables et offrent
un grand nombre d’applications dans les domaines éducatifs et industriels. Les micro-
contrôleurs PIC 16 bits ne sont pas explorés au meilleur potentiel pour leur expérience.

figure 5: shema bloc d’un pic (2)

compte-rendu mplab ouriya page 6 université de lorraine


Les travaux de recherche démontrent le fonctionnement des différentes sections du
microcontrôleur. Tout d’abord, les ports A et B sont initialisés pour être utilisés pour
l’interface entrée-sortie (E/S). Ensuite, les minuteries sont brièvement expliquées et
simulées pour des applications spécifiques. La méthodologie de base de l’appel des
interruptions est définie à l’aide de simulations. L’interface du microcontrôleur avec
l’affichage à cristaux liquides (LCD) et le clavier via les ports d’E/S est présentée et
enfin la communication série asynchrone asynchrone UART (Universal Asynchronous
Receiver Transmitter) à via le microcontrôleur PIC est réalisée en Proteus.

2 Partie 1
2.1 explications et définitions des mots clés
MAIN La fonction main est la fonction principale des pro-
grammes en C: Elle se trouve obligatoirement dans tous
les programmes. L’exécution d’un programme entraı̂ne
automatiquement l’appel de la fonction main.
#PRAGMA peut être utilisé pour appeler une fonction avant
l’exécution du main ou à sa sortie La commande
pragma permet au programmeur d’indiquer au com-
pilateur d’exécuter certaines actions.Elle dépend de
l’implémentation qui en est faite sur chaque compila-
teur, son utilisation diffère d’un compilateur à l’autre.
une possibilité de cette commande peut être de tracer.

• LATAx {x −→ A,B}
Le registre LATx définit ou réinitialise la ou les broches du port d’entrée/sortie lors-
qu’aucune autre fonction périphérique n’est affectée à ces broches via les ´’broches libres´’
• TRISx{avec x −→ A,B}
Les registres TRISx permettent de configurer la direction (entrée ou sortie) de chaque
broche du port. Un 1 sur le bit y de ce registre placera Rxy en entrée, un 0 le placera
en sortir. Pour le retenir c’est simple : 1 ressemble à la lettre (( I )) comme (( Input )), 0
ressemble à la lettre (( O )) comme (( Output )). Par exemple pour placer RB2 en sortie,
on placera le bit 2 de TRISB à 0.
• PORTx{A,B}:
Le port est un ensemble de broches sur un microcontrôleur qui représentent la connexion
physique de l’unité centrale de traitement (CPU) avec le monde extérieur et le micro-
contrôleur les utilise pour contrôler ou surveiller d’autres systèmes. Initialisation du
PORT en entrées/ sorties. Les registres PORTx permettent de placer la valeur de sortie
ou de lire la valeur en entrée du port x. Lorsque la broche y du port x est placé en sortie,
placer à 1 le bit y de PORTx placera Rxy à 1, idem avec 0. Lorsque la broche y du port
x est placé en entrée, le bit y de PORTx est l’image de la broche Rxy.Initialisation du

compte-rendu mplab ouriya page 7 université de lorraine


PORT à la valeur que tu souhaite lui donner.
• LED:
Une LED est une source de lumière à semi-conducteur, quand polarisée en sens direct, il
émet de la lumière Les LED sont principalement utilisés pour indiquer Pétat des circuits
électroniques, par exemple pour indiquer que l’alimentation est allumé ou éteint, mais
de nos jours, ils sont utilisés dans de nombreuses applications, y compris l’éclairage et la
détection de faisceau Dans ce compte rendu, nous allons apprendre comment connecter
et allumer éteindre plusieurs LED connecté à un PIC à laide du compilateur.

2.2 lire et écrire sur les ports E/S d’un pic


Pour ecrire sur un port ,la meilleure façon est d’utiliser la LAT.Les broches (les fils
d’entrée/sortie) sont regroupés sur des ports.
Note: Du point de vue logiciel, un port est un ensemble de registres.
Les ports sont nommés par des lettres. On dispose ainsi des ports A, B, C, D et E.
Chaque broche d’un port est numérotée.
Pour chaque port, un registre de 8 bits (un octet) permet d’écrire ou de lire la valeur
de chacune des broches (0 ou 1, c’est-à-dire 0V ou 5V).
Ce registre se nomme PORTx ou x remplace le nom du port. On dispose ainsi des
registres PORTA, PORTB, PORTC, PORTD et PORTE. Chaque broche peut être
configurée comme une entrée ou comme une sortie tout ou rien.
Quand on parle, d’entrée ou de sortie, on se met à la place du micro-contrôleur.
Par conséquent, une sortie tout ou rien indique que le micro-contrôleur impose le
potentiel de la broche à 0V pour un 0 logique et à 5V pour un 1 logique.
La broche se comporte donc comme une source de tension. Cette source ne peut
fournir qu’un courant limité, de l’ordre de 25mA.
Une entrée indique que le micro-contrôleur observe le potentiel de la broche. Le
micro-contrôleur se comporte comme un voltmètre. Une entrée présente donc une
impédance élevée, c’est-à-dire que le courant qui passe par la broche est très faible
(inférieur à 200nA).
Le micro-contrôleur considérera que la broche présente un 0 logique si le potentiel
est proche de 0V (inférieur à 1V environ) et un 1 logique si le potentiel est proche de
5V (supérieur à 4V environ).
La configuration des entrées/sorties tout ou rien se fait par l’intermédiaire d’un
registre TRISx ou x remplace le nom du port.
Un 1 configure la broche en entrée.
Un 0 configure la broche en sortie.
Ainsi, TRISA contrôle la configuration des broches du port A, TRISB celle du port
B, etc. Cette configuration s’effectue en général au début du programme.
Lors de la mise sous tension du micro-contrôleur, toutes les broches sont configurées
comme des entrées.

compte-rendu mplab ouriya page 8 université de lorraine


3 partie 2: compilation
3.1 allumer une led
Pour allumer et éteindre une led tout ce qu’il faut faire:
1. Regler le bit PORT Direction avec le registre TRIS 1 va faire une entrée et o une
sortie. il va fonctionner
2. Envoyer au port un 0 pour éteindre ou un 1 pour allumer avec le registre LAT.Notez
que vous pouvez utiliser le registre PORT.

3.2 chemillard
Nous allons faire un chenillard, c’est-à-dire faire allumer l’une après l’autre chacune
des LEDs, connectées au PORTD comme ci-dessus, l’une après l’autre. On remarque que
les anodes des LEDs sont connectées au VDD, et leurs cathodes aux broches du PIC via
une résistance de limitation de courant. Cela signifie que pour allumer une LED, il fau-
dra mettre la broche correspondant à l’état logique 0. La raison pour laquelle les LEDs
ont été branchées dans ce sens plutôt que dans l’autre (plus intuitif), est que le compo-
sant supporte mieux d’absorber du courant que d’en fournir. La première chose à faire
est de configurer correctement votre horloge. Ensuite, puisqu’on utilisera le PORTD
pour allumer des LEDs, nous devons configurer l’ensemble de notre PORTD en sortie.
Il faut donc mettre le registre TRISD à 0. Nous allons aussi initialiser les LEDs de sorte
à ce qu’au démarrage elles soient toutes éteintes, en plaçant à 1 tous les bits de PORTD.

figure 6: chema d’un chenillard

Puis ensuite il vous suffit de créer une boucle infinie, dans laquelle chaque cycle
correspondra à un aller complet de la LED allumée. Pour faire cet aller complet une
solution possible est d’utiliser une boucle for, dans laquelle à chaque cycle le paramètre
est décalé d’un bit à gauche, et ce jusqu’à ce que ce bit dépasse le bit 7 (on a 8 LEDs,
soit des bits de 0 à 7). Entre chaque étape de cette boucle for un placera une tempori-
sation pour limiter la vitesse de défilement de notre chenillard.

compte-rendu mplab ouriya page 9 université de lorraine


Code - Un chenillard
while ( 1 )
{
for ( j = 1 ; j < 129 ; j < < = 1 )
{
\\ PORTD = ~ j ; / * Mise jour des LED * /
for ( i = 0 ; i < 10000 ; i + + ) ;
}
}

3.3 chenillard à l’aide d’un boutton


Nous allons maintenant modifier notre code pour utiliser un bouton pour activer
le chenillard. C’est-à-dire que lorsqu’on appuie sur le bouton, le chenillard démarre, et
s’arrêtera à la fin du cycle pendant lequel on relâche le bouton. Il va donc vous falloir
mettre RB0 en entrée via le registre TRISB, puis tester régulièrement l’état du bit 0
de PORTB pour connaı̂tre l’état du bouton. Je ne pense pas qu’il soit nécessaire de
détailler davantage. Voici notre code:

void main ( void )


{
int i , j ;
OSCON | = (( 7 < < 4 ) | ( 1 < < 1 ) ) ; / * Utilisation de l ’ oscillateur
interne du PIC24fj128GA010 */

TRISD = 0 ; /* Utilisation de toutes les 8 broches du PORT D en


tant que sortie */
PORTD = 0xFF ; /* Eteindre toutes les LED */

TRISB | = 1 ; /* Utilisation de la broche RB0 en tant qu ’


e n t r e */

while ( 1 )
{
if (( PORTB & 1 ) = = 0x00 ) / * Test du bouton * /
{
for ( j = 1 ; j < 129 ; j < < = 1 )
{
PORTD = (~ j ) ; / * Mise jour des LED * /
for ( i = 0 ; i < 10000 ; i + + ) ; / * Attente * /
}
}
}
}

compte-rendu mplab ouriya page 10 université de lorraine


4 conclusion
Dans ce travail de recherche, le PIC24FJ128GA010 est exploré par le développement
et la simulation du nombre d’applications du microcontrôleur de la série PIC24F : bascu-
lement des broches de port, initialisation des interruptions, génération PWM, interface
LCD et clavier et communication série UART en utilisant respectivement les outils
logiciels MPLAB et Proteus. Les simulations ont reconnu que ces deux outils logiciels
fournissent une combinaison puissante pour développer et tester de nombreuses ap-
plications du microcontrôleur PIC24F avant leur implémentation matérielle en temps
réel. En outre, le présent document préconise également l’idée d’utiliser la combinai-
son de ces deux outils dans le secteur de l’éducation pour améliorer les compétences
des systèmes intégrés. Dans une perspective d’avenir, ces outils pourront être utilisés
pour explorer d’autres microcontrôleurs PIC 32 bits les plus récents et seront également
d’une grande aide dans le développement de la carte de démonstration PIC24F à des
fins pédagogiques.

Références
[1] http://microchipdeveloper.com/tls0101:lab1
[2] http://ww1.microchip.com/downloads/en/devicedoc/39747f.pdf

compte-rendu mplab ouriya page 11 université de lorraine

Vous aimerez peut-être aussi