Introduction

Nous allons aborder dans cette partie l'utilisation des afficheurs LCD ou Liquid Crystal Display (Ecran à cristaux liquide).

Cette partie, me tient particulièrement à cœurs, car dans tous vos montage, elle sera l'unique partie visible et c'est la dessus que l'on jugera votre réalisation. Je vais donc vous dévoiler tous mes secrets, pour que vos réalisation soient d'un niveau professionnel.

 

Description

Depuis de nombreuses années, les fabricants ont standardisé les afficheurs LCD sous forme de modules à logique intégré, avec un brochage et un mode de fonctionnement identique quelque soit le fabricant. Cela grâce au microcontrôleur qui est associé à l’écran et qui en assure le bon fonctionnement : la référence en la matière est le HD44780 de Hitachi.

L'afficheur LCD permet d'afficher des caractères ASCII, sur 8,16, 20 ou 40 colonnes, et de 1 à 8 lignes.
En gros il existe 2 modèles d'interfaces normalisées : Une version "parallèle" et une version série.

Toutefois, le protocole de communication et l'utilisation des registres spécifiques de l'afficheur ne sont pas d'un maniement très aisée pour le profane, d'où l'intérêt des modules série ELCD et ALCD de LEXTRONIC .

Certains sont dotés d'un rétro éclairage de l'affichage. Cette fonction fait appel à des LED montées derrière l'écran du module, cependant, cet éclairage est gourmand en énergie.

 

Numéro de broche de l'afficheur LCD

Fonction

Appellation

1

Masse

VSS

2

+ 5 volts

VDD

3

Contraste

VO

4

Commande / Donnée

RS

5

Lecture / Ecriture

R/W

6

Validation LCD

E

7

Donnée D0

D0

8

Donnée D1

D1

9

Donnée D2

D2

10

Donnée D3

D3

11

Donnée D4

D4

12

Donnée D5

D5

13

Donnée D6

D6

14

Donnée D7

D7


15

Anode rétro-éclairage

A

16

Cathode rétro-éclairage

C

Brochage normalisée des afficheurs LCD Alphanumérique

 

 

 

 

 

 

 

 

 

 

L'afficheur LCD comporte d'autres composants que l'écran à cristaux liquides (LCD) . Un µC intégré de commande spécialisé, le LCD-controller, est chargé de la gestion du module. Le LCD-controller remplit une double fonction: d'une part il commande l'affichage et de l'autre se charge de la communication avec l'extérieur

 

 

Modules afficheurs LCD à commandes séries

ELCD

Ces afficheurs LCD "économiques" à commandes séries sont dotés de 3 fils de communication (alimentation: +5V / masse / entrée série). Ils pourront très facilement être pilotés par un module "PICBASIC" au moyen d'ordres séries au format 8 bits (sans parité avec 1 bit de stop) avec un débit de 19200 ou 4800 bds, sans que vous ayez à vous soucier du mode de pilotage et du fonctionnement proprement dit des afficheurs. La sélection de la vitesse de communication se fait au moyen d'un pontet de soudure sur le circuit imprimé.

Disponibles avec ou sans rétro-éclairage, en versions: 2 x 16, 4 x 16 et 4 x 20 caractères, ces modèles se composent en fait d'un afficheur à pilotage parallèle standard associé à une petite platine de gestion "série" (raccordée au dos de l'afficheur). Un potentiomètre assure le réglage du contraste de l'écran. L'ensemble s'alimente sous une tension de +5 V.

 

Module ELCD

 

ALCD

Les afficheurs "ALCD" (Advanced LCD) correspondent à des versions plus évoluées des modèles "ELCD" (Economic LCD). Ils sont également destinés à être très facilement pilotés par des ordres séries à partir d'un module PICBASIC  sans que vous ayez proprement dit à vous soucier de la gestion et du mode de pilotage de l'afficheur

Disponibles en versions rétro-éclairés: 2 x 16, 4 x 16, 4 x 20, 2 x 40 et 4 x 40 caractères, ces modèles se composent en fait d'un afficheur à pilotage parallèle standard associé à une petite platine de gestion "série" (raccordée au dos de l'afficheur). Un potentiomètre assure le réglage du contraste de l'écran. L'ensemble s'alimente sous une tension de +5 V.

Ces modèles sont entièrement compatibles vis-à-vis des ordres séries des afficheurs "ELCD" avec toutefois une multitude de possibilités supplémentaires:
   
- Activation / Désactivation du rétro-éclairage par des commandes "séries".
  
- Sélection de la vitesse de communication (2400 bds à 115200 bds par cavalier lorsque le module
  est relié à un PC) et 19200 bds fixe si vous l'utilisez avec un PICBASIC ou un microcontrôleur.
  
