Vous êtes sur la page 1sur 19

CHAPITRE II LES MICROCONTROLEURS

1. Introduction:
Les microcontrôleurs sont aujourd'hui implantés dans la plupart des applications grand public
ou professionnelles, il en existe plusieurs familles. La société Américaine Microchip Technologie a
mis au point dans les années 90 un microcontrôleur CMOS : le PIC (Peripheral Interface Controller).
Ce composant encore très utilisé à l' heure actuelle, est un compromis entre simplicité d' emploi,
rapidité et prix de revient. De plus l’évolution actuelle des microcontrôleurs permet la
reprogrammation de leurs mémoires grâce à la mémoire permanente flash.

2. Définition des Microcontrôleurs:


Un microcontrôleur est un circuit intégré compact conçu pour régir une operation spécifique
dans un système intégré. Un microcontrôleur typique comprend un processeur, une mémoire et des
périphériques d’entrée / sortie (E / S) sur une seule puce. Ces circuits sont utilisés dans les
véhicules, les robots, les machines industrielles, les appareils médicaux, les émetteurs-récepteurs radio
mobiles, les distributeurs automatiques ou encore les appareils ménagers.
Il existe plusieurs famille de microcontrôleurs dont les plus connues sont: [7]
 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

3. Définition d’un PIC:


Ce sont des microcontrôleurs commercialisés par la firme américaine microchip, ils sont
communément appelés picchips, microchip utilise PIC pour décrire ses séries de PIC
microcontrôleurs (PIC12, PIC14,PIC16…), même s’il n’est pas spécifiquementdéfini le mot PIC
est généralement supposé dire programmable interface controller.

4. Différentes familles de PIC:


Il existe trois grandes familles de PICs :
4.1. La famille base line: emploie des mots d’instructions de 12 bits pour certains PICs (12c508)
et 14 bits pour d’autres PICs(12F675).

1
CHAPITRE II LES MICROCONTROLEURS

4.2. La famille Mid-rang: emploie des mots d’instructions de 14 bits (16F84-16F876- 16F877).
4.3. La famille High-End: emploie des mots d’instructions de 16 bits.

5. Identification d’un PIC:[7]


Un PIC est généralement identifié par une référence de la forme suivante : xx(L)XXyy-zz:
 xx : famille du composant, actuellement (12, 14, 16 et 18).
 L : tolérance plus importante de la plage de tension.
 XX : type de mémoire programme :
 C : mémoire de type EPROM ou EEPROM.
 CR : mémoire de type ROM.
 F : mémoire flash.
 yy : indique le modèle du PIC.
 zz : la fréquence d’horloge maximale supportée par le PIC.

Figure II-1 Exemple d’identification des PICs

Concernant le PIC 16F877-A:


 16 : indique la famille du PIC (Mid-Rang).
 F : indique le type de la mémoire utilisée (Flash).
 877 : identité du PIC.
 A : fréquence maximale d’horloge qui est de 20MHZ.

6. Le choix d’un PIC:


Le choix d’un PIC pour une application dépend principalement de :
 Nombre d’entrées/sorties de l’application.
 Le type et la taille de la mémoire utilisée.
 La fréquence de fonctionnement.
 La rapidité d’exécution.

2
CHAPITRE II LES MICROCONTROLEURS

 La facilité de sa mise en oeuvre.


 La disponibilité du composant sur le marché.
 Son prix d’achat.
7. Le microcontrôleur PIC 16F877:
Le pic 16F877 est un circuit intègre contenu dans un boîtier nommer «DIL 40», il présente
40 broches, 20 de chaque côté. Les broches sont virtuellement numérotées de 1 à 40. La 1ere
broche est place dans le coin situe a gauche de l’encoche de reperage

Figure II-2 PIC 16F877A

8. Caractéristiques du PIC 16F877A:


