Vous êtes sur la page 1sur 4

LQTMY-Tanger

M.SALMANI

Le C PIC 16F84 : 1re partie

1. Introduction
Le PIC (Programmable Interface Controler) 16F84 est un microcontrleur produit par la socit MicroChip.
Cest un composant qui regroupe dans un mme botier tous les lments vitaux dun systme programm :
CPU, RAM, ROM, Interfaces dentres/sorties, etc.

2. Architecture du PIC 16F84


21. Organisation externe
Le C 16F84 est un circuit intgr de 18 broches : voir figure 1.
Figure 1
RA2
RA3

RA4/T0CKI
MCLR
Vss
RB0/INT
RB1
RB2
RB3

18

C 16F84

RA1
RA0
Osc1
Osc2
Vdd
RB7
RB6
RB5
RB4

- Vss et Vdd : broches dalimentation.


- Osc1 et Osc2 : broches du circuit horloge.
- MCLR : Reset (Master Clear).
- RA0..RA4 : 5 entres/sorties du port A.
- RB0..RB7 : 8 entres/sorties du port B.
- T0CKI : entre dhorloge externe du timer.
- INT : entre dinterruption externe.

La tension nominale de lalimentation du C 16F84 est +5 V : Vdd=+5 V et Vss=0 V.


Le Reset du C 16F84 peut avoir plusieurs causes :
Une mise sous tension POR (Power On Reset) : voir figure 2a
Une mise 0 de la broche MCLR (Reset manuelle) : voir figure 2b.
Un dbordement du timer du chien de garde WDT : voir plus tard.
Figure 2
Vdd
R

Vdd

2a

C
16F84

2b

C
16F84

MCLR

MCLR
Reset

Le fonctionnement du C 16F84 ncessite une horloge qui rythme lexcution des instructions du programme.
On distingue trois modes dhorloge :
Horloge interne quartz (Figure 3a) : Avec loscillateur quartz, on peut avoir des frquences allant de
4 MHz jusqu 20 MHz selon le type du C.
Horloge interne circuit RC (Figure 3b) : Avec un oscillateur circuit RC, la frquence de loscillation
dpend de la tension Vdd et des lments Rext et Cext.
Horloge externe (Figure 3c) : Application dun signal horloge externe.
Sciences et technologies lectriques

Niveau 2me

Sciences de lingnieur

Unit ATC

20

LQTMY-Tanger

M.SALMANI

Le C PIC 16F84 : 1re partie

Figure 3
5K Rext 100K
Cext 20pF

3a
C
16F84

C
16F84

C1

Osc1

Vdd

3b

3c
C
16F84

Rext

Osc1

Horloge externe

Osc1
Cext

Osc2

Osc2

C2

Osc2

Fosc/4

NC

22. Organisation interne


La structure interne simplifie du C 16F84 peut tre donne par la figure 4.
Figure 4
Flash ROM : Mmoire programme 1Kx14bits

RAM systme de 16 registres

Registre de configuration de 14 bits

RAM utilisateur de 68 octets

EEPROM de donnes de 64 octets


Horloge systme

W
Timer TMR0

Prdiviseur
Horloge WDT

Timer WDT

ALU

PORTA

PORTB

221. Horloge systme


Lhorloge systme ou horloge instruction, est la base du temps interne qui cadence le fonctionnement du C.
Quelque soit l'oscillateur utilis, l'horloge systme sobtient en divisant la frquence de loscillateur par 4.
Exemple : Avec un quartz de 4 MHz, on obtient une horloge instruction de 1 MHz, soit le temps pour
excuter une instruction de 1 s.
222. Mmoire Flash ROM
Cette mmoire de 1024 mots de 14 bits stocke le programme. Elle est permanente et reprogrammable
souhait. Chaque position contient une instruction. Suite un Reset ou lors dune mise sous tension, le C
commence lexcution du programme ladresse 0. De plus, lorsquil y a une interruption, il va ladresse 4.
223. Registre de configuration
Pendant la phase de la programmation du C, on programme aussi un registre de configuration log dans la
mmoire EEPROM. Ce registre est un mot de 14 bits qui permet de :
Choisir le type de l'oscillateur pour l'horloge.
Valider ou non le timer du watchdog WDT.
Autoriser ou non une temporisation la mise sous tension.
Interdire ou non la lecture des mmoires de programme et de donnes.

Sciences et technologies lectriques

Niveau 2me

Sciences de lingnieur

Unit ATC

21

LQTMY-Tanger

M.SALMANI

Le C PIC 16F84 : 1re partie

Registre de configuration

CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0

Bits FOSC0 et FOSC1 : Slection du type d'oscillateur pour l'horloge.


FOSC1FOSC0=11 Oscillateur circuit RC jusqu' 4 MHz.
FOSC1FOSC0=10 Oscillateur HS, quartz haute frquence, jusqu' 20 MHz.
FOSC1FOSC0=01 Oscillateur XT, quartz standard jusqu' 4 MHz.
FOSC1FOSC0=00 Oscillateur LP, quartz basse frquence, jusqu' 200 KHz.
Bit WDTE : Validation du timer du watchdog WDT.
WDTE=1 WDT valid et WDTE=0 WDT inhib.
Bit PWRTE : Validation d'une temporisation la mise sous tension.
Le C possde un timer permettant de retarder de 72 ms le lancement du programme aprs la mise
sous tension. Ce dlai maintient le C larrt et permet ainsi la tension d'alimentation de bien se
stabiliser.
PWRTE=1 le C dmarre tout de suite et PWRTE=0 le C attend 72 ms.
Bits CP : Protection en lecture des mmoires de programme et de donnes.
CP=1 pas de protection et CP=0 protection active.
Exemple : On dsire configurer le registre pour rpondre aux critres suivants :
oscillateur quartz de 4 MHz, le timer du watchdog nest pas autoris, une attente de 72 ms est
souhaite et le C nest pas protg en lecture.
Configuration requise

