Vous êtes sur la page 1sur 41

PROGRAMMATION

EN
ASSEMBLEUR
du PIC 16F84
(JEU D’INSTRUCTIONS)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 1


Afin de comprendre la fonction de chaque instruction, la
JEU D’INSTRUCTIONS Du PIC 16F84

notation adoptée pour les données et adresses manipulées


par les instructions est fort simple et est la suivante :

-f représente un registre.
-b représente un numéro de bit en sachant que 0
correspond toujours au bit de poids faible (le plus à
droite dans le registre).
-k représente une donnée aussi appelé littéral.

Au total le PIC 16F84 comprend 35 instructions

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 2


Remarques
Un certain nombre d’instructions (ADDWF , ANDWF , etc..) utilise
JEU D’INSTRUCTIONS Du PIC 16F84

une notation spéciale :


1
ADDWF f,d
Où f indique le registre et où d peut prendre deux valeurs (0 ou1), ce
qui change le comportement de l’instruction. Si d est à 0, le résultat
est placé dans le registre de travail W, la valeur dans le registre f est
alors inchangée, alors que si d est à 1, le résultat est placé dans le
registre f.
‘d’ peut être omet :
ADDWF f
Alors par défaut d = 0.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 3
2
Un autre type d’instruction mérite quelques éclaircissements, ce
JEU D’INSTRUCTIONS Du PIC 16F84

sont les instructions de branchement conditionnel. Prenons comme


exemple : BTFSC f,b
Qui va vouloir dire (Bit Test File Skip if Clear) qui signifie que l’on
va tester le bit b du registre f, b peut prendre une valeur de 0 à 7
(registre 8 bits). Il peut alors y avoir deux solutions :
-Soit le bit testé est à 1, donc la condition testée n’est pas réalisée, le
programme continue alors son déroulement normalement en
séquence avec l’instruction juste en dessous.
-Soit le bit testé vaut 0, donc la condition testée est réalisée et le
programme saute l’instruction qui suit le BTFSC dans le
programme.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 4
JEU D’INSTRUCTIONS Du PIC 16F84

Les 35 instructions sont réparties en 5 types :


1. 15 Instructions qui manipulent des registres
(2 arithmétiques, 3 logiques, 2 rotation, 2 déplacement, …)
2. 2 Instructions qui manipulent des bits
3. 6 Instructions qui manipulent des opérandes
immédiats. (2 arithmétiques, 3 logiques, 1 déplacement)
4. 4 Instructions de Saut (conditionnel)
5. 8 Instructions de Commande et Spéciales

Elles sont résumées dans le tableau suivant :

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 5


JEU D’INSTRUCTIONS Du PIC 16F84
Nous présenterons les instructions par groupes de fonction:

Groupe 1: -Instructions de Transfert


Groupe 2: -Instructions de Remise (à 1 et à 0)
Groupe 3: -Instructions de Test
Groupe 4: -Instructions Arithmétiques
Groupe 5: -Instructions Logiques et de Rotation
Groupe 6: -Instructions de Commande et Spéciale
A- Groupe 1: -Instructions de Transfert
A.1- MOVF ( Move F )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : MOVF f,d


 
Opération:

Bits d’état du registre STATUS affectés : Z


Description: On déplace le contenu de f dans f si d=1 ou de f
dans W si d=0. Attention, le déplacement de f dans f
semble à priori inutile, mais il permet en fait de tester
le contenu de f par rapport à 0 et de positionner le bit Z.
Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 8


A.2- MOVLW ( Move Literal to W )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : MOVLW k
 
Opération:

Bits d’état du registre STATUS affectés : aucun

Description: On charge le contenu de W avec le littéral k.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 9


A.3- MOVWF ( Move W to F )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : MOVWF f
 
Opération:

Bits d’état du registre STATUS affectés : aucun

Description: On charge le contenu de f avec le contenu de W.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 10


B- Groupe 2: -Instructions de Remise (à 1 et 0)
B.1- BCF ( Bit Clear F )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : BCF f,b


 
Opération:

Bits d’état du registre STATUS affectés :Aucun

Description: On met à 0 le bit b du registre f.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 11


B.2- BSF ( Bit Set F )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : BSF f,b


 
Opération:

Bits d’état du registre STATUS affectés :Aucun

Description: On met à 1 le bit b du registre f.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 12


B.3- CLRF ( Clear f )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : CLRF f
 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On met le contenu du registre f à 0 et on positionne Z.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 13