Le PIC 16F877-A peut supporter une fréquence de 20MHZ maximum, il possède les
caractéristiques suivantes :
 Un microprocesseur (CPU).
 Des interfaces E/s numérique et analogique , Cinq port d’entrée / sortie (A,B,C,D,E).
 Trois Timers pour gére la temps : Timer0, Timer 1 et Timer 2.
 Une RAM de donnee de 368 octes.
 Une mémoire EEPROM de 256 octes .
 Convertisseur Analogique Numérique 10 bits à 5 canaux.
 Deux modules de comparaison et capteure CCP1 et CCP2.
 Un chain de garde .
 14 sorces d’interruption.
 Génirateur d’horloge, à quartz (jusqu’ à 20MHz) ou osilateur RC.

3
CHAPITRE II LES MICROCONTROLEURS

 Tension de fonctionnement de 2 à5V


 Jeux de 35 instructions.

9. Les différentes architectures des PICs


9.1.Architecture en matière de representation:
Tous les microcontrôleurs utilisent l’une des 2 architectures nommées Harvard et Von
Neumann. Elles représentent les différentes manières d’échange de données entre le CPU
(microprocesseur interne) et la mémoire.
 Architecture Von –Neumann:
C’est une architecture qui est utilisée par la majorité des ordinateurs modernes, à un
bus de données unique, ses données peuvent être écrites ou lues par une unite quelconque et
un bus de contrôle qui permet la synchronisation et la commande des autres unités, par
l’unité centrale. [8]

Figure II-3 Architecture Von –Neumann


 Architecture Harvard:
C’est basée sur deux bus de données. Un bus est utilisé pour les données et un autre
pour les instructions. 2 blocs mémoire distincts et 2 bus différents : 1 bus 8 bits pour
communiquer avec la RAM, 1 bus 14 bits pour communiquer avec la ROM, qui contient le

4
CHAPITRE II LES MICROCONTROLEURS

programme. C’est un modèle plus rapide que celui de Von-Neumann. [8]

Figure II-4 Architecture Harvard


9.2. Architecture en matière de traitement des instructions (jeu d’instructions):
Toutes les instructions compréhensibles par les microcontrôleurs forment ce que l’on
appelle le jeu d’instructions. On distingue 2 types :
 Architecture CISC (Complex Instruction Set Computer):
Les microcontrôleurs de ce type possèdent 200 instructions différentes et peuvent réaliser
de nombreuses opérations à grande vitesse. Les instructions sont plus complexes.[8]

 Architecture RISC (reduced instruction set computer):


Dans ce cas, le microcontrôleur reconnaît et exécute seulement des opérations simples
(addition, soustraction, etc.) et des opérations plus complexes sont réalisées en les combinant.
Tous les PIC Mid-Range ont un jeu de 35 instructions.[8]

10. Structure du PIC 16F877-A:


10.1. Structure externe:
Le schéma de la figure II-5 représente la structure externe du PIC 16F877-A
Le PIC 16F877-A comprend :
 33 pins d’entrées/sorties.
 4 pins pour l’alimentation : deux connections VDD et deux connections VSS.
 2 pins pour l’oscillateur, (OSC1 et OSC2) : qui permettent de faire fonctionner
l’oscillateur interne du PIC ou l’oscillateur externe qui peut être un quartz, un oscillateur
RC, un résonateur céramique.
5
CHAPITRE II LES MICROCONTROLEURS

 RESET(MCLR) : qui sert à initialisé le microcontrôleur en cas de la mise sous tension et


remise à zéro externe.

10.2. Structure interne


Le schéma bloc de la figure II-6 représente la structure interne du PIC 16F877-A.
On trouve à l’intérieur d’un microcontrôleur des éléments d’une structure à base d’un
microprocesseur qui sont réunis dans un seul circuit intégré et ces éléments sont :[9]
 Le CPU: exécute les instructions du programme (codées sur 14 bits), traite et produit des
