Vous êtes sur la page 1sur 65

Ecole Supérieure de Gestion d’Informatique et

des Sciences(ESGIS)
*******

Cours: Microcontrôleur

Prof: Justin AKORO


Evaluation

Projet à rendre

Note de participation au cours et aux TD


 Prérequis

 Les différentes bases de numérotation (binaire, octal, décimal, hexadécimal)

 Conversions et opérations sur les nombres binaires

 Notions d'électronique numérique (fonctions logiques combinatoires et séquentielles)

 Electronique générale et électricité


 Généralités

« L'informatique industrielle
est une branche de
l'informatique appliquée qui
couvre l'ensemble des
techniques de conception et de
programmation, de systèmes
informatisés à vocation
industrielle, qui ne sont pas
des ordinateurs. » (Source :
Wikipédia)
L'informatique industrielle

Applications :

Automates, robotique,

Mesures de grandeurs physiques,

Systèmes temps-réel,

Systèmes embarqués.

Source : Ascom S.A.


Les différents systèmes programmables

Les circuits spécialisés ou ASIC (Application Specific Integrated Circuit) :

Les circuits ASIC sont des circuits spécialisés dès leur conception pour une application
donnée.

Exemples : DSP (Digital Signal Processing), co-processeur arithmétique, ,,,,

Source : Texas Instruments

Avantages : Inconvénients :

Très rapide ●
Faible modularité

Consommation moindre ●
Possibilité d'évolution limitée

Optimisé pour une application ●
Coût
Les différents systèmes programmables
• Les systèmes en logique programmée et/ou en logique programmable sont connus sous la
désignation de PLD (programmable logic device, circuit logique programmable)


FPGA (field-programmable gate array, réseau de portes programmables in-situ),

PAL (programmable array logic, réseau logique programmable),

...

Source : Altera Source : Altera

« Un circuit logique programmable, ou réseau logique programmable, est un circuit intégré logique
qui peut être reprogrammé après sa fabrication. Il est composé de nombreuses cellules logiques
élémentaires pouvant être librement assemblées.» (Wikipédia)

Avantages : Inconvénients :

Forte modularité ●
Mise en oeuvre plus complexe

Rapidité ●
Coûts de développement élevés
Les processeurs

Deux types de processeurs


CISC : Complex Instruction Set Computer

Grand nombre d'instructions,


Type de processeur le plus répandu


RISC : Reduced Instruction Set Computer

Nombre d'instructions réduit


(sélection des instructions pour une exécution plus rapide)
Décodage des instructions plus rapide
Évolution des processeurs

Intel Pentium 4 Northwood C (2002)


42 millions de transistors, gravés en 0,13 µm
a rchitecture interne 32 bits
fréquence d’horloge 2,4/3,4 Ghz
(bus processeur : 200Mhz)
Source : Intel

Source : Intel

Intel 8086 (1978)


39 000 transistors, gravés en 3µm
architecture interne 16
bits bus 16 bits
fréquence d'horloge 4,77/10 Mhz
Évolution des processeurs

• Intel Core i7 Ivy


bridge (sept. 2013)
• 1,4 Milliards de transistors, gravés en

22nm
• architecture interne 64
bits 4/12 coeurs
• fréquence d'horloge 4,0
Ghz
• Fréquence de bus: 0,2 GHz
Intel Pentium 4 Northwood C (2002)
42 millions de transistors, gravés en 0,13 µm
a rchitecture interne 32 bits
fréquence d’horloge 2,4/3,4 Ghz
Fréquence de bus: 0,2 GHz
 La logique câblée:

• VRAI, FAUX 
• NON , OUI 
• ET (AND),
• NON-ET (NAND),
• OU (OR),

STI2D Sin
 La logique câblée:

Deux familles:

• microprocesseur

• microcontrôleur.
 Cablée Vs Programmée

La logique programmée offre un énorme avenage sur la logique câblée:

on change le fonctionnement d’un système par simple modification du


