Vous êtes sur la page 1sur 31

SYSTÈMES A

MICROTROLEURS
PIC 16F84

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 1


Qu’est ce qu’un microcontrôleur :

C’est un ordinateur monté dans un circuit intégré. Les


avancées technologiques en matière d’intégration, ont
permis d’implanter sur une puce de silicium de quelques
millimètres carrés la totalité des composants qui forment
la structure de base d’un ordinateur.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 2


On peut décomposer la structure interne d’un
microcontrôleur en trois parties :

-Le processeur
-Les mémoires
-Les périphériques (interfaces d’E/S)

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 3


On peut décomposer la structure interne d’un
microcontrôleur en trois parties :
-Le processeur
-Les mémoires
-Les périphériques (interfaces d’E/S)
-…
Le Microcontrôleur peut être comparé à la carte
mère d’un PC, avec ses composants,
et même plus!
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 4
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 5
LE PIC 16F84

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 6


ACRONYME

PIC: Peripheral
PIC: Peripheral Interface
Interface Controller
Controller

PIC:Programmable
PIC: Programmable Integrated
Integrated Circuit Circuit

PIC: Programmable
PIC: Programmable Intelligent
Intelligent Computer
Computer

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 7


Qu’est-ce qu’un PIC ?
Un PIC n’est rien d’autre qu’un microcontrôleur,
c’est à dire une unité de traitement de l’information de
type microprocesseur à laquelle on a ajouté des
périphériques internes permettant de réaliser des
montages sans nécessiter l’ajout de composants
externes.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 8


La dénomination PIC est sous copyright de
Microchip, donc les autres fabricants ont été dans
l’impossibilité d’utiliser ce terme pour leurs propres
microcontrôleurs.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 9


Les pics sont des composants dits RISC (reduce instructions set
computer), ou encore composant à jeu d’instructions réduit.

Pourquoi?

Et bien, sachez que plus on réduit le nombre d’instructions, plus


facile et plus rapide en est le décodage, et plus vite le
composant fonctionne.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 10


La famille des pics est subdivisée en 3 grandes familles :
1- la famille base-line, qui utilise des mots d’instructions de 12
bits,
2- la famille mid-range, qui utilise des mots d’instructions de 14
bits (et dont font partie la 16F84 et 16F876),
3- high-end, qui utilise des mots d’instructions de 16 bits (PIC18),
voir 32 bits (PIC32MX, PIC32MZ, …), ou ceux de traitement de
signaux, (dsPIC30/…).

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 11


Le choix d’un PIC, dépend du cahier de charge
de l’utilisateur (c-à-d) de l’application qu’il
veut réalisée!!

Il faut prendre en considération la complexité et


le coût!

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 12


IDENTIFICATION D’UN PIC
Pour identifier un PIC, vous utiliserez simplement son numéro.
Les 2 premiers chiffres indiquent la catégorie du PIC, 16 indique un
PIC Mid-Range.
Ensuite, vous trouvez : 
- C indique que la mémoire programme est une EPROM ou une
EEPROM
- CR pour indiquer une mémoire de type ROM
- Ou F pour indiquer une mémoire de type FLASH.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 13
Puis vous verrez les derniers chiffres identifient
précisément le PIC (84) dans sa famille.
 Enfin vous verrez sur les boîtiers « -XX » dans laquelle
XX représente la fréquence d’horloge maximale que le PIC
peut recevoir. Par exemple –04 pour une 4MHz.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 14


  Donc, un 16F84-04 est un PIC Mid-Range (16),
avec une mémoire programme de 14 bits et de type
FLASH (F), réinscriptible, il est de type 84 et
capable d’accepter une fréquence d’horloge de
4MHz.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 15


Notez dès à présent que les PICs sont des composants
STATIQUES, c’est à dire que la fréquence d’horloge
peut être abaissée jusqu’à l’arrêt complet sans perte de
données et sans dysfonctionnement. Une version –10
peut donc toujours être employée sans problème à la
place d’une –04. Pas l’inverse, naturellement.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 16


