Vous êtes sur la page 1sur 8

Les Afficheurs LCD alphanumérique

Présentation :

Les afficheurs LCD sont devenues incontournables dans toutes applications qui demandent la
visualisation de paramètres, il s' agit donc d' une interface Homme/Machine. Au paravant
onéreux et difficiles à mettre en oeuvre, ils sont maintenant bon marchés et l' interface
parallèle au standard Hitachi permet un pilotage facile.
On rencontre aussi de plus en plus d' afficheur pilotable avec un port série ou I2C, les
instructions sont restées les mêmes.

Avant toutes choses, il est important de bien étudier la datasheet de l'afficheur, celle-ci
vous donnera le temps minimale à laisser au controlleur LCD avant de lui faire parvenir
les premieres informations, les temps de monté des signaux, de prise en compte de tel ou
tel ordre...

Caractéristiques :

DISPOSITION DE CONNEXION : On rencontre principalement 2 dispositions de


connecteur sur la platine du LCD : soit en ligne sur le dessous/dessus de l' afficheur, ou en
format HE10 sur le coté. ils disposent au minimum de 14 broches , 16 pour les modèles rétro-
éclairés ; il arrive aussi que le module de rétro éclairage soit séparé de la grappe de
connexion, dans ce cas les bornes d' alimentation du back-light sont largement visibles.
Descriptions des signaux :

N° Broche NOM Description


1 VSS Masse
2 VDD Alimentation positive (V+)
* Branchement du potentiomètre
3 VO Contraste réglable par potentiomètre * pour faire varier le contraste de l'
Sélection de registre (0= instruction; 1 afficheur. Se reporter au datasheet
4 RS
= données) du constructeur pour avoir la valeur
R/W ou Lecture ou écriture (1= lecture; (généralement 10 k)
5
RD 1=écriture)
Enable (validation, actif au niveau
6 E
haut)
7 D0 Bit 0 du bus de données
8 D1 Bit 1 du bus de données
9 D2 Bit 2 du bus de données
10 D3 Bit 3 du bus de données
11 D4 Bi t4 du bus de données
12 D5 Bit 5 du bus de données
13 D6 Bit 6 du bus de données
14 D7 Bit 7 du bus de données

Liste des instructions :

Comme tout périphérique, l' afficheur LCD se voit doté d' un jeu d' instructions qui permet de
le contrôler. dans un premier temps, voici cette liste:

Commande RS R/W D7 D6 D5 D4 D3 D2 D1 D0 Description


Efface l'ecran et positionne le curseur
Effacement 0 0 0 0 0 0 0 0 0 1
à 0 (haut,gauche)
Retour Positionne le curseur à 0
0 0 0 0 0 0 0 0 1 X
Curseur (haut,gauche)
Définit la direction de déplacement du
curseur et si le texte doit suivre le
curseur
Mode de
0 0 0 0 0 0 0 1 ID S ID : 1 = incremente adresse DD-RAM
décalage
; 0 = décremente
S : 1 = Décale l' affichage; 0 = ne
décale pas
Afficheur 0 0 0 0 0 0 1 D C B D : 1 = Affichage On ; 0 = Affichage
On/Off, Off
curseur et C : 1 = Curseur en service ; 0 =
Curseur Hors service
clignotement B : 1 = Curseur clignotant ; 0 =
Curseur Fixe
SC : 1 = Décale l' afficheur ; 0 =
Décalage
Décale le curseur
Affichage et 0 0 0 0 0 1 SC RL X X
RL : 1 = Décalage à droite; 0 =
curseur
Décalage à gauche
DL : 1 = Adressage 8 bits ; 0 =
Adressage 4 Bits
Initialisation 0 0 0 0 1 DL N X X X
N : 1 = Afficheur 2 lignes ; 0 =
Afficheur 1 ligne
Adresse CG- Définit l' adresse de la CG-RAM dans
0 0 0 1 ACG
RAM le compteur d' adresse.
Adresse DD- Définit l' adresse de la DD-RAM dans
0 0 1 ADD
RAM le compteur d' adresse.
BF : Lit le drapeau d' occupation
Busy-flag et
0 1 BF AC AC : Lit le contenu du compteur d'
adresse
adresse.
Écrire dans
DD-RAM ou 1 0 Données
CG-RAM
Lire dans
DD-RAM ou 1 1 Données
CG-RAM

Chronologie des signaux :

Âpres avoir pris connaissance des instructions ci-dessus, voyons comment les signaux
circulent sur le bus.

