Utilisation des écrans LCD ************************** 1 - Généralités *************** Ce petit guide a pour but de donner une initiation à l'utilisation des écrans LCDs qui utilisent le circuit de contrôle Hitachi HD44780 (ou compatible). Ces afficheurs existent en différentes constructions au niveau des contrastes et du rétroéclairage.Cela va de l'affichage "normal" à l"affichage "haut contraste - multi-angles", et pour le rétroéclairage il existe soit le rétroéclairage à LED, soit le rétroéclairage electro luminescent qui requier une haute tension (entre 70 et 100 volts AC). Ces afficheurs existent en six longueurs de ligne (8, 16, 20, 24, 32 et 40 caractères) et avec de 1,2 ou 4 lignes. Mais au total, le nombre de caractères ne peut dépasser 80. C'est une limitation du contrôleur Hitachi. Certains fabricants proposent des afficheurs de 4 lignes de 24 cractères, 4 lignes de 32 caractères, ou 4 lignes de 40 caractères. Dans ce cas, il y a deux contrôleurs Hitachi qui s'occupent chacun de 2 lignes. Chaque caractère est défini dans une matrice de 5 X 10 pixels ou 5 X 8 pixels. Pour que le module puisse afficher les caractères, ceux-ci sont définis dans une mémoire "table de caractère" qui contient le dessin de tous les caractères imprimables . Cette mémoire est définie par un adressage sur 8 bits, soit 256 caractères. Ce qui est intéressant, c'est que les 8 premiers caractères sont en fait des caractères définissables par l'utilisateur dans une RAM, cette mémoire est d'ailleurs définie dans les datasheets comme CGRAM (Caracter Graphic RAM), et elle a une taille de 8 caractères X 8 octets : soit 64 octets. Si nous faisons la "carte mémoire" de la mémoire caractère, nous trouvons : de 00 à 07 : mémoire définissable par l'utilsateur de 08 à 0F : copie de la mémoire utilisateur de 10 à 1F : non utilisé pour les caractères de 20 à 3F : Sigles et chiffres de 40 à 5F : Caractères majuscules + quelques sigles de 60 à 7F : Caractères minuscules + quelques sigles de 80 à 9F : non utilisés pour les caractères de A0 à DF : Caractères japonais katakana (he oui, Hitachi!!) de E0 à FF : Divers caractères grecs, accentués et minuscules descendantes. Vous trouverez en annexe une table de caractère. Cette table a été conçue de telle manière à ce que les codes utilisés pour les 128 premiers caractères soient le code ASCII universellement utilisé en programmation. Notez que pour pouvoir utiliser les minuscules descendantes, vous devez définir l'afficheur dans une matrice 5X10. Pour pouvoir afficher les caratères, le controleur possède une mémoire de 128 octets appellée DDRAM qui contient les codes des caractères à imprimer. Utilisation des écrans LCD ************************** 2 - Connectique *************** D'une manière générale, les modules possèdent un connecteur 14 broches soit en ligne, soit en double ligne. Voici si dessous le brochage de ces 2 modèles *----------------------------------- | O /------------------------------- 1 - Vss - Masse | | | | 2 - Vdd - Alimentation | | | \------------------------------- 3 - Vee - Contrast | O ° ° ° ° ° ° ° ° ° ° ° ° ° ° *----------------------------------- 4 - RS - Register Select 14 - - - - - - 1 5 - R/W - Read/Write *----------------------------------- | O 6 - E - Enable | /------------------------- |14 ° °13 | 7 - D0 - Data bit 0 | ° ° | 8 - D1 - Data bit 1 | ° ° | 9 - D2 - Data bit 2 | ° ° | 10 - D3 - Data bit 3 | ° ° | 11 - D4 - Data bit 4 | ° ° | 12 - D5 - Data bit 5 | ° ° | 13 - D6 - Data bit 6 | 2° °1 | 14 - D7 - Data bit 7 | \------------------------- | O *----------------------------------- Sur la grande majorité des afficheurs, les connexions sont notées. Alimentation ------------ Les pins 1, 2 et 3 sont les pins d'alimentation Les pins 1 (vss) et 2 (vdd) reprennent l'alimentation. Bien que la tension nominale est de 5 volts, la plupart des afficheurs fonctionnent correctement entre 4.5 et 6 volts. Et sur certains modules, la tension d'alimentation peut monter à 7 volts, et sur d'autre une tension de 3 volts permet un fonctionnement correct. La lecture du Datasheet de l'afficheur vous donnera tous les renseignements à ce sujet. La pin 3 (vee) est la commande de contraste. Habituellement, cette entrée est tirée à la masse par une résistance variable de 4K7 qui permet de régler le contraste. Sur certains modules (en général des modules plus anciens), cette entrée doit être mise sur une tension négative jusqu'à moins 7 volts. Dans ce cas, il faudra prévoir une tension négative dans le montage, et mettre l'entrée Vee à cette tension négative à travers la résistance variable de 4K7. Par contre, lorsqu'un réglage de contraste n'est pas nécessaire, le simple fait de raccorder le pin Vee à la masse sera suffisant. Utilisation des écrans LCD ************************** 2 - Connectique (suite) *********************** Contrôle du BUS --------------- Les pins 4, 5 et 7 sont les pins de contrôle du bus. La pin 4, "Resgister Select" ou RS, permet de définir le mode de travail de la commande de l'afficheur. Lorsque cette ligne est mise à l'état bas, les octets envoyés à l'afficheur sont interprétés comme une commande, et les octets reçus sont traités comme des statuts. Lorsque cette ligne est poussée à l'état haut, les octets envoyés et reçus du module sont interprétés comme des caractères La pin 5, "Read/Write" ou R/W, définit les sens de la commande. Lorsque cette ligne est mise à l'état bas, l'octet de commande ou de caractère est envoyé vers le module LCD, et lorsque cette ligne est mise à l'état haut, l'octet de statuts ou de caractère est lu du module LCD vers le contrôleur. La pin 6, "Enable" ou E, est utilisée pour activer le transfert de la commande présente aux autres pins. Lors de transferts en écriture vers le module LCD, c'est la transition Haut->Bas sur cette pin qui valide le transfert. Lors de transferts en lecture venant du module LCD, c'est la transition Bas->Haut qui met les valeurs disponibles en sortie, et elles le restent jusqu'au moment ou le niveau de la pin 6 redescend à zéro. Connexion des données --------------------- Les données qui sont lues ou écrites vers le modules LCD sont envoyés par les pins 7 à 14 qui reprennent les respectivement les bits 0 à 7. Pour avoir une compatibilité avec les processeurs 4 bits, les modules LCDs peuvent fonctionner en mode 4 bits. Dans ce mode, seuls les bits D4 à D7 sont utilisés, ce qui permet un fonctionnement complet des données et des commandes sur ces 4 seuls bits. Aujourd'hui, les processeurs 4 bits ayant disparus, ce mode sera surtout utilisé lors de l'utilisation de microcontrôleurs, là où le nombre de pins d'entrée/sortie est compté. Évidemment, chaque lecture ou écriture devra se faire en deux temps ce qui ralentira le process. Mais dans la majorité des cas, cette perte de temps n'aura pas de conséquence notable sur la vitesse du programme. Note pour les grands afficheurs ------------------------------- Sur certains modules LCD de plus de 80 caractères, un deuxième contrôleur est ajouté pour le contrôler, 2 pins supplémentaires sont ajoutées avant les pins 1 et 2. Nous les appellerons 0 et -1. Dans ce cas, la pin -1 n'est pas connectée, et la pin 0 est utilisée comme enable du second contrôleur Hitachi. En d'autres termes, la pin 6 sera appelée E1 (enable 1), validera le premier contrôleur et sera utilisée pour les lignes 1&2, par contre la pin 0 sera appelée E2, elle validera le second contrôleur, et elle sera utilisée pour les lignes 3 & 4 Utilisation des écrans LCD ************************** 3 - Timmings ************ Paramètres de timing du HD44780 ------------------------------- ----\ |-------------------------------\ |-------------------------------- \ /| \ /| RS X | RS VALID X | / \| / \| ----/ |-------------------------------/ |-------------------------------- |<-tAS->| | ----\ |-------|-----------------------\ |-------------------------------- \ /| | \ /| R/W X | | R/W VALID X | / \| | / \| ----/ |-------|-----------------------/ |-------------------------------- | |<-------tEH------->| | | |-------------------| ->| |<-tAH | /-- tRF->| /|<- |\ | | / E | / | | \ |<------------tEL------------>| / |/ | | \| |/ ------------| | | |-----------------------------| |<--tDA-->|<--tDS-->| ->| |<-tDH ----------------------\ |-----------------| /---------------------------- \ /| |\ / DATA (D0 à D7) X | DATA VALID | X / \| |/ \ ----------------------/ |-----------------| \---------------------------- tAS - 140 nS min - Adress set up time - Temps d'activation d'adresse tAH - 10 nS min - Adress hold time - Temps de maintient d'adresse tDS - 200 nS min - Data set up time - Temps d'activation de donnée tDH - 20 nS min - Data hold time - Temps de maintient de donnée tDA - 320 nS max - Data access time - Temps d'accès de donnée tEH - 450 nS min - Enable high time - Temps d'Enable haut tEL - 500 nS min - Enable low time - Temps d'Enable bas tRF - 25 nS max - Rise/Fall time - Temps de montée et de descente Utilisation des écrans LCD ************************** 4 - Commandes ************* Tableau des commandes du HD44780 -------------------------------- Commande - Binaire - Hexa - Décimal Bits 7 6 5 4 3 2 1 0 Effacement de l'écran - 0 0 0 0 0 0 0 1 - 01 - (1) Affichage et initialisation du curseur - 0 0 0 0 0 0 1 X - 02->03 - (2->3) Mode d'entrée de caractère - 0 0 0 0 0 1 A B - 04->07 - (4->7) Affichage du curseur - 0 0 0 0 1 C D E - 08->0F - (8->15) Affichage / Décalage du curseur - 0 0 0 1 F G X X - 10->1F - (16->31) Commande de fonction - 0 0 1 H I J X X - 20->3F - (32->63) Commande d'adressage de la CGRAM - 0 1 Y Y Y Y Y Y - 40->7F - (64->127) Commande d'adressage de l'affichage - 1 Z Z Z Z Z Z Z - 80->FF - (128->255) X - Pas d'importance Mode d'entrée de caractère A - (*) 1 = Augmente : 0 = Diminue B - (*) 1 = Décalage de l'affichage ON : 0 = Décalage OFF Affichage du curseur C - (*) 1 = Affichage ON : 0 = Affichage OFF D - (*) 1 = Augmente : 0 = Diminue E - (*) 1 = Curseur Clignotant : 0 = Curseur Continu Affichage / Décalage du curseur F - 1 = Décalage de l'affichage : 0 = Décalage du curseur G - 1 = Décalage vers la droite : 0 = Décalage vers la droite Commande de fonction H - (*) 1 = Interface 8 Bits : 0 = Interface 4 bits I - (*) 1 = Mode 2 lignes : 0 = Mode 1 ligne J - (*) 1 = Matrice caractère 5X10 : 0 = Matrice 5X8 Commande d'adressage de la CGRAM Y - Adresse d'un des 64 octet de la CGRAM Commande d'adressage de l'affichage Z - Adresse d'un des 128 caractère de l'afficheur (DDRAM) (*)- Commande d'initialisation Les commandes d'initialisation sont utilisées pour "programmer" le module dans le mode choisi. Temps d'exécution maximum des commandes pour le HD44780 ------------------------------------------------------- Instruction Temps Effacement de l'écran 1.64ms Affichage et initialisation du curseur 1.64ms Mode d'entrée de caractère 40µs Affichage du curseur 40µs Affichage / Décalage du curseur 40µs Commande de fonction 40µs Commande d'adressage de la CGRAM 40µs Commande d'adresse d'affichage 40µs Ecriture d'une donnée 40µs Lecture d'une donnée 40µs Lecture d'un status 1µs Utilisation des écrans LCD ************************** 5 - Initialisation ****************** Lors de la mise sous tension, il est possible que l'élévation de la tension d'alimentation se fasse trop lentement provoquant un fonctionnement instable du module LCD. Pour éviter ce problème, Hitachi recommande une initialisation software. Il y a deux modes d'initialisation suivant que l'on veut utiliser le module LCD en mode 8 bits ou en mode 4 bits. En mode 8 bits, la séquence est la suivante : - Allumage du module LCD - Attendre plus de 40 ms après que Vcc a atteint 2.7 volts, ou plus de 15 ms après que Vcc a atteint 4.5 Volts - Envoi d'une commande : RS,R/W - B7,B6,B5,B4,B3,B2,B1,B0 = 00-0011xxxx - Attendre plus de 4.1 ms - Envoi d'une commande : RS,R/W - B7,B6,B5,B4,B3,B2,B1,B0 = 00-0011xxxx - Attendre plus de 100 µs - Envoi d'une commande : RS,R/W - B7,B6,B5,B4,B3,B2,B1,B0 = 00-0011xxxx - Envoi de la séquence : RS,R/W - B7,B6,B5,B4,B3,B2,B1,B0 = 00-0011IJxx (commande de fonction : interface, mode et matrice) RS,R/W - B7,B6,B5,B4,B3,B2,B1,B0 = 00-00001000 (Extinction du curseur) RS,R/W - B7,B6,B5,B4,B3,B2,B1,B0 = 00-00000001 (Effacement de l'écran) RS,R/W - B7,B6,B5,B4,B3,B2,B1,B0 = 00-000001AB (Mode d'entrée de caractère) - Fin de la séquence d'initialisation En mode 4 bits, la séquence est la suivante - Allumage du module LCD - Attendre plus de 40 ms après que Vcc a atteint 2.7 volts, ou plus de 15 ms après que Vcc a atteint 4.5 volts - Envoi d'une commande : RS,R/W,B7,B6,B5,B4 = 00-0011 - Attendre plus de 4.1 ms - Envoi d'une commande : RS,R/W,B7,B6,B5,B4 = 00-0011 - Attendre plus de 100 µs - Envoi d'une commande : RS,R/W,B7,B6,B5,B4 = 00-0011 - Envoi d'une séquence : RS,R/W,B7,B6,B5,B4 = 00-0010 RS,R/W,B7,B6,B5,B4 = 00-0010 RS,R/W,B7,B6,B5,B4 = 00-IJxx (commande de fonction : interface, mode et matrice) RS,R/W,B7,B6,B5,B4 = 00-0000 RS,R/W,B7,B6,B5,B4 = 00-1000 (Extinction du curseur) RS,R/W,B7,B6,B5,B4 = 00-0000 RS,R/W,B7,B6,B5,B4 = 00-0001 (Effacement de l'écran) RS,R/W,B7,B6,B5,B4 = 00-0000 RS,R/W,B7,B6,B5,B4 = 00-01AB (Mode d'entrée de caractère) - Fin de la séquence d'initialisation Utilisation des écrans LCD ************************** 6 - Adressage Ecran ******************* Comme nous le savons le contrôleur Hitachi HD44780 possède une mémoire d'écran de 128 octets. Mais, ce qu'il faut savoir, c'est que seul 80 caractères sont affichables. Le mode 1 ligne, est utilisé pour les afficheurs possédant une seule ligne, et le mode d'adressage est linéaire et évident : 1 ligne (adresses DDRAM en Hexa) 1 2 3 4 5 6 7 8 9 10 / /8 29 30 31 32 33 34 35 36 37 38 39 40 /------------------------------/ /---------------------------------------\ |*--*--*--*--*--*--*--*--*--*-/ /*--*--*--*--*--*--*--*--*--*--*--*--*--*| ||00|01|02|03|04|05|06|07|08|/ /A|1B|1C|1D|1E|1F|20|21|22|23|24|25|26|27|| || | | | | | | | | / / | | | | | | | | | | | | | || |*--*--*--*--*--*--*--*--*-/ /*--*--*--*--*--*--*--*--*--*--*--*--*--*--*| \-------------------------/ /--------------------------------------------/ Le mode 2 lignes est utilisé pour les afficheurs de 2 et 4 lignes. Sur les afficheurs 2 lignes, l'adressage de la première ligne commence en $00, et l'affichage de la deuxième ligne commence toujours en $40 : 2 lignes (adresses DDRAM en Hexa) 1 2 3 4 5 6 7 8 9 10 / /8 29 30 31 32 33 34 35 36 37 38 39 40 /------------------------------/ /---------------------------------------\ |*--*--*--*--*--*--*--*--*--*-/ /*--*--*--*--*--*--*--*--*--*--*--*--*--*| ||00|01|02|03|04|05|06|07|08|/ /A|1B|1C|1D|1E|1F|20|21|22|23|24|25|26|27|| || | | | | | | | | / / | | | | | | | | | | | | | || |*--*--*--*--*--*--*--*--*-/ /*--*--*--*--*--*--*--*--*--*--*--*--*--*--*| ||40|41|42|43|44|45|46|47|/ /0|5A|5B|5C|5D|5E|5F|60|61|62|63|64|65|66|67|| || | | | | | | | / / | | | | | | | | | | | | | | || |*--*--*--*--*--*--*--*-/ /*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*| \----------------------/ /-----------------------------------------------/ Sur les afficheurs 4 lignes, l'adressage de la 1ère ligne commence en $00, l'adressage de la 2ème en $40, la 3ème en $14 et la 4ème en $54 : 4 lignes (adresses DDRAM en Hexa) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /-------------------------------------------------------------\ |*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*| ||00|01|02|03|04|05|06|07|08|09|0A|0B|0C|0D|0E|0F|10|11|12|13|| || | | | | | | | | | | | | | | | | | | | || |*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*| ||40|41|42|43|44|45|46|47|48|49|4A|4B|4C|4D|4E|4F|50|51|52|53|| || | | | | | | | | | | | | | | | | | | | || |*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*| ||14|15|16|17|18|19|1A|1B|1C|1D|1E|1F|20|21|22|23|24|25|26|27|| || | | | | | | | | | | | | | | | | | | | || |*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*| ||54|55|56|57|58|59|5A|5B|5C|5D|5E|5F|60|61|62|63|64|65|66|67|| || | | | | | | | | | | | | | | | | | | | || |*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*| \-------------------------------------------------------------/ Rappellez-vous que pour les afficheurs de 4 lignes de 32 et de 40 caractères, un deuxième contrôleur est utilisé, et l'adressage est donc identique à l'afficheur deux lignes, avec les pins E1 et E2 qui sont utilisées pour sélectionner les lignes 1&2 ou les lignes 3&4. Utilisation des écrans LCD ************************** 7 - Exemples ************ Exemple 1 : Commande 8 bits sur afficheur 8X1 avec reset harware ---------------------------------------------------------------- Les écritures sont décrites selon le format : (RS RW - B7 B6 B5 B4 B3 B2 B1 B0) -------------------------------------------------------------------------------- N° 1 : Reset interne *--------* Initialisation Hardware | | *--------* Pas d'affichage -------------------------------------------------------------------------------- N° 2 : Commande de fonction *--------* Entrée sur 8 bits 0 0 - 0 0 1 1 0 0 X X | | Affichage sur 1 ligne *--------* Caractère sur matrice 5X8 -------------------------------------------------------------------------------- N° 3 : Affichage du curseur *--------* Allumage de l'écran 0 0 - 0 0 0 0 1 1 1 0 |_ | Allumage du curseur *--------* Tous les caractères sont des espaces suite à l'init. -------------------------------------------------------------------------------- N° 4 : Mode d'entrée de caractère *--------* Incrémentation de l'adresse 0 0 - 0 0 0 0 0 1 1 0 |_ | Décalage à droite du curseur *--------* L'affichage ne se décale pas -------------------------------------------------------------------------------- N° 5 : Ecriture d'un caractère *--------* Ecriture d'un "E" 1 0 - 0 1 0 0 0 1 0 1 |E_ | Décalage du curseur à droite *--------* Incrémentation de l'adresse -------------------------------------------------------------------------------- N° 6 : Ecriture d'un caractère *--------* Ecriture d'un "C" 1 0 - 0 1 0 0 0 0 1 1 |EC_ | Décalage du curseur à droite *--------* Incrémentation de l'adresse -------------------------------------------------------------------------------- N° 7 : Ecriture d'un caractère *--------* Ecriture d'un "R" 1 0 - 0 1 0 1 0 0 1 0 |ECR_ | Décalage du curseur à droite *--------* Incrémentation de l'adresse -------------------------------------------------------------------------------- N° 8 : Ecriture d'un caractère *--------* Ecriture d'un "A" 1 0 - 0 1 0 0 0 0 0 1 |ECRA_ | Décalage du curseur à droite *--------* Incrémentation de l'adresse -------------------------------------------------------------------------------- N° 9 : Ecriture d'un caractère *--------* Ecriture d'un "N" 1 0 - 0 1 0 0 1 1 1 0 |ECRAN_ | Décalage du curseur à droite *--------* Incrémentation de l'adresse -------------------------------------------------------------------------------- N°10 : Mode d'entrée de caractère *--------* Le mode est fixé pour un 0 0 - 0 0 0 0 0 1 1 1 |ECRAN_ | Décalage de l'affichage lors *--------* de l'écriture d'un caractère -------------------------------------------------------------------------------- N°11 : Ecriture d'un caractère *--------* Ecriture d'un " " 1 0 - 0 0 1 0 0 0 0 0 |CRAN _ | Le curseur reste en place *--------* L'affichage décale à gauche -------------------------------------------------------------------------------- N°12 : Ecriture d'un caractère *--------* Ecriture d'un "L" 1 0 - 0 1 0 0 1 1 0 0 |RAN L_ | Le curseur reste en place *--------* L'affichage décale à gauche -------------------------------------------------------------------------------- Utilisation des écrans LCD ************************** 7 - Exemples (suite) ************ Exemple 1 : Commande 8 bits sur afficheur 8X1 avec reset harware (suite) ------------------------------------------------------------------------ Les écritures sont décrites selon le format : (RS RW - B7 B6 B5 B4 B3 B2 B1 B0) -------------------------------------------------------------------------------- N°13 : Ecriture d'un caractère *--------* Ecriture d'un "K" 1 0 - 0 1 0 0 1 0 1 1 |AN LK_ | Le curseur reste en place *--------* L'affichage décale à gauche -------------------------------------------------------------------------------- N°14 : Ecriture d'un caractère *--------* Ecriture d'un "D" 1 0 - 0 1 0 0 0 1 0 0 |N LKD_ | Le curseur reste en place *--------* L'affichage décale à gauche -------------------------------------------------------------------------------- N°15 : Affichage / Décalage du curseur *--------* Décale le curseur 0 0 - 0 0 0 1 0 0 X X |N LKD | vers la gauche *--------* -------------------------------------------------------------------------------- N°16 : Affichage / Décalage du curseur *--------* Décale le curseur 0 0 - 0 0 0 1 0 0 X X |N LKD | vers la gauche *--------* -------------------------------------------------------------------------------- N°17 : Ecriture d'un caractère *--------* Ecrit un "C" sur le "K" 1 0 - 0 1 0 0 0 0 1 1 | LCD | L'affichage se décale *--------* vers la gauche -------------------------------------------------------------------------------- N°18 : Affichage / Décalage du curseur *--------* Décale le curseur et 0 0 - 0 0 0 1 1 1 X X |N LCD | l'affichage vers la droite *--------* -------------------------------------------------------------------------------- N°19 : Affichage / Décalage du curseur *--------* Décale le curseur vers la 0 0 - 0 0 0 1 0 1 X X |N LCD_ | droite *--------* -------------------------------------------------------------------------------- N°20 : Ecriture d'un caractère *--------* Ecrit un " " 1 0 - 0 0 1 0 0 0 0 0 | LCD _ | L'affichage se décale *--------* vers la gauche -------------------------------------------------------------------------------- N°22 : Mode d'entrée de caractère *--------* Remet l'affichage et 0 0 - 0 0 0 0 0 1 1 1 |ECRAN LC| le curseur à la position *--------* zéro (Home) -------------------------------------------------------------------------------- Utilisation des écrans LCD ************************** 7 - Exemples (2ème suite) ************ Exemple 2 : Commande 4 bits sur afficheur 8X1 avec reset harware ---------------------------------------------------------------- Les écritures sont décrites selon le format : (RS RW - B7 B6 B5 B4) -------------------------------------------------------------------------------- N° 1 : Reset interne *--------* Initialisation Hardware | | *--------* Pas d'affichage -------------------------------------------------------------------------------- N° 2 : Commande de fonction *--------* Entrée sur 4 bits, c'est la 0 0 - 0 0 1 0 | | seule commande qui n'a *--------* besoin que d'une écriture -------------------------------------------------------------------------------- N° 3 : Commande de fonction *--------* Entrée sur 4 bits 0 0 - 0 0 1 0 | | Affichage sur 1 ligne 0 0 - 0 0 X X *--------* Caractère sur matrice 5X8 -------------------------------------------------------------------------------- N° 4 : Affichage du curseur *--------* Allumage de l'écran 0 0 - 0 0 0 0 |_ | Allumage du curseur 0 0 - 1 1 1 0 *--------* Tous les caractères sont des espaces suite à l'init. -------------------------------------------------------------------------------- N° 5 : Mode d'entrée de caractère *--------* Incrémentation de l'adresse 0 0 - 0 0 0 0 |_ | Décalage à droite du curseur 0 0 - 0 1 1 0 *--------* L'affichage ne se décale pas -------------------------------------------------------------------------------- N° 6 : Ecriture d'un caractère *--------* Ecriture d'un "E" 1 0 - 0 1 0 0 |E_ | Décalage du curseur à droite 1 0 - 0 1 0 1 *--------* Incrémentation de l'adresse -------------------------------------------------------------------------------- A partir de là, voir exemple 1 pour la suite Utilisation des écrans LCD ************************** 7 - Exemples (3ème suite) ************ Exemple 3 : Commande 8 bits sur afficheur 8X2 avec reset harware ---------------------------------------------------------------- Les écritures sont décrites selon le format : (RS RW - B7 B6 B5 B4) -------------------------------------------------------------------------------- N° 1 : Reset interne *--------* Initialisation Hardware | | Pas d'affichage | | *--------* -------------------------------------------------------------------------------- N° 2 : Commande de fonction *--------* Entrée sur 8 bits 0 0 - 0 0 1 1 0 0 X X | | Affichage sur 1 ligne | | Caractère sur matrice 5X8 *--------* -------------------------------------------------------------------------------- N° 3 : Affichage du curseur *--------* Allumage de l'écran 0 0 - 0 0 0 0 1 1 1 0 |_ | Allumage du curseur | | Tous les caractères sont des *--------* espaces suite à l'init. -------------------------------------------------------------------------------- N° 4 : Mode d'entrée de caractère *--------* Incrémentation de l'adresse 0 0 - 0 0 0 0 0 1 1 0 |_ | Décalage à droite du curseur | | L'affichage ne se décale pas *--------* -------------------------------------------------------------------------------- N° 5 : Ecriture d'un caractère *--------* Ecriture d'un "E" 1 0 - 0 1 0 0 0 1 0 1 |E_ | Décalage du curseur à droite | | Incrémentation de l'adresse *--------* -------------------------------------------------------------------------------- N° 6 : Ecriture d'un caractère *--------* Ecriture d'un "C" 1 0 - 0 1 0 0 0 0 1 1 |EC_ | Décalage du curseur à droite | | Incrémentation de l'adresse *--------* -------------------------------------------------------------------------------- N° 7 : Ecriture d'un caractère *--------* Ecriture d'un "R" 1 0 - 0 1 0 1 0 0 1 0 |ECR_ | Décalage du curseur à droite | | Incrémentation de l'adresse *--------* -------------------------------------------------------------------------------- N° 8 : Ecriture d'un caractère *--------* Ecriture d'un "A" 1 0 - 0 1 0 0 0 0 0 1 |ECRA_ | Décalage du curseur à droite | | Incrémentation de l'adresse *--------* -------------------------------------------------------------------------------- N° 9 : Ecriture d'un caractère *--------* Ecriture d'un "N" 1 0 - 0 1 0 0 1 1 1 0 |ECRAN_ | Décalage du curseur à droite | | Incrémentation de l'adresse *--------* -------------------------------------------------------------------------------- N°10 : Mise à jour de l'adresse DDRAM *--------* L'adresse d'écriture est 0 0 - 1 1 0 0 0 0 0 0 |ECRAN | positionnée en 2ème ligne |_ | *--------* -------------------------------------------------------------------------------- Utilisation des écrans LCD ************************** 7 - Exemples (4ème suite) ************ Exemple 3 : Commande 8 bits sur afficheur 8X2 avec reset harware (suite) ------------------------------------------------------------------------ Les écritures sont décrites selon le format : (RS RW - B7 B6 B5 B4) -------------------------------------------------------------------------------- N°11 : Ecriture d'un caractère *--------* Ecriture d'un "L" 1 0 - 0 1 0 0 1 1 0 0 |ECRAN | Décalage du curseur à droite |L_ | Incrémentation de l'adresse *--------* -------------------------------------------------------------------------------- N°12 : Ecriture d'un caractère *--------* Ecriture d'un "C" 1 0 - 0 1 0 0 0 0 1 1 |ECRAN | Décalage du curseur à droite |LC_ | Incrémentation de l'adresse *--------* -------------------------------------------------------------------------------- N°13 : Mode d'entrée de caractère *--------* L'afficheur est mis en 0 0 - 0 0 0 0 0 1 1 1 |ECRAN | mode décalage |LC_ | *--------* -------------------------------------------------------------------------------- N°14 : Ecriture d'un caractère *--------* Ecriture d'un "D" 1 0 - 0 1 0 0 0 1 0 0 |CRAN | Pas de décalage du curseur |CD_ | Décalage des 2 lignes de *--------* l'afficheur -------------------------------------------------------------------------------- N°15 : Retour en position "Home" *--------* L'afficheur et le curseur 0 0 - 0 0 0 0 0 0 1 0 |ECRAN | sont positionnés à l'adresse |LCD | zéro (position "Home") *--------* --------------------------------------------------------------------------------