Vous êtes sur la page 1sur 17

INSTITUT UNIVERSITAIRE LES COURS SONOU

REPUBLIQUE DU BENIN

PROGRAMMATION
DES MICROS CONTROLEURS

AFFICHAGE DE TEXTE SUR


ECRAN LCD

Réalisé et présenté par : Sous la supervision de :


Mr. Corneille ADJABA
Samuel AKABASSI
&
Précieux KIKI

ANNEE ACADEMIQUE 2022-2023


P a g e 1 | 17
PLAN
1 Introduction
2 En quoi consiste l’affichage de texte sur écran LCD ?
3 Notre cas
3.1 Les éléments nécessaires
3.2 Description des éléments

4 Présentation du circuit
5 La mise en œuvre dans le monde réel
6 Conclusion
7 Références

P a g e 2 | 17
1 Introduction
En électronique, on a parfois besoin d’afficher des informations à l’endroit des utilisateurs.
Avec les écrans LCD nous allons pouvoir afficher du texte sur un écran. C’est-à-dire afficher
des messages d’alerte ou des instructions. Ces écrans se retrouvent partout dans les appareils
électroniques disposant d’afficheur : les montres, tableau de bord d’une voiture, les
calculatrices, etc. Pour les utiliser nous avons besoin des microcontrôleurs. C’est de lui que
proviendront les informations affichées à l’écran.

2 En quoi consiste l’affichage de texte sur écran LCD ?


Les afficheurs LCD sont devenus indispensables dans les systèmes techniques qui nécessitent
l’affichage de paramètres de fonctionnement. Grâce à la commande par un microcontrôleur
ces afficheurs permettent de réaliser un affichage de messages aisés. Ils permettent également
de créer ses propres caractères.

3 Notre cas
Notre projet a consisté à réaliser un circuit comprenant un afficheur LCD que nous avons
commandé à l’aide d’un microcontrôleur PIC (de la société Microchip). Il s’agit d’une
simulation que nous avons effectué avec le logiciel Proteus 8 Professional. En ce qui concerne
la programmation du microcontrôleur, nous avons utilisé le logiciel MPLAB IDE et le
compilateur Microchip C18 fournit par le fabricant.

3.1 Les éléments nécessaires


Notre circuit est constitué des éléments suivants :
- 1 microcontrôleur PIC18F4620 ;
- 1 afficheur LCD LM018L ;
- 3 générateur de courant continu de 5 Volts chacun ;
- 4 résistances de 10 Kilo-Ohms
- 4 boutons
- 1 potentiomètre
- 1 oscillateur à Crystal de quartz oscillant à 16 MHz
- 2 condensateurs de 22pF

3.2 Description des éléments


A. Le microcontrôleur PIC18F4620
Un microcontrôleur (en notation abrégée µc, ou uc ou encore MCU en anglais) est un
circuit intégré qui rassemble les éléments essentiels d'un ordinateur : processeur, mémoires
(mémoire morte et mémoire vive), 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, une vitesse de fonctionnement plus faible (de quelques mégahertz
jusqu'à plus d'un gigahertz) et un coût réduit par rapport aux microprocesseurs polyvalents
utilisés dans les ordinateurs personnels.
P a g e 3 | 17
Les microcontrôleurs PIC de la société Microchip font parties des plus utilisés au
monde. Ceci est en partie dû à leur prix très bas, leur simplicité de programmation, les outils
de développement que l'on trouve sur internet. Dans notre projet nous avons utilisé le
PIC18F4620 faisant partie de la famille PIC18 pour Programmable Intelligent Computer 18
ou Programmable Integrated Circuit 18. Il existe d’autres familles comme : PIC10, PIC12,
PIC16, PIC24F/PIC24H/PIC24E, PIC32MX, PIC32MZ, …. La famille PIC18 a un jeu
d’instruction complet puisqu’il comprend 75 instructions. Cette palette d’instructions étendue
lui permet de faire fonctionner du code C compilé de manière nettement efficace que les
familles précédentes.
Le schéma ci-dessous nous présente la structure du PIC184620 :

a. L’initialisation des Entrées/Sorties


Chaque patte du PIC18F4620 peut être configurée indépendamment des autres en
entrées ou en sorties. Dans la RAM du PIC18F4620 existent des bytes particuliers appelés
REGISTRES. Les états des bits de ces registres sont représentatif de la fonction des pattes
du PIC18F4620. Chaque bits représente une patte comme suit :
REGISTRE TRISA :
Nom de la patte RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0
Bit 7 6 5 4 3 2 1 0
correspondant

