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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
VSS
VDD
V0
RS
R/W
E
D0
D1
D2
D3
D4
D5
D6
D7
-
-
-
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
Reglage contraste
L : Code instruction H : Donnee
H : Lecture L : Ecriture
Horloge



Bus de donnee Bidirectionnel*

* Lors de l'utilisation en mode 4 bits seul les bits D4 a D7 sont utilises. Les lignes correspondant de D0 a D4 sont laisses en l'air. On communique le quarte de poids fort puis de poids faible.

RACCORDEMENT A L'ALIMENTATION

Le potentiometre permet de regler le contraste de l'afficheur

SCHEMA FONCTIONNEL INTERNE

L'utilisateur a acces au :

Registre de donnees  : bidirectionnel, il reçoit les codes ASCII des caracteres a afficher. Les codes seront ensuite stockes dans la DD-RAM, d'une capacite de 80 octets. Le registre de donnees permet aussi de lire le contenu de la DD-RAM.
Registre de contrôle : destine a recevoir les consignes de contrôle, comme effacer l'afficheur, deplacer le curseur, etc... (accessible uniquement en ecriture).
Registre d'etat : destine a indiquer a l'utilisateur si le processeur interne est pret a recevoir une instruction (acces en lecture seule).

On trouve deux Memoires CG (Caractere Generate) :

  • La CG-ROM : c'est une ROM generatrice de caracteres qui fournit 192 motifs de caracteres differents en matrices de 5 x 7 points. La relation entre le code a transmettre et le motif du caractere est donne en annexe 2. Il faut signaler que la correspondance ASCII est respectee uniquement entre les codes $20 et $7D (voir code ASCII en annexe 1) c'est-a-dire pour les chiffres de 0 a 9, les lettres majuscules et minuscules, et enfin quelques couramment utilises.
  • La CG-RAM : c'est une RAM generatrice de caracteres a programmer qui fournit 8 motifs. On peut ainsi obtenir un jeu de 8 caracteres personnalise.
La DD-RAM reçoit les codes des caracteres a afficher. L'adresse a laquelle est place un code dans la DD RAM definit la position du caractere sur le panneau d'affichage. Le pointage d'un element dans la DD-RAM ou la CG-RAM est determine par un compteur d'adresses interne, accessible en lecture par l'utilisateur.

Cas d'un afficheur a deux lignes de caracteres :

Les adresses de la seconde ligne ne sont pas consecutives a celles de la premiere ligne de caracteres. Quand l'affichage est decale, les adresses se decalent uniquement vers la droite ou vers la gauche d'une meme ligne. Les adresses assignees a chacune des lignes sont les suivantes :

Ligne n°1 : $00
Ligne n°2 : $40

Cas d'un afficheur a une seule ligne de 16 caracteres Les adresses de la seconde moitie de la ligne ne sont pas consecutive a celles de la premiere moitie. Les adresses assignees a chacune des moities de lignes sont les suivantes :

Caracteres 1 a 8 : $00 a $07
Caracteres 9 a 16 : $40 a $47

Lignes de donnees D0 a D7 
Les donnees peuvent etre transmises sur 8 ou 4 bits. Dans ce dernier cas on utilise les lignes D4 a D7. On envoie d'abord le poids fort et ensuite le poids faible.

Ligne R/W
Unidirectionnelle, lors de l'ecriture d'un registre on la positionne a zero, pour une lecture on la positionne a 1.

Ligne RS
Unidirectionnelle, lors de l'envoie d'un code instruction on positionne la ligne a 0 lors de l'envoie d'un code caractere on positionne la ligne a 1.

Ligne E
Unidirectionnelle, elle permet de valider les donnees 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 0 0 0 0 0 0 0 0 1 1,64ms
Initialiser le curseur 0 0 0 0 0 0 0 0 1 * 1,64ms
Init deplacement curseur 0 0 0 0 0 0 0 1 I/D S 40µs
Affichage on/off 0 0 0 0 0 0 1 D C B 40µs
Decaler Curseur/Affichage 0 0 0 0 0 1 S/C R/L * * 40µs
Init mode de fonctionnement 0 0 0 0 1 DL N 0 * * 40µs
Positionner Adresse CG-RAM 0 0 0 1 A-CG 40µs
Positionner Adresse DD-RAM 0 0 1 A-DD 40µs
Lecture Reg. Etat Compteur adresse 0 1 BF AC 0
Ecriture CG-RAM DD-RAM 1 0 Write DATA 40µs
Lecture CG-RAM DD-RAM 1 1 Read DATA 40µs

Effacer l'affichage
La DD-RAM est remplie avec le code 520 (Espace). Le compteur d'adresse est remis a zero. Si l'affichage a ete decale, la position initiale est retablie.
Apres execution de cette instruction, l'affichage disparait et le curseur est ramene a la position situee en haut a gauche.

Initialiser le curseur
Le compteur d'adresse est remis a zero. Si l'affichage a ete decale, la position initiale est retablie.
Le contenu de la DD-RAM n'est pas modifie. Le curseur ou le clignotement du caractere, si active, est ramene a sa position initiale.

