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 .

 

Retour                 Suite