Cours Microcontrrolleur
Cours Microcontrrolleur
Cours Microcontrrolleur
des Sciences(ESGIS)
*******
Cours: Microcontrôleur
Examen Final
Prérequis
Applications :
● Automates, robotique,
● Mesures de grandeurs physiques,
● Systèmes temps-réel,
● Systèmes embarqués.
Les circuits ASIC sont des circuits spécialisés dès leur conception pour une application
donnée.
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 logiqueprogrammable)
« 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
Source : Intel
22nm
• architecture interne 64 bits
4/12 coeurs
• fréquence d'horloge 4,0 Ghz
• Fréquence de bus: 0,2 GHz
• 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
LANGAGE DE BAS
COMPILATION NIVEAU
ASSEMBLEUR
CODAGE EN
LANGAGE MACHINE
LIBRAIRIE DE PROGRAMMATION
TELECHARGEMENT
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.
Les plus souples de tous les contrôleurs sont évidemment les contrôleurs
faisant appel à l’électronique, et plus particulièrement les microcontrôleurs
19
Microcontrôleur
Circuit intégré
Architecture du microcontrôleur
Mise en situation
Architecture du microcontrôleur
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).
On peut noter qu’il existe 2 catégories de microprocesseur : les CISC et les RISC.
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.
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),
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 :
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 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.
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 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.
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 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.
- -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.
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”.
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
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
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
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 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
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
Lcd_Chr
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
Ecrire un programme pour envoyer le texte Mon Ordinateur à la ligne 1,à la colonne 4de
l’écran LCD.