- Entrées 3 fils (+5 V alim. / RX / masse) sur connecteur pour pilotage par un microcontrôleur ou un
  module "PICBASIC".
 
- Entrées 4 fils (avec convertisseur Max-232 intégré) pour utilisation directe avec un PC ou tout système doté d'un port de communication aux niveaux logiques (+/- 10 V). En utilisant ce connecteur, vous disposez d'une broche sur laquelle l'afficheur renvoie un "mot" série de confirmation à chaque fois qu'il a exécuté une fonction et qu'il est prêt à recevoir un autre ordre. Les signaux présents sur ce connecteur sont: + 5V, entrée de commande série, sortie de confirmation, masse.
 

Module ALCD

 

Afficheurs LCD 4x40 avec module ALCD

 

INSTRUCTIONS


Suivant le type de module PICABSIC, vous disposez de plusieurs instructions qui vous permettrons de piloter ces afficheurs:  

LCDINIT Initialisation de l'afficheur
CLS Effacement de l'écran

LOCATE

Positionnement à un endroit de l'afficheur
PRINT Affiche quelque chose à l'écran
PRINT DEC Affiche valeur décimale d'une variable (sur PICBASIC série 1 / 2 / 3)
PRINT HEX Affiche valeur décimale d'une variable (sur PICBASIC série 1 / 2 / 3)
CSRON Le curseur est visible
CSROFF Le curseur est invisible
 
BUSOUT Envoi de commande série directe (exemple pour redéfinition caractères)
SET PICBUS Sélectionne vitesse de communication de l'afficheur.
BUSOUT &HA3;&H0B

Clignotement du curseur, pour ALCD uniquement

  BUSOUT &HA3;&H0B Arrêt clignotement du curseur, pour ALCD uniquement
  BUSOUT &HA5;&H01 Activation du rétro-éclairage, pour ALCD uniquement
  BUSOUT &HA5;&H01 Désactivation du rétro-éclairage, pour ALCD uniquement

 

Vous pouvez télécharger la notice de ALCD (en anglais)   et de ELCD toujours (en anglais)

 

 

Caractères personnalisés

La mémoire d’affichage des caractères à l’écran : la DDRAM  est composée de 80 registres (de 8 bits) qui sont divisés en 2 groupes : un premier groupe numéroté de 00h à 27h et un second groupe numéroté de 40h à 67h. 

Chaque registre correspond à 1 caractère affiché.

 La mémoire du générateur de caractère elle-même subdivisée en  CGROM (200 caractères prédéfinis environ) et CGRAM (8 caractères à définir).

La mémoire « ROM » du générateur de caractère « ROM » appelée CGROM, correspond aux caractères prédéfinis par le constructeur, environ 200 caractères, incluant les chiffres, les lettres, les symboles mathématiques, les lettres japonaises et même les lettres grecques.

 

 

Contenue de la mémoire CGROM

 

Affichage caractères en ROM

Pour affiché un des caractères spéciaux du tableau ci dessus, il suffit d'utiliser directement l'instruction BUSOUT &HA2,&HCL,&H00.

 C étant le numéro de colonne en héxa (0 à F) dans le tableau ci-dessus et  L pour les lignes.

 

EXEMPLES :

BUSOUT &HA2,&HDB,&H00         ' affiche un carré vide qui ce trouve à la colonne D et ligne B

BUSOUT &HA2,&F4,&H00             ' affiche le sigle oméga qui ce trouve à la colonne F et ligne 4

BUSOUT &HA2,&H7E,&H00          ' affiche une flèche vers la droite qui ce trouve à la colonne 7 et ligne E

BUSOUT &HA2,&H7F,&H00          ' affiche une flèche vers la gauche qui ce trouve à la colonne 7 et ligne F

 

Mise en mémoire RAM

La mémoire « RAM » du générateur de caractère appelée CGRAM, correspond à 8 caractères que l’utilisateur peut programmer à sa guise.

 Pour personnaliser vos programmes vous pouvez créer vos propre caractères ou symboles et les mettre en mémoire dans la CGRAM (8 maximum).

Avec l'instruction  BUSOUT &HA5,y,x,x,x,x,x,x,x,x vous allez entrer dans la mémoire du LCD les informations concernant votre caractère, mais il ne s'affichera pas, il est simplement stocké en RAM.

"y" étant le numéro de l'emplacement mémoire de 1 à 8 et les "x" sont des valeurs permettant de représenter votre caractère dans une matrice de 8 x 5 pixels.

 

 
Dans le cadre ci contre l'exemple du caractère "è" avec sur la gauche des valeurs qui sont extraite de la table de droite.

Par exemple une ligne de 5 pixels vide est égal à 0 et 31 si les pixels sont pleins.

Pour mettre en mémoire N° 8 ce "è" : BUSOUT &HA5,8,8,4,14,17,31,16,14,0

 