programme.
 Ensemble microprocesseur et périphériques
 Avec un microcontrôleur tout est intégré
SOURCE EN LANGAGE HAUT NIVEAU
TYPE C, C++, JAVA ETC ...

LANGAGE DE BAS
COMPILATION NIVEAU
ASSEMBLEUR

PROGRAMME.c

CODAGE EN
LANGAGE MACHINE

LIBRAIRIE DE PROGRAMMATION

TELECHARGEMENT

LIBRAIRIE.h
Microcontrôleur
 Contrôleur
 un contrôleur est un dispositif qui - placé au cœur d’un processus -
surveille l’évolution d’un événement et compare son état (ou sa valeur) à
une donnée prédéterminée, pour intervenir dès que les limites préfixées
sont atteintes.

 Son travail consiste à surveiller (lire) la valeur d’une situation, et à la


comparer en permanence à une valeur fixée d’avance.
 Microcontrôleur

Les plus souples de tous les contrôleurs sont évidemment les contrôleurs
faisant appel à l’électronique, et plus particulièrement les microcontrôleurs

Selon un arrêté français du 14 septembre 1990 relatif à la terminologie des


composants électroniques « Circuit intégré comprenant essentiellement un
microprocesseur, ses mémoires, et des éléments personnalisés selon
l'application »

19
 Microcontrôleur
 Circuit intégré
 Architecture du microcontrôleur

 Mise en situation
 Architecture du microcontrôleur

Un objet technique, intégrant de l ’électronique, fait souvent apparaître des fonctions


ayant pour rôle le traitement d ’informations : opérations arithmétiques (addition,
multiplication...) ou logiques ( ET, OU...) entre plusieurs signaux d’entrée permettant
de générer des signaux de sortie.

Ces fonctions peuvent être réalisées par des circuits intégrés analogiques ou logiques.
Mais, lorsque l ’objet technique devient complexe, et qu’il est alors nécessaire de réaliser
un ensemble important de traitements d ’informations, il devient plus simple de faire
appel à une structure à base de microcontrôleur.
 Architecture du microcontrôleur

 Structure interne
Un microcontrôleur se présente sous la forme d’un circuit intégré réunissant tous les éléments
d’une structure à base de microprocesseur.
Voici généralement ce que l’on trouve à l’intérieur d’un tel composant :

 Un microprocesseur (C.P.U.),
 De la mémoire de donnée (RAM et EEPROM),
 De la mémoire programme (ROM),
 Des interfaces parallèles pour la connexion des entrées / sorties,
 Des interfaces séries (synchrone ou asynchrone) pour le dialogue avec d’autres
unités,
 Des timers pour générer ou mesurer des signaux avec une grande précision
temporelle,
 Des convertisseurs analogique / numérique pour le traitement de signaux
analogiques.
 Structure interne
• Architecture de “Von Neumann”
Le schéma fonctionnel précédent représente une architecture de “Von Neumann” (Commune
à la plupart des microprocesseurs) où la mémoire programme partage le même bus que la
mémoire de donnée.

L’architecture de “Harvard”, qui dispose de bus distincts pour les données et pour le
programme, est plus rarement utilisée.
• C.P.U. (MICROPROCESSEUR).

Un microprocesseur exécute séquentiellement les instructions stockées dans la mémoire


programme. Il est capable d’opérer sur des mots binaires dont la taille, en bits, est celle du
bus des données .

Il est généralement constitué des éléments suivants :


 Un ou plusieurs registres accumulateurs contenant temporairement les
opérandes ainsi que les résultats des opérations,

 Des registres auxiliaires permettant de relayer les accumulateurs,

 Des registres d’index pour le mode d’adressage indirect,

 Un compteur programme pointant l’adresse de la prochaine instruction à


exécuter, sa taille est celle du bus des adresses,

 Une unité arithmétique et logique (ALU) permettant d’effectuer des opérations


entre l’accumulateur et une opérande,
 Un registre code condition indiquant certaines particularités en ce qui