On remarque immédiatement que RS définit au contrôleur LCD si l' ordre sur le bus est de
type configuration ou écriture de caractères.
Le signal ENABLE permet de validé tout les ordres, notez que les signaux doivent être le
plus stable possible durant cette validation.
Du point de vue la validation, il y à deux écoles : une préfère vérifier que le contrôleur soit
bien dispo en vérifiant l' état du signal BUSY, l' autre incorpore une tempo logiciel avant
chaque ordre et s' affranchie de la lecture de BUSY, dans ce cas veuillez prendre connaissance
de ce temps minimal propre à chaque constructeur.
Les 2 méthodes fonctionnent très bien.

L'initialistation minimale :

- Choix du mode d' adressage : il faut tout d' abord savoir de quelle manière on souhaite
adresser le bus : 8 bits ou 4 bits. Le mode 4 bits est préférable car il permet d' économiser des
lignes d' entrées/sorties sur le microcontrôleur, mais d' un autre coté, il faut prendre en compte
qu 'il faudra décomposer l' adresse en 2 paquets(bits de poids fort, suivie des bits de poids
faibles). Dans la même instruction vient aussi la configuration du nombre de lignes de l'
afficheur; si il s' agit d' un modèle multiligne, toujours mettre la valeur N =1 (2 lignes).

- Décalage : il faut définir le comportement du décalage curseur/écran avec les bits ID et S.


ID détermine si après une opération de lecture ou d'ecriture l' adresse de la DDRAM doit être
automatiquement incrémenté, on écrira ici "1" afin d'incrementer l' adresse de la DDRAM,
puis "0" pour S pour ne pas décaler l' affichage

- Afficheur on/off... : le bit D met l' afficheur en marche. Ensuite et suivant votre application,
mettre le curseur sur visible ou non, clignotant ou fixe si visible.

Voila, les 3 instructions minimales nécessaire afin d' initialiser correctement l' afficheur sont
entrées, maintenant si vous le souhaitez vous avez a votre disposition quelques instructions
supplémentaires permettant de produire divers effets..

La DDRAM :

DEFINITION : La DDRAM est la traduction de Display Data RAM. C' est une mémoire dont
l' adresse contient le caractère affiché a l'ecran à une certaine position. Chaque ligne de l'
afficheur se voit décomposé en cellules qui permettent le stockage des caractères. Ainsi le
premier caractère affiché à l'ecran se voit attribué l' adresse $00, le deuxième $01...
Logique me direz vous, et bien pas tant que cela : les adresses ne sont pas linéairement
suivies, ainsi le 17 eme caractère ne se voit pas attribué l' adresse $11, mais $40 !
Il est donc indispensable de connaître la cartographie des adresses et rien ne vaut un petit tour
du coté su datasheet, même si, à ma connaissance, 99 % des afficheurs respectent ce standard.
(Voir Annexe)

UTILISATION : Pourquoi adresser la DDRAM ? Imaginons une application qui donne une
température avec l' affichage suivant :
Le texte "TEMPERATURE INTERIEUR" est invariable, seul la température change. Dans ce
cas pourquoi ne pas faire pointer l' adresse de la DDRAM sur la valeur $4B qui correspond au
premier caractère affiché de la température, et ensuite écrire tout simplement la nouvelle
valeur de la température ! Voila à quoi peut servir la DDRAM, elle permet de naviguer à
toutes les adresses de l' afficheur.
On peut donc en déduire la programmation de chronologie suivante pour écrire 23 en place de
la température actuelle :

RS RW D7 D6 D5 D4 D3 D2 D1 D0
Passage du LCD en Mode INSTRUCTION
et pointage à 0 0 1 1 0 0 1 0 1 1
l' adresse $4B de la DDRAM
Cycle de Validation
Passage du LCD en Mode DONNEES et
écriture du caractère "2" en décimale soit 32 1 0 0 0 1 1 0 0 1 0
en hexadécimal.
Cycle de Validation
Passage du LCD en Mode DONNEES et
écriture du caractère "3" en décimale soit 33 1 0 0 0 1 1 0 0 1 1
en hexadecimal.

La CGRAM :

DEFINITION : La CGRAM est la traduction de Charactere Generator RAM. Comme sont


nom l' indique, il s' agit d' un générateur de caractère, ainsi il sera possible de créer ses
propres symboles, contrairement à la CGROM qui contiens les caractères pré-définis.
Généralement la place faite à la CGRAM permet la création de 8 caractères.
L' utilisation de la CGRAM ne sera pas abordée ici, cependant si les demandes se font
nombreuses...

'

ANNEXE

CARTOGRAPHIE DE LA DDRAM :
TABLE DE CHARACTERES :