Vous êtes sur la page 1sur 31

REPUBLIQUE ALGERIENNE

DEMOCRATIQUE ET POPULAIRE
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université Ahmed Zabana - Relizane

Institut des Sciences et Technologie

Département de : Génie Electrique

INTITULE :

Microcontrôleur

Présenté par :

 Khedim amel

 Belbey hadj mohamed

Dirigé par : pf.lounis

Année Universitaire 2021/2022


 Introduction aux microcontrôleurs
Un microcontrôleur est un circuit intégré qui rassemble les éléments essentiels d'un ordinateur:
processeur, mémoires (mémoire morte pour le programme, mémoire vive pour les données), unités
périphériques et interfaces d'entrées-sorties. Les microcontrôleurs se caractérisent par un plus haut
degré d'intégration, une plus faible consommation électrique (quelques milliwatts en
fonctionnement, quelques nanowatts en veille), une vitesse de fonctionnement plus faible (quelques
mégahertz à quelques centaines de mégahertz) et un coût réduit par rapport aux microprocesseurs
polyvalents utilisés dans les ordinateurs personnels.
Par rapport à des systèmes électroniques à base de microprocesseurs et autres composants séparés,
les microcontrôleurs permettent de diminuer la taille, la consommation électrique et le coût
des produits. Ils ont ainsi permis de démocratiser l'utilisation de l'informatique dans un grand
nombre de produits et de procédés.
Les microcontrôleurs sont fréquemment utilisés dans les systèmes embarqués, comme les
contrôleurs des moteurs automobiles, les télécommandes, les appareils de bureau, l'électroménager,
les jouets, la téléphonie mobile, etc.

 Historique
Cette architecture a été introduite dans les années 50 l’Institute for Advanced Study (IAS) de
Princeton.z Von Neumann a donné son nom à l'architecture de Von Neumann utilisée dans la quasi
totalité des ordinateursmodernes, l'apport d'autres collaborateurs de l'EDVAC enest par conséquent
grandement minimisé (on citera J.Presper Eckert et John William Mauchly parmi d'autres).Cela est
dû au fait qu'il est, en 1944, le rapporteur des travaux pionniers en la matière (First Draft of a
Report onthe EDVAC).z Le modèle de calculateur à programme auquel sonoriste attaché et qu'il
attribuait lui-même à Turing, possède une unique mémoire qui sert à conserver les logiciels et les
données. Ce modèle, extrêmement innovant pour l’époque, est à la base de la conception de
nombre d’ordinateurs mais a fortement évolué depuis

 Qu’est-ce qu’un microcontrôleur ?


Un microcontrôleur est un circuit intégré regroupant un micro-processeur, de la mémoire et des
périphériques sur la même puce. Contrairement à un microprocesseur classique, un
microcontrôleur est surtout utilisé pour une application spécifique.

De nos jours, les microcontrôleurs sont présents un peu partout : dans les appareils domestiques,
médicaux, de télécommunication, dans les voitures, les avions, l’industrie, …

Apparus dans les années 70, les microcontrôleurs à architecture 8 bits ne sont pas près de
disparaître. Très peu chère, on les retrouve dans des petites applications (ex. télécommande). Par
exemple, la célèbre carte Arduino UNO fonctionne avec un microcontrôleur 8 bits !
Carte Arduino UNO (microcontrôleur Atmel ATMEGA 328)

Actuellement, la tendance est aux microcontrôleurs 32 bits (ex. ARM Cortex-M, STM32, …) qui
sont plus adaptés aux applications plus évoluées. C’est ce type de microcontrôleur qui a permis le
portage du langage Python (MicroPython) au sein des microcontrôleurs. Les cartes Micro:bit,
Pyboard ou encore à base d’ESP32 en sont les parfaits exemples !

Carte micro:bit

Carte PyBoard (microcontrôleur STM32)


Carte ESP-WROOM-32 (microcontrôleur ESP32)

 Les différents types de microcontrôleurs


Plusieurs critères permettent de différencier les microcontrôleurs : leur architecture, le nombre et le
type de périphériques d’entrées/sorties, le langage de programmation, …

Ces deux derniers points sont à prendre en considération. En particulier, au lycée, le choix de
Python comme langage de programmation des microcontrôleurs paraît logique.

En pratique, la plupart des manuels de sciences physiques et des fabricants de matériel spécialisé se
sont tournés vers les populaires cartes Arduino même si le langage de programmation utilisé n’est
pas du Python mais du C/C++ ! Cependant, il existe des solutions de pilotage d’une carte Arduino
en langage Python avec le librairies Nanpy ou encore PyFirmata.

 Pourquoi des microcontrôleurs en sciences physiques ?


Le monde actuel est fortement imprégné par le numérique. Par exemple, les téléphones portables et
les objets connectés comportent une multitude de capteurs mesurant des grandeurs très variées
comme la température, la fréquence cardiaque, la pression, l’accélération, les ondes sonores, …

Il est donc important d’expliquer comment s’effectue-la mesure d’une grandeur physique
analogique un appareil numérique.

Il en est de même pour la génération de signaux (ex. son) à partir d’un appareil numérique.
 Les fonctions d’un microcontrôleur
Les microcontrôleurs permettent principalement de :

 générer de signaux (ex. son, impulsion de commande, …).


 mesurer des tensions (ex. adaptation de capteurs analogiques, acquisition de signaux, …).
 mesurer des durées (ex. période, fréquence, temps caractéristique, …).

 Les microcontrôleurs en sciences physiques


De manière générale, les microcontrôleurs sont utilisés :

 pour réaliser des petites applications (ex. thermomètre, télémètre à ultrasons, …) en


rapport avec un cours ou un TP ;
 dans des projets (enseignement scientifique).

Avec des capteurs, il est en plus possible de :

 réaliser des mesures (ex. température, célérité son, pression, …) ;


 faire de l’acquisition de données en mode autonome (ex. mesure de pression sur un ballon
sonde) ou mode connecté (branché à un ordinateur).

 Structure d'un système à microprocesseur


Un microprocesseur a besoin de certains éléments pour fonctionner :

 de la mémoire morte dite ROM (principalement pour stocker le programme) ;


 de la mémoire vive dite RAM (principalement pour stocker les variables) ;
 des périphériques (principalement pour interagir avec le monde extérieur).
 une horloge pour le cadencer (principalement à quartz)

Ces différents blocs sont reliés par 3 bus :

 le bus d'adresse qui permet au microprocesseur de sélectionner la case mémoire ou le


périphérique auquel il veut accéder pour lire ou écrire une information (instruction ou
donnée) ;
 le bus de données qui permet le transfert des informations entre les différents blocs ; ces
informations seront soit des instructions soit des données en provenance ou à destination de
la mémoire ou des périphériques ;
 le bus de contrôle qui indique si l'opération en cours est une lecture ou une écriture, si un
périphérique demande une interruption etc.

Le fonctionnement est le suivant :

 À la mise en route du système, le microprocesseur va chercher dans la mémoire à l'adresse


0 (pour la plupart des processeurs) la première instruction à exécuter ;
 il stocke cette instruction dans un registre interne appelé registre d'instructions ;
 il exécute cette instruction ;
 puis en consultant le registre pointeur d'instruction va chercher l'instruction suivante, etc.