opérations sur des informations numériques.
 La mémoire vive (RAM): ( de 368 octets ) est utilisée pour le stockage temporaire des
données et résultats.
 La mémoire morte (EEPROM): ( de 256 octets) permet de conserver des données très
utiles de manière semi-permanente.
 La mémoire FLASH: ( 8k x 14bits ) permet de stocker le programme (les instructions).
L’horloge génère le signal qui cadence l’exécution des instructions.
 Les ports (A – E): bidirectionnels permettent de communiquer avec l’extérieur ; les
lignes de chaque port peuvent être programmées en entrée ou en sortie.
 Les timers (3): modules programmables dont les fonctions sont : astable (signaux
périodiques), monostable (impulsion), compteur, signaux PWM (commande de moteurs à
courant continu).
 Le CAN: convertisseur analogique/numérique 10 bits – 8 entrées disponibles de 0 à 5V ;
les résultats des conversions sont stockés dans des registres internes.

11. Organisation de la mémoire:


La mémoire d'un PIC 16F877 est divisée en 3 sections :
11.1. Mémoire de programme:
Le PIC16F877A dispose d’un compteur programme à 13 bits capable d’adresser 8 K x
14 bits d’espace mémoire. La largeur de bus de la mémoire programme étant de 14 bits, on
peut dire que cet espace mémoire peut accueillir 8192 instructions. Une telle répartition permet
de savoir si le composant dispose de la mémoire suffisante pour l’application désirée.
Les 13 bits du compteur programme sont scindés en deux partie : une partie basse de 8
bits contenue dans le registre PCL, et une partie haute de 5 bits accessible indirectement par le

6
CHAPITRE II LES MICROCONTROLEURS

registre PCLATH (Program Counter Latch High).figure II-7 est présente l'organisation de la
mémoire programme.
L’espace mémoire programme est divisé en en quatre pages de deux kilo mots chacune ;
en hexadécimal cela donne les plages d’adresses suivantes :
 Page 0 : 0000h – 07FFh.
 Page 1 : 0800h – 0FFFh.
 Page 2 : 1000h – 17FFh .
 Page 3 : 1800h – 1FFFh.
L’exécution du programme principal commence à l'adresse 0000 (Vecteur Reset).
L'adresse 0004 est réservée pour l’interruption de service routine (ISR).
Pour passer d’une page à une autre, les bits de poids fort compteur programme (PC),
devront être modifiés. Cette opération est réalisée en écrivant la valeur désirée dans le registre
PCLATH. [10]
11.2. Mémoire de donnée:
La mémoire de données (File Registers) compte au total 512 octets, reparties sur 4
banques (0, 1, 2 et 3); dans chacune des banques vous trouvez des cases mémoires spéciales
appelées SPECIAL FUNCTION REGISTRES (SFR) , et des cases mémoires à usage général
appelées GENERAL PURPOSE REGISTER (GPR).figure II-8
La zone des registres SFR comporte les registres du CPU et celles des périphériques.
La partie restante GPR, constitue la mémoire de stockage des données utilisateur. Dans
le cas des PIC16F876/877, elle compte au total 368 octets, reparties de la manière suivante :
 96 octets (80 octets dans la banque 0 et 16 Octets zone commune)
 80 octets dans la banque 1,
 96 octets dans la banque 2,
 96 octets dans la banque 3. [10]

11.3. La mémoire de données EEPROM:


C’est une zone de mémoire non-volatile (EEPROM) de 256 octets utile pour stocker des
données semi permanentes. La mémoire EEPROM peut être lue et écrite pendant le
fonctionnement normal. Le mappage 5 de l’EEPROM se fait à travers les registres des
fonctions spéciales. Il y’a six SFR utilisées pour lire et écrire cette mémoire: EECON1
EECON2 , EEDATA , EEDATH , EEADR , EEADRH.

7
CHAPITRE II LES MICROCONTROLEURS

La mémoire de données EEPROM permet de lire et d’écrire un seul octet. Les