concerne le résultat de la dernière opération (retenu, zéro, interruption...).

On peut noter qu’il existe 2 catégories de microprocesseur : les CISC et les RISC.

 CISC (Complex Instruction Set Computer) : Ce microprocesseur possède un


nombre important d’instructions. Chacune d’elles s ’exécute en plusieurs périodes
d’horloges.

 RISC (Reduced Instruction Set Computer) : Ce microprocesseur possède un


nombre réduit d’instructions. Chacune d’elles s’exécute en une période
d’horloge.
 Mémoires programmes
Ce dispositif contient les instructions du programme que doit exécuter le microprocesseur. Ce
type de mémoire (appelée mémoire morte), est uniquement accessible en lecture.

Il en existe différents types selon leur mode de programmation :

 Les ROM (Read Only Memory) dont le contenu est défini lors de la fabrication.

 Les PROM (Programmable Read Only Memory) sont programmables par l'utilisateur,
mais une seule fois.

 Les EPROM (Erasable Programmable Read Only Memory) sont programmables par
l'utilisateur. Effaçables par une machine spéciale, la mémoire doit donc être facilement
ôtable de son support.

 Les EEPROM (Electrically Erasable Programmable Read Only Memory) sont


programmables par l'utilisateur. Elles sont effaçables électriquement.
 Mémoires de données

Ce dispositif permet de mémoriser temporairement les données générées par le


microprocesseur pendant les différentes phases du traitement numérique (résultats
d’opérations, états des capteurs...). Ces mémoires sont accessibles en écriture et en lecture.

On en trouve 2 types :
 De la mémoire vive (RAM) volatile (données perdues en cas de coupure de
l’alimentation) ayant un temps de lecture et écriture assez court (quelques ns),

 De la mémoire morte (EEPROM) non-volatile (données conservées en cas de coupure de


l’alimentation) ayant un temps d’écriture assez élevé (quelques ms) par rapport au temps
de lecture qui est assez faible (quelques ns).
 Interface parallèle
Ce type d’interface, répartie sur plusieurs ports (maximum 8 bits), permet de prendre en
compte des états logiques appliqués en entrée (état de capteurs) ou de générer des signaux
binaires en sortie (commande d’actionneurs).

Les broches de ces ports peuvent donc être configurées en entrée ou en sortie, avec
différentes options (résistances de rappel, sorties collecteurs ouverts, interruption...).

La configuration ainsi que l’état logique de ces broches est obtenue par des opérations
d’écriture ou de lecture dans différents registres associés à chaque port.

On trouve généralement :

 Un registre de direction pour une configuration en entrée ou en sortie,

 Un registre de donnée recopiant les états logiques de chaque broche de port,

 Un registre d’option permettant plusieurs configurations en entrée ou en sortie.


 Interface série
Ce type d’interface permet au microcontrôleur de communiquer avec d’autres systèmes à
base de microprocesseur. Les données envoyées ou reçues se présentes sous la forme d’un
succession temporelle (sur un seul bit) de valeurs binaires images d’un mots.

Il y a 2 types de liaison série : synchrone et asynchrone.

 liaison série synchrone

Dans ce dispositif la transmission est synchronisé par un signal d’horloge émis par l’unité
maître.
 Interface série
 liaison série Asynchrone
Ce dispositif ne possède pas de signal d’horloge de synchronisation. Les unités en liaison
possèdent chacune une horloge interne cadencée à la même fréquence.

Lorsqu’une unité veut émettre un mot binaire, elle génère un front descendant sur sa ligne
émettrice. A la fin de l’émission de ce mot, la ligne repasse au niveau haut.

La donnée à transmettre peut contenir un bit supplémentaire appelé “parité” et servant à la


correction d’erreurs.
 Interface série
Paramètres entrant en jeu pour la norme RS232:

 Longueur des mots : 7 bits (ex : caractère ascii) ou 8 bits

 La vitesse de transmission : elle est défini en bits par seconde ou bauds. Elle