Traditionnellement, ces composants sont intégrés dans des circuits distincts. Le développement
d'un tel système à base de microprocesseur se trouve donc pénalisé par (liste non exhaustive) :

 La nécessité de prévoir l'interconnexion de ces composants (bus) ;


 la place occupée physiquement par les composants et les moyens d'interconnexion ;
 la consommation énergétique ;
 la chaleur dégagée ;
 le coût financier.

Les microcontrôleurs améliorent l'intégration et le coût (lié à la conception et à la réalisation) d'un


système à base de microprocesseur en rassemblant ces éléments essentiels dans un seul circuit
intégré. On parle alors de " système sur une puce " (en anglais : " System on Chip "). Dans la suite,
nous nous intéressons plus particulièrement aux microcontrôleurs 8 bits, c’est-à-dire ceux dont le
bus de données comportent 8 bits et le bus d'adresses 16 bits.

 Périphériques
Les périphériques sont des circuits électroniques intégrés au microcontrôleur capables d'effectuer
des tâches spécifiques. On peut mentionner entre autres :

 les convertisseurs Analogique/Numérique (donnent un nombre binaire à partir d'une tension


électrique) ;
 les convertisseurs Numérique/Analogique (opération inverse) ;
 les générateurs de signaux à modulation de largeur d'impulsion (MLI, ou en Anglais, PWM
pour Pulse Width Modulation) ;
 les timers (compteurs de temps ou d'événements) ;
 les comparateurs (comparent deux tensions électriques) ;
 les contrôleurs de bus (UART, IIC, SSP) ;
 les oscillateurs (servent de base de temps aux timers).

Le fonctionnement des périphériques peut être paramétré et commandé par le programme et/ou les
entrées-sorties. Les périphériques peuvent générer une interruption qui contraint le processeur à
quitter le programme principal pour effectuer une routine d'interruption.

 Jeu d'instructions
On peut classer les instructions qu'un microcontrôleur est capable d'effectuer en quelques groupes.

 Instructions de transfert
Le microcontrôleur passe une grande partie de son temps à transférer des octets d'un endroit à
l'autre du système : d'un périphérique vers un registre interne ou vice-versa, d'un registre interne
vers la mémoire RAM ou vice-versa. Ce qui ne peut en général pas être fait directement, c'est un
transfert direct d'une case mémoire vers une autre ou vers un périphérique, ou une écriture en
mémoire ROM, la structure du microcontrôleur rend obligatoire le passage des informations par un
de ses registres internes. Remarquons que, sauf exceptions, il s'agit plutôt d'une copie que d'un
transfert puisque la case mémoire d'origine garde son information (tant qu'on n'a pas écrit autre
chose à la place).
 Instructions arithmétiques
Un microcontrôleur 8 bits n'est pas un grand mathématicien. Tout au plus est-il capable d'effectuer
des additions, des soustractions, des multiplications et des divisions sur des nombres binaires de 8
bits. Toutes les opérations mathématiques complexes telles que le traitement des grands nombres,
des nombres fractionnaires, des puissances, des racines carrées, des fonctions trigonométriques,
logarithmiques et exponentielles doivent être ramenées à une succession d'opérations simples
portant seulement sur des octets. Des routines mathématiques (petits programmes permettant de
réaliser les calculs complexes) ont été développées pour la plupart des microcontrôleurs populaires.

 Instructions logiques
Les microcontrôleurs sont capables d'effectuer des opérations logiques : ET, OU, XOU (XOR),
NON (inverseur), rotations, décalages. Les opérations sont opérées simultanément sur les bits
correspondant des deux registres.

La comparaison des octets A et B, qui est considérée comme une opération logique, est réalisée
comme une soustraction dont on néglige le résultat ; on s'intéresse simplement au fait de savoir s'il
est nul (ce qui signifie que A = B), positif (A > B) ou négatif (A < B). Ces indications sont inscrites
dans des indicateurs d'états (petites mémoires d'1 bit situées dans le processeur).

 Instructions d'entrées/sorties
Ces instructions sont utilisées pour :

 lire l'état d'un port d'entrée (permettant l'interfaçage d'interrupteurs, de commutateurs,


d'optocoupleurs, de convertisseurs analogiques/numériques, de claviers, etc.) ;
 écrire une information dans le registre d'un port de sortie, qui maintient l'information à la
disposition des circuits extérieurs (leds, moteurs, relais, convertisseurs
numériques/analogiques, etc.) ;
 écrire ou lire une information dans les registres d'un port série.

Signalons que dans certains microcontrôleurs les périphériques sont considérés simplement comme
des cases de mémoire et ils sont gérés par les instructions de transfert (entrées/sorties intégrées
mémoire). D'autres microcontrôleurs disposent d'instructions spécifiques pour les entrées/sorties
(entrées/sorties indépendantes).

 Instructions de branchement
Il s'agit d'instructions qui altèrent le déroulement normal du programme. On distingue les sauts et
les sous-routines.

 Les sauts provoquent un branchement du programme vers une adresse mémoire qui n'est
pas contigüe à l'endroit où l'on se trouve.

 La sous-routine ou sous-programme est une partie de programme dont on a besoin à


plusieurs endroits dans l'exécution du programme principal. Plutôt que de répéter ce sous-
programme à tous les endroits où l'on en a besoin, on le place en un endroit donné (par
exemple à la fin du programme principal) et on opère un branchement du programme
principal vers le sous-programme chaque fois que nécessaire. La grande différence par
rapport au saut, c'est qu'au moment du branchement il faut mémoriser l'adresse d'où l'on
vient, afin de pouvoir y revenir une fois le sous-programme terminé. Ceci est effectué en
mémorisant l'adresse de départ dans un registre ad hoc (la pile) du microcontrôleur.

Tant les sauts que les sous-routines peuvent être :

 inconditionnels ;
 conditionnels, c'est-à-dire que le branchement n'a lieu que si une certaine condition est
remplie ; généralement, la condition testée est le contenu d'un des indicateurs d'état ; ceux-
ci indiquent par exemple si le contenu de l'accumulateur est nul, positif, négatif, de parité
paire ou impaires.

 Instructions diverses
