L'afficheur LCD

Nous allons maintenant apprendre à programmer un afficheur LCD de deux lignes de seize caractères.

Nous supposons évidemment que le montage a été effectué et vérifié sur la carte d'essai.

Le µC envoie les données par le port B (B0 ... B7) aux broches 7 à 14 de l'afficheur. Il y a aussi à gérer les broches 4 (RS) par portJ1, 5 (RW) par portJ0 et 6 (E) par portH4.

Le premier caractére de la première ligne a pour adresse $80, celui de la deuxième ligne $C0.

Jeu d'instructions de l'afficheur LCD.

Le module reçoit deux sortes de données : une instruction ou un caractère. La ligne de contrôle RS permet de préciser si la donnée est une instruction (RS=0) ou un caractère (RS=1). L'entrée E, active sur un front descendant, permet de valider la commande.

Le registre d'état BF est à 1 quand le module effectue une opération interne. Pendant ce temps il ne peut rien faire d'autre. Il faut attendre qu'il soit remis à zéro pour envoyer une nouvelle commande.

Effacer l'écran : code de l'instruction $01. L'écran se rempli de caractères espace (code $20).

Curseur au début : code de l'instruction $02. Le curseur est placé en première position sans changement de l'affichage.

Mode d'entrée :
I/D
incrément/décrément. après l'envoi d'un code de caractère le curseur se déplace d'un cran vers la droite si I/D=1 ou vers la gauche si I/D=0.
S (shift) si S=1 l'ensemble de l'affichage est décalé vers la gauche (si I/D=1) ou vers la droite (si I/D=0) le curseur restant dans sa position relative. S=0 : pas de décalage.

Affichage :
D l'affichage est visible si D=1, invisible si D=0.
C (Curseur) si C=1 le curseur est affiché à la position courante ; s'il est égal à 0 le curseur n'est pas visible.
B (Blink : clignotement) si B=1 le caractère à la position du curseur clignote.

Déplacement de Curseur/Affichage :
L'affichage et/ou le curseur se déplacent vers la droite ou la gauche.
S/C : le curseur se déplace si S/C=0. SI S/C=1 c'est tout l'affichage , curseur y compris, qui se déplace.
R/L : (Right/Left) déplacement vers la gauche si R/L=0, vers la droite si /L=1.

Mode de fonctionnement :
DL (data length) sélectionne la largeur du bus de donné DL=1 -> 8 digits, DL=0 -> 4 digits
N nombre de lignes N=0 -> 1 ligne, N=1 -> 2 lignes

Nous laisserons de côté les deux registres suivants pour commenter le registre :

Occupé/Lire adresse (BUZY, Adress Read) : dans ce registre le digit D7, BF, nous indique si l'afficheur est occupé, dans ce cas il est inutile de lui envoyer une autre commande. Nous pourrions mettre la broche R/W de l'afficheur au moins de l'alimentation et gérer nous-même la temporisation suivant les données du tableau ci-dessus, ce que nous faisions avant, mais nous utiliserons désormais la lecture de ce digit.

Référence : Revue LED n°149 Microcontrôleur 68HC11

Suite : Afficher un message

Retour sommaire Retour sommaire HC12