BROCHAGE DU PIC 16F84

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 17


CARACTÉRISTIQUES DU PIC 16F84

 Toutes les instructions ont un seul cycle d’horloge sauf de


branchement 2 cycles
 35 instructions seulement
 Vitesse de fonctionnement: DC - 20 MHZ horloge d’entrée
DC – 200 ns cycle d’instruction
 15 registres physiques spéciaux
 8 niveaux de pile physique
 Adressage : Direct, Indirect, et Relatif
 4 sources d’interruption:
• Pin externe RB0/INT
• TMR0, débordement de temporisateur
• PORTB<7:4> interrupt-on-change
• EEPROM de données à écriture complète

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 18


CARACTÉRISTIQUES DU PIC 16F84
 1k mots de 14 bits de mémoire programme (1024 instructions max)
 68 Octets de RAM libres
 64 Octets D’EEPROM libres
 13 Entrées/Sorties (2 Ports A, B)
 1 Timer/Compteur
 1 Chien de garde
 4 Sources d’oscillateur sélectionnable.
 Port A: RA4 RA3 RA2 RA1 RA0
 Port B: RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
 OSC1 et OSC2: Connexion de l’oscillateur
 MCLR: Interruption principale pour reset
 INT: Entrée interruption sur broche RB0/INT
 TOCK1: Horloge externe pour pilotage du Timer

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 19


Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 20
Cycle d’une instruction d’un PIC 16F84

Pipeline à 2 étages du PIC 16F84

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 21


Architecture de Hardvard du PIC 16F84

Systèmes à microcontrôleurs (karim BAICHE), M1 instrumentation biomédicale, FT, UMBB 22


Organisation de la Mémoire Programme du PIC 16F84

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 23


Organisation de la Mémoire des Données du PIC 16F84

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 24


LES REGISTRES SFR (Special Function Registers)
La mémoire de données RAM contenait des registres
spécifiques, SFR, Les Registres à Fonction Spéciale, qui permettent
de configurer le PIC, nous allons les détailler un à un et voir
comment on peut accéder à la page 0 ou la page 1.

Les SFR occupent 12 cases mémoires par page (page 0, de


l’adresse 00h à 0Bh et page 1, de 80h à 8Bh), donc 24 cases au total,
sauf que certains sont les mêmes entre les deux pages.

Au total, il existe 16 registres SFR, répartie entre page 0 et page1.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 25


LES REGISTRES SFR (Special Function Registers)

1- INDF : Adresse 00 et 80. Cette adresse ne contient pas de


registre physique, elle sert pour l’adressage indirect.

2- TMR0 : Adresse 01. Contenu du Timer (8 bits). Il peut être


incrémenté par l’horloge (fosc/4) c'est à dire tous les 4 coups
d'horloge ou par la broche RA4. (Voir Timer)

3- PCL : Adresse 02 et 82. 8 bits de poids faibles du compteur


ordinal PC. Les 5 (13-8) bits de poids forts sont dans PCLATH.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 26


 
4- STATUS : Adresse 03 et 83, Registre d’état. Les cinq bits de
LES REGISTRES SFR (Special Function Registers)

poids faible de ce registre sont en lecture seule, ce sont des


témoins (drapeaux ou flag en anglais) caractérisant le résultat
de l’opération réalisée par l’UAL. Le bit RP0 est lui en
lecture /écriture et c’est lui qui permet de sélectionner la page
dans la mémoire RAM .

Si RP0=0 on accède à la page 0 et si RP0=1 à la page 1


Au reset, seul le bit RP0 de sélection de page est fixé ( RP0=0 : page 0 )
: (Time Out) : débordement du timer WDT
: (Power Down) caractérise l’activité du chien de garde WDT
: (zéro) résultat nul pour une opération arithmétique et logique.
: (digit carry) retenue sur un quartet (4 bits)
: (carry) retenue sur un octet (8 bits).
. Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 27
5- FSR : Adresse 04 et 84. Registre de sélection de registre :
LES REGISTRES SFR (Special Function Registers)

