Académique Documents
Professionnel Documents
Culture Documents
I. Présentation :
Les Microcontrôleurs μC ou uC (MCU en anglais, MicroController Unit) sont des systèmes embarqués, qui
intègrent plusieurs circuits (Microprocesseur μP, mémoires, interfaces E/S...) dans un même boitier.
Un processeur ou unité centrale de traitement UCT (CPU en anglais, Central Processing Unit) est un circuit
intégré qui exécute les opérations arithmétiques ( + - * / ) et logiques (portes logiques, affectations, décalages,
comptages...) reçues sous forme d’instructions machine.
Un microprocesseur est un processeur construit en un seul circuit intégré.
Caractéristiques du PIC16F84 et Brochage du PIC16F84 :
Une mémoire programme de type flash de 1K (1024) mots de 14 bits
Une mémoire RAM constituée :
o 17 registres de control SFR (Special Function Registers)
o 68 octets de RAM utilisateur appelés aussi GPR (General Propose
Registers)
Une mémoire EEPROM de donnée de 64 octets
Deux ports d'entrée sortie, un de 8 bits et un de 5 bits (RA et RB)
Un timer/Compteur cadencé par une horloge interne ou externe
Un chien de garde / compteur qui est un timer particulier
Un Prédiviseur de fréquence programmable permettant d'étendre les
possibilités du Timer TMR0 et du chien de garde WDT
4 sources d'interruption
L'horloge peut être générée par 4 types d'oscillateurs sélectionnables
Protection de code
Fonctionnement en mode sleep pour réduction de la consommation
Programmation par mode ICSP (In Circuit Serial Programming)
II. Architecture interne :
N.B. : Notez que les PICs sont des composants très stables, c’est à dire que la fréquence d’horloge peut être
abaissée jusque l’arrêt complet sans perte de données et sans dysfonctionnement.
5. La mémoire RAM - Registres :
La RAM est formée de registres de 8bits, des 2 types SFR et GPR, organisés en 2 pages (bank0-1)
Elle contient 256 registres adressés de 00h à FFh, sur 7bits (27=128 adresses) + le bit RP0 (21=2 pages)
Page 0 (RP0-adress 0000.0000 (00h) à 0111.1111 (7F)) Page 1 (RP0-adress 1000.0000 (80h) à 1111.1111
(FF))
Les registres des zones 50h à 7Fh et D0h à FF + les 2 adresses 07 et 87 ne sont pas utilisables
Les registres de 8C à CF (bank1) sont une copie matérielle des registres 0C à 4F (bank0)
Alors on reste avec 90 registres fonctionnelle :
17 registres SFR (Special Function Register), ce sont les registres de fonctionnement du PIC. Certain SFR sont
dupliqués, L'ensemble de ces (22 registres) est souvent appelé fichier des registres.
68 registres GPR (General Purpose Register) sont des positions mémoire que l'utilisateur peut utiliser pour
stocker ses variables et ses données.
2. La RAM
La mémoire de Données est découpée en 4 Banks. En fonction de la bank choisie on
RP1-
accède à différents registres. Certains registres sont dans les 4 banks. Le choix de la IRP Bank
RP0
bank de fait par les bits 5 et 6 du registre STATUS, et le bit 7 (IRP) doit prendre 0 pour
0 00 Bank0
les pages (0 et 1), et 1 pour les pages (2 et 3)
0 01 Bank1
1 10 Bank2
1 11 Bank3
Le cycle de conversion :
5. Les TIMERs :
Le PIC 16F877 contient 3 TIMERs semblables au TIMER0 du PIC16F84, incrémentés en permanence, ils
peuvent déclencher une interruption si elle est autorisée :
TIMER0 :
Sur 8Bits, (TMR0 répliqué dans bank0 et bank2) il est incrémenté par :
Horloge interne (Fosc/4)
Horloge externe sur broche T0CKi/RA4
Registre de control du TMR0 : OPTION_REG (Interruption T0I commandée dans INTCON)
𝑅𝐵𝑃𝑈 INTEDG TOCS TOSE PSA PS2 PS1 PS0
RBPU = 0 active la résistance de Pull up sur les 8bits du Port.
INTEDG = 1 : Interruption si front montant sur la broche PB0/IRQ
2STE Lycée Technique Mohamed VI – Azilal [2019/2020] N. EL-GAOUTI Cours A T C Page | 27
T0CS = 1 : la broche RA4/Clk est utilisée comme source d’horloge pour le TIMER, sinon, il utilise l’horloge
interne et RA4 est utilisée comme E/S
TOSE = 1 : le TIMER utilise le front montant, sinon il utilise le front descendant (utilisé avec l’horloge externe)
PSA = 1 : prédiviseur est affecté au WatchDog, sinon il est affecté au TIMER
TIMER1 :
Sur 16Bits, (dans bank0 TMR1H t TMR1L) il est incrémenté par :
Horloge interne (Fosc/4)
Horloge externe sur broche T1OCI/RC0
Oscillateur entre T1OSI/RC1 et T1OSO/RC0
Registre de control du TMR1 : T1CON
(Interruption T1I commandée dans INTCON + PIE1 + PIR1)
N-U N-U T1CKPS1 T1CKPS0 T1OSCEN 𝑇1𝑆𝑌𝑁𝐶 TMR1CS TMR1ON
T1CKPS1 – T1CKPS0 : Valeur du prédiviseur de la fréquence du TMR1.
T1OSCEN = 1 : Activer l’horloge du TMR1 (arrêt pour économie d’énergie)
T1SYNC = 0 Synchroniser horloge du TMR1 avec horloge interne
(Si la synchronisation est active, le TMR1 s’incrémente pendant le mode SLEEP)
TMR1CS = 1 Horloge externe sur (front montant de RC0), sinon horloge interne du TMR1 (32kHz)
TMR1ON = 1 Activer le TIMER, sinon il est éteint
T1CKPS1 – T1CKPS0
TIMER2 :
Sur 8Bits, (TMR2 dans bank0) il est incrémenté par :
Horloge interne (Fosc/4) avec prédiviseur
Registre de control du TMR2 : T2CON
(Interruption T2I commandée dans INTCON + PIE1 + PIR1)
N-U TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMRON T2CKPS1 T2CKPS0
TOUTPS3 – T1CKPS0 : Post-Diviseur de la valeur du TMR1 (utilisation avec capture/compare)
TMR2ON = 1 : Activer le TIMER, sinon il est éteint
T2CKPS1 - T2CKPS0 : Valeur du prédiviseur de la fréquence du TMR2