On trouve dans ce groupe :

 des instructions de gestion de la pile (zone de mémoire RAM permettant le stockage de


données pendant l'exécution du programme) ;
 des instructions de contrôle du processeur : par exemple passage en mode basse
consommation, contrôle des périphériques embarqués (càd. sur la même puce que le
processeur) ;
 des instructions permettant de positionner des indicateurs internes du processeur.

Ces instructions varient fort selon les familles des microcontrôleurs.

 Modes d'adressage pour les données


De nombreuses instructions font référence à des données se trouvant à différents endroits du
microcontrôleur : registres internes du processeur, ROM, RAM, ports d'E/S. On appelle modes
d'adressage les différentes façons de spécifier les endroits où se trouvent les données dont on a
besoin.

 Adressage implicite
Certaines opérations ne peuvent être réalisées que sur une donnée se trouvant en un endroit bien
précis du processeur (par exemple, l'accumulateur ou la pile). Dans ce cas, il n'est pas nécessaire de
spécifier l'adresse du registre en question et on parle d'adressage implicite.

 Adressage registre ou inhérent


Le processeur dispose d'un certain nombre de registres de travail. De nombreuses instructions y
font référence ; vu leur nombre peu élevé (8, par exemple), il suffit d'un petit nombre de bits pour
spécifier le registre désiré (3 dans notre cas). On parle dans ce cas d'adressage registre ou inhérent.
 Adressage direct
Dans ce mode d'adressage, on donne l'adresse (généralement en 16 bits) de la donnée en mémoire
(RAM, ROM ou port d'E/S s'il est intégré à la mémoire). Ce mode d'adressage permet d'indiquer
n'importe quel endroit dans la mémoire, le prix à payer étant que l'on doit spécifier l'adresse
concernée dans son intégralité (2 à 4 octets).

Certains processeurs implémentent aussi, pour réduire l'encombrement du programme, l'adressage


direct restreint : l'adresse ne comporte qu'un octet, et ce mode ne permet d'accéder qu'aux données
se trouvant sur la page courante (adresses ayant donc les mêmes bits de poids fort) ou sur la page 0
(adresses ayant donc les bits de poids fort à 0).

Adressage indirect à registre


Dans ce mode d'adressage, l'adresse de la donnée se trouve dans un registre spécial du processeur
(du même nombre de bits que son bus d'adresses), le pointeur de données. L'avantage, par rapport à
l'adressage direct, est que l'adresse peut être manipulée commodément, par exemple pour accéder à
une suite de données consécutives en mémoire. Ceci est particulièrement utile lorsqu'on manipule
des données stockées dans un tableau.

 Adressage immédiat
C'est un peu un abus de langage que de parler d'adressage dans ce cas-ci. En effet, la donnée suit
tout simplement l'instruction.

 Adressage indexé
Ce mode est assez semblable à l'adressage indirect à registre. Il fait appel à un registre spécial
appelé " registre d'index ". Certains microcontrôleurs ne supportent pas ce mode, d'autres au
contraire ont 1 ou même 2 registres d'index. Deux registres d'index sont particulièrement bienvenus
lorsqu'il s'agit de déplacer un bloc de données dans la mémoire RAM.

 Structure d'une instruction


Une instruction comporte généralement de 1 à 3 octets. Le premier octet est appelé code opératoire,
il spécifie ce que l'on veut faire.

Le ou les octets suivants spécifient la donnée (adressage immédiat), une adresse restreinte, une
adresse absolue (16 bits) ou une donnée 16 bits (peu utilisé).

Une instruction traite au maximum deux données, si l'on se limite à 3 octets pour l'instruction, une
seule des données peut être en RAM.

 Modes d'adressage pour les branchements


L'adresse de la prochaine instruction à exécuter est contenue dans un registre spécial du processeur,
appelé pointeur de programme ou compteur de programme.

 Adressage direct : dans ce cas, l'adresse où l'on doit aller est donnée en 16 bits ; on peut
donc se rendre n'importe où dans la mémoire (programme). Au moment du branchement, le
contenu du pointeur de programme est remplacé par l'adresse en question (si le
branchement concerne une sous-programme, on sauvegarde le contenu du pointeur de
programme).

Comme de nombreux branchements s'effectuent vers des adresses mémoire proches de l'endroit où
l'on se trouve au moment d'exécuter le branchement, on a prévu deux modes d'adressage plus
compacts, ne nécessitant qu'un octet pour l'adresse :

 adressage relatif : on spécifie le nombre de pas à effectuer en avant, ou plus souvent en


arrière, dans le programme ;
 adressage restreint : on spécifie l'adresse sur la page courante (octet d'adresse le plus
significatif inchangé).

 Familles de microcontrôleurs
 la famille Atmel AT91 ;
 la famille Atmel AVR ;
 le C167 de Siemens/Infineon ;
 la famille Hitachi H8 ;
 la famille Intel 8051, qui ne cesse de grandir ; de plus, certains processeurs récents utilisent
un cœur 8051, qui est complété par divers périphériques (ports d'E/S,
compteurs/temporisateurs, convertisseurs A/N et N/A, chien de garde, superviseur de
tension, etc.) ;
 l'Intel 8085, à l'origine conçu pour être un microprocesseur, a en pratique souvent été utilisé
en tant que microcontrôleur ;
 le Motorola 68HC11 ;
 la famille Freescale 68HC08
 la famille Freescale 68HC12
 la famille des PIC de Microchip ;
 la famille des dsPIC de Microchip ;
 la famille des ST6 de STMicroelectronics ;
 la famille ADuC d'Analog Devices ;
 la famille PICBASIC de Comfile Technology;
 la famille MSP430 de Texas Instruments.
 la famille 8080 , z80 , Rabbit : pour memoire , le 8080 est un des grands ancetres , mais z80
et Rabbit sont encore bien vivants
 la famille PSoC de Cypress
 la famille LPC21xx ARM7-TDMI de Philips
 la famille V800 de NEC
 la famille K0 de NEC
 Applications
Les microcontrôleurs sont souvent utilisés dans l'élaboration de systèmes embarqués, nécessitant
des traitements spécialisés (autoradios, téléphones portables, lecteur mp3, GPS, etc.).

Ces circuits intégrés sont également très prisés en robotique amateur et permettent de réaliser de
nombreuses applications, y compris des robots autonomes, les automatismes en modélisme
(maquettes de réseau ferroviaire).

 Comment les types de microcontrôleurs sont-ils classés?


Les microcontrôleurs sont caractérisés par la largeur du bus, le jeu d'instructions et la structure de
la mémoire. Pour une même famille, il peut y avoir différentes formes avec des sources différentes.
Cet article va décrire certains des types de base de microcontrôleur que les nouveaux utilisateurs
peuvent ne pas connaître.

Les types de microcontrôleur sont indiqués sur la figure, ils sont caractérisés par leurs bits,
l'architecture de la mémoire, la mémoire / les périphériques et le jeu d'instructions. Discutons-en
brièvement.

Types de microcontrôleurs

 Types de microcontrôleurs en fonction du nombre de bits


Les bits du microcontrôleur sont des microcontrôleurs 8 bits, 16 bits et 32 bits.

Dans un 8 bits microcontrôleur, le point où le bus interne est à 8 bits, alors l'ALU effectue les
opérations arithmétiques et logiques. Les exemples de microcontrôleurs 8 bits sont les familles
Intel 8031/8051, PIC1x et Motorola MC68HC11.

Le 16 bits le microcontrôleur offre une plus grande précision et des performances par rapport au 8
bits. Par exemple, les microcontrôleurs 8 bits ne peuvent utiliser que 8 bits, ce qui donne une plage
finale de 0 × 00 - 0xFF (0-255) pour chaque cycle. En revanche, les microcontrôleurs 16 bits avec
leur largeur de données en bits ont une plage de 0 × 0000 - 0xFFFF (0-65535) pour chaque cycle.

La valeur la plus extrême d’une minuterie plus longue peut s’avérer utile dans certaines
applications et certains circuits. Il peut fonctionner automatiquement sur deux nombres de 16 bits.
Quelques exemples de microcontrôleurs 16 bits sont les MCU 16 bits sont des familles étendues
8051XA, PIC2x, Intel 8096 et Motorola MC68HC12.

Le 32 bits Le microcontrôleur utilise les instructions 32 bits pour effectuer les opérations
arithmétiques et logiques. Ceux-ci sont utilisés dans les dispositifs à commande automatique, y
compris les dispositifs médicaux implantables, les systèmes de commande de moteur, les machines
de bureau, les appareils et d'autres types de systèmes embarqués. Quelques exemples sont la
famille Intel / Atmel 251, PIC3x.
 Types de microcontrôleurs selon les périphériques de
mémoire
Les périphériques de mémoire sont divisés en deux types, ils sont

 Microcontrôleur de mémoire intégré


 Microcontrôleur de mémoire externe

Microcontrôleur à mémoire intégrée : Lorsqu'un système embarqué possède une unité de


microcontrôleur qui possède tous les blocs fonctionnels disponibles sur une puce, on parle de
microcontrôleur embarqué. Par exemple, 8051 ayant une mémoire de programme et de données,
des ports E / S, une communication série, des compteurs et des minuteries et des interruptions sur
la puce est un microcontrôleur intégré.

Microcontrôleur de mémoire externe : Lorsqu'un système embarqué a une unité de


microcontrôleur qui n'a pas tous les blocs fonctionnels disponibles sur une puce, on parle de
microcontrôleur de mémoire externe. Par exemple, 8031 n'a pas de mémoire de programme sur la
puce est un microcontrôleur de mémoire externe.

 Types de microcontrôleurs selon le jeu d'instructions


CISC : CISC est un ordinateur à jeu d'instructions complexe. Il permet au programmeur d'utiliser
une instruction à la place de nombreuses instructions plus simples.

RISQUE : Le RISC signifie Reduced Instruction Set Computer, ce type de jeu d'instructions réduit
la conception du microprocesseur pour les normes de l'industrie. Il permet à chaque instruction
d'opérer sur n'importe quel registre ou d'utiliser n'importe quel mode d'adressage et d'accès
simultané au programme et aux données.

Exemple pour CISC et RISC

CISC :Mov AX, 4 RISQUE : Mov AX, 0


Mov BX, 2 Mov BX, 4
AJOUTER BX, AX Mov CX, 2
Commencer AJOUTER AXE, BX
Boucle Commencer

D'après l'exemple ci-dessus, les systèmes RISC raccourcissent le temps d'exécution en réduisant les
cycles d'horloge par instruction, et les systèmes CISC raccourcissent le temps d'exécution en
réduisant le nombre d'instructions par programme. Le RISC donne une meilleure exécution que le
CISC.

 Types de microcontrôleurs selon l'architecture de la


mémoire
L'architecture mémoire du microcontrôleur sont de deux types, à savoir:

 Microcontrôleur d'architecture de mémoire Harvard


 Microcontrôleur d'architecture de mémoire Princeton
Microcontrôleur Harvard Memory Architecture : Le point où une unité de microcontrôleur a un
espace d'adressage de mémoire différent pour le programme et la mémoire de données, le
microcontrôleur a une architecture de mémoire Harvard dans le processeur.

Microcontrôleur d'architecture de mémoire Princeton : Au moment où un microcontrôleur a


une adresse mémoire commune pour la mémoire programme et la mémoire de données, le
microcontrôleur a une architecture de mémoire Princeton dans le processeur.

 Types de microcontrôleurs
Il existe différents types de microcontrôleurs comme 8051, PIC, AVR, ARM,

 Microcontrôleur 8051
Il s'agit d'un microcontrôleur 40 broches avec Vcc de 5V connecté à la broche 40 et Vss à la broche
20 qui est maintenue à 0V. Et il y a des ports d'entrée et de sortie de P1.0 - P1.7 et qui ont une
fonction de drain ouvert. Port3 a des fonctionnalités supplémentaires. La broche 36 a la condition
de drain ouvert et la broche 17 a tiré un transistor vers le haut à l'intérieur du microcontrôleur.

Lorsque nous appliquons la logique 1 au port1, nous obtenons la logique 1 au port21 et vice versa.
La programmation du microcontrôleur est complètement compliquée. En gros, nous écrivons un
programme en langage C qui est ensuite converti en langage machine compris par le
microcontrôleur.

Une broche RESET est connectée à la broche 9, connectée avec un condensateur. Lorsque
l'interrupteur est sur ON, le condensateur commence à se charger et la RST est élevée.
L'application d'une valeur élevée à la broche de réinitialisation réinitialise le microcontrôleur. Si
nous appliquons un zéro logique à cette broche, le programme démarre l'exécution depuis le début.

Architecture mémoire de 8051

La mémoire du 8051 est divisée en deux parties. Ce sont la mémoire de programme et la mémoire
de données. La mémoire de programme stocke le programme en cours d'exécution tandis que la
mémoire de données stocke temporairement les données et les résultats. Le 8051 a été utilisé dans
un grand nombre d'appareils, principalement parce qu'il est facile à intégrer dans un appareil. Les
microcontrôleurs sont principalement utilisés dans la gestion de l'énergie, les écrans tactiles, les
automobiles et les appareils médicaux.

Mémoire programme de 8051

Et

Mémoire de données de 8051

Description des broches du microcontrôleur 8051


Broche 40: Vcc est la principale source d'alimentation de + 5V DC.

Broche 20: Vss - il représente la connexion à la terre (0 V).

Broches 32-39: Connu sous le nom de Port 0 (P0.0 à P0.7) pour servir de ports d'E / S.

Broche 31: L'activation du verrouillage d'adresse (ALE) est utilisée pour démultiplexer le signal
de données d'adresse du port 0.

Pin-30: (EA) L'entrée d'accès externe est utilisée pour activer ou désactiver l'interfaçage de la
mémoire externe. S'il n'y a pas besoin de mémoire externe, cette broche est toujours maintenue
haute.

Broche 29: Program Store Enable (PSEN) est utilisé pour lire les signaux de la mémoire de
programme externe.

Broches - 21-28: Connu sous le nom de Port 2 (P 2.0 à P 2.7) - en plus de servir de port d'E / S, les
signaux de bus d'adresse d'ordre supérieur sont multiplexés avec ce port quasi bidirectionnel.

Broches 18 et 19: Utilisé pour interfacer un cristal externe pour fournir une horloge système.

Broches 10 à 17: Ce port remplit également d'autres fonctions telles que les interruptions, l'entrée
de la minuterie, les signaux de commande pour la mémoire externe interfaçant la lecture et
l'écriture. Il s'agit d'un port quasi bidirectionnel avec pull-up interne.

Broche 9: Il s'agit d'une broche RESET, utilisée pour mettre les microcontrôleurs 8051 à leurs
valeurs initiales, pendant que le microcontrôleur fonctionne ou au démarrage initial de
l'application. La broche RESET doit être réglée haut pendant 2 cycles machine.

Broches 1 à 8: Ce port ne remplit aucune autre fonction. Le port 1 est un port d'E / S quasi
bidirectionnel.

 Microcontrôleur Renesas
Renesas est la dernière famille de microcontrôleurs automobiles qui offre des fonctionnalités
hautes performances avec une consommation d'énergie exceptionnellement faible sur une vaste
gamme d'articles. Ce microcontrôleur offre une sécurité fonctionnelle riche et des caractéristiques
de sécurité intégrées requises pour les applications automobiles nouvelles et avancées. La structure
de base du processeur du microcontrôleur prend en charge des exigences de haute fiabilité et de
hautes performances.

La forme complète du microcontrôleur RENESAS est «Renaissance Semiconductor for Advanced


Solutions». Ces microcontrôleurs offrent les meilleures performances aux microprocesseurs ainsi
qu'aux microcontrôleurs pour avoir de bonnes caractéristiques de performance ainsi qu'une très
faible consommation d'énergie ainsi qu'un emballage solide.

Ce microcontrôleur a une capacité de mémoire énorme ainsi qu'un brochage, ils sont donc utilisés
dans différentes applications de contrôle automobile. Les familles de microcontrôleurs les plus
populaires sont le RX ainsi que le RL78 en raison de leurs hautes performances. Les principales
caractéristiques de RENESAS RL78, ainsi que des microcontrôleurs de la famille RX, sont les
suivantes.
 L'architecture utilisée dans ce microcontrôleur est l'architecture CISC Harvard qui offre des
performances élevées.
 La famille de RL78 est accessible en microcontrôleurs 8 bits et 16 bits alors que la famille
RX est un microcontrôleur 32 bits.
 Le microcontrôleur de la famille RL78 est un microcontrôleur à faible consommation tandis
que la famille RX offre une efficacité et des performances élevées.
 Le microcontrôleur de la famille RL78 est disponible de 20 broches à 128 broches tandis
que la famille RX peut être obtenue dans un microcontrôleur à 48 broches dans un boîtier à
176 broches.
 Pour le microcontrôleur RL78, la mémoire flash varie de 16 Ko à 512 Ko alors que, pour la
famille RX, elle est de 2 Mo.
 La RAM du microcontrôleur de la famille RX va de 2 Ko à 128 Ko.
 Le microcontrôleur Renesas offre une faible puissance, des performances élevées, des
packages modestes et la plus grande gamme de tailles de mémoire combinés avec des
périphériques riches en caractéristiques.

Microcontrôleurs Renesas

 Renesas propose les familles de microcontrôleurs les plus polyvalentes au monde.Par


exemple, notre famille RX propose de nombreux types d'appareils avec des variantes de
mémoire allant de 32K flash / 4K RAM à un incroyable 8M flash / 512K RAM.
 La famille RX de microcontrôleurs 32 bits est un microcontrôleur polyvalent riche en
fonctionnalités couvrant une large gamme d'applications de contrôle embarquées avec une
connectivité haut débit, un traitement de signal numérique et un contrôle d'onduleur.
 La famille de microcontrôleurs RX utilise une architecture Harvard CISC 32 bits améliorée
pour obtenir des performances très élevées.

Description des broches

La disposition des broches du microcontrôleur Renesas est illustrée sur la figure:

Schéma des broches des microcontrôleurs Renesas

C'est un microcontrôleur à 20 broches. La broche 9 est Vss, broche de masse et Vdd, broche
d'alimentation. Il a trois types d'interruption différents, qui sont l'interruption normale,
l'interruption rapide, l'interruption à grande vitesse.

Les interruptions normales stockent les registres significatifs sur la pile à l'aide d'instructions push
et pop. Les interruptions rapides sont automatiquement stockées le compteur de programme et le
mot d'état du processeur dans des registres de sauvegarde spéciaux, le temps de réponse est donc
plus rapide. Et les interruptions à grande vitesse allouent jusqu'à quatre des registres généraux pour
une utilisation dédiée par l'interruption pour augmenter encore la vitesse.

La structure du bus interne offre 5 bus internes pour garantir que le traitement des données n'est pas
ralenti. Les extractions d'instructions se produisent via un large bus de 64 bits, de sorte qu'en raison
des instructions de longueur variable utilisées dans les architectures CISC.

Caractéristiques et avantages des microcontrôleurs RX

 La faible consommation d'énergie est réalisée à l'aide de la technologie multicœur


 Prise en charge du fonctionnement 5V pour les conceptions industrielles et d'appareils
 Évolutivité de 48 à 145 broches et de 32 Ko à 1 Mo de mémoire flash, avec 8 Ko de
mémoire flash de données inclus
 Fonction de sécurité intégrée
 Un ensemble de fonctions riches intégrées de 7 UART, I2C, 8 SPI, comparateurs, ADC 12
bits, DAC 10 bits et ADC 24 bits (RX21A), qui réduira le coût du système en intégrant la
plupart des fonctions

Application du microcontrôleur Renesas

 L'automatisation industrielle
 Applications de communication
 Applications de contrôle de moteur
 Test et mesure
 Applications médicales

 AVR Microcontrollers
Le microcontrôleur AVR est développé par Alf-Egil Bogen et Vegard Wollan d'Atmel
Corporation. Les microcontrôleurs AVR sont une architecture Harvard RISC modifiée avec des
mémoires séparées pour les données et le programme et la vitesse de l'AVR est élevée par rapport à
8051 et PIC. L'AVR signifie À lf-Egil Bogen et V egard Wollan's R Processeur ISC.

Microcontrôleur Atmel AVR

Différence entre les contrôleurs 8051 et AVR

 Les 8051 sont des contrôleurs 8 bits basés sur l'architecture CISC, les AVR sont des
contrôleurs 8 bits basés sur l'architecture RISC
 8051 consomme plus d'énergie qu'un microcontrôleur AVR
 En 8051, nous pouvons programmer facilement que le microcontrôleur AVR
 La vitesse de l'AVR est supérieure à celle du microcontrôleur 8051

Classification des contrôleurs AVR

Les microcontrôleurs AVR sont classés en trois types:

 TinyAVR - Moins de mémoire, petite taille, convient uniquement aux applications plus
simples
 MegaAVR - Ce sont les plus populaires ayant une bonne quantité de mémoire (jusqu'à 256
Ko), le plus grand nombre de périphériques intégrés et adaptés aux applications modérées à
complexes
 XmegaAVR - Utilisé commercialement pour les applications complexes, qui nécessitent
une grande mémoire programme et une vitesse élevée

Caractéristiques du microcontrôleur AVR

 16 Ko de flash programmable intégré au système


 512B d'EEPROM programmable dans le système
 Minuterie 16 bits avec fonctionnalités supplémentaires
 Plusieurs oscillateurs internes
 Mémoire flash d'instruction interne et auto-programmable jusqu'à 256K
 Programmable dans le système à l'aide de méthodes ISP, JTAG ou haute tension
 Section de code de démarrage en option avec bits de verrouillage indépendants pour la
protection
 Périphériques série synchrones / asynchrones (UART / USART)
 Bus d'interface périphérique série (SPI)
 Interface série universelle (USI) pour le transfert de données synchrone à deux / trois fils
 Horloge de surveillance (WDT)
 Plusieurs modes de veille à économie d'énergie
 Convertisseurs A / N 10 bits, avec un multiplex jusqu'à 16 canaux
 Prise en charge des contrôleurs CAN et USB
 Appareils basse tension fonctionnant jusqu'à 1,8 V

Il existe de nombreux microcontrôleurs de la famille AVR, tels que ATmega8, ATmega16, etc.
Dans cet article, nous discutons du microcontrôleur ATmega328. L'ATmega328 et l'ATmega8 sont
des circuits intégrés compatibles avec les broches, mais fonctionnellement ils sont différents.
L'ATmega328 a une mémoire flash de 32 Ko, alors que l'ATmega8 a 8 Ko. D'autres différences
sont la SRAM et l'EEPROM supplémentaires, l'ajout d'interruptions de changement de broche et
les minuteries. Certaines des fonctionnalités d'ATmega328 sont:

Caractéristiques de ATmega328

 28-pin AVR microcontroller


 Mémoire programme flash de 32 ko
 Mémoire de données EEPROM de 1 ko
 Mémoire de données SRAM de 2 ko
 Les broches d'E / S sont 23
 Deux minuteries 8 bits
 Convertisseur A / N
 PWM à six canaux
 USART intégré
 Oscillateur externe: jusqu'à 20 MHz

Description de la broche de ATmega328

Il est livré en DIP 28 broches, illustré dans la figure ci-dessous:

Schéma des broches des microcontrôleurs AVR

Vcc: Tension d'alimentation numérique.

GND: Sol.

Port B: Le port B est un port d'E / S bidirectionnel 8 bits. Les broches du port B sont tri-déclarées
lorsqu'une condition de réinitialisation devient active ou une, même si l'horloge ne fonctionne pas.

Port C: Le port C est un port d'E / S bidirectionnel 7 bits avec des résistances de rappel internes.

PC6 / RÉINITIALISER
Port D: Il s'agit d'un port d'E / S bidirectionnel 8 bits avec résistances de rappel internes. Les
tampons de sortie du port D se composent de caractéristiques d'entraînement symétriques.

AVcc: AVcc est la broche de tension d'alimentation pour l'ADC.

AREF: AREF est la broche de référence analogique pour l'ADC.

Applications du microcontrôleur AVR


Il existe de nombreuses applications des microcontrôleurs AVR, ils sont utilisés dans la domotique,
les écrans tactiles, les automobiles, les appareils médicaux et la défense.

 Microcontrôleur PIC
PIC est un contrôleur d’interface périphérique, développé par la microélectronique de l’instrument
général, en 1993. Il est contrôlé par le logiciel. Ils pourraient être programmés pour accomplir de
nombreuses tâches et contrôler une ligne de génération et bien d'autres. Les microcontrôleurs PIC
trouvent leur place dans de nouvelles applications telles que les smartphones, les accessoires audio,
les périphériques de jeux vidéo et les appareils médicaux avancés.

Il existe de nombreux PIC, commencés par PIC16F84 et PIC16C84. Mais c'étaient les seuls PIC
flash abordables. Microchip a récemment introduit des puces flash avec des types beaucoup plus
attrayants, tels que 16F628, 16F877 et 18F452. Le 16F877 est environ deux fois le prix de l'ancien
16F84 mais a huit fois la taille du code, beaucoup plus de RAM, beaucoup plus de broches d'E / S,
un UART, un convertisseur A / N et bien plus encore.

Microcontrôleur PIC

Caractéristiques du PIC16F877

Les caractéristiques de pic16f877 sont les suivantes.

 Processeur RISC hautes performances


 Jusqu'à 8K x 14 mots de mémoire de programme FLASH
 35 Instructions (codage à longueur fixe 14 bits)
 Mémoire de données RAM statique 368 × 8
 Jusqu'à 256 x 8 octets de mémoire de données EEPROM
 Capacité d'interruption (jusqu'à 14 sources)
 Trois modes d'adressage (direct, indirect, relatif)
 Réinitialisation à la mise sous tension (POR)
 Mémoire d'architecture de Harvard
 Mode veille d'économie d'énergie
 Large plage de tension de fonctionnement: 2,0 V à 5,5 V
 Courant élevé / source: 25mA
 Machine à base d'accumulateur