REGISTRE TRISB :
Nom de la patte RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

P a g e 4 | 17
Bit 7 6 5 4 3 2 1 0
correspondant

REGISTRE TRISC :
Nom de la patte RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0
Bit 7 6 5 4 3 2 1 0
correspondant

REGISTRE TRISD :
Nom de la patte RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0
Bit 7 6 5 4 3 2 1 0
correspondant

REGISTRE TRISE :
Nom de la patte RE3 RE2 RE1 RE0
Bit 3 2 1 0
correspondant

Si un bit est à 1, la patte associée est en entrée. Si un bit est à 0, la patte associée est
en sortie. A la mise sous tension, tous les bits sont à 1.
Il est donc nécessaire au début de la fonction principale de mettre chaque bits à la bonne
valeur. Dans le code en C le signe d’affectation = sera donc utilisé.
Si par exemple les pattes RA0, RA1, RA4, RB5 sont en entrées, et les pattes RB0, RB1,
RB2, RB3 sont en sorties, nous écrirons par exemple :
TRISA = 0b11111111 ;
TRISB = 0b11110000 ;
Attention : Les bits sont toujours écrits dans l’ordre : bit7, bit6, …. , bit0.

b. Manipulation des pattes en sorties


Lorsqu’une patte est en sortie, il est facile de lui attribuer un état grâce au régistre PORTA,
PORTB, PORTC, PORTD et PORTE.
Chaque bit représente une patte du PIC18F4620 comme suit :
REGISTRE PORTA :
Nom de la patte RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0
Bit 7 6 5 4 3 2 1 0
correspondant

REGISTRE PORTB :
P a g e 5 | 17
Nom de la patte RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
Bit 7 6 5 4 3 2 1 0
correspondant

REGISTRE PORTC :
Nom de la patte RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0
Bit 7 6 5 4 3 2 1 0
correspondant

REGISTRE PORTD :
Nom de la patte RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0
Bit 7 6 5 4 3 2 1 0
correspondant

REGISTRE PORTE :
Nom de la patte RE3 RE2 RE1 RE0
Bit 3 2 1 0
correspondant

Si un bit est à 1, la patte associé est à 1. Si un bit est à 0, la patte associé est à 0. A la mise
sous tension, tous les bits sont à 1 .
Par exemple dans un circuit qui permet d’allumer des LED à partir du microcontrôleur, on
peut allumer la LED sur la patte RB1 et éteindre les autres en écrivant :
PORTB = 0b00000010 ;
c. Manipulation des pattes en entrées
Lorsqu’une patte est en entrée, on peut connaitre son état toujours grâce au registre PORTA,
PORTB, PORTC, PORTD et PORTE.
Si un bit est à 1, la patte associé est à 1. Si un bit est à 0, la patte associé est à 0.
Il n’est pas possible de modifier un bit du PORTA, PORTB, PORTC, PORTD ou PORTE si
celui-ci est en entrée.
Par exemple dans un circuit qui permet d’allumer des LED à partir du microcontrôleur, l’état
d’un bouton peut par exemple permettre de changer l’état d’un bit de l’un des registres
PORTA, PORTB, PORTC, PORTD ou PORTE et faire ainsi allumer ou éteindre une LED.

B. Afficheur LCD
LCD signifie "Liquid Crystal Display" et se traduit, en français, par "Écran à Cristaux
Liquides". Ces écrans sont partout ! Vous en trouverez dans plein d’appareils électroniques
disposant d’afficheur : les montres, le tableau de bord de votre voiture, les calculatrices, etc.
Cette utilisation intensive est due à leur faible consommation et coût. Mais ce n’est pas tout !
P a g e 6 | 17
En effet, les écrans LCD sont aussi sous des formes plus complexes telles que la plupart des
écrans d’ordinateur ainsi que les téléviseurs à écran plat. Cette technologie est bien maîtrisée
et donc le coût de production est assez bas.
a. Schéma fonctionnel et rôle des différentes broches de l’afficheur LCD

- VCC, Masse : alimentation de l’afficheur LCD. Un afficheur LCD s’alimente en