peut prendre des valeurs allant de 110 à 115 200 bds.

 Parité : le mot transmis peut être suivi ou non d'un bit de parité qui sert à
détecter les erreurs éventuelles de transmission.

 Bit de start : la ligne au repos est à l'état logique 1 pour indiquer qu'un mot va être
transmis la ligne passe à l'état bas avant de commencer le transfert.

 Bit de stop : après la transmission, la ligne est positionnée au repos pendant 1, 2

 Niveau de tension : Un “ 0” logique est matérialisé par une tension comprise entre 3
et 25V, un “1” par une tension comprise entre -25 et -3 V.
 LE CAN

Le CAN intégré dans les microcontrôleurs est généralement du type “Approximations


successives”. Il possède plusieurs entrées multiplexées accessibles via les broches des ports
de l’interface parallèle. Le CAN possède normalement 2 registres :

 Un registre de données contenant le résultat de la conversion,

 Un registre de contrôle permettant de lancer et de surveiller la conversion.

 LE Timer
Son rôle est de permettre la synchronisation des opérations que le microcontrôleur est
chargé d'effectuer.

Plusieurs registres associés au Timer permettent de configurer les différents modes décrits
précédemment.
 LE CHIEN DE GARDE.

Ce dispositif est un système anti-plantage du microcontrôleur. Il s’assure qu’il n’y ait pas
d'exécution prolongé d’une même suite d’instruction.

 Les signaux d’horloge

Le signal d’horloge permet de cadencer le fonctionnement du microcontrôleur.

Pour l’obtenir on place un quartz entre les deux broches “OscIn” et “OscOut” comme
l’indique le schéma suivant :
 MODE DE FONCTIONNEMENT.

Le microprocesseur exécute séquentiellement les instructions codées en binaire et


présentent dans la mémoire programme. L’initialisation de cette séquence peut se faire de
différentes manières selon le mode de fonctionnement.

 Le fonctionnement en interruption

Le microcontrôleur, dans son environnement, est destiné à traiter des informations en “


temps réel ”. L ’application est couplée au monde extérieur, par l’échange fréquent de
messages et de signaux à des instants prévus. Il est dans l ’obligation de changer d ’état en
fonction des priorités relatives de l’opération en cours et de celle qui lui est demandé. Il
interrompt ou non le déroulement normal du programme en fonction d’une demande externe.

Celles-ci sont vues du microcontrôleur comme des demandes d’interruption. On note


deux types d’interruption :
- NMI (No Maskable Interrupt) : interruption non - masquable,

- - IRQ (Interrupt Request) : interruption masquable.


Quelque soit l ’entrée d ’interruption activée, le microprocesseur réalise des
tâches identiques :

dans tout les cas, le programme principal est interrompu ;

- le processeur doit sauvegarder le contenu du PC dans la pile ;

- le processeur exécute une séquence privilégiée, reflet du type de traitement


d’interruption ;

- -la prise en compte d ’une interruption ne se fait jamais pendant l ’exécution d’une
instruction.
 INITIALISATION : . RESET
 INSTRUCTIONS ET MODES D’ADRESSAGES.

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.

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.
 Description et programmation de la tache à accomplir.

On définit dans le cahier des charges l’ensemble des commandes ou actions que doit réaliser
le microcontrôleur. Avant d’en générer le code machine binaire compréhensible par le
microcontrôleur, des étapes intermédiaires sont nécessaires afin de réduire les risques
d’erreurs et les difficultés.

 On fait d’abord apparaître le cycle de fonctionnement à l’aide de deux représentations


normalisées : l’algorithme et l’algorigramme. On peut ensuite écrire le programme
associé en utilisant différents langages :

 Un langage évolué (C, Pascal et Basic) utilisant des procédures adaptées au type de
microprocesseur et qui est traduit en code machine par une opération de compilation
effectuée par un “Cross - compilateur”.

 Représentation normalisée : l ’algorithme s ’établit par une succession de phrases


simples.
 Famille des microcontrôleurs