Caractéristiques périphériques

3 minuteries / compteurs (pré-scalaires programmables)

 Timer0, Timer2 est une minuterie / compteur 8 bits avec pré-scalaire 8 bits
 Timer1 est de 16 bits, peut être incrémenté pendant le sommeil via un cristal / une horloge
externe

Deux modules PWM de capture, de comparaison

 La fonction de capture d'entrée enregistre le compte Timer1 sur une transition de broche
 Une sortie de fonction PWM est une onde carrée avec une période et un cycle de service
programmables.

Convertisseur analogique-numérique 10 bits 8 canaux

USART avec détection d'adresse 9 bits

Port série synchrone avec mode maître et maître / esclave I2C

Le port esclave parallèle 8 bits

Fonctions analogiques

 Convertisseur analogique-numérique (A / N) 10 bits, jusqu'à 8 canaux


 Réinitialisation des baisses de tension (BOR)
 Module de comparaison analogique (le multiplexage d'entrée programmable à partir des
entrées de l'appareil et des sorties du comparateur est accessible de l'extérieur)

Description des broches du PIC16F877A

La description des broches du PIC16F877A est présentée ci-dessous.

Avantages de PIC

 C'est une conception RISC


 Son code est extrêmement efficace, permettant au PIC de fonctionner avec généralement
