1 les microcontrôleurs pic de microchip le 16f84


13

6 bits pour l’instruction : logique, car comme il y a 35 instructions, il faut 6 bits pour pouvoir les coder toutes

1 bit (d) pour indiquer si le résultat obtenu doit être conservé dans le registre de travail (accumulateur) W de l’unité de calcul (W pour Work) ou sauvé dans un registre F (F pour File).

Reste 7 bits pour encoder l’adresse de l’opérande (128 positions au total)

Problème ! 7 bits ne donnent pas accès à la mémoire RAM totale, donc voici l’explication de la

division de la RAM en deux banks. Pour remplacer le bit manquant, on utilise le bit RP0 du registre STATUS.

Bien qu’on ne l’utilise pas sur le 16F84, le bit RP1 est aussi réservé pour le changement de

bank, le 16F876 par exemple possède 4 banks. I.17.2 Les instructions « orientées bits »

Ce sont des instructions destinées à manipuler directement les bits d’un registre d’une case

mémoire. Elles sont codées de la manière suivante :

4 bits pour l’instruction

3 bits pour indiquer le numéro du bit à manipuler (de 0 à 7)

7 bits pour indiquer l’opérande.

I.17.3 Les instructions opérant sur une donnée (adressage immédiat)

Ce sont les instructions qui manipulent des données qui sont codées dans l’instruction

directement. Elles sont codées de la manière suivante : – L’instruction est codée sur 6 bits

Elle est suivie d’une valeur IMMEDIATE codée sur 8 bits (donc de 0 à 255).

I.17.4 Les instructions de saut et appel de procédures

Ce sont les instructions qui provoquent une rupture dans la séquence de déroulement du

programme. Elles sont codées de la manière suivante : – Les instructions sont codées sur 3 bits – La destination est codée sur 11 bits Nous pouvons déjà en déduire que les sauts ne donnent accès qu’à 2K de mémoire

programme (211). Pas de problème pour le 16F84 qui ne possède que 1k de mémoire programme.

I.17.5 Exemples d’instruction MOVWF F ; recopie W dans le registre d’adresse F : .W → . F .

F (File) désigne l’adresse de n’importe quel registre SFR ou GPR. Pour les registres SFR, on peut utiliser leurs noms à condition d’inclure le fichier p16F84.inc dans le programme MOVWF 0x2C ; recopie W dans la case mémoire d’adresse 2Ch

MOVWF EEDATA ; recopie W dans le registre EEDATA

MOVF 0x08 ; recopie W dans le registre EEDATA

F W

d=1

d=0

MOVF F,d ; recopie le registre F soit dans W soit dans lui-même

Recopier un registre sur lui-même peut paraître sans intérêt, mais comme l’instruction positionne les indicateurs, cela peut s’avérer intéressant

Laisser un commentaire