0V et 5V.
- Contraste : entrée permettant de régler le contraste de l’afficheur LCD. Il faut
appliquer une tension continue réglable (entre 0V et 5V) à l’aide d’un
potentiomètre.
- Vled : différence de potentiel permettant de commander le rétro éclairage.
- E : entrée de validation (ENABLE), elle permet de valider les données sur un
front descendant. Lorsque E=0 alors le bus de données est à l’état haute
impédance.
- RS : Register Select cette entrée permet d’indiquer à l’afficheur si l’on souhaite
réaliser une commande (RS=0) par des instructions spécifiques ou écrire une
donnée (envoie du code du caractère à afficher) sur le bus (RS=1).
- R/W : entrée de lecture (R/W=1) et d’écriture (R/W=0). Lorsqu’on
commande l’afficheur LCD il faut se placer en écriture.
- D7…D0 : bus de données bi-directionnel, il permet de transférer les
instructions ou les dosnnées à l’afficheur LCD.

b. Mise en œuvre matérielle d’un afficheur LCD


En fonction du mode de commande choisis de l’afficheur LCD la mise en œuvre matérielle sera
différente. Il existe deux modes de commande d’un afficheur LCD : commande en 4 bits et
commande en 8 bits.
1. Mise en œuvre matérielle pour la commande en 4 bits :

P a g e 7 | 17
En mode de commande 4 bits
l’intérêt est de limiter le nombre de
broches du microcontrôleur.

Il faut utiliser 7 broches des ports


d’entrées/sorties du microcontrôleur
(configurées en sorties) de manière à
commander l’afficheur.

2. Mise en œuvre matérielle pour la commande en 8 bits

En mode de commande 8 bits on


utilise plus de broches du
microcontrôleur.

Il faut utiliser 11 broches des ports


d’entrées/sorties du
microcontrôleur (configurées en
sorties) de manière à commander
l’afficheur.

c. Raccordement (8 bits)
Dans notre projet nous avons utilisé le raccordement en huit(8) bits. De façon générale, on
schématise ce raccordement comme suit :

P a g e 8 | 17
C. Générateur de courant continu
Une source de tension continue est un générateur qui impose le sens de circulation des
porteurs de charge électrique dans le circuit. Elle est responsable du déplacement d'ensemble,
ordonné des porteurs de charge électrique. Une source de tension continue est caractérisée
par sa tension à vide, notée E.
D. Résistance
Une résistance est un composant électrique figurant parmi les dipôles électriques, conçu pour
approcher de manière très satisfaisante la loi d'Ohm dans une large plage d'utilisation.
E. Boutons
Un bouton ou poussoir est un interrupteur qui permet de contrôler les capacités d’un
microcontrôleur. C’est un appareil mécanique qui permet d’établir, de supporter ou
d’interrompre le courant dans un circuit.
F. Potentiomètre
Un potentiomètre est un type de résistance variables à trois bornes dont une est reliée à un
curseur mobile permettant de faire la variation.
G. Oscillateur à crystal de quartz
Un oscillateur électronique est un circuit dont la fonction est de produire un signal électrique
périodique, de forme sinusoïdale, carrée, en dent de scie ou quelconque. L’oscillateur à quartz
se sert du quartz pour produire ses signals.
H. Condensateur

P a g e 9 | 17
Un condensateur est un composant électronique élémentaire composé de deux armatures
conductrices, séparées par un isolant. Sa propriété principale est de pouvoir stocker des
charges électriques opposées sur ses armatures.

4 Présentation du circuit
4.1 Premier circuit
Notre premier circuit propose quatre fonctionnalités : le verrouillage/déverrouillage par mot
de passe, l’affichage de texte simple, l’affichage de texte déroulant et la mesure de temps.

A. Verrouillage/déverrouillage
Au démarrage du circuit, le programme demande tout d’abord d’entrer le mot de passe
permettant le déverrouillage :

P a g e 10 | 17
B. Affichage de texte simple
Une fois le mot de passe correct entré, on accède à une interface du programme demandant de
choisir une action à exécuter. La première option est l’affichage de texte simple qu’on choisit
à partir du bouton 0.

P a g e 11 | 17
C. Affichage de texte déroulant
La deuxième option permet d’afficher du texte déroulant :

P a g e 12 | 17
D. Mesure de temps
La troisième option permet de lancer un chronomètre. Celui-ci propose trois boutons de
commandes : Pause / continuer, Redémarrer, Arrêter.

Avec le bouton 0 on peut mettre le chronomètre en pause ou le continuer.