moins de mémoire programme que ses plus grands concurrents
 C'est une vitesse d'horloge élevée et économique

Un circuit d'application typique de PIC16F877A

Le circuit ci-dessous est constitué d'une lampe dont la commutation est contrôlée à l'aide d'un
microcontrôleur PIC. Le microcontrôleur est interfacé avec un cristal externe qui fournit une entrée
d'horloge.

Application des microcontrôleurs PIC16F877A

Le PIC est également interfacé avec un bouton poussoir et en appuyant sur le bouton poussoir, le
microcontrôleur envoie en conséquence un signal haut à la base du transistor, de manière à allumer
le transistor et ainsi donner une bonne connexion au relais pour l'allumer et permettre le passage du
courant alternatif vers la lampe et ainsi la lampe brille. L'état de l'opération est affiché sur l'écran
LCD interfacé avec le microcontrôleur PIC.
 Microcontrôleur MSP
Un microcontrôleur comme MSP430 est un microcontrôleur 16 bits. Le terme MSP est l'acronyme
de «Mixed Signal Processor». Cette famille de microcontrôleurs provient de Texas Instruments et
est conçue pour les systèmes à faible coût et à faible dissipation de puissance. Ce contrôleur
comprend un bus de données 16 bits, modes d'adressage-7 avec jeu d'instructions réduit, ce qui
permet un code de programmation plus dense et plus court utilisé pour des performances rapides.