operations d'écriture de la mémoire EEPROM effectuent automatiquement un effacement
avant l'écriture de la nouvelle donnée. (Effacement avant l’écriture).

12. Les Instructions:


Les instructions contenues dans la mé moire programme sont une suite de mots binaires dé
codés puis exé cuté s par le microprocesseur, appelé e langage machine. Ces codes sont
difficilement compré hensibles par le programmateur. C’est la raison pour laquelle ils sont
traduits en diffé rents mots faisant partis du langage assembleur.[11]
Microchip a regroupée ses instructions en trois catégories (voir Tableau II-1) :

 les instructions orientée registre (byte).

 les instructions orientée bit.

 Instructions opérant sur une constante.

13. Mode d’adressage du PIC 16f877A:


Les modes d’adressages sont les diffé rents moyens qui permettent au microprocesseur
d’accé der à une opé rande en vue de tester ou de modifier le contenu d’un registre ou d’une mé
moire. [11]

13.1. Mode d’adressage inhé rent ou implicite: L’adressage inhé rent concerne les
instructions qui ne comportent pas d’opé rande, cette derniè re é tant implicite. Il s’agit gé né
ralement des opé rations de mise à 0 et d’incré mentation ou de dé calage de bits
13.2. Mode d’adressage immé diat: Ce mode d’adressage permet de charger les registres
internes du microprocesseur directement avec la valeur de l’opé rande.
13.3. Mode d’adressage direct: Dans ce mode d’adressage l’opé rande correspond à une
adresse où est situé e la donné e de l’opé ration .
13.4. Mode d’adressage indexé ou indirect: Ce mode d’adressage s’applique aux registres
d’index. Ces derniers contiennent une adresse mé moire dans laquelle est placé e la donné e de
l’opé ration.
13.5. Mode d’adressage relative: Ce mode d’adressage est ré servé pour les instructions de
rupture de sé quence conditionnel. La condition provient gé né ralement du ré sultat de l’opé
ration pré cé dente (ré sultat nul, ayant entraîné une retenue ...) où de l’é tat d’un bit.

8
CHAPITRE II LES MICROCONTROLEURS

13.6. Mode d’adressage é tendu: Ce mode d’adressage permet d’effectué des ruptures de sé
quence sans condition afin d’atteindre une adresse non successive dans la mé moire
programme.

14. Les périphériques du PIC 16f877A:


14.1. Les ports d’entrées /sorties: [7]
Le PIC 16f877A contient cinq ports d’entrées/sorties (I/O), nommés : A, B, C, D et
Equipermettent au PIC de communiquer avec le monde extérieur.
Tous les ports peuvent être configurés soit en entrée ou en sortie, selon le bit qui se situe au
registre TRIS (registre de direction) de chaque port.
 Si le bit de TRISX se met à 1 la broche de portx se place en entrée.
 Si le bit de TRISX se met à 0 la broche de portx se place en sortie.
a) Port A : est un port de six bits donc six entrées/sorties numérotées de RA0 à RA5, les 5
pins (RA0 à RA3 et RA5) peuvent être utilisés comme des entrées sorties numériques, soit
comme entrées analogiques. La broche RA4 peut être utilisée:
 Entrée/sortie numérique.
 Comme entrée horloge pour le timer TMR0.
La configuration de direction se fait à l'aide du registre TRISA.
b) Port B : Il possède 8 pins d’entrées sorties de RB0 àRB7.
 RB0 : peut-être entrée d’interruption externe.
 RB1 : entrée de l’USART.RB2 : sortie ou horloge de l’USART.
 RB3 : E/S du module capture/compare /PWM.
 RB4 : contrôle du mode de programme.
 RB6 : E/S du timer 1.
 RB7 : entrée d’horloge pour timer 1.
