Vous êtes sur la page 1sur 23

Systèmes Microprogrammés

Systèmes à Microcontrôleurs
Le PIC 16F84A
Pr. A. AIT MADI

RST(S6)-ENSA -KENITRA 1
Plan

Brochage
Principales caractéristiques
Architecture interne
Organisation de la mémoire
L’ALU et le registre W
Horloge

RST(S6)-ENSA -KENITRA 2
Brochage

 Le PIC 16F84A dispose de 18 broches


• 13 broches entrées/sorties, avec contrôle de direction individuel, et répartis en
deux ports A (5 bits) et B (8 bits)
• 2 broches pour l’alimentation VDD et la masse VSS
• 1 broche pour la mise à zéro, MCLR/, du PIC
• 2 broches pour la connexion de l’oscillateur (OSC1/CLKIN et OSC1/CLKOUT)
RST(S6)-ENSA -KENITRA 3
Brochage

Port A

RST(S6)-ENSA -KENITRA 4
Brochage

Port B

RST(S6)-ENSA -KENITRA 5
Principales caractéristiques
 Seulement 35 instructions
 Tout les instructions se font en un cycle machine (4 cycles d’horloges) sauf les
instructions de branchement qui se font en deux cycles machine
 Vitesse allant jusqu’à 20 MHz, soit une instruction sur 200 ns
 14 bits pour coder les instructions
 8 bits pour les données
 15 registres pour les fonctions spéciales
 1K mots de mémoire Flash
 68 octets de mémoires de données RAM
 64 octets de mémoire de données EEPROM
 1 Timer/compteur 8 bits avec une prédivision programmable et cadencé par une
horloge interne ou externe
 4 sources d’horloge sélectionnable
 Mode sleep (pour une faible consommation)

RST(S6)-ENSA -KENITRA 6
Principales caractéristiques
 8 niveaux de pile
 4 sources d’interruptions
 1000 cycles d’effacements/écriture possible dans la mémoire du programme
Flash
 10 000 000 cycles d’effacements/écriture possible dans la mémoire de données
EEPROM
 Programmation par ICSP ( In Circuit Serial Programming) via deux broches RB6
(clock) et RB7 (data)
 Protection de code

RST(S6)-ENSA -KENITRA 7
Architecture interne

RST(S6)-ENSA -KENITRA 8
Architecture interne

 L’architecture générale du PIC16F84A est constitué des éléments suivants:


• Un système d’initialisation à la mise sous tension (Power up Timer…)
• Un système de génération d’horloge (Timing generation)
• Une unité arithmétique et logique ALU
• Une mémoire de programme Flash de 1K mots de 14 bits
• un compteur de programme (Program Counter) et une pile (Stack)
• Un bus spécifique pour le programme (Program bus) sur 14 bits
• Un registre contenant le code de l’instruction à exécuter
• Un bus spécifique pour les données (data bus) sur 8 bits

RST(S6)-ENSA -KENITRA 9
Architecture interne

• Une mémoire de données RAM (File registers)


• Une mémoire de données EEPROM de 64 octets pour le stockage de données
permanentes
• 2 ports d’entrées/sorties A et B
• Un chien de garde (Watchdog) : compteur/Timer 8 bits incrémenté en
permanence

RST(S6)-ENSA -KENITRA 10
Organisation de la mémoire

 Le PIC 16F84A possède deux types de mémoires:


• Mémoire de programme
• Mémoire de données

RST(S6)-ENSA -KENITRA 11
Organisation de la mémoire

 Mémoire de programme
• Le compteur programme de 13 bits
est capable d’adresser 213=8K mots
de 14 bits
• Seulement le premier 1K mots de 14
bits (0000h à 03FFh) qui est
physiquement implémenté et
accessible
• L’adresse 0000h contient le vecteur
du reset (Il s’agit du branchement
vers début du programme)
• L’adresse 0004h contient le vecteur
d’interruption (Il s’agit Branchement
vers début du programme
d’interruption)

RST(S6)-ENSA -KENITRA 12
Organisation de la mémoire

 Mémoire de la pile
• La pile est une zone mémoire qui permet de stocker les adresses (contenu du
compteur programme) de retour d’un sous programme ou d’une routine
d’interruption
• Elle peut contenir 8 valeurs (adresses de retours) de 13 bits chacune
• Elle n’a pas d’adresse dans la plan mémoire
• Ce sont des zones réservées par le système

RST(S6)-ENSA -KENITRA 13
Organisation de la mémoire
 Mémoire de données
• La mémoire RAM est constituée de deux
parties :
 Les registres SFR : ce sont les registres