On trouve plusieurs familles des microcontrôleurs:

 La famille Atmel AT91  La famille K0 de NEC. 


 La famille Atmel AVR .
 La famille V800 de NEC.
 Le C167 de Siemens .
 La famille LPC21xx ARM7-TDMI de
 La famille Hitachi H8 .  Philips. 

 La famille des PIC de Microchip. 


 
 La famille des DSPIC de Microchip. 

 La famille PSOC de Cyprées. 
 Etude de la famille des PIC de Microchip

« Peripheral Interface Controller » (« contrôleur d'interface périphérique »)

un PIC est un microcontrôleur, c’est une unité de traitement d’information de type


microprocesseur à laquelle on a ajouté des périphériques internes permettant de faciliter
l'interfaçage avec le monde extérieur sans nécessiter l’ajout de composants externes.

Les Pics sont des composants RISC (Reduced Instructions Set Computing) ou encore
composant à jeu d’instructions réduit. L'avantage est que plus on réduit le nombre
d’instructions, plus facile et plus rapide en est le décodage, et plus vite le composant
fonctionne
 Etude de la famille des PIC de Microchip

La famille des pics est subdivisée en trois grandes familles :

 Base-line : c’est une famille qui utilise des mots d’instructions de 12 bits.

 Mid-range : c’est une famille qui utilise des mots de 14 bits(dont font partie les
16F84,16f876et 16f877

 High-end : c’est une famille qui utilise des mots 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.
 Etude de la famille des PIC de Microchip

 Identification d’un Pic


 Etude de PIC 16F877 :

 Organisation interne du PIC 16f877

L’architecture interne du PIC16f877, est composée essentiellement de registres ayant


chacun une fonction bien définie. Le PIC possède également des périphériques intégrés, tels
qu'une mémoire EEPROM, trois timers, des ports d'entrées/sorties ou convertisseur
analogique/numérique .
 Etude de PIC 16F877 :

 Organisation externe du PIC 16f877

Le PIC16F877 est un circuit intégré de 40 broches :


 Les ports d’entrée/sortie
 Afficheur 7 segments

Les afficheurs 7 segments sont un type d'afficheur très présent sur les calculatrices et les
montres à affichage numérique : les caractères (des chiffres, bien que quelques lettres soient
utilisées pour l'affichage hexadécimal) s'écrivent en allumant ou en éteignant des segments,
au nombre de sept. Quand les 7 segments sont allumés, on obtient le chiffre 8.
Les chiffres 7 et 9 sont les seuls à pouvoir être représentés de deux façons : en allumant
les segments A, B et C (comme sur ce tableau) ou assez rarement A, B, C et F pour le 7,
et en allumant les segments A, B, C, D, F et G (comme sur ce tableau) ou A, B, C, F et G
(comme sur l'animation ci-contre) pour le 9.

Ces chiffres décimaux peuvent être complétés par les lettres A à F pour la numération
hexadécimale :
 Bibliothèque pour LCD

La programmation en assembleur d'UN écran LCD en mode parallèle ou en série est


généralement une tâche complexe et nécessite d’une bonne compréhension du
fonctionnement interne de l’écran LCD. La langue mikroC fournit des fonctions pour les
deux modes de programmation basée sur le texte déjà préparé, ce qui simplifie l’utilisation
d’écrans LCD.

 Le contrôleur LCD HD44780

Le HD44780 est l’un des contrôleurs de cristaux liquides les plus appréciés, étant utilisé
dans l’industrie et dans les applications commerciales.

Des modules avec 8, 16, 20, 24, 32 et 40 caractères sont disponibles. Selon le modèle,
l’écran LCD est fabriqué avec14ou 16 pattes pour l’interface.
 Description
 Description
La patte VSS est à 0V ou du sol. La patte VDD doit être connecté à la borne positive
d’alimentation. Bien que les fabricants spécifient une alimentation 5V DC,

La patte 3 VEE est désigné pour réglage du contraste de l’affichage et doit être reliée à une
alimentation en courant continu. Un potentiomètre est généralement connecté à
l’alimentation avec son curseur raccordé à la patte VEE et l’autre patte du potentiomètre relié
à la masse.

La patte 4 : est le registre de sélection (RS). Lorsque RS est à +5 V, les données de


caractères peuvent être transférés à partir du module LCD.

La patte 5 est le registre de sélection de lecture / écriture (R / W). Cette patte est reliée avec
la masse (état logique bas) afin d’écrire des données de caractères au module LCD. Lorsque
cette broche est à +5 V (états logique haut) donc les informations sortants du module LCD
peuvent être lues.
 Description

La patte 6 est la validation (EN), qui est utilisé pour initier le transfert de commandes ou
de données entre le module et le microcontrôleur.

Les broches 7 à 14 sont les huit lignes de bus de données (D0 à D7). Les données peuvent
être transférées entre le microcontrôleur et le module LCD à l’aide soit d’un seul octet de 8
bits soit de deux 4-bits. Dans ce dernier cas, seuls les quatre lignes de données supérieures
(D4 à D7) sont utilisées..

Le mikroC LCD bibliothèque fournit un grand nombre de fonctions pour contrôler du


texte LCD avec 4-bits et les interfaces de données 8-bit, et pour les graphiques LCD. La
plus courante sont les 4-bit interface en mode texte sur écran LCD. Ce qui suit sont les
fonctions disponibles pour LCD 4-bit interface en mode texte LCD :
 Description

Le nom du port doit être spécifié en passant son adresse. Par exemple, si RS patte est
connectée à RB0, EN patte à RB1, D7 patte à RB2, D6 patte à RB3, D5 patte à RB4, et D4
patte à RB5, alors la fonction doit être appelée comme suit:

 Lcd_Init

La fonction Lcd_Init est appelée pour configurer l’interface entre le microcontrôleur et


l’écran LCD lorsque les connexions sont faites par défaut que vient d’être illustré. Le nom du
port doit être spécifié en passant son adresse. Par exemple, en supposant que LCD est reliée à
PORTB et les connexions par défaut précédentes sont utilisées, la fonction doit être appelée
en tant que :

Lcd_Init();

 Lcd_Out

La fonction Lcd_Out affiche du texte à la ligne indiquée et la position des colonnes de


l’écran LCD. La fonction doit être appelée avec des paramètres dans l’ordre suivant :
 Description

ligne, colonne, texte

Par exemple, pour afficher du texte "Ordinateur" à la ligne 1 et la colonne 2 de l’écran


LCD nous devrions appeler la fonction comme suit:

Lcd_Out (1, 2, "Ordinateur");

 Lcd_Chr

La fonction Lcd_Chr affiche un caractère à la ligne indiquée et la colonne la position du


curseur. La fonction doit être appelée avec les paramètres dans le l’ordre suivant:
 Description

ligne, colonne, caractère

Par exemple, pour afficher caractère "K" à la ligne 2 et la colonne 4 de l’écran LCD nous
devrions appeler la fonction de :

Lcd_Chr(2, 4, ‘K’);
 Lcd_Cmd

La fonction Lcd_Cmd est utilisée pour envoyer une commande à l’écran LCD. Avec ce
commande, nous pouvons déplacer le curseur vers n’importe quelle ligne, désactiver l’écran
LCD, faire clignote le curseur, décaler l’affichage, etc. Une liste des plus couramment utilisés
commandes LCD est donnée dans Tableau ci-dessous .

Par exemple, pour effacer l’écran LCD nous devrions appeler la fonction comme suit :

Lcd_Cmd (Lcd_Clear);
 Exercice d’application

Un contrôleur de texte LCD est relié à un microcontrôleur PIC16F877A dans le


mode par défaut comme illustre ci-dessous,

Ecrire un programme pour envoyer le texte Mon Ordinateur à la ligne 1,à la colonne 4de
l’écran LCD.

Vous aimerez peut-être aussi