Ce microcontrôleur est un type de circuit intégré, utilisé pour exécuter les programmes pour
contrôler d'autres machines ou appareils. C'est une sorte de micro-appareil, utilisé pour contrôler
d'autres machines. Les caractéristiques de ce microcontrôleur peuvent normalement être obtenues
avec d'autres types de microcontrôleur.

 SoC complet comme ADC, LCD, ports d'E / S, RAM, ROM, UART, minuterie de
surveillance, minuterie de base, etc.
 Il utilise un cristal externe et un oscillateur FLL (boucle à verrouillage de fréquence) dérive
principalement tous les CLK internes
 L'utilisation de l'énergie est faible comme 4,2 nW uniquement pour chaque instruction
 Générateur stable pour les constantes les plus fréquemment utilisées telles que -1, 0, 1, 2, 4,
8
 La vitesse élevée typique est de 300 ns pour chaque instruction, comme le CLK 3,3 MHz
 Les modes d'adressage sont 11 où les sept modes d'adressage sont utilisés pour les
opérandes source et quatre modes d'adressage sont utilisés pour l'opérande de destination.
 Architecture RISC avec 27 instructions de base

La capacité en temps réel est pleine, stable et la fréquence nominale CLK du système ne peut être
obtenue après 6 horloges qu'une fois que le MSP430 est rétabli à partir du mode basse
consommation. Pour le cristal principal, pas d'attente pour démarrer la stabilisation et l'oscillation.

Les instructions de base ont été combinées à l'aide de fonctionnalités spéciales pour rendre le
programme facile dans le microcontrôleur MSP430 en utilisant l'assembleur autrement en C pour
fournir des fonctionnalités exceptionnelles ainsi qu'une flexibilité. Par exemple, même en utilisant
un faible nombre d'instructions, le microcontrôleur est capable de suivre approximativement
l'ensemble du jeu d'instructions.

 Microcontrôleur Hitachi
Le microcontrôleur Hitachi appartient à la famille H8. Un nom comme H8 est utilisé dans une
grande famille de microcontrôleurs 8 bits, 16 bits et 32 bits. Ces microcontrôleurs ont été
développés grâce à la technologie Renesas. Cette technologie a été fondée dans les semi-
conducteurs Hitachi, en 1990.

 Microcontrôleur Motorola
