Académique Documents
Professionnel Documents
Culture Documents
Microcontroleur - Copie
Microcontroleur - Copie
1
Introduction
Un Microcontrô leur est un circuit intégré qui regroupe dans un même boîtier une unité de
traitement de l’information avec tous les éléments vitaux d’un système programmé RAM, ROM,
Interfaces d’entrées/sorties, etc. sans nécessiter l’ajout de composants externes.
Les microcontrô leurs sont caractérisés par un plus haut degré d'intégration, une plus faible
consommation électrique, et un coû t de produits réduit par rapport aux systèmes électroniques à
base de microprocesseur.
Les microcontrô leurs sont fréquemment utilisés dans les systèmes embarqués, comme les
télécommandes, les téléphones mobile, les contrô leurs des moteurs automobiles, les appareils de
bureau, l'électroménager, les jouets etc.
2
Architecture d’un Microcontrô leur
La particularité d’un microcontrô leur est qu’il est contenu dans un seul circuit intégré. Son
architecture est la même que celle d’un système informatique. Par rapport à une carte mère
d’ordinateur, les éléments qui constituent un microcontrô leur sont généralement plus simples,
moins performants, et de capacité plus limitée.
Bus d’adresses
Bus de données
Il existe plusieurs familles de microcontrô leurs, se différenciant par la vitesse de leur processeur
et par le nombre de périphériques qui les composent, les plus connues sont :
Les microcontrô leurs PIC sont dérivés du PIC1650 qui à été développé à l'origine par la division
microélectronique de General instrument.
A l'époque du développement du PIC1650 par General Instrument, le nom PIC était un acronyme
de « Programmable Intelligent Computer » ou « Programmable Integrated Circuit », Actuellement, la
traduction en « Peripheral Interface Controller » ou « contrô leur d'interface périphérique » est
généralement admise
4
Les microcontrô leurs PIC
Un PIC est un microcontrô leur produit par Le fabricant Américain de circuits intégrés
MicroChip Technology . Ses principales caractéristiques sont :
• Communication avec l'extérieur seulement par des ports : Pas de bus d'adresses, ni bus de
données ni bus de contrô le comme la plupart des microprocesseurs.
• Utilisation d'un jeu d'instructions réduit : RISC (Reduced Instructions Set Construction):
Les instructions sont ainsi codées sur un nombre réduit de bits, ce qui accélère l'exécution (1 cycle
machine par instruction sauf pour les sauts qui requirent 2 cycles) d'où l’utilisation des
instructions basiques, contrairement aux systèmes d'architecture CISC (Complex Instructions
Set Construction) qui proposent plus d'instructions donc codées sur plus de bits mais réalisant
des traitements plus complexes.
9
Architecture interne du PIC 16F84
10
Architecture interne du PIC 16F84
1K
partie du corps du programme si l’interruption
n’est pas utilisée.
• L'adresse 0004h contient l'unique vecteur
d'interruption du PIC.
• La pile contient 8 valeurs. pour la sauvegarde du
compteur programme avant un saut à un sous 3FFh
programme (CALL) ou quand une interruption
apparaît. Les 13 bits de la valeur du compteur
sont restitués à l'instruction de retour sous
programme ou retour d'interruption (RETURN et
RETLW ou RETFIE).
1FFFh 12
Organisation de la mémoire – Mémoire Données
Adresse Page 0 Page 1 Adresse
• Constituée de deux zones : 00h INDF INDF 80h
- SFR (Special function registers): Contient les 01h
TMR0 OPTION
81h
registres de configuration et de fonction PCL PCL
microcontrô leur. du STATUS STATUS
02h 82h
- GPR ( General Purpose Register ) : Contient la RAM.
FSR FSR
• Découpée en deux pages : Bank 0 et Bank 1.
12 Octets
Zone SFR
03h PORTA TRISA 83h
Accès à la Bank 0 : STATUS .RP0 = 0. PORTB TRISB
Accès à la Bank 1 : STATUS .RP0 = 1
• Chaque page contient 128 bits (de 04h 84h
Les registres spéciaux du 16F84 sont au total 16 registres. Ils permettent la gestion du circuit.
Certains ont une fonction générale, d'autres une fonction spécifique attachée à un périphérique
donné. Ils sont situés de l'adresse 00h à l'adresse 0Bh dans la banque 0 et de l'adresse 80h à
l'adresse 8Bh dans la banque 1.
Les registres 07h et 87h n'existent pas.
INDF (00h - 80h) : Utilise le contenu de FSR pour l'accès indirect à la mémoire .
Le registre INDF n'est pas un registre physique. Quand on adresse INDF, on accède au registre dont
les 8 bits d'adresse sont contenus dans le registre FSR (04h - 84h), qui se comporte comme un
pointeur.
TMR0 (01h) : Le compteur/Timer TMR0 qui a les
caractéristiques suivantes :
- Compteur sur 8 bits.
PC : Program Counter
- Lecture / écriture de TMR0.
- Prédiviseur 8 bits programmable.
- Choix de l'horloge : interne en mode timer et externe
en mode compteur.
- Interruption au débordement ( passage de FF à 00).
- Choix du front de l'horloge en mode horloge externe.
PCL (02h - 82h) : Le compteur de programme (PC) est
sur 13 bits. Les 8 bits de poids faible sont dans le PCL
registre PCL qui est en lecture/écriture
PCLATH (0Ah-8Ah) : Contient les poids forts
du
PCLATH 15
compteur de programmes (PC).
Les registres spéciaux du 16F84
REGISTRE OPTION ( h'81' ) : Registre qui fixe le fonctionnement de l’horloge interne.
B7 B0
RBPU : Active à 0 toutes les résistances pull-up (de tirage) à 5V pour le port B. +5V
1 : Pull up désactivé sur le Port B.
0 : Pull up activé.
INTEDG : Interrupt Edge select bit. Front de l’interruption sur RB0/INT
1: Interruption sur RB0 si front montant ↑ RBi
0: Interruption sur RB0 si front descendant ↓
TOCS : Timer TMR0 Clock Source select bit : choix de l’horloge du Timer
0: Timer piloté par horloge interne
1: Timer piloté par signal externe via la broche RA4/TOCK1 PIC 16F84
TOSE : Timer TMR0 Source Edge select bit. PS2 PS1 PS0 Prédiv Timer Prédiv WDT
fixe le front d’horloge externe
0 0 0 2 1
1: front montant ↑ 0: front descendant ↓
0 0 1 4 2
PSA: affecte un facteur de division
0: pour le Timer 0 1 0 8 4
REGISTRE STATUS ( h'03' ou h'83' ) : On accède indifféremment à ce registre par une quelconque de
ces 2 adresses.
B7 B0
REGISTRE STATUS ( h'03' ou h'83' ) : On accède indifféremment à ce registre par une quelconque
de ces 2 adresses.
Z : Zero bit.
1 = Le ré sultat d'une opération arithmé tique ou logique est zéro.
0 = Le ré sultat d'une opération arithmé tique ou logique est différent de zéro.
PORTA : (h'05') : Il comporte 5 bits. PA4 peut également servir d'entrée pour le décomptage du
Timer TMR0. Les autres bits PA0 à PA3 sont des entrées/sorties compatibles TTL . Chaque broches
peut être configurée en entrée ou en sortie grâ ce à un registre de direction : TRISA.
RA4 RA3 RA2 RA1 RA0
TRISA : (h'85‘)
1 : Le bit correspondant est configuré en ENTREE.
0 : Le bit correspondant est configuré en SORTIE.
TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
PORTB : (h'06')
Il comporte 8 bits, Chaque broche du PORT B est munie d'un tirage au +VDD que l'on peut mettre ou
non en service en mode entrée uniquement par la mise à "0" du bit 7 dans le registre OPTION.
Ce tirage est inactif quand le port est configuré en sortie.
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
TRISB : (h'86')
1 : Le bit correspondant est configuré en ENTREE.
0 : Le bit correspondant est configuré en SORTIE.
TRISB2 TRISB1 TRISB0 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0
Au RESET: PORTA et PORTB sont configurés en ENTREE (TRISA et TRISB = 0xFF) et PORTB
présente des tirages désactivés.
La mémoire de données EEPROM du 16F84
Cette mémoire est en lecture/écriture. Elle n'est pas placée dans la zone de mémoire DATA et sera
donc adressée indirectement par 4 registres de la zone SFR, il s'agit des registres suivant :
EECON1 , EECON2 , EEDATA , EEADR
Le PIC 16F84 possède 64 octets d'EEPROM dont les adresses vont de 00 à 3F.
EEADR h'09' : Registre d'adresse.
Ce registre permet d'adresser jusqu'à 256 octets d'EEPROM mais seulement les 64 premiers
octets sont implémentés. Les deux bits de poids forts doivent donc être positionné à "0" pour être
certain de bien accéder aux 64 premiers octets.
EEDATA h'08' : Registre données, dans lequel transitent les données à écrire ou lues.
EECON1 h'88' : Registre de contrô le. Ce registre de contrô le possè de 5 bits.
EEIF WRERR WREN WR RD
EEIF : EEPROM Write Operation Interrup Flag bit. WREN : EEPROM Write Enable bit.
1 : L'opé ration d'é criture est terminé e. 1 : Autorise les cycles d'écriture.
0 : L'opération d'écriture n'est pas terminée 0 : Interdit l'écriture dans l'EEPROM.
WR : Write Control bit
WRERR : EEPROM Error Flag bit.
1 = Démarre un cycle d'écriture.
1: Une opération d'écriture s'est terminée
0 = Le cycle d'é criture est terminé.
prématurément à cause d'un reset ou de l'entrée
en action du watchdog pendant la phase RD : Read Control bit.
d'écriture. 1 = Débute un cycle de lecture de l'EEPROM.
0 : L'opération d'écriture s'est passé correctement. 0 = Ne débute pas un cycle de lecture.
EECON2 h'89' : Registre de contrô le. Ce n'est pas un registre physique. Il est utilisé uniquement
pendant les séquences d'écriture en EEPROM.
Les 35 Instructions du PIC 16F84
21
Les 35 Instructions du PIC 16F84