Vous êtes sur la page 1sur 8

Iset Nabeul Cours microcontrleurs

CHAPITRE 2
MICROCONTROLEUR PIC 16F877

1. Du microprocesseur au microcontrleur
Le microcontrleur est un driv du microprocesseur. Sa structure est celle des systmes
base de microprocesseurs. Il est donc compos en plus de lunit centrale de traitement, dune
mmoire (mmoire vive RAM et mmoire morte ROM), une (ou plusieurs) interface de
communication avec lextrieur matrialis par les ports d'entre/sortie.
En plus de cette configuration minimale, les microcontrleurs sont dots d'autres circuits
dinterface qui vont dpendre du microcontrleur choisi savoir les systmes de comptage
(TIMER), les convertisseur analogique/numrique (CAN) intgr, gestion dune liaison srie
ou parallle, un Watchdog (surveillance du programme), une sortie PWM (modulation
dimpulsion),

Fig. 2.1 : Contenu type d'un microcontrleur

Y. RKHISSI KAMMOUN 16
Iset Nabeul Cours microcontrleurs

Les microcontrleurs amliorent l'intgration et le cot (li la conception et la ralisation)


d'un systme base de microprocesseur en rassemblant ces lments essentiels dans un seul
circuit intgr. On parle alors de "systme sur une puce" (en anglais : "System On chip").

Les microcontrleurs sont plutt ddis aux applications qui ne ncessitent pas une grande
quantit de calculs complexes, mais qui demandent beaucoup de manipulations
dentres/sorties. Cest le cas de contrle de processus.
Les systmes microprocesseur sont plutt rservs pour les applications demandant
beaucoup de traitement de linformation et assez peu de gestion dentres / sorties. Les
ordinateurs sont raliss avec des systmes microprocesseur.

Il existe plusieurs famille de microcontrleurs dont les plus connues sont :


Atmel : AT; familles AT89Sxxxx, AT90xxxx,
Motorolla : famille 68HCxxx,
Microship : PIC ; familles 12Cxxx, 16Cxxx, 16Fxxx, 18Fxxx,
Intel : famille 80C186XX
STMicroelectronics : famille STX
Analog Devices : famille ADuC
Nous allons nous intresser dans le cadre de ce cours la famille Microchip PIC
(Programmable Integrated Circuit) de moyenne gamme (MIDRANGE).

2. Prsentation dun microcontrleur PIC


Ils sont des composants dits RISC (Rduced Instructions Construction Set), ou encore
composant jeu dinstructions rduit. Chaque instruction complexe peut tre programme par
plusieurs instructions simples. Sachant que plus on rduit le nombre dinstructions, plus facile
et plus rapide quen est le dcodage, et plus vite le composant fonctionne.
La famille des PIC processeur 8 bits est subdivise lheure actuelle en 3 grandes
catgories :
Base-Line : ils utilisent des mots dinstruction de 12 bits.
Mid-Range : ils utilisent des mots dinstruction de 14 bits.
High-End : ils utilisent des mots dinstruction de 16 bits.
Il existe aussi des PIC processeur 16 bits (PIC24F/PIC24H) et 32 bits (PIC32M) aussi.
Toutes les PICs Mid-Range ont un jeu de 35 instructions, stockent chaque instruction dans un
seul mot de programme, et excutent chaque instruction (sauf les sauts) en un cycle machine.

Y. RKHISSI KAMMOUN 17
Iset Nabeul Cours microcontrleurs

On atteint donc de trs grandes vitesses, et les instructions sont de plus trs rapidement
assimiles.
Lhorloge fournie au PIC est divise par 4.Cest cette base de temps qui donne le temps dun
cycle. Si on utilise par exemple un quartz de 4MHz, on obtient donc 1000000 de
cycles/seconde ; or, comme le PIC excute pratiquement une instruction par cycle, hormis les
sauts, cela nous donne une puissance de lordre de 1MIPS (1 Million dInstructions Par
Seconde).
Pour identifier un PIC, on utilise simplement son appellation du type : wwlxxyyy-zz
- WW: Reprsente la catgorie du composant (12, 14, 16, 17, 18),
- L: Tolrance plus importante de la plage de tension.
- XX: Type de mmoire de programme:
C: EPROM ou EEPROM.
CR: PROM.
F: FLASH.
- YYY: Identification.
- ZZ: Vitesse maximum tolrable.