Le microcontrôleur Motorola est un microcontrôleur extrêmement intégré, utilisé pour les
processus de traitement de données à haute performance. L'unité de ce microcontrôleur utilise un
SIM (System Integration Module), TPU (Time Processing Unit) et QSM (Queued Serial Module).
 Avantages des types de microcontrôleurs
Les avantages des types de microcontrôleurs sont les suivants.

 Sûr
 Réutilisable
 A faible consommation
 Rentable
 Réutilisable
 Il nécessite moins de temps pour fonctionner
 Ceux-ci sont flexibles et très petits
 En raison de leur intégration élevée, sa taille et son coût du système peuvent être réduits.
 L'interfaçage du microcontrôleur est facile avec des ports ROM, RAM et E / S
supplémentaires.
 De nombreuses tâches peuvent être effectuées, de sorte que l'effet humain peut être réduit.
 Il est simple à utiliser, le dépannage et la maintenance du système sont simples.
 Il fonctionne comme un micro-ordinateur sans aucune pièce numérique

 Inconvénients des types de microcontrôleurs


Les inconvénients des types de microcontrôleurs sont les suivants.

 Complexité de la programmation
 Sensibilité électrostatique
 L'interfaçage avec des appareils haute puissance n'est pas possible.
 Sa structure est plus complexe par rapport aux microprocesseurs.
 Généralement, il est utilisé dans les microdispositifs
 Il exécute simplement un non incomplet. d’exécutions simultanées.
 Il est généralement utilisé dans les micro-équipements
 Il a une structure plus complexe par rapport à un microprocesseur
 Le microcontrôleur ne peut pas interfacer directement un appareil plus puissant
 Il n'a effectué qu'un nombre limité d'exécutions simultanément

 Applications des types de microcontrôleurs


Les microcontrôleurs sont principalement utilisés pour les appareils embarqués, contrairement aux
microprocesseurs qui sont utilisés dans les ordinateurs personnels ou d'autres appareils. Ceux-ci
sont principalement utilisés dans différents appareils tels que les dispositifs médicaux implantables,
les outils électriques, les systèmes de commande de moteur dans les automobiles, les machines
utilisées dans les bureaux, les appareils contrôlés à distance, les jouets, etc. Les principales
applications des types de microcontrôleurs sont les suivantes.

 Automobiles
 Systèmes de comptage portatifs
 Téléphones portables
 Systèmes informatiques
 Alarmes de sécurité
 appareils électroménagers
 Compteur actuel
 Appareils photo
 Micro four
 Instruments de mesure
 Dispositifs de contrôle de processus
 Utilisé dans les appareils de mesure et de mesure, voltmètre, mesure d'objets rotatifs
 Contrôle des appareils
 Appareils d'instrumentation industriels
 Appareils d'instrumentation dans les industries
 Détection de la lumière
 Dispositifs de sécurité
 Dispositifs de contrôle de processus
 Contrôle des appareils
 Détection d'incendie
 Détection de température
 Téléphones portables
 Auto Mobiles
 Machines à laver
 Appareils photo
 Alarmes de sécurité

Ainsi, il s'agit de un aperçu des types de microcontrôleurs . Ces microcontrôleurs sont des micro-
ordinateurs monopuce et la technologie utilisée pour sa fabrication est VLSI. Ceux-ci sont
également connus sous le nom de contrôleurs intégrés, disponibles en 4 bits, 8 bits, 64 bits et 128
bits. Cette puce est conçue pour contrôler différentes fonctions du système embarqué. Voici une
question pour vous, quelle est la différence entre un microprocesseur et un microcontrôleur?

 Programmation
Le langage C est le langage de prédilection (avec l'assembleur) du développement sur
microcontrôleurs. Une fois le programme compilé, le fichier binaire doit être envoyé au
microcontrôleur. On utilise soit :

 un programmateur de microcontrôleurs et souvent également d'EEPROM, on parle alors de


programmateur universel.
 un programmateur ISP qui a l'avantage de ne pas nécessiter de sortir le microcontôleur du
système électronique complet.

On peut alors utiliser le système. Toutefois, le programme qui a été envoyé peut comporter des
bogues, aussi, pour parvenir à les détecter on utilisera par exemple un émulateur in-circuit.

Qu'est-ce qu'un microcontrôleur?


Ce composant permet d'automatiser à faible coût, avec un encombrement réduit et une
faible consommation électrique des objets techniques.
Exemple: une machine à laver, un lave linge, une cafetière, un thermostat électronique, un
thermomètre électronique, un téléphone portable, ....
Un microcontrôleur est un circuit intégré numérique qui contient :
un programme.
 un microprocesseur (qui exécute les instructions du programme).
De la mémoire RAM (volatile lorsqu'on éteint l'alimentation électrique du circuit).
De la mémoire EEPROM (non volatile lors qu'on éteint l'alimentation du circuit).
 On peut écrire ou effacer électriquement l'EEPROM).
 Des ports que l'on peut configurer en entrées ou sorties numériques (0 ou 1 logique = 0V; 5V
en général), en entrée analogique, ...
 Les entrées permettent de lire des informations en provenance, par exemple, de
capteurs (bouton poussoir, LDR, capteur de température, ...)
 Les sorties peuvent commander, par exemple, des actionneurs (moteurs,...) ou
d'autres composants électroniques (LED,...).
 D'autres fonctions comme des timers (pour gérer le temps).
 Des interfaces séries (synchrone ou asynchrone) pour le dialogue avec d'autres
composants ou l'ordinateur depuis lequel on va développer et transférer le programme.
Le microcontrôleur est numérique ce qui signifie qu'il ne comprend que des 0 et des 1.
Par conséquent, il devra convertir les tensions présentes sur ses entrées analogiques en
valeurs numériques.
Il réalise cette opération grâce à un convertisseur analogique numérique intégré (CAN ou adc).
L'avantage de cette logique micro programmée, par rapport à la logique câblée, est qu'on peut
améliorer le fonctionnement d'un objet en modifiant le programme avec la même carte
électronique. Exemple: sur les "box" internet on met à jour régulièrement le firmware

 Microcontrôleur PIC 16F877


Dans la suite du chapitre, on va prendre comme exemple le PIC 16F877 et présenter sa
structure interne et externe. Les éléments essentiels du PIC 16F877 sont :

 Structure interne
Caractéristiques de la CPU
- CPU à architecture RISC (8 bits)
- Mémoire programme de 8 Kmots de 14 bits (Flash),
- Mémoire donnée de 368 Octets,
- EEPROM donnée de 256 Octets,
- 14 sources interruptions
- Générateur d'horloge de type RC ou quartz (jusqu‟ à 20 MHz)
- 05 ports d'entrée sortie
- Fonctionnement en mode sleep pour réduction de la consommation,
- Programmation par mode ICSP (In Circuit Serial Programming) 12V ou 5V,
- Possibilité aux applications utilisateur d’accéder à la mémoire programme
Caractéristiques des périphériques
- Timer0 : Timer/Compteur 8 bitsavec un prédiviseur 8 bits
- Timer1 : Timer/Compteur 16 bits avec un prédivision de 1, 2, 4, ou 8 ; il peut être
incrémenté en mode veille (Sleep), via une horloge externe,
- Timer2 : Timer 8 bits avec deux diviseurs (pré et post diviseur)
- Deux modules « Capture, Compare et PWM » :
Module capture 16 bits avec une résolution max. 12,5 ns,
Module Compare 16 bits avec une résolution max. 200 ns,
Module PWM avec une résolution max. 10 bits,
- Convertisseur Analogiques numériques multi-canal (8 voies) avec une conversion
sur 10 bits,
Synchronous Serial Port (SSP) SSP, Port série synchrone en mode I2C (mode
maitre/escalve),
- Universel Synchronous Asynchronous Receiver Transmitter (USART) : Port série
universel, mode asynchrone (RS232) et mode synchrone
Structure externe
Le PIC16F877 est un circuit intégré de 40 broches :

