Cour Microcontroleur
Cour Microcontroleur
Cour Microcontroleur
CHAPITRE 2
MICROCONTROLEUR PIC 16F877
1. Du microprocesseur au microcontrôleur
Les microcontrôleurs sont plutôt dédiés aux applications qui ne nécessitent pas une
grande quantité de calculs complexes, mais qui demandent beaucoup de manipulations
d’entrées/sorties. C’est le cas de contrôle de processus.
Les systèmes à microprocesseur sont plutôt réservés pour les applications demandant
beaucoup de traitement de l’information et assez peu de gestion d’entrées / sorties. Les
ordinateurs sont réalisés avec des systèmes à microprocesseur.
MICROCONROLEUR 2
BTS GEN 2
La famille des PIC à processeur 8 bits est subdivisée à l’heure actuelle en 3 grandes catégories :
Base-Line : ils utilisent des mots d’instruction de 12 bits.
Mid-Range : ils utilisent des mots d’instruction de 14 bits.
High-End : ils utilisent des mots d’instruction 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 exécutent chaque instruction (sauf les sauts) en un cycle machine.
On atteint donc de très grandes vitesses, et les instructions sont de plus très rapidement
assimilées.
L’horloge fournie au PIC est divisée par 4.C’est cette base de temps qui donne le temps d’un
cycle. Si on utilise par exemple un quartz de 4MHz, on obtient donc 1000000 de cycles/seconde ;
or, comme le PIC exécute pratiquement une instruction par cycle, hormis les sauts, cela nous
donne une puissance de l’ordre de 1MIPS (1 Million d’Instructions Par Seconde).
Pour identifier un PIC, on utilise simplement son appellation du type : ww-l-xx-yyy-zz
WW: Représente la catégorie du composant (12, 14, 16, 17, 18),
L: Tolérance plus importante de la plage de tension.
- XX: Type de mémoire de programme:
C: EPROM ou EEPROM.
CR: PROM.
F: FLASH.
- YYY: Identification.
- ZZ: Vitesse maximum tolérable.
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.
Ceci par opposition aux composants DYNAMIQUE, donc la fréquence d’horloge doit rester
dans des limites précises.
Les microcontrôleurs PIC sont présentés en boîtier DIL (Dual In Line).Un point ou une
encoche donne un repérage de la broche 1, ensuite il faut ce déplacer vers la droite pour avoir les
autres broches. Ont fait le tour du circuit dans le trigonométrique.
MICROCONROLEUR 3
BTS GEN 2
MICROCONROLEUR 4
BTS GEN 2
MICROCONROLEUR 5
BTS GEN 2
Certaines pattes ont plusieurs fonctions : On dit que les fonctions sont multiplexée
3.2.1 L’alimentation
L’alimentation du circuit est assurée par les pattes VDD et VSS. Elles permettent à
l’ensemble 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 l’alimentation qui doit délivrer une
tension continue comprise entre 3 et 6 Volts.
Dans le cas du 16F877, on peut utiliser un quartz allant jusqu’à 20Mhz relié avec deux
condensateurs de découplage, du fait de la fréquence importante du quartz utilisé.
Quelque soit l'oscillateur utilisé, l'horloge système dite aussi horloge instruction est
obtenue en divisant la fréquence par 4. Avec un quartz de 4 MHz, on obtient une horloge
instruction de 1 MHz, soit le temps pour exécuter une instruction de 1μs
MICROCONROLEUR 6
BTS GEN 2
3.2.4 Ports d’entrées/sortie
La plupart des broches des PORTs sont partagées avec des périphériques. En général si
un périphérique est utilisé, les broches correspondantes ne peuvent pas être utilisées comme
broches d’entrée/sortie.
Au reset, les lignes des ports A et E sont configurées en entrées analogiques, les autres
lignes sont configurées en entrées digitales.
Le courant absorbé ou fourni peut atteindre 25 mA.
MICROCONROLEUR 8
BTS GEN 2
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 6
CHAPITRE 1
SYSTEMES MICRO-PROGRAMMES A BASE DE
MICROPROCESSEUR
1. Introduction aux systèmes micro-programmés
Le développement de l'électronique numérique a suscité l'apparition de plusieurs types de
composants très puissants en particulier les systèmes micro-programmés.
Leur aptitude à s'adapter aux contraintes technologiques de plus en plus complexes, leur
capacité de gérer un grand nombre de fonctionnalités variées et leur coût de revient faible a
encouragé leur utilisation dans plusieurs applications tant domestiques qu'industrielles.
Le développement de ces composants programmables remplacent de plus en plus
l'électronique classique vu que les circuits intégrés analogiques ou logiques ne peuvent plus
résoudre des fonctions de plus en plus complexes.
Historiquement, les constructeurs développèrent d'abord les systèmes micro-programmés
intégrés dans les calculateurs de bureau ou de poche, avec des codes d'ordre orientés vers le
calcul numérique. Puis maitrisant cette technique ils offrirent des circuits d'usage généraux :
les microprocesseurs.
Les systèmes micro-programmés ont vu leur importance progresser au rythme de l’importance
prise par les microprocesseurs. C'est d'ailleurs l'élément de base pour de tels systèmes.
==> 1971 : premier microprocesseur 4 bits 4004 d’Intel .
La miniaturisation des transistors a permis d’augmenter considérablement la capacité
d’intégration sur silicium. On est passé rapidement du processeur 4 bits au :
• processeur 8 bits.
• processeurs 16 bits.
• processeurs 32 bits.
• processeurs 64 bits
Cette miniaturisation a offert des possibilités de réaliser des systèmes embarquées.
2. Définition d'un microprocesseur
Un microprocesseur ou processeur ou encore CPU (Central Processing Unit) est l'unité
intelligente de traitement des informations. c'est un circuit intégré complexe )est un circuit
intégré à très grande échelle d’intégration (VLSI) chargé d’organiser les tâches précisées par
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 7
le programme, de les décoder et d’assurer leur exécution. Il doit aussi prendre en compte les
informations extérieures au système et assurer leur traitement.
Ils présent trois avantages principaux : ils sont économiques et offre une souplesse d'emploi
inhérente à la programmation.
3. Modèle de base d'un microprocesseur
Dans un microprocesseur, on retrouve :
- une Unité Arithmétique et Logique (UAL)
- une Unité de Contrôle (UC)
- des registres
- des bus ou chemins de données
Fig. 1.1 : Structure de base d'un microprocesseur
3.1 Unité Arithmétique et Logique
Elle dispose de circuits réalisant des opérations des fonctions logiques (ET, OU, comparaison,
décalage,...) ou arithmétique (addition, soustraction,...).
En entrée de l’UAL, on a des commandes permettant d’activer les opérations, venant de
l’unité de contrôle En sortie, on a les résultats des opérations et les conditions qui sont en fait
les entrées de l’unité de contrôle.
MICROCONROLEUR 9
BTS GEN 2
L'UAL est composé de :
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 8
Les accumulateurs : Ce sont des registres de travail qui servent à stocker une
opérande au début d'une opération arithmétique et le résultat à la fin de l'opération.
L’Unité Arithmétique et Logique: C'est un circuit complexe qui assure les fonctions
logiques (ET, OU, Comparaison, Décalage, etc...) ou arithmétique (Addition,
soustraction...)
Le registre d'état : Il est généralement composé de 8 bits à considérer
individuellement. Chacun de ces bits est un indicateur dont l'état dépend du résultat
de la dernière opération effectuée par l’UAL. On les appelle indicateur d’état ou flag
ou drapeaux (Retenue, débordement, zéro, ...).
3.2 Unité de contrôle ou séquenceur
L’unité de contrôle est une circuit logique séquentiel chargée de séquencer l’algorithme et de
générer les signaux de contrôle pour piloter les éléments du chemin de données.
Elle envoie des commandes à l’unité de traitement qui va exécuter les traitements.
L'unité de control contient:
Le compteur de programme (PC : Programme Counter) appelé aussi Compteur
Ordinal (CO) : Il est constitué par un registre dont le contenu est initialisé avec
l'adresse de la première instruction du programme. Il contient toujours l’adresse de la
prochaine instruction à exécuter
Le registre d'instruction et le décodeur d'instruction : Chacune des instructions à
exécuter est transféré depuis la mémoire dans le registre instruction puis est décodée
par le décodeur d’instruction.
Bloc logique de commande (ou séquenceur) : IL organise l'exécution des
instructions au rythme d’une horloge. Il élabore tous les signaux de synchronisation
internes ou externes (bus de commande) du microprocesseur en fonction de
l’instruction qu’il a à exécuter. Il s'agit d'un automate réalisé de façon microprogrammée
3.3 Les bus
Un bus est un ensemble de lignes de communications groupés par fonction. Il permet de faire
transiter (liaison série/parallèle) des informations codées en binaire entre deux points.
Il est caractérisé par le nombres de lignes et la fréquence de transfert.
Il existe 3 Types de bus :
Bus de données (bi-directionnel): permet de transférer entre composants des données ,
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 9
ex. :résultat d'une opération, valeur d'une variable, etc.
Le nombre de lignes du bus de données définie la capacité de traitement du microprocesseur ;
selon le microprocesseur la largeur du bus peut être de 8 bits, 16 bits, 32 bits, 64 bits.
Bus d'adresses (uni-directionnel): permet de transférer entre composants des adresses,
ex. :adresse d'une case mémoire, etc.
L’espace adressable peut avoir 2n emplacements, avec n est le nombre de lignes du bus
d'adresses.
Bus de contrôle (bi-directionnel): permet l'échange entre les composants
d'informations de contrôle [bus rarement représenté sur les schémas].
ex. :périphérique prêt/occupé, erreur/exécution réussie, etc.
3.4 Les registres
C'est un espace mémoire interne au processeur. On distingue deux types : à usage général qui
permettent à l'UAL de manipuler des données et les registres d'adresses qui sont connectés au
bus d'adresse.
Fig. 1.2 : Structure interne d'un microprocesseur
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 10
MICROCONROLEUR 10
BTS GEN 2
4. Les mémoires
Le processeur exécute les instructions machines présente dans la mémoire et traite les données
qu'elle contient : le fonctionnement du microprocesseur est entièrement conditionné par le
contenu de celles-ci.
La mémoire peut être vue comme un ensemble de cellules ou cases contenant chacune
une information : une instruction ou une donnée. Chaque case mémoire est repérée par
un numéro d’ordre unique : son adresse.
Fig. 1.3 : Structure générale d'un système piloté par un microprocesseur
Une case mémoire peut être lue ou écrite par le microprocesseur (cas des mémoires vives) ou
bien seulement lue (cas des mémoires mortes).
Format d'une instruction
Les opérandes sont stockées dans des mémoires RAM.
Un jeu d'instruction est l' ensemble d’opérations élémentaires effectué par le microprocesseur.
5. Fonctionnement d'un microprocesseur
Le traitement d'une instruction peut être décomposé en plusieurs phases. Celles-ci sont au
nombre de trois :
Recherche de l'instruction
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 11
Décodage (decode)
Exécution (execute)
Fig. 1.4 : Fonctionnement d'un microprocesseur
5.1 Recherche de l'instruction
Pour exécuter les instructions dans l’ordre établi par le programme, le microprocesseur doit
savoir à chaque instant l’adresse de la prochaine instruction à exécuter. Le
microprocesseur utilise un registre contenant cette information : Le pointeur d’instruction
Le contenu de PC est placé sur le bus des adresses. L'unité de contrôle (UC) émet un ordre de
lecture, au bout d'un certain temps (temps d'accès à la mémoire) le contenu de la case
mémoire sélectionné est disponible sur le bus des données. L'unité de contrôle charge la
donnée dans le registre d'instruction pour décodage.
Fig. 1.5 : Recherche d'instruction
5.2 Décodage
Pour savoir quel type d’opération doit être exécuté (addition, soustraction, ...), le
microprocesseur lit le premier octet de l’instruction pointée par le pointeur d’instruction (code
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 12
opératoire) et le range dans le registre d’instruction. Le code opératoire est décodé par des
circuits de décodage contenus dans le microprocesseur. Des signaux de commande pour
l’UAL sont produits en fonction de l’opération demandée qui est alors exécutée.
Pendant que l’instruction est décodée, le pointeur d’instruction est incrémenté de façon
à pointer vers l’instruction suivante. Puis, le processus de lecture et de décodage des
instructions recommence.
Fig. 1.6 : Récupération de l'opérande
5.3 Exécution
A la suite de chaque instruction, le registre d’état du microprocesseur est actualisé en
fonction du dernier résultat.
6. Architecture d'un microprocesseur
Pour l’organisation des différentes unités, il existe deux architectures possibles:
6.1 Architecture de Von Neuman
La mémoire programme, la mémoire données et les périphériques d’entrées/sorties partagent
le même bus s’adresses et de données.
Inconvénient: L’exécution d’une instruction nécessite plusieurs échanges de données sur le
MICROCONROLEUR 11
BTS GEN 2
seul et unique bus dévolu à cet usage puisqu’il faut tout d’abord aller chercher le code de
l’instruction puis le ou les données qu’elle doit manipuler.
Fig. 1.7 : Architecture de Von Neuman
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 13
6.2 Architecture de Harvard
Cette architecture sépare systématiquement la mémoire de programme de la mémoire des
données : l'adressage de ces mémoires est indépendant. Ce type d’architecture est utilisé sur
des microcontrôleurs qui ont connu un développement important ces dernières années.
Fig. 1.8 : Architecture de Harvard
Quoique cette architecture puisse être complexe mais elle est performante: Gain en terme de
vitesse d’exécution des programmes :
L’exécution d’une instruction ne fait plus appel qu’à un seul cycle machine puisque l’on peut
simultanément, grâce au deux bus, rechercher le code de l’instruction et la ou les données
qu’elle manipule
MICROCONROLEUR 12