Les PICs sont des composants STATIQUES, cest dire que la frquence dhorloge peut tre
abaisse jusqu larrt complet sans perte de donnes et sans dysfonctionnement.
Ceci par opposition aux composants DYNAMIQUE, donc la frquence dhorloge doit rester
dans des limites prcises.
Les microcontrleurs PIC sont prsents en botier DIL (Dual In Line).Un point ou une
encoche donne un reprage de la broche 1, ensuite il faut ce dplacer vers la droite pour avoir
les autres broches. Ont fait le tour du circuit dans le trigonomtrique.

Fig. 2.2 : Reprage des broches

Y. RKHISSI KAMMOUN 18
Iset Nabeul Cours microcontrleurs

3. Microcontrleur PIC 16F877


Dans la suite du chapitre, on va prendre comme exemple le PIC 16F877 et prsenter sa
structure interne et externe. Les lments essentiels du PIC 16F877 sont :

3.1 Structure interne


Caractristiques de la CPU
- CPU architecture RISC (8 bits)
- Mmoire programme de 8 Kmots de 14 bits (Flash),
- Mmoire donne de 368 Octets,
- EEPROM donne de 256 Octets,
- 14 sources interruptions
- Gnrateur d'horloge de type RC ou quartz (jusqu 20 MHz)
- 05 ports d'entre sortie
- Fonctionnement en mode sleep pour rduction de la consommation,
- Programmation par mode ICSP (In Circuit Serial Programming) 12V ou 5V,
- Possibilit aux applications utilisateur daccder la mmoire programme

Caractristiques des priphriques


- Timer0 : Timer/Compteur 8 bitsavec un prdiviseur 8 bits
- Timer1 : Timer/Compteur 16 bits avec un prdivision de 1, 2, 4, ou 8 ; il peut tre
incrment en mode veille (Sleep), via une horloge externe,
- Timer2 : Timer 8 bits avec deux diviseurs (pr et post diviseur)
- Deux modules Capture, Compare et PWM :
Module capture 16 bits avec une rsolution max. 12,5 ns,
Module Compare 16 bits avec une rsolution max. 200 ns,
Module PWM avec une rsolution max. 10 bits,
- Convertisseur Analogiques numriques multi-canal (8 voies) avec une conversion
sur 10 bits,
Synchronous Serial Port (SSP) SSP, Port srie synchrone en mode I2C (mode
maitre/escalve),
- Universel Synchronous Asynchronous Receiver Transmitter (USART) : Port srie
universel, mode asynchrone (RS232) et mode synchrone

Y. RKHISSI KAMMOUN 19
Iset Nabeul Cours microcontrleurs

Fig. 2.3 : Architecture interne du PIC 16F877

3.2 Structure externe


Le PIC16F877 est un circuit intgr de 40 broches :

Fig. 2.4 : Brochage du PIC 16F877

Y. RKHISSI KAMMOUN 20
Iset Nabeul Cours microcontrleurs

Certaines pattes ont plusieurs fonctions :On dit que les fonctions sont multiplexe

3.2.1 Lalimentation
Lalimentation du circuit est assure par les pattes VDD et VSS. Elles permettent
lensemble des composants lectroniques du PIC de fonctionner. Pour cela on relie VSS
(patte 5) la masse (0 Volt ) et VDD (patte 14) la borne positive de lalimentation
qui doit dlivrer une tension continue comprise entre 3 et 6 Volts.

3.2.2 Cadencement du PIC


Le PIC 16F877A peut fonctionner en 4 modes doscillateur.
LP : Low Power crystal : quartz faible puissance.
XT : Crystal/Resonator : quartz/rsonateur en cramique.
HS : High Speed crystal/resonator : quartz haute frquence/rsonateur en cramique
HF.
RC : Circuit RC (oscillateur externe).
Dans le cas du 16F877, on peut utiliser un quartz allant jusqu 20Mhz reli avec deux
condensateurs de dcouplage, du fait de la frquence importante du quartz utilis.
Quelque soit l'oscillateur utilis, l'horloge systme dite aussi horloge instruction est obtenue
en divisant la frquence par 4. Avec un quartz de 4 MHz, on obtient une horloge instruction
de 1 MHz, soit le temps pour excuter une instruction de 1s

3.2.3 Circuit Reset MCLR