B.4- CLRW ( Clear W )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : CLRW
 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On met le contenu du registre W à 0 et on positionne Z.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 14


C- Groupe 3: -Instructions de Test
C.1- BTFSC ( Bit Test , Skip if Clear )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : BTFC f,b


Opération: Saut de l’instruction qui suit si f(b)=0

Bits d’état du registre STATUS affectés :Aucun

Description: Si le bit b de f est nul (0), l’instruction (une seulement)


qui suit celle-ci est ignorée et traitée comme un NOP.
Dans ce cas et dans ce cas seulement, l’instruction
BTFSC demande deux cycles pour s’exécuter.

Durée : 1 cycle instruction (4 cycles d’horloge) ou 2 Cycles.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 15


C.2- BTFSS ( Bit Test , Skip if Set )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : BTFSS f,b


Opération: Saut de l’instruction qui suit si f(b)=1

Bits d’état du registre STATUS affectés :Aucun

Description: Si le bit b de f est à 1, l’instruction (une seulement)


qui suit celle-ci est ignorée et traitée comme un NOP.
Dans ce cas et dans ce cas seulement, l’instruction
BTFSC demande deux cycles pour s’exécuter.

Durée : 1 cycle instruction (4 cycles d’horloge) ou 2 Cycles.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 16


C.3- DECFSZ ( Decrement F, Skip if Zero )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : DECFSZ f,d


 
Opération:
et saut de l’instruction qui suit si f-1= 0
Bits d’état du registre STATUS affectés :Aucun
Description: On diminue le contenu du registre f d’un 1, le résultat
est placé dans f si d=1, dans W si d=0 (dans ce cas f
reste inchangé).Si le résultat est nul, l’instruction
suivante est ignorée et dans ce cas, cette instruction
dure deux cycles.
Durée : 1 cycle instruction (4 cycles d’horloge) ou 2 Cycles.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 17


C.4- INCFSC ( Increment F, Skip if Zero )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : INCFSZ f,d


 
Opération:
et saut de l’instruction qui suit si f+1= 0
Bits d’état du registre STATUS affectés :Aucun
Description: On augmente le contenu du registre f d’un 1, le
résultat est placé dans f si d=1, dans W si d=0 (dans ce
cas f reste inchangé).Si le résultat est nul, l’instruction
suivante est ignorée et dans ce cas, cette instruction
dure deux cycles.
Durée : 1 cycle instruction (4 cycles d’horloge) ou 2 Cycles.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 18


D- Groupe 4: -Instructions Arithmétiques
D.1- ADDLW ( Add Literal to W )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : ADDLW k
 
Opération:

Bits d’état du registre STATUS affectés : C, D, C, Z

Description: On ajoute au registre de travail W la valeur k et


on place le résultat dans le registre de travail W.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 19


D.2- ADDWF (Add W to F )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : ADDWF f,d


 
Opération:

Bits d’état du registre STATUS affectés : C, D, C, Z

Description: On ajoute le contenu de W et le contenu de f et on


place le résultat dans f si d=1 ou dans W si d=0.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 20


D.3- SUBLW ( Substract W from Literal )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : SUBLW k
 
Opération:

Bits d’état du registre STATUS affectés : C, D, C, Z

Description: On soustrait le contenu du registre W du littéral k et


on place le résultat dans W (soustraction par la
méthode du complément à 2).

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 21


D.4- SUBWF (Substract W from f )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : SUBWF f,d


 
Opération:

Bits d’état du registre STATUS affectés : C, D, C, Z

Description: On soustrait le contenu du registre W du contenu du


registre f et on place le résultat dans W si d=0, ou
dans f si d=1 (soustraction par la méthode du
complément à 2).

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 22


D.5- COMF ( Complement F )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : COMF f,d


 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On complémente le contenu du registre f bit à bit on


place le résultat dans W si d=0, ou dans f si d=1.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 23


D.6- INCF ( Increment F )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : INCF f,d


 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On augmente le contenu du registre f de 1, le résultat


est placé dans W si d=0, dans f si d=1 ( d=0 f reste
inchangé ).

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 24


D.7- DECF ( Increment F )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : DECF f,d


 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On diminue le contenu du registre f de 1, le résultat


est placé dans W si d=0, dans f si d=1 ( d=0 f reste
inchangé ).

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 25


E- Groupe 5: -Instructions Logiques et de Rotation
E.1- ANDLW ( And Literal and W )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : ANDLW k
 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On effectue un ET logique entre le contenu de W et


le littéral k, on place le résultat dans W

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 26


