Initiation électronique 29
Utilisation des logiciels
Installation et configuration des divers logiciels :
MPLAB IDE ( version 5.6 ) 13
Mo
Installation : lancer le programme d' installation et faire " next " à chaque questions .Le programme MPLAB s' installe dans le répertoire c:\Program Files\MPLAB\MPLAB.EXE
Création d' un projet
Pour commencer nous allons créer un répertoire de travail pour tous nos projets .Allez dans l' explorateur et créez un répertoire c:\pic ou c:\progpic à votre convenance puis un sous répertoire essai01 .
Lancez maintenant MPLAB
Vous avez un écran vide avec une barre d' outils .
Allez dans le deuxième menu " projet " et sélectionnez "
new projet " .
Choisissez le répertoire c:\progpic\essai01 si c' est votre espace de
travail
et entrez " essai01.pjt " pour le nom du projet .
Une fenêtre intitulée " Edit Project " s' ouvre :
Dans la case 1 se trouve le nom du fichier *.hex que MPLAB va générer en compilant votre programme .Vous pouvez le laisser comme cela essai01.hex .MPLAB prend donc par défaut le nom du projet pour créer le nom du fichier *.hex .
En 2 nous avons le chemin des fichiers include , nous y reviendrons .Si vous n' indiquez rien le chemin et par défaut et le répertoire d' installation de MPLAB .
En 3 vous devez indiquer le type de Pic que vous utilisez 16F84A , utilisez la case " change " pour modifié :
Choisissez votre Pic dans la liste et laissez None( editor Only) puis OK
En 4 nous utilisons les outils Microchip donc on laisse comme cela .
En 5 nous allons cliquer sur " essai01.hex " la case node Properties devient active , cliquez dessus et la fenêtre Node Properties s' ouvre :
En cliquant sur la case décimale tout nombre sans préfixe se trouvant dans le programme sera considéré comme décimal .Puis faire OK .
Rappel sur les nombres
Un nombre s'écrit de différentes manières , la base 10 ou décimal ( 0,1,2,3,4,5,6,7,8,9 ), la base 2 ( 0 ou 1 ) , la base 16 hexadécimal ( 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F ) , base 8 Octal etc....
Dans nos programme il est plus pratique d' utiliser l' hexadécimal donc la convention d' écriture et 0x0 pour 0 et 0xF pour 15 .... 0xFF pour 255 .Il est possible aussi d' écrire 00H , 0FH ; FFH ou H'00' ; H' 0f ' ; H' ff '
Pour le binaire la convention d' écriture est B'0000' pour 0 et B'1111' pour 15 ....... B'11111111' pour 255 ou aussi 0b0000 ; 0b1111
Vous fermez la fenêtre Edit Projet par OK
Et vous avez de nouveau un écran vide , maintenant il faut créer le programme ou alors le récupérer si vous l' avez télécharger sur un site .Il faut le placer dans votre répertoire de travail c:\progpic\essai01\.........
Si vous voulez créer un nouveau fichier *.asm , allez dans le menu File puis New .
Une fenêtre s' ouvre , tapez " ;essai01 " , le point virgule avant le texte est important puis dans le menu File Save as Sauvegardez avec le nom " essai01.asm " dans votre répertoire de travail .Vous devez avoir la fenêtre :
Maintenant nous allons associé le fichier essai01.asm à notre projet .Retournez dans le menu Projet et Edit Project
En 6 vous cliquez sur Add Node ou faite les touches de raccourci CTRL + F3 puis vous sélectionnez le programme essai01.asm .Il viens se placer dans votre projet en 7 .Puis faire OK .
Vous pouvez maintenant faire une tentative de compilation de
votre
programme dans le menu Project et Built all
ou CTRL + F10 .
MPASM s' ouvre très vite et une fenêtre Build Results reste à l' écran :
Voici le texte :
1 Building ESSAI01.HEX...
2 Compiling ESSAI01.ASM:
3 Command line: "C:\PROGRA~1\MPLAB\MPASMWIN.EXE /p16F84A /q
C:\PROGPIC\ESSAI01\ESSAI01.ASM"
4 Error[129] C:\PROGPIC\ESSAI01\ESSAI01.ASM 4 : Expected (END)
5 MPLAB is unable to find output file "ESSAI01.HEX". This may be due to
a compile, assemble, or link process
failure.
6 Build failed.
Sur la ligne 1 MPASM de MPLAB va construire le fichier
essai01.hex
il compile le fichier essai01.asm
il vous indique les chemins d' accès aux programmes
il annonce une erreur 129 Expected ( END) ; il vous indique
qu' il
manque la commande END pour la fin de votre programme .
il n' a pas compilé votre programme et le fichier essai01.hex n' a pas
été
fait .
En effet revenons à notre programme essai01.asm :
Nous avons mis un texte essai01 avec un point virgule devant , le point virgule signale au compilateur de ne pas tenir compte de la suite de la ligne ainsi vous pouvez mettre des commentaires dans vos programmes *.asm .
En ajoutant un point virgule vous pouvez faire des délimitations ou des chapitres dans vos programmes , par exemple :
;*****************************************************************************
;
Programme de test de la carte d'entrée
sortie
*
;
*
; dan
09/03/02
*
; Testez le HP en actionnant les interrupteurs pour des sons différents
...
*
;
*
;*****************************************************************************
LIST p=16F84A ; Définition de processeur
include
"P16F84A.inc"
; Définitions de variables
; Autre possibilité include <P16F84A.inc>
;*****************************************************************************
;
Démarrage sur
Reset
*
;*****************************************************************************
org
0x000
; Adresse de départ après reset
goto
init
; Adresse 0: initialiser
;*****************************************************************************
;
INITIALISATIONS
*
;*****************************************************************************
init clrf
PORTA
; Sorties portA à 0
clrf
PORTB
; sorties portB à 0
bsf
STATUS,RP0
; sélectionner banque 1
clrf
EEADR
; permet de diminuer la consommation
movlw
b'00011111'
; configure le portA,(0,1,2,3,4) en entrée
movwf PORTA
movlw
OPTIONVAL
; charger masque
movwf
OPTION_REG
; initialiser registre option
end
Il est vivement conseiller de mettre un maximum de commentaire pour ne pas oublier le fonctionnement d' un programme et de séparer les modules .
Pour essai01.asm il faut ajouter une ligne et mettre la commande ou l' instruction end ou END .
Vous pouvez maintenant faire une autre tentative de
compilation de votre
programme dans le menu Project et Built all
ou CTRL + F10 .
Building ESSAI01.HEX...
Compiling ESSAI01.ASM:
Command line: "C:\PROGRA~1\MPLAB\MPASMWIN.EXE /p16F84A /q
C:\PROGPIC\ESSAI01\ESSAI01.ASM"
Warning[205] C:\PROGPIC\ESSAI01\ESSAI01.ASM 3 : Found directive in
column 1. (end)
Build completed successfully.
Il y a du progrès car le fichier est Build completed successfully ce qui veux dire qu' il à été généré avec succès .Vous ave maintenant un fichier essai01.hex dans votre répertoire de travaille .
Bon vous avez un Warning qui vous dit que la commande end ce trouve dans la colonne 1 , MPASM préfère que les commande soit plus loin .La colonne 1 est réservé aux labels
Donc pour finir avec notre exemple essai01.asm il faut laisser un espace avec par exemple le touche TAB ( deux flèches au dessus de la touche Majuscule ).
Pour résumer un programme *.asm se compose de Commentaire
avec des points virgules devant qui ne serrons pas compiler dans le
fichier .hex
.
ensuite nous trouvons des Instructions
qui vont
intervenir dans le programme ; un pic 16F84 a 35
instructions.
Et en fin nous avons les Labels
dans la colonne 1 , se
sont des sous programmes pour mieux structurer le programme principale.
;*****************************************************************************
;
Programme de test de la carte d'entrée
sortie
*
;
*
; dan
09/03/02
*
; Testez le HP en actionnant les interrupteurs pour des sons différents
...
*
;
*
;*****************************************************************************
LIST
p=16F84A ; Définition de processeur
include
"P16F84A.inc"
; Définitions de variables
; Autre possibilité include <P16F84A.inc>
;*****************************************************************************
;
Démarrage sur
Reset
*
;*****************************************************************************
org
0x000
; Adresse de départ après reset
goto
init
; Adresse 0: initialiser
;*****************************************************************************
;
INITIALISATIONS
*
;*****************************************************************************
init
clrf
PORTA
; Sorties portA à 0
clrf
PORTB
; sorties portB à 0
bsf
STATUS,RP0
; sélectionner banque 1
clrf
EEADR
; permet de diminuer la consommation
movlw
b'00011111'
; configure le portA,(0,1,2,3,4) en entrée
movwf PORTA
movlw
OPTIONVAL
; charger masque
movwf
OPTION_REG
; initialiser registre option
end
Nous allons passer maintenant à ICPROG mais nous reviendrons sur MPLAB par la suite .
Dernière mise à jour le 2009 .