Forme generale d'un programme
Les mots ecrits en vert sont explicités à la fin de la page.
Presentation en bref
Nous allons voir sur cette page ce qu'il faut écrite pour débuter et finir un programme.
Voici le cas le plus simple (sans interruptions)
;
Apres chaque point virgule on peut mettre des
commentaires |
On va maintenant passer en revue toutes les instructions (pour plus de détails, reportez vous à l'aide de MPASM: le compilateur de Microchip):
list
p=16f84,f=inhx8m
Dit au compilateur le type de pic
utilisé.
Indique le format de fichier utilisé.
__config
B'11111111110001'
~ Bit0 et bit1: fixe le type
d'oscillateur (obligatoire pour faire fonctionner le PIC):
11
=> horloge avec un circuit RC
01 => horloge à
qartz (4Mhz en général)
~ Bit2: Le chien
de garde est activé lorsqu'il est à "1"
~
Bit3: La tempo à l'allumage du PIC est utilisée
lorsqu'il est à "0"
Cette tempo est utile
permettre à l'oscillateur de se stabiliser.
~ Bit4 à
Bit 13: lorsqu'ils sont à "1", le programme n'est
pas protégé, on peut toujours le récupérer
du PIC. Dans le cas contraire, on ne peut pas lire le programme
contenu dans le PIC, on peut juste l'executer.
#include
"p16f84.inc"
Sert à définir les
instructions qu'on a le droit d'utiliser (elles sont contenues
dans le fichier p16f84.inc).
Son
equ D'129'
Definit
la constante "Son". A chaque fois que le compilateur
verra écrit "Son" dans le programme, il le
remplacera par 129.
Note
equ H'0C'
Definit
la variable Note. A chaque fois que le compilateur verra ecrit
"Note" dans le programme, il le remplacera par 0C.
C'est
le PIC qui fera la differance entre les variables et les
constantes (en fonction des instructions utilisées). Voir
la page precedente pour plus de details.
org H'00'
Le
PIC commence toujours à executer le programme à la
ligne H'00'. On se met donc à cette ligne pour commencer à
écrire le programme.
Notez que le compilateur place par
defaut le programme a partir de cette adresse.
Respectez bien les trois colonnes comme je l'ai fait ci dessus. (Dans notepad, vous pouvez appuyer sur TABULATION pour définir les colonnes)
Pour ecrire un nombre, il existe plein de facons qui sont toutes equivalentes:
Ecriture d' |
Differentes possibilités. (exemple avec 5) |
Un nombre en Hexadecimal |
H'05' ; le plus
clair à mon gout |
Un nombre en Binaire |
B'00000101' |
Un nombre en Décimal |
D'005' |
Un nombre en Octal |
O'005' |
Notez que les zeros avant le 5 ne sont pas necessaire.
Voici maintenant le code dans le cas de l'utilisation des interruptions.
;
Apres chaque point virgule on peut mettre des
commentaires |
La seule chose à savoir, c'est que lors d'une interruption, le PIC execute un sous programme commencant à l'adresse H'04'
Quelques définitions:
Compilateur:
c'est le logiciel qui convertit les instructions en assembleur
qu'on tape (par exemple ADDLW toto), en code comprehensible par le
PIC. C'est une sorte de traducteur.
Voici une image du
compilateur (cliquez dessus pour l'aggrandir):
Programmateur:
C'est le logiciel qui sert à transmettre un programme du
P.C. au PIC. (par l'intermediaire du port parallele ou du port
serie).
Voici une image du programmateur P16PRO (cliquez dessus
pour l'aggrandir):
Chien de garde (WDT): C'est une fonction du PIC qui permet de savoir si une instruction dure "trop" longtemps (peut etre désactivé). Cette fonction peut par exemple servir à faire des temporisations: On "endort" le PIC, le chien de garde detecte que ca dure trop longtemps, et il "reveille" le PIC.
Ecrivez nous: xizard@enib.fr et rbourdon@enib.fr