utilisés par le CPU et les périphériques
pour contrôler une opération désirée par
le PIC
o Ils sont situés dans les zones 00h-0Bh
et 80h-8Bh
 Les registres GPR (General Purpose
Registers) sont des positions mémoire que
l'utilisateur peut utiliser pour stocker ses
variables et ces données
oIls sont situés dans la zone 0Ch-4Fh et
mappés dans la zone 8Ch-CFh
• Les zones 07h,87h, 4Fh-7Fh et CFh-FFh
ne sont pas implémentées
RST(S6)-ENSA -KENITRA 14
Organisation de la mémoire

• La mémoire RAM est organisée en deux banques (pages): Bank0 et Bank1


 Pour accéder à un registre, il faut d'abord se placer dans la banque où il se
trouve
 L’accès à la page est réalisé en positionnant le bit RP0 du registre STATUS
(Adresse 03h ou 83h)
RP0 = 0 → Bank 0
RP0 = 1 → Bank 1

o Les bits 7 et 6 ne sont pas utilisés pour le PIC16F84A


• Pour les 68 octets de la mémoire utilisateur, l'utilisation des pages (Bank )
n'est pas nécessaire puisque Bank0 est mappé dans Bank0. Cela signifie
qu'écrire une donnée à l'adresse 0CH ou à l'adresse 8CH revient au même.

RST(S6)-ENSA -KENITRA 15
Organisation de la mémoire
• Registres SFRs du PIC16F84A

SFRs du BANK0
RST(S6)-ENSA -KENITRA 16
Organisation de la mémoire

SFRs du BANK1
RST(S6)-ENSA -KENITRA 17
Organisation de la mémoire

 INDF (00h ou 80h) : Utilise le contenu de FSR (File Select Register) pour
l’accès indirect à la mémoire
 TM0(01h) : Registre lié au Compteur/Timer0
 PCL (02h ou 82h) : Contient les 8 bits du poids faible du compteur programme
(PC)
 STATUS (03h ou 83h) : Il contient l’état de l’unité arithmétique et logique ainsi
que le bit de sélection des banques
 FSR (04h ou 84h) : Permet l’adressage indirect
 PORTA (05h) : Donne l’accès en lecture ou en écriture du port A
 PORTB (06h) : Donne l’accès en lecture ou en écriture du port B
 EEDATA (08h) : Permet l’accès aux donnés dans la mémoire EEPROM
 EEADR (09h) : Permet l’accès aux adresses de la mémoire EEPROM

RST(S6)-ENSA -KENITRA 18
Organisation de la mémoire

 PCLATH (0Ah ou 8Ah) : Contient les 5 bits du poids fort du compteur


programme (PC)
 INTCON (0Bh ou 8Bh) : Registre de contrôle des 4 sources d’interruptions . Il
contient les masques et les drapeaux
 OPTION_REG (81h) : Contient les bits de configurations pour divers
périphériques
 TRISA(85h) : Indique la direction (entrée ou sortie) du port A
 TRISB (86h) : Indique la direction (entrée ou sortie) du port B
 EECON1 (88h) et EECON1 (89h) : Permettent le contrôle d’accès à la
mémoire EEPROM

RST(S6)-ENSA -KENITRA 19
Organisation de la mémoire
 Mémoire EEPROM
• Le PIC possède une zone EEPROM de 64 octets
• Accessible en lecture et en écriture par le programme
• Les données sont conservées même si l’alimentation est éteinte
• L’accès à cette mémoire requiert l’utilisation des registres dédiés
• La lecture et l’écriture ne peuvent s’exécuter que selon des séquences
particulières

RST(S6)-ENSA -KENITRA 20
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 (Work register) et n'importe quel autre registre 'F‘ (File registre)
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
Exemple :

ADDWF 0x1C,W ; Ajouter le contenu de l’adresse 0X1C au registre W et mettre le résultat


;dans W

RST(S6)-ENSA -KENITRA 21
Horloge
 Le PIC16F84A peut fonctionner avec 4 sources d’oscillateurs différentes :
• LP : Low Power Crystal
• XT : Crystal/Resonator
• HS : High Speed Crystal
• RC : Resistor/Capacitor
 Le choix de la source d’horloge se fait par les deux bits de configurations Fosc1
et Fosc0
 L’horloge peut être externe ou interne. Cette dernière est constituée d'un
oscillateur à quartz ou d'un oscillateur RC

RST(S6)-ENSA -KENITRA 22
Horloge

 Avec l'oscillateur à Quartz, on peut avoir des fréquences allant jusqu'à 20 MHz
selon le type du μC
 Avec un oscillateur RC, la fréquence de l'oscillation est fixée par Vdd, Rext et
Cext. Elle peut varier légèrement d'un circuit à l'autre

RST(S6)-ENSA -KENITRA 23

Vous aimerez peut-être aussi