Menu Général                                     URL: http://www.chez.com/gdaquino/Mc/Afficheur/affich.html

AFFICHEURS A CRISTAUX LIQUIDES


AFFICHEUR LCD INTELLIGENT 
Type RTC


CARACTERISTIQUES ELECTRIQUES
BROCHAGE
RACCORDEMENT A L'ALIMENTATION
SCHEMA FONCTIONNEL INTERNE
JEU D'INSTRUCTION DU MODULE
CHRONOGRAMMES
TIMMING
ORGANIGRAMMES
GENERATION D'UN CARACTERE PERSONALISE
PRINCIPE DE L'AFFICHEUR LCD

CARACTERISTIQUES ELECTRIQUES

BROCHAGE

PIN N° Symbole  Niveau  Fonction 









10 
11 
12 
13 
14 
VSS 
VDD 
V0 
RS 
R/W 

D0 
D1 
D2 
D3 
D4 
D5 
D6 
D7 
Niveau 



H/L 
H/L 
H.H-->L 
H/L 
H/L 
H/L 
H/L 
H/L 
H/L 
H/L 
H/L 
0V 
5V 
Réglage contraste 
L : Code instruction H : Donnée 
H : Lecture L : Ecriture 
Validation 
 
 

Bus de donnée Bidirectionnel* 

* Lors de l'utilisation en mode 4 bits seul les bits D4 à D7 sont utilisés. Les lignes correspondant de D0 à D4 sont laissés en l'air. On communique le quarté de poids fort puis de poids faible.

RACCORDEMENT A L'ALIMENTATION

Le potentiomètre permet de régler le contraste de l'afficheur 

SCHEMA FONCTIONNEL INTERNE

L'utilisateur à accès au :
Registre de données  : bidirectionnel, il reçoit les codes ASCII des caractères à afficher. Les codes seront ensuite stockés dans la DD-RAM, d'une capacité de 80 octets. Le registre de données permet aussi de lire le contenu de la DD-RAM.
Registre de contrôle : destiné à recevoir les consignes de contrôle, comme effacer l'afficheur, déplacer le curseur, etc... (accessible uniquement en écriture).
Registre d'état : destiné à indiquer à l'utilisateur si le processeur interne est prêt à recevoir une instruction (accès en lecture seule).

On trouve deux Mémoires CG (Caractère Generate) :

La DD-RAM reçoit les codes des caractères à afficher. L'adresse à laquelle est placé un code dans la DD RAM définit la position du caractère sur le panneau d'affichage. Le pointage d'un élément dans la DD-RAM ou la CG-RAM est déterminé par un compteur d'adresses interne, accessible en lecture par l'utilisateur.

Cas d'un afficheur à deux lignes de caractères :

Les adresses de la seconde ligne ne sont pas consécutives à celles de la première ligne de caractères. Quand l'affichage est décalé, les adresses se décalent uniquement vers la droite ou vers la gauche d'une même ligne. Les adresses assignées à chacune des lignes sont les suivantes :

Ligne n°1 : $00 à $27
Ligne n°2 : $40 à $67

Cas d'un afficheur à une seule ligne de 16 caractères Les adresses de la seconde moitié de la ligne ne sont pas consécutive à celles de la première moitié. Les adresses assignées à chacune des moitiés de lignes sont les suivantes :

Caractères 1 à 8 : $00 à $07
Caractères 9 à 16 : $40 à $47

Lignes de données D0 à D7
Les données peuvent être transmises sur 8 ou 4 bits. Dans ce dernier cas on utilise les lignes D4 à D7. On envoie d'abord le poids fort et ensuite le poids faible.

Ligne R/W
Unidirectionnelle, lors de l'écriture d'un registre on la positionne à zéro, pour une lecture on la positionne à 1.

Ligne RS
Unidirectionnelle, lors de l'envoie d'un code instruction on positionne la ligne à 0 lors de l'envoie d'un code caractère on positionne la ligne à 1.

Ligne E
Unidirectionnelle, elle permet de valider les données sur front

