Vous êtes sur la page 1sur 21

04/12/2019

Microprocesseurs et Microcontrôleurs

MPLAB X IDE V2.25


Pr. A. AIT MADI

RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 1

Plan

Introduction
Gestion d’un projet
Les directives de MPASM
Format des nombres
Prise en main de MPLAB X IDE
lancement de MPLAB X IDE
Création d’un projet
Ajout d’un nouveau fichier source au projet
Compilation du projet
Simulation du projet

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 2

1
04/12/2019

introduction

 MPLAB X IDE (Integrated Development Environment) est un environnement


de développement intégré
 Il regroupe un ensemble d'outils pour le développement d’applications basées
sur les microcontrôleurs PIC, 8 bits, 16 bits et 32 bits, de la société
Microchip. Ces outils sont :
• Un éditeur de texte
• Des assembleurs et des compilateurs
• Un Débogueur
• Des outils de simulation et de programmation

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 3

Gestionnaire de projet

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 4

2
04/12/2019

Gestionnaire de projet

 Les fichiers sources (Source Files) sont des fichiers texte qui doivent être
écrit selon les règles d’un Assembleur ou d’un Compilateur
.
 L’Assembleur ou le Compilateur convertit ces fichiers sources en code
machine et des espaces réservés faisant références au stockage des fonctions
et des données
 L'éditeur de liens (Linker) résout ces espaces réservés et combine tous les
modules dans un fichier de code machine exécutable (Executable File)
 L'éditeur de liens produit également un fichier de débogage (Debug File) qui
permet à MPLAB X IDE de relier les codes machine d'exécution vers les
fichiers source

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 5

Gestionnaire de projet

programmer

Le compilateur convertit le code source en un code machine


Program.asm

Program.hex
assembler/ (machine language)
translator 11 00xx 0010 0000
programmer

MOVLW 0x20

L’assembleur convertit le code source en un code machine


RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 6

3
04/12/2019

Les directives de MPASM

 Dans une première phase nous allons, éditer, compiler et simuler, sous le logiciel
MPLAB X IDE, un programme écrit en assembleur pour un pic 8 bits,
PIC16F84A
 Chaque programme écrit en assembleur contient un ensemble de directives de
l’assembleur MPASM
 Les directives de l'assembleur sont des instructions qu'on ajoute dans le
programme et qui seront interprétées par l'assembleur MPASM
 Les directives ne sont pas des instructions destinées pour le PIC
 Les directives les plus utilisées sont :
• LIST : permet de définir un certain nombre de paramètres comme le processeur
utilisé (p), la base par défaut pour les nombres, radix (r), le format du fichier
hex à produire (f) ainsi que d'autres paramètres
 Exemple : LIST p=16F84A, r=dec, f=inhx8m

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 7

Les directives de MPASM


• INCLUDE : permet d'insérer un fichier source
 Par exemple le fichier p16f84A.inc qui contient la définition d'un certain
nombre de constante comme les noms des registres ainsi que les noms de
certain bits.
 Exemple #INCLUDE <p16f84A.inc>
• __CONFIG : permet de définir les 14 bits de configuration qui seront copiés
dans l'EEPROM de configuration lors de l'implantation du programme dans le
PIC
 Ces 14 bits concernent la protection de code, le type d'oscillateur, le chien
de garde et temporisation du départ
 Exemple
__CONFIG B'11111111111001‘ ; ou
__CONFIG H'3FF9‘ ; ou
__CONFIG _CP_OFF & _XT_OSC & _PWRTE_OFF & _WDT_OFF ; si p16F84A.inc inséré

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 8

4
04/12/2019

Les directives de MPASM

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 9

Les directives de MPASM


• EQU : permet de définir une constante ou une variable :
 Exemple Var EQU 0x20
o Chaque fois que le compilateur rencontrera Var, il la remplacera par la
constante 0x20
o Var peut être une constante s'il s'agit d'une instruction avec adressage
immédiat
o Ou d'une adresse s'il s'agit d'une instruction avec adressage direct
• #DEFINE : définit un texte de substitution
 Exemple #DEFINE pos(x,y,z) (y-2z+x)

o Chaque fois que le compilateur rencontrera le texte pos(x,y,z), il le remplacera


par (y-2z+x)
• ORG : définit la position dans la mémoire programme à partir de laquelle seront
inscrites les instructions suivantes
• END : indique la fin du programme

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 10

5
04/12/2019

Format des nombres

 L'assembleur reconnaît les nombres en décimal, hexadécimal, binaire ou


octal. Pour préciser la base il faut utiliser les préfixes précisés dans le tableau ci-
dessous :

Base Préfixe Exemple


Décimal D’nnn’ D’36’
.nnn .36
Hexadécimal H’nn’ H’24’
0xnn 0x24
nnh 24h
Binaire B’…’ B’01011110’
Octal O’nnn’ O’44’

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 11

Prise en main de MPLAB X IDE


 Pour cela nous allons, d’abord, éditer, compiler et simuler le fichier source, écrit
en assembleur, ci-dessous
 Ce programme permet de faire l’addition des contenus des cases mémoires
d’adresses 0x1C et 0x1D et mettre le résultat dans la case mémoire d’adresse
0x1E
LIST p=pic16f84a, f=inhx8m, r=hex
#INCLUDE <p16f84a.inc>
; __ CONFIG 0x3FF1
__CONFIG _CP_OFF &_XT_OSC & _PWRTE_ON & _WDT_OFF
Adress1 equ 0x1C
Adress2 equ 0x1D
Adress3 equ 0x1E
MOVF Adress1, w
ADDWF Adress2, w
MOWF Adress3
END

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 12