1 1 1 1 1 1 1 1 1 1 0

3FF1 en hexadcimal

224. Mmoire EEPROM de donnes


Cette mmoire est constitue de 64 octets que l'on peut lire et crire depuis un programme. Ces octets
sont conservs mme aprs une coupure de lalimentation et sont trs utiles pour conserver des paramtres
semi permanents : code daccs, version du programme, message daccueil, valeur invariable, etc.
Figure 5
225. Mmoire RAM
La mmoire RAM est constitue de deux parties : voir figure 5.
Une zone mmoire de 68 octets rserve lutilisateur pour
stocker ses variables. Elle adressable de l@ 0x0C l@ 0x4F ou
de l@ 0x8C 0xCF.
Un fichier de 16 registres de contrle rpartis en 2 banques :
Une banque 0 adressable de l@ 0x00 l@ 0x0B.
Une banque 1 adressable de l@ 0x80 l@ 0x8B.
Laccs un registre seffectue en se plaant dans la banque o
il se trouve. Ceci est ralis en positionnant le bit RP0 du registre
dtat STATUS :
Registre STATUS

RP0 TO PD

DC

RP0=0 banque 0 et RP0=1 banque 1.

Sciences et technologies lectriques

Niveau 2me

Sciences de lingnieur

Unit ATC

22

LQTMY-Tanger

Le C PIC 16F84 : 1re partie

M.SALMANI

226. ALU et le registre W


Le registre W, qui na pas dadresse, est un registre de travail de 8 bits.
LALU est une unit arithmtique et logique de 8 bits qui ralise les oprations entre W et n'importe quel
autre registre f ou constante k. Le rsultat de l'opration peut tre plac soit dans W soit dans f.
LALU est associe au registre dtat STATUS par les bits Z, C et DC :
Registre STATUS

RP0 TO PD

DC

C : Ce bit flag passe 1 lorsquil y a une retenue sur un octet.


DC : Ce bit flag passe 1 lorsquil y a une retenue sur un quartet.
Z : Ce bit flag passe 1 quand le rsultat dune opration est nul.
227. Port dentres/sorties PORTA
Le port A dsign par PORTA est un port bidirectionnel de 5 bits (RA0 RA4). La configuration de
direction pour chaque bit du port est dtermine avec le registre TRISA :
Bit i de TRISA=0 bit i du PORTA est configur en sortie.
Bit i de TRISA=1 bit i du PORTA est configur en entre.
Les broches RA0 RA3 sont des entres/sorties compatibles TTL alors que la broche RA4 peut tre
utilise soit comme entre/sortie normale du port A, soit comme entre horloge externe pour le Timer
TMR0. Le choix se fait l'aide du bit TOCS du registre OPTION :
T0CS=0 RA4 est une entre/sortie normale.
T0CS=1 RA4 est une entre horloge externe pour le timerTMR0.
De plus, RA4 est une sortie drain ouvert. Donc, il ne faut pas oublier de mettre une rsistance externe
vers Vdd.
Chaque broche du port A configure en sortie peut fournir un courant de 20 mA au maximum, mais tout le
port A configur en sortie ne peut pas dbiter un courant total suprieur 50 mA.
Chaque broche du port A configure en entre peut accepter un courant de 25 mA au maximum, mais tout
le port A configur en entre ne peut pas accepter un courant total suprieur 80 mA.
228. Port dentres/sorties PORTB
Le port B dsign par PORTB est un port bidirectionnel de 8 bits (RB0 RB7). La configuration de direction
se fait l'aide du registre TRISB (identique celle du PORTA : voir TRISA). Toutes les broches sont
compatibles TTL.
Les entres du port B peuvent tre pourvues de rsistances de rappel Vdd. Cette option est valide par
le bit RBPU du registre OPTION :
Registre OPTION

RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0

RBPU=0 les broches configures en entres sont connectes des rsistances de rappel Vdd et les
broches configures en sorties sont dpourvues automatiquement de ces rsistances de rappel.
En entre, la broche RB0 appele aussi INT peut dclencher linterruption externe INT et une quelconque
des broches RB4 RB7 peut dclencher l'interruption RBI.
Chaque broche du port B configure en sortie peut fournir un courant de 20 mA au maximum, mais tout le
port B configur en sortie ne peut pas dbiter un courant total suprieur 100 mA.
Chaque broche du port B configure en entre peut accepter un courant de 25 mA au maximum, mais tout
le port B configur en entre ne peut pas accepter un courant total suprieur 150 mA
Remarque : Au Reset du C, les ports PORTA et PORTB sont configurs en entre.
Sciences et technologies lectriques

Niveau 2me

Sciences de lingnieur

Unit ATC

23