E.2- ANDWF ( And W with f)
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : ANDWF f,b


 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On effectue un ET logique entre le contenu de W et


le contenu de f, on place le résultat dans dans W si
d=0, ou dans f si d=1

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 27


E.3- IORLW ( Inclusive Or Literal with W )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : IORLW k
 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On effectue un OU logique entre le contenu de W et


le littéral k, on place le résultat dans W.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 28


E.4- IORWF ( Inclusive Or W with f)
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : IORWF f,b


 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On effectue un OU logique entre le contenu de W et


le contenu de f, on place le résultat dans dans W si
d=0, ou dans f si d=1

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 29


E.5- XORLW ( Exclusive Or Literal with W )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : XORLW k
 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On effectue un OU Exclusive entre le contenu de W


et le littéral k, on place le résultat dans W.

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 30


E.6- XORWF ( Exclusive Or W with f)
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : XORWF f,b


 
Opération:

Bits d’état du registre STATUS affectés : Z

Description: On effectue un OU Exclusive entre le contenu de W et


le contenu de f, on place le résultat dans dans W si
d=0, ou dans f si d=1

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 31


E.7- RLF ( Rotate Left f through carry )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : RLF f,b


Opération:

Bits d’état du registre STATUS affectés : C

Description: On effectue une rotation à gauche de un bit du contenu


du registre f en passant par le bit de retenu C , on place
le résultat dans W si d=0, ou dans f si d=1

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 32


E.8- RLF ( Rotate Right f through carry )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : RRF f,b


Opération:

Bits d’état du registre STATUS affectés : C

Description: On effectue une rotation à droite de un bit du contenu


du registre f en passant par le bit de retenu C , on place
le résultat dans W si d=0, ou dans f si d=1

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 33


F- Groupe 6: -Instructions de Commande et Spéciales
F.1- CALL ( Subroutine Call )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : CALL label


Opération:

Bits d’état du registre STATUS affectés : aucuns

Description: On sauvegarde l’adresse de retour dans la pile puis


on appelle le sous programme définit avec
l’étiquette.

Durée : 2 cycle instruction (8 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 34


F.2- CLRWDT ( Clear WatchDog Timer )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : CLRWDT
 
Opération: Pré diviseur du Timer

Bits d’état du registre STATUS affectés : aucuns

Description: On sauvegarde l’adresse de retour dans la pile puis


on appelle le sous programme définit avec
l’étiquette.

Durée : 2 cycle instruction (8 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 35


F.3- GOTO (Branchement Inconditionnel)
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : GOT0 label

Bits d’état du registre STATUS affectés : aucuns

Description: On effectue un saut dans le programme pour aller à


l’adresse pointé par le label précisé dans GOTO.

Durée : 2 cycle instruction (8 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 36


F.4- NOP (No Operation )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : NOP
Opération: Rien

Bits d’état du registre STATUS affectés : aucuns

Description: On ne fait que consommer du temps machine (un cycle).

Durée : 1 cycle instruction (4 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 37


F.5- RETFIE ( Return from Interrupt )
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : RETFIE
 
Opération:

Bits d’état du registre STATUS affectés : aucuns


Description: On charge le compteur ordinal avec la valeur qui se
trouve au sommet de la pile pour revenir au programme
principal lorsque l’exécution du sous programme est
terminée.
Durée : 2 cycle instruction (8 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 38


F.6- RETLW ( Return Literal to W)
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : RETLW k
 
Opération:

Bits d’état du registre STATUS affectés : aucuns


Description: On charge le contenu de W avec le littéral k puis on
charge le compteur ordinal PC avec la valeur qui se
trouve au sommet de la pile effectuent ainsi un retour
de sous programme.
Durée : 2 cycle instruction (8 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 39


F.7- RETURN ( Return from Subroutine)
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : RETURN
 
Opération:

Bits d’état du registre STATUS affectés : aucuns


Description: On charge le compteur ordinal PC avec la valeur qui se
trouve au sommet de la pile effectuent ainsi un retour
de sous programme. C’est un RETLW simplifié.
Durée : 2 cycle instruction (8 cycles d’horloge)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 40


F.8- SLEEP ( Sleep)
JEU D’INSTRUCTIONS Du PIC 16F84

Syntaxe : SLEEP
 
Opération: , , ,

Description: On place le circuit en mode sommeil avec arrêt de


l’oscillateur. Cette commande est à utiliser avec
précaution, elle nécessite la connaissance du mode
sommeil.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 41

Vous aimerez peut-être aussi