Cours4 MPLABX IDE V2.25 PDF [PDF]

04/12/2019 Microprocesseurs et Microcontrôleurs MPLAB X IDE V2.25 Pr. A. AIT MADI RST(S6)-ENSA EEA(S3)-EST-KENITRA -K

21 0 2MB

Report DMCA / Copyright

DOWNLOAD PDF FILE

Cours4 MPLABX IDE V2.25 PDF [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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

5

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

Gestionnaire de projet

programmer

Le compilateur convertit le code source en un code machine Program.asm Program.hex assembler/ (machine language) programmer translator 11 00xx 0010 0000

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

• __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

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

; si p16F84A.inc inséré

8

4

04/12/2019

Les directives de MPASM

9

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

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 constante 0x20

Var, il la remplacera par la

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 cidessous :

Base

Préfixe

Exemple

Décimal

D’nnn’ .nnn

D’36’ .36

Hexadécimal

H’nn’ 0xnn nnh

H’24’ 0x24 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 ; __ 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 registres :

les contenus des

• 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 l’addition de 05+0A

est aussi le résultat

de

File Registres RST(S6)-ENSA EEA(S6)-EST-KENITRA -KENITRA

41

21