1 les microcontrôleurs pic de microchip le 16f84


5

I.2 La mémoire programme (flash)

Cette mémoire de 1024 mots stocke le programme. Elle est non volatile et reprogrammable à

souhait. Chaque position de 14 bits contient une instruction. L’emplacement du programme peut se situer à n’importe quel endroit de la mémoire. Cependant il faut savoir que suite à un RESET ou lors de la mise sous tension, le PIC commence l’exécution à l’adresse 0000 H. De plus, lorsqu’il y a

une interruption, le PIC va à l’adresse 0004 H. Il est donc conseillé de placer le début du

programme après l’adresse 0004 H et de mettre un branchement au début du programme à

l’adresse 0000H et un branchement au début de la routine d’interruption s’il y en a une à l’adresse 0004H. Le programme est implanté dans la flash à l’aide d’un programmateur (hard+soft) sur lequel nous reviendrons dans la suite de ce document.

I.3 La mémoire RAM – Rrgistres

La mémoire RAM est constituée de deux parties : • Les registres SFR (Special Function

Register), ce sont les registres de fonctionnement du PIC. L’ensemble de ces registres est souvent appelé fichier des registres. Nous reviendrons sur ces registres tout le long de ce document. • Les registres GPR (General Propose

Register) sont des positions mémoire que l’utilisateur peut utiliser pour stocker ses variables et ces données. On remarquera donc que, indépendamment de leur nature, les position de la RAM sont toujours appelé registres

bank 0 bank 1

00 INDF INDF 80 01 TMR0 OPTION 81 02 PCL PCL 82 03 STATUS STATUS 83 04 FSR FSR 84 05 PORTA TRISA 85 06 PORTB TRISB 86 07 87 08 EEDATA EECON1 88 09 EEADR EECON2 89 0A PCLATH PCLATH 8A 0B INTCON INTCON 8B 0C . . . . .

Mémoire

8C . . . . .

La mémoire RAM est organisée en

deux banks, pour accéder à un registre, il faut d’abord se placer dans le bank où il se trouve. Ceci est réalisé en positionnant le bit RP0 du registre STATUS. (RP0 = 0 → Bank 0, RP0 = 1 → Bank 1)

Maped in bank0

utilisateur

4F CF

Registre STATUS IRP RP1 RP0 TO PD Z DC C

Pour la mémoire utilisateur, l’utilisation des pages (Bank ) n’est pas nécessaire puisque le Bank

1 est « mapped » avec le Bank0. Cela signifie qu’écrire une donnée à l’adresse 0C H ou à l’adresse

8CH revient au même.

I.4 L’ALU et le registre W

C’est une ALU 8 Bits qui réalise les opérations arithmétique et logique entre l’accumulateur W

et n’importe quel autre registre ‘F’ ou constante K. L’accumulateur W est un registre de travail 8 bits, il n’a pas d’adresse comme les autres SFR. Pour les instructions à deux opérandes, c’est toujours lui qui contient un des deux opérandes. Pour les instructions à un opérande, celui-ci peut être soit W soit n’importe quel registre F. Le résultat de l’opération peut être placé soit dans le registre de travail W soit dans le registre F.

Laisser un commentaire