Un autre exemple du chiffre "1" inversé, écriture blanche sur fond noir.

Toujours la même chose déterminer la valeur de chaque ligne avec la table.

Ce qui nous donne BUSOUT &HA5,1,31,27,19,27,27,17,31,31 en mémoire N°1

 

BUSOUT &HA5,4,31,31,27,17,0,31,31,31 pour cette petite flèche vers le haut en mémoire N°4.

 

 

Pour mieux comprendre voici plusieurs page à télécharger avec de très nombreux exemples

 

 - Page 1    - Page 2    - Page 3      

- Page vierge pour vos essais

 

Vous voilà maintenant avec probablement 8 caractères ou symboles en mémoire, cette mise en mémoire peut être faite en début de programme.

Si vous avez besoins de plus de 8 caractères, vous pouvez faire plusieurs sous programmes que vous appellerez au fur et à mesure de vos besoin.

 

EXEMPLES :

' ================ CARACTERES SPECIAUX ================

NAUT:                    ' Caracteres menu principale

BUSOUT &HA5,8,2,4,14,17,31,16,14,0             ' e avec accent <
BUSOUT &HA5,1,19,27,27,31,31,27,27,25       ' N gras
BUSOUT &HA5,2,14,27,27,27,31,31,27,27       ' A gras
BUSOUT &HA5,3,27,27,27,27,27,27,31,14       ' U gras
BUSOUT &HA5,4,31,31,12,12,12,12,12,12       ' T gras
BUSOUT &HA5,5,30,30,12,12,12,12,30,30       ' I gras
BUSOUT &HA5,6,24,24,24,24,24,24,31,31       ' L gras
BUSOUT &HA5,7,31,31,24,30,30,24,31,31       ' E gras

RETURN

CARACT:             ' Caracteres menu secondaire

BUSOUT &HA5,8,8,4,14,1,15,17,15,0               ' a avec accent
BUSOUT &HA5,1,8,4,14,17,31,16,14,0             ' e avec accent <
BUSOUT &HA5,2,2,4,14,17,31,16,14,0             ' e avec accent >
BUSOUT &HA5,3,8,12,15,31,15,12,8,0             ' Petite Haut Parleur
BUSOUT &HA5,4,0,14,21,23,17,14,0,0             ' Petite horloge 12H15
BUSOUT &HA5,5,31,16,16,16,16,16,16,31       ' dedut du bargraph
BUSOUT &HA5,6,31,0,0,0,0,0,0,31                   ' partie central bargraph
BUSOUT &HA5,7,31,1,1,1,1,1,1,31                   ' fin du bargraph

RETURN

CARACTM:            'caracteres inverse

BUSOUT &HA5,8,31,27,19,27,27,17,31,31         '1 inverse
BUSOUT &HA5,1,31,19,29,27,23,17,31,31         '2        "
BUSOUT &HA5,2,31,19,29,19,29,19,31,31         '3        "
BUSOUT &HA5,3,31,21,21,17,29,29,31,31         '4        "
BUSOUT &HA5,4,31,17,23,19,29,19,31,31         '5        "
BUSOUT &HA5,5,31,25,23,19,21,25,31,31         '6        "
BUSOUT &HA5,6,31,17,29,27,27,27,31,31         '7        "
BUSOUT &HA5,7,31,19,21,27,21,25,31,31         '8        "

RETURN

Il vous suffit dans votre programme de recharger en CGRAM les différents groupe de caractères avec :

GOSUB CARACT ou GOSUB CARACTM ou GOSUB NAUT

 

 

Affichage caractères mis en mémoire CGRAM

BUSOUT &HA2,&H0x,&H00, "x" étant le numéro de la mémoire (de 1à 8)

 

EXEMPLES :

BUSOUT &HA2,&H03,&H00      Affiche directement le caractères qui est en mémoire N°3

BUSOUT &HA2,&H08,&H00      Affiche directement le caractères qui est en mémoire N°8

BUSOUT &HA2,&H07,&H00      Affiche directement le caractères qui est en mémoire N°7

 

EXEMPLES :

CONST DEVICE = R5

SET PICBUS HIGH

LCDINIT
CSROFF

BUSOUT &HA5,2,2,4,14,17,31,16,14,0             ' mise en mémoire N°2 du é

LOCATE 0,0

PRINT " Batterie d"
BUSOUT &HA2,&H02,&H00                                ' Affichage du é en mémoire N°2
PRINT "charg"
BUSOUT &HA2,&H02,&H00                                ' Affichage du é en mémoire N°2
PRINT "e "

Ce qui affiche sur le LCD " Batterie déchargée "

 

 

Afficheur graphique GHLCD

Une nouvelle génération d'afficheur graphique compatible avec les PICBASIC arrive.

A suivre ......

 

Retour page principale