Organisation d’un fichier « .
asm »
1 Les Bibliothèques
list p=16F84A , r=dec ; pour le choix de notre microcontrôleur ;
R pour les nombres utilisé en décimal
#include p16f84.inc ; pour ça biblio
2 La directive _CONFIG
La ligne suivante, commence par « __CONFIG ». Cette ligne contient les
fameux « fusibles » qui fixent le fonctionnement de la PIC.
Par exemple, activons le Code Protect (protection en lecture) :
On remplacera donc simplement la ligne :
__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _HS_OSC
Par __CONFIG _CP_ON & _WDT_ON & _PWRTE_ON & _HS_OSC
3 Les assignations
Les ASSIGNATIONS personnelles qui fonctionnent selon le même principe
que dans le fichier « .inc ». A quoi cela sert-il ? Et bien à faciliter la MAINTENANCE
de votre programme. Il est en effet plus simple de retenir dans votre programme la
valeur « MASQUE » que de manipuler la valeur 0x5B.
La syntaxe est simple puisqu’il s’agit de EQU (égal à), Exemple d’assignation :
mavaleur EQU 0x05
Pour une température ambiante TA EQU 0x21
4 Les définitions
Les définitions pour remplacer un texte plus complexe. Par exemple nous
pourrons utiliser un PORT suivi d’un numéro de bit, ou bien carrément une instruction
avec ses paramètres. Une définition est construite de la manière suivante : La directive
#DEFINE, suivie par le nom que l’on désire utiliser, puis la chaîne à substituer. Par
exemple :
#DEFINE monbit PORTA,1
#DEFINE LED-A PORTB,0
#DEFINE LED-B PORTB,1
5 La zone des variables
Toute zone définie par l’utilisateur commence avec la DIRECTIVE CBLOCK,
suivie par l’adresse du début de la zone 0x0C.
CBLOCK 0x00C ; début de la zone variables
Ensuite, vous pouvez utiliser 68 emplacements mémoire, qui répondront à la
syntaxe suivante : nom de la variable suivi du signe « : » suivi de la taille utilisée.
Par exemple :
w_temp :1 ; Zone de 1 byte ou 8 bits
montableau : 8 ; zone de 8 bytes ou 8*8 bits
Ensuite, vous devrez préciser la fin de la zone en cours à l’aide de la directive :
ENDC ; Fin de la zone
6 La directive « ORG »
La directive ORG, suivie de l’adresse, précise à quelle adresse les instructions
qui suivent seront placées dans la PIC adresse 000. Il est important de savoir 2 choses :
- Après un reset ou une mise sous tension, la PIC démarre toujours à l’adresse 0x00.
Le début de votre programme doit donc se situer là.
org 0x000 ; Adresse de départ après reset
1.7 La directive « END
Cette directive précise l’endroit où doit cesser l’assemblage de votre programme. Elle
est obligatoire dans tout programme, sous peine d’une erreur qui vous signalera que la
fin de fichier (End Of File) a été atteinte avant de rencontrer la directive END.