6
04/12/2019

lancement de MPLABX IDE


 Bureau de MPLABX IDE

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 13

Lancement de MPLABX IDE


• Sur la page de démarrage, il y a trois onglets avec des liens. Les liens sur chaque
onglet sont définis comme suit :

Liens de l’onglet « LEARN AND DISCOVER »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 14

7
04/12/2019

lancement de de MPLABX IDE

Liens de l’onglet « MY MPLAB X IDE »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 15

lancement de MPLABX IDE

Liens de l’onglet « WHAT’S NEW »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 16

8
04/12/2019

Création d’un projet

 De nouveaux projets peuvent être crées en sélectionnant soit:


• L’onglet « LEARN and DISCOVER » Sur la page de démarrage, et cliquer sur le
lien « Create New Project »
• Ou cliquer sur File/New Project

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 17

Création d’un projet


 Sélectionner Microchip Embedded sur la partie « Categories »
 Sélectionner « StandaloneProject » sur la partie « Projects » puis cliquer sur « Next »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 18

9
04/12/2019

Création d’un projet


 Choisir « Mid-Range 8 bits MCUs (PIC10/12/16/MCP) » sur « Familly »
 Choisir « PIC16F84A» sur « Device » puis cliquer sur « Next »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 19

Création d’un projet


 Sélectionner l’outil « Simulator » puis cliquer sur « Next »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 20

10
04/12/2019

Création d’un projet


 Sélectionner le compilateur « mpasm (v5.59)[…] » puis cliquer sur « Next »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 21

Création d’un projet


 Préciser le nom du projet dans « Project Name »
 Préciser son emplacement dans « Project location » en cliquant sur « Browse »
 Cliquer ensuite sur « Finish »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 22

11
04/12/2019

Création d’un projet


 Le projet est crée et porte le nom « first_prog»
 Un ensemble de répertoires virtuelles ont été crées afin que le projet soit organisé

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 23

Ajout d’un nouveau fichier source au projet


 Faites un clic droit sur le répertoire « Source Files »
 Cliquer sur « New » puis « Other »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 24

12
04/12/2019

Ajout d’un nouveau fichier source au projet


 Cliquer deux fois sur le répertoire « Microchip Embedded »
 Cliquer sur le sous répertoire « MPASM assembler»
 Sélectionner « pic_8b_general.asm »
 Ensuite cliquer sur « Next »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 25

Ajout d’un nouveau fichier source au projet


 Donner un nom au nouveau fichier puis cliquer sur « Finish »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 26

13
04/12/2019

Ajout d’un nouveau fichier source au projet


 Le fichier généré est le Template d’un programme pour les MCUs 8 bits 16 et 18 de
Microchip. Il contient les parties essentielles suivantes :
• Une partie où vous allez inséré, le nom du fichier, la date, la version du fichier, vos
informations et une description du programme

• Une partie où vous allez utiliser la directive #INCLUDE

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 27

Ajout d’un nouveau fichier source au projet


• Une partie où vous allez utiliser la directive __CONFIG

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 28

14
04/12/2019

Ajout d’un nouveau fichier source au projet


• Une partie pour la définition des variables

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 29

Ajout d’un nouveau fichier source au projet

• Une partie concernant le vecteur « Reset »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 30

15
04/12/2019

Ajout d’un nouveau fichier source au projet

• Une partie concernant les codes des routines de service des interruptions
(ISR)

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 31

Ajout d’un nouveau fichier source au projet

• Une partie pour le programme principale

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 32

16
04/12/2019

Ajout d’un nouveau fichier source au projet


• Écrire le programme suivant et éliminer les parties, de la Template, qui ne
figurent pas dans ce programme

Partie 1/2
RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 33

Ajout d’un nouveau fichier source au projet

Partie 2/2

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 34

17
04/12/2019

Compilation du projet
 Cliquer sur l’un des boutons de compilation suivants et vérifier que la compilation a été
réussie :

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 35

Simulation du projet
 Cliquer sur le bouton de débogage comme le montre la capture d’écran suivante :

Boutons de débogage
 Cliquer sur le bouton « pause » pour marquer une pause :

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 36

18
04/12/2019

Simulation du projet

 Cliquer sur le bouton « Reset» pour


réinitialiser le programme
 Pour voir et vérifier les contenus des
registres :
• Cliquer sur le menu « Window »
• Cliquer sur « PIC Memory views »
• Cliquer sur « File Registers »

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 37

Simulation du projet

File Registres

 Cliquer sur le bouton « Go TO » Pour accéder au contenu d’une case mémoire

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 38

19
04/12/2019

Simulation du projet
 Mettre 05 et 0A respectivement dans les adresses 0x1C et 0x1D en procédant comme suit :
• Taper 0x1C dans le champ Enter a Hex Address
• Cliquer sur le bouton « GO TO »
• Cliquer sur le bouton « Close »
• Cliquer deux fois sur la case mémoire d’adresse 0x1C pour modifier son contenu
• Procéder de la même manière pour mettre 0A dans la case 0x1D

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 39

Simulation du projet

File Registres

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 40

20
04/12/2019

Simulation du projet
 Cliquer plusieurs fois sur le bouton de de débogage « Step Into » jusqu’a atteindre l’instruction
« GOTO $ »
 Vérifier que la case mémoire d’adresse, 0x1E, contient 0F, qui est aussi le résultat de
l’addition de 05+0A

File Registres

RST(S6)-ENSA
EEA(S6)-EST-KENITRA
-KENITRA 41

21

Vous aimerez peut-être aussi