La configuration de direction se fait à l'aide du registre TRISB.
c) Port C : Il s'agit d'un PORT de 8 bits bidirectionnels. Toutes ces broches peuvent être
utilisées soit comme entrées/sorties oucomme broches d’accès aux différentes ressources
internes (USART, CCP, Timer 1).
La configuration de direction se fait à l'aide du register TRISC.
d) Port D : C'est un port 8 bits bidirectionnel, Le PORTD peut être utilisé dans un mode
particulier appelé " parallel slave port ".
9
CHAPITRE II LES MICROCONTROLEURS

e) Port E : Le PORTE contient seulement 3 bits RE0, RE1 et RE2. sont configurables en
entrée ou en sortie à l'aide du registre TRISE.
Les 3 bits de PORTE peuvent être utilisés soit comme E/S numériques soit comme
entrées analogiques du CAN. La configuration se fait à l'aide du registre ADCON1.

14.2. Les Timers:


a) Timer0 : C’est un compteur à 8 bits qui peut compter de 0 à 255, ayant les
caractéristiques suivantes [12]:
 Compteur sur 8 bits.
 Lecture / écriture de TMR0.
 Prédiviseur 8 bits programmable.
 Choix de l'horloge : interne en Timer et externe en compteur.
 Interruption au débordement ( passage de FF à 00).

Figure II-8 Timer 0


.
b) Timer 1 : C’est un Timer/Compteur à 16 bits accessible en lecture/écriture par
l'intermédiaire des registres 8 bits TMR1H et TMR1L qui constituent sa partie haute et sa
partie basse.
A son débordement (FFFFh  0000h) le drapeau PIR1.TMR1IF est positionné ce
qui peut déclencher l'interruption périphérique TMR1I si elle est validée par son bit de
validation PIE1.TMR1IE (bank1).
TMR1 peut fonctionner dans 3 modes différents :
 Timer Synchrone (horloge interne) .
 Compteur Synchrone (horloge externe) .
 Compteur Asynchrone (horloge externe).

10
CHAPITRE II LES MICROCONTROLEURS

Figure II-9 Timer 1

c) Timer 2 : TMR2 est un timer 8 bits accessible en lecture/écriture constitué de :


 un registre de control T2CON .
 un prédiviseur (1,4,16) .
 un registre de période PR2 accessible en lecture/écriture .
 un comparateur.
 un postdiviseur (1 à 16).

Figure II-10 Timer 2

14.3. L’horloge du microcontrôleur


Le signal d’horloge sert à cadencer le fonctionnement du microcontrôleur.
Deux pates 13 et 14 ( OSC1/CLKIN et OSC2/CLKOUT ) sont présentées sur le boitier
du PIC, ces deux broches peuvent être utilisées de plusieurs manières, tout dépend de
l’oscillateur ou de l’horloge employé, peut être externe (oscillateur à quartz, un oscillateur RC
et un résonateur céramique) ou interne.
Le PIC 16f877A travaille à des fréquences d’horloge à quartz avec deux capacités qui
servent à stabiliser la fréquence qui peut aller jusqu’à 20MHZ.

11
CHAPITRE II LES MICROCONTROLEURS

Figure II-11 Connexion de L’oscillateur avec le pic.

14.4. Le module de convertisseur analogique numérique (CAN):


Le convertisseur A/N convertit le signal analogique présent sur une de ses 8 entrées (cinq
entrées de ses canaux sont les pins RA0 à RA3 plus RA5, sont nommés de AN0 à AN4 et les
trois autres sont les pins RE0, RE2, RE3 qui sont nommés de AN5 à AN7) en son équivalent
numérique, codé sur 10 bits.
Les tensions de références permettant de fixer la dynamique du convertisseur. Elles
peuvent être choisies parmi Vdd, Vss, Vref+ ou Vref . [12]

Figure II.12: Module de conversion A/N

a) Temps d'acquisition :

12
CHAPITRE II LES MICROCONTROLEURS