Fig: Brochage du PIC 16F877


Certaines pattes ont plusieurs fonctions :On dit que les fonctions sont multiplexée

 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.

Cadencement du PIC
Le PIC 16F877A peut fonctionner en 4 modes d’oscillateur.
 LP : Low Power crystal : quartz à faible puissance.
 XT : Crystal/Resonator : quartz/résonateur en céramique.
 HS : High Speed crystal/resonator : quartz à haute fréquence/résonateur en céramique
HF.
 RC : Circuit RC (oscillateur externe).
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

Circuit Reset MCLR


La broche MCLR (Master Clear) a pour effet de provoquer la réinitialisation du
microprocesseur lorsqu’elle est connectée à 0.
Lorsque le signal de “RESET” est activé, tous les registres sont initialisé et le compteur
programme se place à une adresse spécifique appelée “Vecteur de RESET”.

3.2.2 Ports d’entrées/sortie


Le PIC 16F877 dispose de 5 ports :
 Port A : 6 pins I/O numérotées de RA0 à RA5.
 Port B : 8 pins I/O numérotées de RB0 à RB7.
 Port C : 8 pins I/O numérotées de RC0 à RC7.
 Port D : 8 pins I/O numérotées de RD0 à RD7.
 Port E : 3 pins I/O numérotées de RE0 à RE2.
A chaque port correspondent deux registres :
 Un registre direction pour programmer les lignes soit en entrée, soit en sortie
TRISA,TRISB, TRISC, TRISD et TRISE.
 Un registre de données pour lire ou modifier l’état des broches. PORTA,
PORTB, PORTC, PORTD et PORTE
Pour déterminer les modes des ports (I/O), il faut sélectionner leurs registres TRISX:
 Le positionnement d’un bit à « 1 » place le pin en entrée.
 Le positionnement de ce bit à « 0 » place le pin en 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.

Fig. 2.5 : Circuit RESET et oscillateur d'un PIC


16F877
 Port A
Les broches port A, excepté RA4, sont multiplexées, avec les entrées du convertisseur
analogique numérique (AN0 .. AN4) .
La broche RA4 est multiplexé avec l’entrée d’horloge externe du timer0 (RA4/T0CKI).
 Port B

Le port B peut être programmé pour un tirage à 5V (pull up) de toutes ses lignes que l'on
peut mettre ou non en service en mode entrée uniquement. Elles sont automatiquement
désactivées quand le port est configuré en sortie.
En mode entrée, chaque broche du PORTB doit être maintenue à un niveau haut par
l'intermédiaire de résistances de 10 k pour ne pas déclencher d'interruptions imprévues.
Cette possibilité d'interruption sur un changement d'état associé à la fonction de tirage
configurable sur ces 4 broches, permet l'interfaçage facile avec un clavier. Cela rend
possible le réveil du PIC en mode SLEEP par un appui sur une touche du clavier.
 Port C
Le port C est partagé avec liaisons, les timers 1 et 2 et les modules CCP.
 Port D et E
En plus de leur utilisation comme PORTS E/S; les ports D et E, permettent au
microcontrôleur de travailler en mode PSP (Parallel Slave Port) c’est-à-dire, qu’il peut
être interfacé avec un autre microprocesseur. Dans ce cas le PORTD représente le bus de
données et le PORTE les signaux de contrôle(RD\, WR\ et CS\).
Le PORTE peut être aussi, configuré en mode analogique pour former avec le PORTA
les 8 entrées du convertisseur analogique numérique. Par défaut, le PORTE est configuré
comme port analogique, et donc, comme pour le PORTA,

 Chien de garde
Un chien de garde est un circuit électronique ou un logiciel utilisé en électronique
numérique pour s'assurer qu'un automate ou un ordinateur ne reste pas bloqué à une
étape particulière du traitement qu'il effectue. C'est une protection destinée
généralement à redémarrer le système, si une action définie n'est pas exécutée dans un
délai imparti ;
Dans le PIC, il s’agit un compteur 8 bits incrémenté en permanence (même si le μC est
en mode sleep) par une horloge RC intégrée indépendante de l'horloge système.
Lorsqu’il déborde, deux situations sont possibles :
- Si le μC est en fonctionnement normal, le WDT time-out provoque un RESET.
Ceci permet d’éviter de rester planté en cas de blocage du microcontrôleur par un
processus indésirable non contrôlé
- Si le μC est en mode SLEEP, le WDT time-out provoque un WAKE-UP,
l'exécution du programme continue normalement là où elle s'est arrêtée avant
de rentrer en mode SLEEP. Cette situation est souvent exploitée pour réaliser
des temporisations

 Conclusion
La plus grande partie des systèmes électroniques complexes utilisés de nos jours sont des

systèmes embarqués : téléphones mobiles, horloges, baladeurs, récepteurs GPS,

électroménager, automobile, transport aérien/maritime/fluvial. Les systèmes embarqués se

démarquent des systèmes informatiques traditionnels selon plusieurs aspects :

 Ils sont soumis à des contraintes de taille (intégration), de consommation électrique

(autonomie) et de coût importantes (grande série) ;

 Ils sont en général dédiés à une tâche bien précise. La taille des programmes et la quantité

de mémoire (vive et morte), dont ils disposent, sont modestes (face à un micro-ordinateur) ;

 Ils doivent communiquer avec des dispositifs d'entrées-sorties (IO) : boutons, relais,

résistances variables, optocoupleurs, moteurs électriques, LED, circuits intégrés logiques,

etc. ;

 Ils n'ont parfois aucun dispositif d'interface homme-machine (IHM) : ni clavier, ni écran, ni

disque, ni imprimante, etc. Par exemple, le contrôleur d'injection de carburant du moteur

d'une automobile est totalement invisible pour le conducteur.


Références
[1]. PIC16F8X, document DS3040C, www.microchip.com

[2]: https://fr.wikipedia.org/wiki/Architecture_Harvard#Autres_architectures

[3]. PIC16F84a, document DS35007A, www.microchip.com

[4]. Programmation des PIC, Première partie-PIC16F84-Révision 5, par


BIGONOFF.

[5] : C. Tavernier, application des microcontrôleurs pic10 aux pic18. Dunod,


Paris, 2005.

[6] : Adjiba Brahim et Chalghoum Abdelmonaim, "Commande des


équipements électriques par microcontrôleurs",Mémoire de Fin d'Étude de
Master, Université Echahid Hamma Lakhdar d’ElOued ,algérie,juin 2015.

[7] : pris en main de MPLNAB 6.40 , formation sur les micro contrôleurs PIC,
Lycée Philippe de Girard, France, 10 janv. 2004

[8] : Eric Magarotto , " Transmission & Acquisition de Données" , support de


cour, Laboratoire d'Automatique & de Procédés (LAP-ISMRA) , 2003.

Vous aimerez peut-être aussi