La broche MCLR (Master Clear) a pour effet de provoquer la rinitialisation du
microprocesseur lorsquelle est connecte 0.
Lorsque le signal de RESET est activ, tous les registres sont initialis et le compteur
programme se place une adresse spcifique appele Vecteur de RESET.

3.2.4 Ports dentres/sortie


Le PIC 16F877 dispose de 5 ports :
Port A : 6 pins I/O numrotes de RA0 RA5.
Port B : 8 pins I/O numrotes de RB0 RB7.
Port C : 8 pins I/O numrotes de RC0 RC7.
Port D : 8 pins I/O numrotes de RD0 RD7.
Port E : 3 pins I/O numrotes de RE0 RE2.
A chaque port correspondent deux registres :

Y. RKHISSI KAMMOUN 21
Iset Nabeul Cours microcontrleurs

Un registre direction pour programmer les lignes soit en entre, soit en sortie TRISA,
TRISB, TRISC, TRISD et TRISE.
Un registre de donnes pour lire ou modifier ltat des broches. PORTA, PORTB,
PORTC, PORTD et PORTE
Pour dterminer les modes des ports (I/O), il faut slectionner leurs registres TRISX:
Le positionnement dun bit 1 place le pin en entre.
Le positionnement de ce bit 0 place le pin en sortie.
La plupart des broches des PORTs sont partages avec des priphriques. En gnral si un
priphrique est utilis, les broches correspondantes ne peuvent pas tre utilises comme
broches dentre/sortie.
Au reset, les lignes des ports A et E sont configures en entres analogiques, les autres lignes
sont configures en entres digitales.
Le courant absorb ou fourni peut atteindre 25 mA.

Fig. 2.5 : Circuit RESET et oscillateur d'un PIC 16F877


Port A
Les broches port A, except RA4, sont multiplexes, avec les entres du convertisseur
analogique numrique (AN0 .. AN4) .
La broche RA4 est multiplex avec lentre dhorloge externe du timer0 (RA4/T0CKI).
Port B

Y. RKHISSI KAMMOUN 22
Iset Nabeul Cours microcontrleurs

Le port B peut tre programm pour un tirage 5V (pull up) de toutes ses lignes que l'on peut
mettre ou non en service en mode entre uniquement. Elles sont automatiquement dsactives
quand le port est configur en sortie.
En mode entre, chaque broche du PORTB doit tre maintenue un niveau haut par
l'intermdiaire de rsistances de 10 k pour ne pas dclencher d'interruptions imprvues.
Cette possibilit d'interruption sur un changement d'tat associ la fonction de tirage
configurable sur ces 4 broches, permet l'interfaage facile avec un clavier. Cela rend possible
le rveil du PIC en mode SLEEP par un appui sur une touche du clavier.
Port C
Le port C est partag avec liaisons, les timers 1 et 2 et les modules CCP.
Port D et E
En plus de leur utilisation comme PORTS E/S; les ports D et E, permettent au
microcontrleur de travailler en mode PSP (Parallel Slave Port) cest--dire, quil peut tre
interfac avec un autre microprocesseur. Dans ce cas le PORTD reprsente le bus de donnes
et le PORTE les signaux de contrle(RD\, WR\ et CS\).
Le PORTE peut tre aussi, configur en mode analogique pour former avec le PORTA les 8
entres du convertisseur analogique numrique. Par dfaut, le PORTE est configur comme
port analogique, et donc, comme pour le PORTA,

3.2.5 Chien de garde


Un chien de garde est un circuit lectronique ou un logiciel utilis en lectronique numrique
pour s'assurer qu'un automate ou un ordinateur ne reste pas bloqu une tape particulire du
traitement qu'il effectue. C'est une protection destine gnralement redmarrer le systme,
si une action dfinie n'est pas excute dans un dlai imparti ;
Dans le PIC, il sagit un compteur 8 bits incrment en permanence (mme si le C est en
mode sleep) par une horloge RC intgre indpendante de l'horloge systme. Lorsquil
dborde, deux situations sont possibles :
- Si le C est en fonctionnement normal, le WDT time-out provoque un RESET. Ceci
permet dviter de rester plant en cas de blocage du microcontrleur par un processus
indsirable non contrl
- Si le C est en mode SLEEP, le WDT time-out provoque un WAKE-UP, l'excution
du programme continue normalement l o elle s'est arrte avant de rentrer en mode
SLEEP. Cette situation est souvent exploite pour raliser des temporisations

Y. RKHISSI KAMMOUN 23