JEU D'INSTRUCTION DU MODULE

 
PIN N° RS  R/W  D7  D6  D5  D4  D3  D2  D1  D0  TIME 
Effacer l'affichage  0 1,64ms 
Initialiser le curseur  1,64ms
Init déplacement curseur  I/D  40µs 
Affichage on/off  40µs 
Décaler Curseur/Affichage  S/C  R/L  40µs 
Init mode de fonctionnement  DL  40µs 
Positionner Adresse CG-RAM  A-CG  40µs 
Positionner Adresse DD-RAM  A-DD  40µs 
Lecture Reg. Etat Compteur adresse  BF  AC  0
Ecriture CG-RAM DD-RAM  Write DATA  40µs 
Lecture CG-RAM DD-RAM  Read DATA  40µs 

Effacer l'affichage
La DD-RAM est remplie avec le code 520 (Espace). Le compteur d'adresse est remis à zéro. Si l'affichage a été décalé, la position initiale est rétablie.
Après exécution de cette instruction, l'affichage disparaît et le curseur est ramené à la position située en haut à gauche.

Initialiser le curseur
Le compteur d'adresse est remis à zéro. Si l'affichage a été décalé, la position initiale est rétablie.
Le contenu de la DD-RAM n'est pas modifié. Le curseur ou le clignotement du caractère, si activé, est ramené à sa position initiale.

Init déplacement curseur
I/D (lnc./Dec.) : lorsqu'on envoie un code de caractère à afficher, le curseur se déplace d'une position d'affichage vers la droite (1/D = 1) ou la gauche (1/D = 0).
Ce fonctionnement est valable également quand une donnée est lue ou écrite dans la CG-RAM.
S (Shift) : Quand S = 1, l'ensemble de l'affichage est décalé d'une position vers la gauche (1/D = 1) ou la droite (1/D = 0) après écriture d'un code de caractère dans la DD-RAM.
Le curseur garde la même position relative sur l'afficheur. Si S = 0, l'affichage n'est pas décalé.
Remarque : Quand un décalage d'affichage est exécuté, les 2 lignes sont décalées simultanément.
Quand l'opération de décalage de l'affichage est répétée, les caractères d'une ligne ne sont pas déplacés vers l'autre ligne mais sont rebouclés sur la même ligne.

Affichage on/off
D (Display) : l'affichage est allumé si D = 1. Quand D = 0, l'affichage est éteint, mais les codes de caractères sont conservés dans la DD-RAM.
C (Cursor) : le curseur est affiché à la position courante du compteur d'adresse si C = 1. Quand C = 0, le curseur n'est pas visible.
B (Blink) : si B = 1, le caractère à la position du curseur clignote à 1,2 Hz environ.

Décaler Curseur/Affichage
L'affichage et/ou le curseur sont décalés vers la droite ou la gauche. Pour un afficheur à deux lignes, le curseur se déplace de la 40ème position de la ligne du haut à la première position de la seconde ligne.
A la fin de la seconde ligne (adresse $67), le curseur ne retourne pas à l'adresse $00 mais à la première position de la seconde ligne (adresse $40).
S/C (Shift/Cursor) : déplacement du curseur si S/C = 0. Lorsque S/C = 1, c'est tout l'affichage, avec le curseur, qui est décalé.
R/L (RightlLeft) : décalage vers la gauche (R/L = 0), ou vers la droite (WL = 1).

Init mode de fonctionnement
DL (Data Length) sélectionne la largeur du bus de données : 8 bits (DL = 1) ou 4 bits (DL = 0). N (Number of lines) initialise l'affichage sur une ligne si N = 0, et deux lignes si N =1.
Remarque : cette instruction doit être exécutée au début du programme du microprocesseur, avant toute autre instruction (à l'exception de l'instruction de lecture du bit d'état et du compteur d'adresse).

Positionner Adresse CG-RAM
Cette instruction permet au compteur d'adresses de pointer une adresse dans la CG.RAM.
Un transfert de données pourra ensuite être réalisé entre le microcontrôleur et la CG.RAM.

Positionner Adresse DD-RAM
Cette instruction permet au compteur d'adresses de pointer une adresse dans la DD-RAM.
Un transfert de données pourra ensuite être réalisé entre le microcontrôleur et la DD RAM.