Avec le bouton 1 on peut remettre le temps à zéro.
Avec le bouton 2 on arrête le comptage du temps.

NB : A la fin de chaque option, le programme ramène l’utilisateur à l’interface ou il


demande une option à exécuter.

4.2 Deuxième circuit


Ce circuit représente une calculatrice. L’utilisateur effectue ses calculs en appuyant sur les
boutons du clavier. Les chiffres saisis s’affiche sur l’écran LCD. En appuyant sur le signe =
l’utilisateur obtient le résultats de l’opération.

P a g e 13 | 17
P a g e 14 | 17
5 La mise en œuvre dans le monde réel
5.1 La programmation du microcontrôleur

Carte de développement de Microchip, pour microcontrôleurs PIC de 6, 8 et 14 broches.

Les PIC disposent de plusieurs technologies de mémoire de programme : flash, ROM,


EPROM, EEPROM, UVPROM. Certains PIC (PIC18/24/32 et dsPIC33) permettent
l'accès à la FLASH et à la RAM externe.

La programmation du PIC peut se faire de différentes façons :


- par programmation in-situ en utilisant l'interface de programmation / debug universel
ICSP de Microchip. Il suffit alors d'ajouter simplement un connecteur ICSP au
microcontrôleur sur la carte fille pour permettre sa programmation une fois soudé ou
sur son support (sans avoir besoin de le retirer). Il existe pour cela plusieurs solutions
libres (logiciel + interface à faire soi-même) ou commerciales (par exemple : PICkit 3,
ICD4 et Real-Ice de Microchip) ;
- par l'intermédiaire d'un programmateur dédié (par exemple : PM3,pour la production
(Microchip).
Nous pouvons par exemple utiliser le PIC-01.

P a g e 15 | 17
Le PIC-01 permet la programmation de plus de 150 microcontrôleurs PIC de Microchip,
(familles PIC12Cxxx, PIC12Fxxx, PIC16Cxxx, PIC16Fxxx et PIC18Fxxxx), ainsi que les
EEproms Séries, (famille 24Cxx). Equipé de 5 supports tulipes, il supporte les composants en
boîtiers DIP 8, 18, 28 et 40 broches. Il est équipé d'une véritable interface RS232 permettant
la connexion sur le port série (cordon fourni) de tout compatible PC. Très complet il permet
de lire, programmer, effacer, tester et éditer le contenu Data, EEPROM et Registres de chaque
microcontrôleur. Il fonctionne avec les logiciels IcProg, PonyProg et WinPic800 sous
Windows 98/XP/VISTA/7/8/10 (32/64bits). Il nécessite un bloc d'alimentation 12V
continu non régulé, ou 16V continu régulé, 300mA ou 500mA, avec fiche 2,1mm (+ au milieu,
- autour).

Caractéristiques:
- Accepte les formats standards : INTEL (Extended) HEX, INTEL HEX16 et détection
automatique.
- Fonctions standard : Read / Write / Verify / Erase / Blank Check.
- Paramétrage des registres du microcontrôleurs.
- Buffers séparés pour présenter le Program memory / EEPROM data memory /
Fusibes memory.
- Ne nécessite pas d'adaptateurs externe pour tous les composants en boitîers DIP.
- Compatible avec les logiciels ICprog PonyProg et WinPic800.
- Supporte Windows XP / VISTA / Windows 7 (32bit et 64bit) avec 100MB de disque
dur disponible.

P a g e 16 | 17
5.2 La réalisation du circuit imprimé
Il existe trois grandes méthodes de fabrication des circuits imprimés :
- une artisanale, permettant de fabriquer quelques prototypes de circuits imprimés ;
- une semi industrielle dite par fraisage : gravure anglaise ;
- une industrielle où on fait appel à un sous-traitant spécialisé dans la production en
grand nombre en lui fournissant des fichiers informatiques de CAO (gerber et
excellon).

6 Conclusion
En somme, les écrans LCD sont un intéressant moyen de fournir une interface aux utilisateurs
d’un appareil électronique. Ils permettent d’afficher des messages provenant d’un
microcontrôleur préalablement programmé. Un bon exemple de microcontrôleur est le
PIC18F4620 de Microchip que l’on peut programmer assez facilement à l’aide de MPLAB
IDE.

7 Références

P a g e 17 | 17

Vous aimerez peut-être aussi