C’est le temps nécessaire pour que le condensateur interne atteigne une tension proche
de la tension à convertir, il se charge via la résistance interne et celle de la source qui est
connecté à la pin. Les résistances augmentent avec la température, donc le temps
d’acquisition (Tacq) dépend de la température et aussi du temps de création des circuits
internes. [12]
Tacq = Tamp + Tc + CT
 Tacq : Temps d'acquisition.
 Tamp : le temps de création des circuits internes (typiquement=2μs).
 Tc : temps de charge du condenseur = (Ric+Rss+Rs) C Ln(2047) .
 CT : Coefficient de température = (Tp -25°C) 0.05 µs/°C.
 Tp = Température Processeur

Figure II-13 Schéma explicatif de Temps d'acquisition

b) Temps de conversion :
 Le temps de conversion=(12+2)TAD avec :
 TAD : c’est le temps de conversion d’un bit, dépend de la fréquence du quartz de
prédiviseur (div).
 TAD=div*1/fosc.
 Le choix de diviseur doit être ajusté pour que TAD>1.6μs.
 Pour notre PIC 16f877-A , avec un quartz 20MHZ, il faut choisir div=32 ce qui
donne:
 TAD=1.6μs .

13
CHAPITRE II LES MICROCONTROLEURS

Tableau II-2 temps de conversion d’un bit TAD [12]


c) La fréquence d’échantillonnage :
La période d’échantillonnage nomméeTe, doit d’être supérieure à Temin.
Temin= Tad+Tacq [12]
Si on tient compte du théorème de Shannon, fe>2*fmax avec Femax=1/Temin

d) La valeur numérique obtenue :


N = (Va-Vref-)/Q , Avec :
N : la valeur numérique obtenue.
Q : le pas de quantification, Q= (vref+ - vref-)/1024
Va : la tension analogique à convertir.
Vref+ : la tension maximale analogique .
Vref- : la tension minimale analogique (masse).

14
CHAPITRE II LES MICROCONTROLEURS

Les reference

[7] coure microcontroleur PIC16F877 chapitre2,<


https://www.technologuepro.com/microcontroleur-2/chapitre-2-microcontroleur-pic-16f877.pdf >.
[8] cours microcontreuler Thomas Grenier,lyon, < https://www.creatis.insa-lyon.fr/~grenier/wp-
content/uploads/teaching/uC/IF2_PIC16_Full.pdf >
[9] INTRODUCTION SUR LES MICROCONTROLEURS; Mr Nizar TOUJENI.
<https://www.technologuepro.com/cours-microcontroleurs-mikroc/chapitre-2-introduction-sur-les-
microcontroleurs.pdf >
[10],ARCHITECTURE DE PIC 16F877, Mr. Hmaied Sarhene .
<https://www.technologuepro.com/cours-PIC16F877/chapitre-1-architecture-pic-16f877.html >
[11] Le microcontrô leur PIC 16F877, Génie Electronique – 2ème année
<https://www.electronique-mixte.fr/wp-content/uploads/2018/08/Cours-Microcontr%C3%B4leur-
microprocesseur-83.pdf >.
[12] MICROCONTROLEURS, Famille Mid-Range de Microchip, LE PIC 16F876/877.
<https://forums.futura-sciences.com/attachments/electronique/147070d1309358843-timer-pic-
pic16f876-77-v1.pdf >

15
CHAPITRE II LES MICROCONTROLEURS

Figure II-5 La structure externe du PIC 16f877-A

16
CHAPITRE II LES MICROCONTROLEURS

Figure II-6 La structure interne du PIC 16f877-A

Figure II-7 l'organisation de la mémoire programme

17
CHAPITRE II LES MICROCONTROLEURS

Figure II-7 l'organisation de la mémoire donnée

18
CHAPITRE II LES MICROCONTROLEURS

Tableau II-1 Les Instructions du PIC16F877-A [11]

19

Vous aimerez peut-être aussi