Microcontroleur PIC - Part 07b
Microcontroleur PIC - Part 07b
Microcontroleur PIC - Part 07b
Microcontrôleurs
PIC
7ème partie (2/2)
Le jeu ADDLW k
d’instructions des PIC Cette instruction additionne le contenu du registre de tra-
vail W et k et met le résultat de l’opération en W. k peut
Le jeu d’instructions représente l’ensemble des instruc- être un nombre ou bien une étiquette. Elle est effectuée en
tions que le microcontrôleur est en mesure d’exécuter et un cycle machine. Mettons, par exemple, que l’on ait W qui
ELECTRONIQUE 75 magazine - n° 9
TECHNOLOGIE
contiennent le nombre 20. En exécu- A première vue, cette instruction pour- SLEEP
tant l’instruction “ADDLW 10”, on rait sembler similaire à l’instruction Met le processeur en mode SLEEP, en
obtiendra que le registre W contienne CALL, mais il y a une différence essen- fermant l’oscillateur et en bloquant
le nombre 30. Imaginons maintenant tielle : l’instruction CALL prévoit tou- ainsi le déroulement du programme.
que l’on ait écrit la directive suivante : jours, à travers l’instruction RETURN, Comme nous l’avons déjà vu, pour sor-
le retour au point où le programme a tir de cette situation, il faut un signal
COUNT EQU 05 été abandonné. Dans l’exemple de du “watchdog” ou une interruption
ADDLW COUNT notre programme, la routine DELAY ser- extérieure. Elle dure un cycle machine.
vait seulement à introduire un certain
Dans la première ligne, comme nous retard, mais une fois son but atteint, SUBLW k
l’avons vu, on associe à l’étiquette le programme devait continuer dans Cette instruction exécute la soustrac-
COUNT le nombre 05. Dans la son cycle d’alternance d’allumage et tion entre le registre W et k, et met le
deuxième ligne, le résultat obtenu sera d’extinction. Par contre, l’instruction résultat en W. Elle dure un cycle
que l’on trouvera en W la somme de GOTO prévoit un abandon complet machine.
la valeur que W avait précédemment sans retour. Elle est normalement uti-
et le nombre 05. lisée avec d’autres instructions pour XORLW k
effectuer ce que l’on appelle les sauts Cette instruction exécute une opéra-
ANDLW k conditionnels. En réalité, il faut par- tion de OU exclusif (EXOR) entre le
Cette instruction exécute une opéra- fois faire exécuter des opérations dif- registre W et k. Elle met le résultat en
tion de ET logique entre le contenu de férentes selon qu’un événement se W. Elle nécessite un cycle machine.
W et k, et met le résultat en W. Elle vérifie ou non. Toujours en nous réfé-
est effectuée en un cycle machine. rant à l’exemple précédent, dans la
routine DELAY on doit décrémenter des Instructions
CALL k registres pour obtenir le retard. Quand “byte oriented”
Cette instruction sert à aller exécuter cette décrémentation a complètement
une sous-routine et s’effectue en deux mis les registres à zéro, il faut donc Ce sont 18 instructions qui permet-
cycles machine. Si nous faisons réfé- revenir au programme. Il faut, par tent d’agir avec les octets des registres
rence à l’exemple du programme pour conséquent, faire suivre deux “che- “file” : ceux d’utilisation spéciale et
allumer les deux LED, on y trouve une mins” différents au programme selon ceux d’utilisation générale.
sous-routine qui commence à l’éti- que la décrémentation a produit ou
quette DELAY. Ainsi, quand l’instruc- non un résultat égal à zéro. ADDWF f,d
tion “CALL DELAY” est exécutée le Cette instruction permet d’additionner
microcontrôleur charge dans le “pro- IORLW k le contenu du registre W avec un
gram counter” (le compteur des posi- Cette instruction réalise une opération registre identifié par son adresse f. Le
tions de mémoire) l’adresse du “label” de OU logique entre le registre W et k résultat sera mis en W ou dans le
DELAY, faisant ainsi continuer le pro- et met, comme toujours, le résultat registre f, selon la valeur de d, qui peut
gramme à partir de l’étiquette DELAY. dans W. Il lui faut un cycle machine. être ou 1 ou 0. Si d vaut 0, le résultat
A la fin de chaque sous-routine, il est sera mis dans le registre W, s’il vaut
nécessaire d’introduire une instruction MOVLW k 1, il sera mis dans le registre f. Si d
RETURN pour faire revenir le pro- Cette instruction charge la valeur de est omis, la valeur que l’on utilisera
gramme au point où il avait été aban- k dans le registre W. La valeur précé- sera 1 et donc le registre utilisé
donné. dente de W est donc évidemment per- comme destination du résultat sera f
due. L’instruction est effectuée en un (un cycle machine). Mettons par
CLRWDT cycle machine. Ainsi, par exemple, exemple que l’on veuille ajouter au
Cette instruction, sert à mettre à zéro l’instruction “MOVLW 14” charge dans registre d’adresse 0C, qui est un des
le “watchdog”, de telle sorte qu’il ne le registre W le nombre 14. Le contenu registres d’utilisation générale, le
puisse pas effectuer un reset du micro- précédent de W est perdu. nombre 10 et mettre le résultat dans
contrôleur. Elle nécessite un cycle ce même registre. La séquence d’ins-
machine. RETFIE tructions à écrire sera :
Sert à effectuer le retour depuis une
GOTO k interruption. Il faut deux cycles MOVLW 10 ;cette instruction
Cette instruction, en deux cycles machine. Nous parlerons de cette ins- ;met le nombre 10
machine, ser t à faire avancer le pro- truction lorsque nous analyserons en ;dans le registre W
ADDWF 0C,1 ;cette instruction
gramme jusqu’à un point différent. Si, détail le mode de gestion via software ;additionne le contenu
par exemple, on écrit l’instruction sui- des interruptions. ;du registre d’adresse
vante : ;0C avec le registre W
RETLW k ;et met le résultat
...... Cette instruction ressemble beaucoup ;dans le registre
GOTO SALTO à RETURN, et sert donc à fermer une ;d’adresse 0C.
...... sous-routine et à revenir au programme
au point où il avait été abandonné. De ANDWF f,d
SALTO ......
...... plus, cette instruction charge la valeur Cette instruction exécute une opéra-
de k dans le registre W. Il faut deux tion de ET entre le registre W et le
cycles machine. registre d’adresse f. Comme ci-des-
Arrivée à l’instruction GOTO, l’adresse
de l’étiquette SALTO est chargée dans sus, si d vaut 1, le résultat est mis
le “program counter”, ce qui force le RETURN dans ce registre, si d vaut 0, le résul-
programme à continuer depuis ce Sert justement pour fermer une sous- tat est mis dans le registre W (un cycle
point. routine. Il faut deux cycles machine. machine).
ELECTRONIQUE 76 magazine - n° 9
TECHNOLOGIE
ELECTRONIQUE 77 magazine - n° 9
TECHNOLOGIE
L’instruction “BCF COUNT,5” fera suit (BTFSC veut dire “Bit Test File, Skip OPTION qui, comme nous l’avons vu,
qu’après l’exécution le registre COUNT if Clear”, c’est-à-dire “tester le bit du est un registre spécial pour la confi-
vaudra 01010101, étant donné qu’elle registre et s’il est égal à 0, sauter l’ins- guration du timer et du prescaler (un
met à zéro le bit D5 qui représente le truction suivante”). cycle machine).
sixième bit en par tant de la droite,
c’est-à-dire le bit le moins significatif. L’instruction BTFSS fonctionne de la TRISf
même façon, sauf que l’instruction qui L’instruction TRIS sert à transférer le
BSF f,b suit immédiatement est sautée si la contenu du registre W dans un des
Cette instruction fonctionne exacte- valeur du bit est 1 (un ou deux cycles registres TRIS qui, nous vous le rap-
ment comme la précédente, mais au machine). pelons, sont des registres qui per-
lieu de mettre le bit à 0, elle le met à mettent de configurer les por ts du
1 (Set). Elle a besoin d’un cycle microcontrôleur en entrée ou sortie. f
machine. Avec la même valeur de Instructions spéciales ne peut prendre que les valeurs 5, 6
COUNT, c’est-à-dire 01110101, après ou 7, pour accéder aux trois registres
l’instruction “BSF COUNT,3”, le registre Outre les instructions que nous avons des por ts A, B et C dans le cas où
COUNT vaudra 01111101. vues jusqu’à présent, il existe deux ceux-ci sont tous les trois présents (un
instructions qui sont spécifiques à cer- cycle machine). Dans l’exemple de
BTFSC f,b tains PIC de la série 16. Si vous dési- notre programme, parmi les instruc-
BTFSS f,b rez écrire un programme qui soit com- tions d’initialisation, on trouvait ces
Ces deux instructions sont particuliè- patible avec d’éventuels autres deux instructions :
rement importantes, puisqu’elles per- microcontrôleurs de la famille, nous
mettent, après avoir testé la valeur vous conseillons de ne pas utiliser ces MOVLW 00 ;Mets en W le nombre 0
d’un bit, identifié par b, dans le registre instructions. Si, toutefois, vous écri- TRIS PORT_B ;Le port B est configuré
d’adresse f et en fonction de la valeur vez le code qui sera utilisé toujours et ;en sortie
de celui-ci, d’exécuter ou non l’ins- seulement sur un microcontrôleur spé-
truction suivante. cifique (par exemple le 16F84), vous Ces instructions sont utilisées pour ini-
pourrez utiliser normalement ces deux tialiser le port B du microcontrôleur en
En particulier, avec l’instruction BTFSC, instructions. Etudions-les. sortie (nous vous rappelons, en effet,
si la valeur du bit est 1, l’instruction sui- qu’un 0 dans le registre configure le
vante sera normalement exécutée alors OPTION bit correspondant du por t en sor tie
que s’il est à 0, l’instruction suivante Cette instruction ser t à transférer le alors qu’un 1 le configure en entrée).
sera sautée, pour exécuter celle qui la contenu du registre W dans le registre ◆ R. N.
Z I d e s P a l u d s - B P 1 2 4 1 - 1 3 7 8 3 AU B AG N E C e d e x
Tél. : 04 42 82 96 38 - Fax 04 42 82 96 51
I n t e r n e t : h t t p : / / w w w. c o m e l e c . f r
PIC BASIC COMPILATEUR : Permet d'utiliser des fonctions de PIC BASIC PRO COMPILATEUR : Ajoute de nombreuses autres
programmation avancées, commandes de saut (GOTO, GOSUB), de fonctions à la version standard, comme la gestion des interruptions, la possibilité
boucle (FOR… NEXT), de condition (IF… THEN…), d'écriture et de lecture d’utiliser un tableau, la possibilité d’allouer une zone mémoire pour les variables,
d'une mémoire (POKE, PEEK) de gestion du bus I2E (I2CIN, I2COUT), la gestion plus souple des routines et sauts conditionnels (IF… THEN…
de contrôle des liaisons séries (SERIN, SEROUT) et naturellement de ELSE…). La compilation et la rapidité d’exécution du programme compilé sont
toutes les commandes classiques du BASIC. La compilation se fait très bien meilleures que dans la version standard. Ce compilateur est adapté aux
rapidement, sans se préoccuper du langage machine. utilisateurs qui souhaitent profiter au maximum de la puissance des PIC.
PBC (Pic Basic Compiler) ...................... 932,00 F PBC PBC PRO ........ 2 070,00 F ........ 1 870 F*
DEMANDEZ NOTRE NOUVEAU CATALOGUE 32 PAGES ILLUSTRÉES AVEC LES CARACTÉRISTIQUES DE TOUS LES KITS NUOVA ELETTRONICA ET COMELEC
Expéditions dans toute la France. Moins de 5 kg : Port 55 F. Règlement à la commande par chèque, mandat ou carte bancaire. Bons administratifs acceptés.
Le port est en supplément. De nombreux kits sont disponibles, envoyez votre adresse et cinq timbres, nous vous ferons parvenir notre catalogue général.
ELECTRONIQUE 78 magazine - n° 9