Init deplacement curseur
I/D (lnc./Dec.) : lorsqu'on envoie un code de caractere a afficher, le curseur se deplace d'une position d'affichage vers la droite (1/D = 1) ou la gauche (1/D = 0).
Ce fonctionnement est valable egalement quand une donnee est lue ou ecrite dans la CG-RAM.
S (Shift) : Quand S = 1, l'ensemble de l'affichage est decale d'une position vers la gauche (1/D = 1) ou la droite (1/D = 0) apres ecriture d'un code de caractere dans la DD-RAM.
Le curseur garde la meme position relative sur l'afficheur. Si S = 0, l'affichage n'est pas decale.
Remarque : Quand un decalage d'affichage est execute, les 2 lignes sont decalees simultanement.
Quand l'operation de decalage de l'affichage est repetee, les caracteres d'une ligne ne sont pas deplaces vers l'autre ligne mais sont reboucles sur la meme ligne.

Affichage on/off
D (Display) : l'affichage est allume si D = 1. Quand D = 0, l'affichage est eteint, mais les codes de caracteres sont conserves dans la DD-RAM.
C (Cursor) : le curseur est affiche a 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 caractere a la position du curseur clignote a 1,2 Hz environ.

Decaler Curseur/Affichage
L'affichage et/ou le curseur sont decales vers la droite ou la gauche. Pour un afficheur a deux lignes, le curseur se deplace de la 40eme position de la ligne du haut a la premiere position de la seconde ligne.
A la fin de la seconde ligne (adresse $67), le curseur ne retourne pas a l'adresse $00 mais a la premiere position de la seconde ligne (adresse $40).
S/C (Shift/Cursor) : deplacement du curseur si S/C = 0. Lorsque S/C = 1, c'est tout l'affichage, avec le curseur, qui est decale.
R/L (RightlLeft) : decalage vers la gauche (R/L = 0), ou vers la droite (WL = 1).

Init mode de fonctionnement
DL (Data Length) selectionne la largeur du bus de donnees : 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 etre executee au debut du programme du microprocesseur, avant toute autre instruction (a l'exception de l'instruction de lecture du bit d'etat 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 donnees pourra ensuite etre realise 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 donnees pourra ensuite etre realise entre le microcontrôleur et la DD RAM.

Lecture Reg. Etat Compteur adresse
Le bit BF (busy flag) ne peut etre que lu et indique si le module est occupe par le traitement d'une instruction. BF = 1 indique l'etat occupe (operation interne) et une nouvelle instruction ne sera pas acceptee tant que BF ne sera pas egal a 0.
Cette instruction lit aussi le contenu du compteur d'adresses, exprime 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 derniere instruction d'adressage executee.

Ecriture CG-RAM DD-RAM
Une donnee de 8 bits est ecrite dans la CG-RAM ou la DD-RAM selon l'adresse specifiee par le compteur d'adresses. Apres ecriture de la donnee dans la RAM, le compteur d'adresses est incremente ou decremente selon le mode d'entree predefini.

Lecture CG-RAM DD-RAM
Une donnee de 8 bits est lue dans la DD-RAM ou la CG-RAM selon la derniere instruction d'adressage executee, a l'emplacement indique par le compteur d'adresses. Cette instruction doit etre precedee par une instruction de positionnement d'adresse dans l'une des deux "RAM", ou une instruction de decalage du curseur.

A la mise sous tension, le module execute une procedure d'initialisation automatique, qui assure les fonctions suivantes :

  • Effacement de la DD-RAM
  • Extinction de l'afficheur.
  • Format des donnees : 8 bits.
  • Affichage sur une seule ligne.
  • Curseur fixe.
  • Deplacement du curseur vers la droite a chaque ecriture de caractere.

Pendant cette phase d'initialisation, qui dure environ 15 ms, le bit d'etat est mis a l'etat haut.
Il est toutefois preferable d'assurer l'initialisation du module par programmation avant d'envoyer les premiers caracteres au module.

CHRONOGRAMMES :

Pour piloter l'afficheur il faut respecter les chronogrammes suivants :

Envoi d'une instruction, la ligne R/W est en ecriture (R/W=0)

Envoi d'un caratere, la ligne R/W est en ecriture (R/W=0)

Lecture du registre d'etat (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 procedures specialisees en 4 bits seront decrites separement.

ORGANIGRAMMES 8 bits





ORGANIGRAMMES 4 bits




Remarque :

Les procedures " Validation instruction " et " Validation caractere " doivent respecter le temps tw de 450 ns (duree a l'etat haut de E). Pour l'utilisation du HC11 avec un quartz de 8MHz, un cycle d'horloge dure 500 ns. Pour executer 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 respecte. Il en va de meme 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 capacite de 64 octets, offre 8 matrices de 5x8 points qui peuvent etre programmees par l'utilisateur. L'espace adressable donnant acces a ces caracteres de la DD-RAM va de l'adresse $00 a $07, sa zone image $08 a $0F. Programmation d'un caractere : chaque caractere occupe 8 octets. Un pixel devant apparaitre en noir sera positionne a 1.

Ainsi pour programme le caractere ci dessous il faudra ecrire dans la CG-Ram les codes, $1F a l'adresse $40, $03 a l'adresse$41, …., et $10 a l'adresse $47. Le caractere suivant occupera les adresses CG-RAM $48 a l'adresse $4F et ainsi de suite.

Code caractere DD-RAM Adresse CG-RAM a programmer
$00
$01
$02
$03
$04
$05
$06
$07
$40 a $ 47
$48 a $ 4F
$50 a $ 57
$58 a $ 5F
$60 a $ 67
$68 a $ 6F
$70 a $ 77
$78 a $ 7F

Algorithme de programmation d'un caractere

Retour Sommaire Microcontroleur


Giampiero D'AQUINO
Enseignant en Genie Electronique