Lecture Reg. Etat Compteur adresse
Le bit BF (busy flag) ne peut être que lu et indique si le module est occupé par le traitement d'une instruction. BF = 1 indique l'état occupé (opération interne) et une nouvelle instruction ne sera pas acceptée tant que BF ne sera pas égal à 0.
Cette instruction lit aussi le contenu du compteur d'adresses, exprimé par un nombre binaire de 7 bits. Lors d'une lecture, le compteur d'adresses va contenir une adresse de la DD-RAM ou de la CG-RAM selon la dernière instruction d'adressage exécutée.

Ecriture CG-RAM DD-RAM
Une donnée de 8 bits est écrite dans la CG-RAM ou la DD-RAM selon l'adresse spécifiée par le compteur d'adresses. Après écriture de la donnée dans la RAM, le compteur d'adresses est incrémenté ou décrémenté selon le mode d'entrée prédéfini.

Lecture CG-RAM DD-RAM
Une donnée de 8 bits est lue dans la DD-RAM ou la CG-RAM selon la dernière instruction d'adressage exécutée, à l'emplacement indiqué par le compteur d'adresses. Cette instruction doit être précédée par une instruction de positionnement d'adresse dans l'une des deux "RAM", ou une instruction de décalage du curseur.

A la mise sous tension, le module exécute une procédure d'initialisation automatique, qui assure les fonctions suivantes :

Pendant cette phase d'initialisation, qui dure environ 15 ms, le bit d'état est mis à l'état haut.
Il est toutefois préférable d'assurer l'initialisation du module par programmation avant d'envoyer les premiers caractères au module.

CHRONOGRAMMES :

Pour piloter l'afficheur il faut respecter les chronogrammes suivants :
Envoi d'une instruction, la ligne R/W est en écriture (R/W=0)

Envoi d'un caratère, la ligne R/W est en écriture (R/W=0)

Lecture du registre d'état (RS=0)

TIMMING

PARAMETER 

Enable cycle time 
Enable pulse width 
Rise time 
Fall time 
Register select set up time
Read and write set up time
Data set up time 
Data delay time 
Adress hold time 
Data hold time write
Data hold time read

Symbol 

tcyc 
tw 
tr 
tf 
trsu 
tsu 
tdsu 
td 
tah 
twh 
trh 

Min 

1000
450 


140 
140 
195 

10 
10 
20 

Max



25 
25 



320 


unit 

ns 
ns 
ns 
ns 
ns 
ns 
ns 
ns 
ns 
ns 
ns 

Les algorithmes ci-dessous permettent de piloter l'afficheur en mode 4 bits et 8 bits.
Les procédures spécialisées en 4 bits seront décrites séparément. 

ORGANIGRAMMES





Remarque :

Les procédures " Validation instruction " et " Validation caractère " doivent respecter le temps tw de 450 ns (durée à l'état haut de E). Pour l'utilisation du HC11 avec un quartz de 8MHz, un cycle d'horloge dure 500 ns. Pour exécuter l'instruction Sortie sur port de contrôle " staa porta " dans le mode direct, il faut 3 cycles d'horloge, soit 1,5µs. Ce temps est respecté. Il en va de même pour trsu. Pour l'utilisation d'un microprocesseur plus rapide il faudra tenir compte de ces temps minimums.

GENERATION D UN CARACTERE PERSONALISE

La CG-RAM, d'une capacité de 64 octets, offre 8 matrices de 5x8 points qui peuvent être programmées par l'utilisateur. L'espace adressable donnant accès à ces caractères de la DD-RAM va de l'adresse $00 à $07, sa zone image $08 à $0F. Programmation d'un caractère : chaque caractère occupe 8 octets. Un pixel devant apparaître en noir sera positionné à 1.
Ainsi pour programmé le caractère ci dessous il faudra écrire dans la CG-Ram les codes, $1F à l'adresse $40, $03 à l'adresse$41, …., et $10 à l'adresse $47. Le caractère suivant occupera les adresses CG-RAM $48 à l'adresse $4F et ainsi de suite.
Code caractère DD-RAM  Adresse CG-RAM à programmer 
$00
$01
$02
$03
$04
$05
$06
$07
$40 à $ 47 
$48 à $ 4F 
$50 à $ 57 
$58 à $ 5F 
$60 à $ 67 
$68 à $ 6F 
$70 à $ 77 
$78 à $ 7F 

Algorithme de programmation d'un caractère


Giampiero D'AQUINO
Enseignant en Génie Electronique - AVIGNON -