contient l’adresse d’un autre registre (adressage indirect)

6- PORTA : Adresse 05. Ce registre contient l’état des lignes du


port A. 0 pour Output et 1 pour Input.

7- PORTB : Adresse 06. Ce registre contient l’état des lignes du


port B. 0 pour Output et 1 pour Input

8- EEDATA : Adresse 08. Contient un octet lu ou à écrire dans


l’EEPROM de données. (Voir EEPROM)

9- EEADR : Adresse 09. Contient l’adresse de la donnée lue ou


écrite dans l’EEPROM de données. . (Voir EEPROM)
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 28
10- PCLATH : Adresse 0A et 8A. 5 bits de poids fort (13-8) du compteur
LES REGISTRES SFR (Special Function Registers)

ordinal PC. Les bits (14,15) non utilisés.


11- INTCON : Adresse 0B et 8B, Contrôle des 4 interruptions.
Masques :
GIE : (Global Interrupt Enable) : masque global d’inter.
EEIE : (EEProm Interrupt Enable) autorise l'interruption venant de l'EEPROM.
T0IE : (Timer 0 Interrupt Enable) autorise l'interruption provoquée par le débordement du
TIMER0
INTE: ( Interrupt Enable) autorise l’interruption provoquée par un changement d'état sur broche
RB0/INT
RBIE: (RB Interrupt Enable) autorise les interruptions provoquées par un changement d'états sur
l'une des broches RB4 à RB7.Si ces bits sont mis à 1 , ils autorisent les interruptions pour
lesquels ils sont dédiés .
Drapeaux :
T0IF : (Timer 0 Interrupt Flag) débordement du timer
INTF : (Interrupt Flag) interruption provoquée par la broche RB0/INT
RBIF : (RB Interrupt Flag) interruption provoquée par les broches RB4-RB7.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 29
LES REGISTRES SFR (Special Function Registers)

 
12- OPTION : Adresse 81, 8 bits (tous à 1 au RESET) affectant le
comportement des E/S et des timers.

: (RB Pull Up) Résistances de tirage à Vdd des entrées du port B ( voir le détail du
fonctionnement au chapitre port). Si = 0, les résistances de pull-up sont connectées en
interne sur l'ensemble du port B.
: (Interrupt Edge) sélection du front actif de l’interruption sur RB0/INT ( 1 pour front
montant et 0 pour front descendant ).
: (Real Timer Source) sélection du signal alimentant le timer 0 pour horloge interne, 1
pour RA4/T0CLK
: (Real Timer Edge) sélection du front actif du signal timer ( 0 pour front montant).
: (Prescaler assignment) 0 pour Timer 0 et 1 pour chien de garde WDT.
: (Prescaler 2, 1 et 0 ) sélection de la valeur du diviseur de fréquence pour les timers.

Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 30


13-TRISA : Adresse 85. Direction des données pour le port A : 0 pour
sortir et 1 pour entrer.
LES REGISTRES SFR (Special Function Registers)

14-TRISB : Adresse 86. Direction des données pour le port B : 0 pour


sortir et 1 pour entrer.
15- EECON1 : Adresse 88. Contrôle le comportement de l’EEPROM de
données.

EEIF : (EEProm Interrupt Flag) passe à 1 quand l’écriture est terminée.


WRERR : (Write Error) 1 si erreur d’écriture.
WREN : (Write Enable) : 0 pour interdire l’écriture en EEPROM de données.
WR : (Write) 1 pour écrire une donnée. Bit remis automatiquement à 0
RD : (Read) : 1 pour lire une donnée. Bit remis automatiquement à 0

16- EECON2 : Adresse 89. Registre de sécurité d’écriture en EEPROM


de données. Une donnée ne peut être écrite qu’après avoir écrit
successivement 0x55 et 0xAA dans ce registre.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 31

Vous aimerez peut-être aussi