16
Ouvrez la fenêtre qui visualise la mémoire RAM : view FileRegisters. La case mémoire
0x0C se trouve sur la première ligne (ligne:0000, colonne:0C)
Exécuter maintenant le programme PAS à PAS en cliquant à chaque fois sur le bouton Step
Into { } en observant la case mémoire 0C . (on dirait que ça marche).
• On peut aussi exécuter en continu en cliquant sur le bouton animate , pour arrêter, il faut
cliquer sur le bouton halt
Pour plus de détail, consulter le manuel d’utilisation de MPLAB
II.2 Les directives de 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. Ce ne sont pas des instructions destinées au PIC.
II.2.1 Les directives les plus utilisées
• LIST : permet de définir un certain nombre de paramètres comme le processeur utilisé (p), la base par défaut pour les nombres (r), le format du fichier hex à produire (f) ainsi que d’autres paramètres. Exemple : LIST p=16F84A, r=dec, f=inhx8m
• INCLUDE : permet d’insérer un fichier source. Par exemple le fichier p16f84A.inc contient la définition d’un certain nombre de constante comme les noms des registres ainsi que les noms de certain bits; INCLUDE « p16f84A.inc »
• __CONFIG : permet de définir les 14 fusibles de configuration qui seront copié dans l’EEPROM de configuration lors de l’implantation du programme dans le PIC (protection de code, type d’oscillateur, chien de garde et temporisation du départ) __CONFIG B’11111111111001′ __CONFIG H’3FF9′ si le fichier p16f84.inc a été inséré, on peut utiliser les constantes prédéfinies : __CONFIG _CP_OFF & _XT_OSC & _PWRTE_OFF & _WDT_OFF
• EQU : permet de définir une constante ou une variable : XX EQU 0x20 Chaque fois que le compilateur rencontrera XX, il la remplacera soit par la constante 0x20. ça peut être une constante s’il s’agit d’une instruction avec adressage immédiat, ou d’une adresse s’il s’agit d’une instruction avec adressage direct.
• #DEFINE : définit un texte de substitution #DEFINE pos(x,y,z) (y-2z+x) 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.
• CBLOCK/ENDC : définit un bloc de constantes CBLOCK 0X0C ; var1=0x0C, var2=0x0D, k=0x0D
var1,var2 k ENDC