2.6) Affichage avec le module de 4 lignes de 20 caractres .........................................................14 2.7) Les commandes du contrleur daffichage................................................................................14 2.8) Initialisation du module ..................................................................................................................16 2.8) Sous programmes (Fonctions en langage C) ncessaires pour la gestion complte de lafficheur....................................................................................................................................................19
Prsentation gnrale.......................................................................................................................................... 19 E, RS et RW............................................................................................................................................................ 21 Dtail des fonctions ............................................................................................................................................. 21 Fonctions pour la conversion dun nombre en une suite de codes ASCII............................................. 24
2.9) Caractres en mmoire ROM ......................................................................................................25 3) Afficheur cristaux liquides : Constitution et commandes................................................ 26 3.1) Constitution lectrique dun afficheur ........................................................................................26 3.2) Contraste et temps de rponse ....................................................................................................26 3.3) Commande dun afficheur LCD ...................................................................................................27
Modle quivalent ............................................................................................................................................... 27 Tension de commande ....................................................................................................................................... 27 Commande dun afficheur avec un seul commun (backplane) ................................................................ 29 Commande dun afficheur avec plusieurs communs .................................................................................. 29
4) C et CI spcialiss pour linterfaage de LCD................................................................... 32 4.1) Gnralits ........................................................................................................................................32 4.2) Internconnexion CI spcialis - C / criture des tats des lments .................................32
CI pour commande de 4 chiffres : ICM7211 ................................................................................................ 33 CI configurable PCF8566 ................................................................................................................................... 33
3.3) Constitution.......................................................................................................................................38
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
1) INTRODUCTION
Ce cours prsente : linterfaage matriel dafficheurs cristaux liquides un P/C la commande logicielle dafficheurs cristaux liquides Les afficheurs cristaux liquides (LCD = Liquid Crystal Display) peuvent tre avec ou sans contrleur intgr. Lorsquun contrleur est intgr, on parle de module LCD. Linterfaage peut tre : direct avec certains afficheurs LCD sur des versions de C prvues pour cet usage direct avec les afficheurs avec contrleur intgr travers un circuit spcialis pour les afficheurs sans contrleur intgr (afficheurs segments, etc.) Un est consacr chaque type de LCD et dinterfaage. Pour certaines commandes, il est utile de connatre quelques notions sur le fonctionnement des afficheurs LCD. La prsentation est effectue avant les interfaages directs ou travers un circuit spcialis. Il existe de trs nombreux types de LCD. Un afficheur peut tre constitu de : segments (affichage de chiffres ou lettres) pictogrammes, dessins, icnes mots ou groupes de mots (ex : Low Batt) points (affichage alphanumrique ou graphique) La figure ci-contre reprsente un afficheur, sans contrleur intgr, constitu de segments, point et un pictogramme (flche).
Les afficheurs de 4 lignes de 20 caractres sont assez rpandus. Ils sont eux aussi quasiment normaliss au niveau des broches et des commandes. Seuls les afficheurs de ces types sont dcrits ici. Dautres afficheurs 1 ligne se commandent de faon similaire. Il est donc facile de transposer ce qui est mentionn ici.
2 : Lors de l'utilisation en mode 4 bits seul les bits D4 D7 sont utiliss. Les lignes correspondant de D0 D4 sont laisses en l'air. On communique le quart de poids fort puis de poids faible.
La structure interne trs simplifie dun afficheur de 2 lignes de 16 caractres est donne sur la figure suivante1 :
Le CI contrleur et le circuit dextension ralisent toutes les fonctions reprsentes ci-dessus, hormis laffichage proprement dit. Le brochage est quasi normalis, avec lespacement entre les pastilles. Cependant lemplacement des pastilles par rapport au bord de la carte varie dun afficheur lautre. Ci-contre, un exemple de module :
Pour une bonne utilisation, il est ncessaire de comprendre comment fonctionne le contrleur HD44780. Le multiplexage de la matrice LCD est transparent l'utilisateur, aussi il n'en est pas fait mention ici. Le rle des signaux dinterfaage est dtaill aprs des gnralits sur le contrleur dafficheur.
Ce schma est extrait dun document de Giampiero D'AQUINO disponible sur Internet
4
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
2.3.1) INITIALISATION Le contrleur doit d'abord tre initialis (nombre de lignes de l'afficheur, nb de bits de donnes utiliser pour communiquer avec le C, ). Cette initialisation est ncessaire car le constructeur a prvu de pouvoir adapter son circuit plusieurs types d'afficheurs et de P/C. L'initialisation s'effectue normalement automatiquement la mise sous tension avec un circuit interne. Comme ce circuit ne fonctionne pas toujours (la pratique montre quil ne fonctionne jamais), il est ncessaire de prvoir systmatiquement une squence d'initialisation commande par le C (voir plus loin). Cest lors de linitialisation quest notamment fixe la largeur du bus de donnes utilis pour communiquer avec le P/C. Le module peut communiquer avec le P/C par un bus de donnes de 4 bits ou de 8 bits. Lorsquun bus de 4 bits est utilis, il faut 2 accs successifs au lieu dun avec un bus de 8 bits. Les changes avec un bus de 4 bits permettent de rduire le nombre de broches ncessaires sur le P/C. 2.3.2) FONCTIONNEMENT APRS INITIALISATION L'utilisateur crit dans une RAM, Display Data RAM DDRAM-, les codes des caractres (chacun sur un octet) afficher et donne des instructions pour l'affichage. Un gnrateur de caractre permet de dlivrer les informations pour la commande des pixels partir du code du caractre en DDRAM. Selon le code du caractre, le circuit utilise : un gnrateur de caractre en ROM (pour la plupart des codes) ou un gnrateur en RAM (pour les codes 00h 0Fh). Dans ce dernier cas, l'utilisateur doit au pralable charger la RAM du gnrateur de caractre, Character Generator RAM CGRAM-, avec les modles qu'il a dfini. Vu du ct utilisateur, la DDRAM et la CGRAM correspondent des zones de RAM avec des adresses externes dfinies. Les caractres en ROM correspondent aux caractres ASCII pour les codes 21h 7Dh (lettres minuscules non accentues, lettres majuscules, chiffres, caractres de ponctuation, signes mathmatiques, ). Pour les autres codes, cela dpend de la version du contrleur. Voir doc du module afficheur. Les codes des caractres fournis par l'utilisateur sont rangs dans la DDRAM aux adresses dlivres par un compteur d'adressage ou compteur dadresse. Le contenu de ce compteur peut tre : fix par l'utilisateur une valeur dfinie avec une instruction spcifique ou remis 0 avec une instruction qui replace galement l'affichage dans sa position d'origine.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
Aprs chaque criture d'un code de caractre, le compteur est automatiquement incrment (ou dcrment). Ceci permet de simplifier l'criture du programme utilisateur. Les modles du gnrateur de caractre sont rangs dans la CGRAM aux adresses fixes par le mme compteur d'adressage utilis pour la DDRAM. Le contenu de ce compteur peut tre fix par l'utilisateur. Aprs chaque criture, le compteur est automatiquement incrment (ou dcrment). Le systme P ou le C doit fournir au module : des informations pour l'initialisation des donnes placer en DDRAM ou CGRAM l'adresse de dpart pour le rangement des donnes prcdentes des instructions pour l'affichage En retour le module fournit au C les informations suivantes: l'tat du module (traitement en cours d'une instruction ou prt recevoir une nouvelle instruction ou donne) les donnes enregistres dans les RAM ladresse du compteur dadressage Ces informations sont souvent inexploites ou peu exploites. Pour simplifier les changes entre le module et le C, seuls 2 registres sont utiliss pour les transferts au niveau du module : le registre d'instruction IR (Instruction Register). Lors d'une criture par le C, il contient les codes des instructions et les adresses pour les RAM. Lors d'une lecture par le C, il contient le bit d'tat et l'adresse du compteur d'adresse. le registre de donnes DR (Data Register). Il sert mmoriser les donnes crire (ou lire) dans (depuis) une des RAM. Les transferts internes au contrleur sont transparent l'utilisateur et dpendent de la succession des commandes (instruction, criture donnes) envoyes au modules. Le bit RS (Register Select) positionn par le C permet d'accder IR ou DR.
2.4.1) DESCRIPTION DES SIGNAUX DINTERFAAGE AVEC LE P/C Les signaux dinterfaage avec le P/C sont E, RS, R/W et DB0-DB7. DB0-DB7 sont des E/S bidirectionnelles. Elles sont utilises pour vhiculer les instructions et les donnes (codes des caractres afficher, etc.). Leur comportement dpend des signaux RS et E. Pour lutilisation en mode 8 ou 4 bits, voir 2.4.3)
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
RS permet de choisir : la destination des donnes lors dune criture : registre instruction IR ou registre de donnes DR (voir plus haut). la provenance des donnes lors dune lecture : donnes en provenance dune des RAM ou adresse du compteur dadressage des RAM E est un signal de validation (Enable). Lorsque E=0, les E/S sont en haute impdance. Lorsque E=1, les E/S sont en entre si on ralise une criture (R/W=0) ou en sortie si on ralise une lecture (R/W=1). E permet aussi de prendre en compte les signaux RS et R/W. Ceux-ci doivent donc tre positionns avant le front montant de E. Lors dune criture les signaux en D0-D7 sont mmoriss sur le front descendant de E. Les chronogrammes ci-dessous reprsentent les signaux lors dune criture.
Valid data correspond au code dun caractre afficher ou dune instruction. tAS : dure de prpositionnement de RS et R/W par rapport au front montant de E. tAH : dure de maintien de RS et R/W par rapport au front descendant de E tDSW : dure de prpositionnement des donnes par rapport au front descendant de E tH : dure de maintien des donnes par rapport au front descendant de E Les chronogrammes ci-dessous reprsentent les signaux lors dune lecture :
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
Valid data correspond une donne renvoye par le contrleur du LCD (voir plus loin, 2.6) tDDR : retard lapparition des donnes par rapport au front montant de E tDHR : dure de maintien des donnes par rapport au front descendant de E Les diffrentes dures selon les contrleurs quivalents Certaines dures changent avec la version du contrleur. Par exemple la version HD44780U est plus rapide que la version HD44780S. Les valeurs sont vrifier Rf des
Contrleurs / Paramtres Dure dun cycle Largeur E Niveau 1 Niveau 0 Temps de monte E Temps de descente E Prpositionnement signaux Prpositionnement donnes lcriture Retard des donnes la lecture Maintien signaux Maintien donne criture lecture Sanyo Dure reSamsung Hitachi Epson OKI LC7985N comman- Unit KS0066 HD44780 SED1278 MSM6222 A de1
tcycE(min) PWEH(min) (min) tEr(max) tEf (max) tAS(min) tDSW(min) tDDR(max) tA(max) tH(min) tDHR(min)
nS nS nS nS nS nS nS nS nS
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
1 : la dure recommande permet dutiliser nimporte quelle module afficheur LCD sans se soucier du contrleur dont il est quip. 2.4.2) INTERFAAGE DIRECT AVEC UN P OU UN C EN MODE TENDU D0-D7 sont directement connects sur le bus de donnes du P. Il faut reconstruire les signaux E, RS et R/W du contrleur avec les signaux de contrle du P et un signal issu dun dcodeur dadresse. Lcriture dune instruction dans le contrleur du LCD seffectue au niveau du P en ralisant une criture une certaine adresse ; lcriture du code dune donne afficher seffectue en ralisant une criture une autre adresse. La lecture du registre dtat du contrleur du LCD seffectue au niveau du P en ralisant une lecture une adresse. La lecture du contenu du compteur dadresse contrleur de LCD seffectue en ralisant une lecture une autre adresse. Les 2 adresses pour la lecture peuvent tre ou non les mme que celles de lcriture. Ceci dpend des signaux de contrle disponibles sur le P employ. Avec un P rapide, il est ncessaire de rajouter des cycles dattentes pour respecter les dures mentionnes ci-dessus. Exemple dinterfaage avec un P 6800 ou un C 68HC11 en mode tendu Ici seules 2 adresses sont utilises. 1 adresse permet daccder en lecture ou en criture au registre instruction et une autre adresse permet daccder en lecture ou en criture au registre de donne. VMA=1 uniquement lorsque les adresses sont valides. 2=1en fin dun cycle machine, aprs positionnement de R/W. Avec un C du type 68HC11 en mode tendu, on dispose dun signal E qui sert construire le signal E du module LCD. A complter Exemple dinterfaage avec un 80C196 fonctionnant en mode tendu Linterfaage est plus compliqu que pour le cas prcdent. Le C ne possde pas de signal quivalent 2 du C prcdent. Il ne dispose pas non plus dun signal unique R/W Pour construire E du contrleur, il est ncessaire dutiliser un circuit combinatoire avec en entre des bits dadresses et les signaux /RD et /WR. R/W du contrleur est connect un bit dadresse du C, de mme que RS. On utilise ici 4 adresses distinctes pour commander lafficheur. Le dtail de linterfaage ne peut tre dvelopp ici. Il faut ajouter des cycles dattente, etc.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
2.4.3) INTERFAAGE DIRECT AVEC UN C OU LINTERFACE PARALLLE DUN SYSTME P 2 types dinterfaages sont possibles : avec des donnes sur 8 ou 4 bits. RS, E et R/W doivent tre connectes sur des sorties du C ; D0-D7 doivent tre connectes sur des E/S ou sur des sorties si on ne souhaite pas effectuer de lecture. Interfaage avec un bus de donnes de 4 bits Avec des donnes sur 4 bits, D0-D3 sont inutilises. Il suffit de ne pas les connecter ; il est inutile de les fixer un potentiel (des rsistances de tirages doivent tre places dans le contrleur). Avec des donnes sur 4 bits, il faut dabord transfrer les 4 bits de poids forts puis les 4 bits de poids faible. La figure suivante montre quelques changes
On donne au 2.8 la procdure dinitialisation avec un bus de donnes de 4 bits. Structure type de la partie du programme pour un cycle d'criture ou de lecture Les temps mentionns prcdemment sont tels qu'avec un C ordinaire (frquence d'horloge < 1 dizaine de MHz, temps d'excution d'une instruction > 200 300 ns) les programmes suivants conviennent. On appelle P_E, P_RS et P_R/W les broches des ports sur lesquelles sont connects les signaux E, RS et R/W. Le nom exact des broches du C dpend de celui-ci. Cycle d'criture Initialement P_E=0 Positionner P_RS la valeur voulue pour l'accs IR ou DR et P_R/W 0 P_E = 1 Placer les donnes sur les P_DBx (cette instruction peut tre place n'importe o avant) P_E = 0 Exemple en langage d'assemblage 68HC11 LDAA #VALEUR STAA PORTx ; PORTx utilis pour E, R/W et RS BSET .,, ; il faut d'abord charger un index LDAA #Donnees STAA PORTy; PORTy utilis pour les donnes BCLR ,,.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
10
Cycle de lecture Exemple en langage d'assemblage 68HC11 Initialement P_E=0 Positionner P_RS la valeur voulue pour LDAA #VALEUR STAA PORTx ; PORTx utilis pour E, R/W et RS l'accs IR ou DR et P_R/W 1 BSET .,, ; il faut d'abord charger un index Positionner P_E 1 (1) Lire les donnes sur les P_DBx LDAA PORTy ; PORTy utilis pour les donnes P_E = 0 BCLR ,,. 1 : si utilisation d'un C rapide, il faut attendre que les donnes soient disponibles avant d'effectuer la lecture. Entre 2 cycles, il faut attendre un temps spcifi dans la documentation (dpend des versions du contrleur).
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
11
12
re
ligne
2me ligne
fentre daffichage (partie visible) adresses internes : 00h 0Fh (16 car) adresses externes : 80h 8Fh adresses internes : 40h 4Fh (16 car) adresses externes : C0h CFh
partie invisible adresses internes : 10h 27h (24 car) adresses externes : 90h A7h adresses internes : 50h 67h (24 car) adresses externes : D0h E7h
Il est possible de mmoriser 40 caractres pour chacune des lignes. Pour le fonctionnement du dcalage, voir 2.6) Les commandes du contrleur daffichage. 2.5.3) RAM DU GNRATEUR DE CARACTRE CGRAM adresses externes : de 40h 7fh. Adresses internes de 0 3F. La CG-RAM, d'une capacit de 64 octets, offre 8 matrices de 5x8 points qui peuvent tre programmes par l'utilisateur. Les codes placer en DD-RAM pour laccs aux caractres personnaliss vont de 00h 07h. (Les codes images de 08h 0Fh donnent le mme rsultat) Programmation d'un caractre : chaque caractre occupe 8 octets. Pour chaque octet, seuls les 5 bits de poids faibles sont utiles, les autres tant 0. Un pixel devant apparatre en noir sera positionn 1. Le lien entre le code dun caractre personnel et les adresses mmoire utilises est donn dans le tableau suivant : Code du caractre en Adresses externes de la DD-RAM CG-RAM programmer 00h 40h 47h 01h 48h 4Fh 02h 50h 57h 03h 58h 5Fh 04h 60h 67h 05h 68h 6Fh 06h 70h 77h 07h 78h 7Fh
Exemple : On dsire crer le symbole flche diagonale vers le haut avec comme code 00. Pour programmer le caractre ci-contre il faut crire dans la CG-Ram les codes : 1Fh a l'adresse 40h, 03h a l'adresse 41h, ., et 10h a l'adresse 47h.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
13
Les adresses de la ligne 3 suivent les adresses de la ligne 1 et les adresses de la ligne 4 suivent celles de la ligne 2. Si le programme charg dcrire dans le LCD est mal conu et quil crit trop de caractres sur la ligne 1, lcriture se poursuit ligne 3. La notion de fentre daffichage na pas beaucoup de sens ici. Il est cependant possible de raliser des dcalages, condition de bien rflchir au rsultat (caractres changeant de lignes aprs un dcalage, etc). Tout le 2.5.3) sapplique ici.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
14
RS
R/ W 0
D7 D6 D5 D4 D3 D2 D1 D0
Description
Dure dexcution1
0 0 0 0 0 0 0 1 ID S ID = 1 : Incrmentation / ID = 0 : Dcrmentation S = 1 : Dcalage de tout laffichage 0 0 0 0 0 0 1 D = 1 : affichage en fonction C = 1 : curseur visible B = 1 : clignotement du caractre D C B
Mode daffichage
0 0 0 0 0 1 S/C R/L * * S/C=1 : dcalage de laffichage S/C=0 : dplacement du curseur R/L=1 : dcalage droite R/L=0 : dcalage gauche 0 0 0 0 1 DL N F * * DL=1 : 8 bits / DL=0 : 4 bis N=1 : 2 lignes / N=0 : 1 ligne F=1 : 5*10 pixels / F=0 : 5*7 pixels criture de 0 0 0 1 Adresse interne de la CGRAM ladresse de (de 0 3F) la CGRAM
Efface l'ensemble de la mmoire daffichage sans toucher au gnrateur de caractre. Met le curseur en position Home, l'adresse 00. Met le curseur en position Home. Si l'affichage t dcal, il est remis sa position d'origine. Dtermine le changement dadresse aprs criture d'un caractre (ID) et le dplacement collectif d'une position de l'ensemble de l'affichage (S). Met l'affichage en ou hors fonction (D). Met le curseur en ou hors fonction (C). Fait clignoter le caractre situ audessus du curseur (B), clignotement se traduisant par une alternance du caractre et du caractre FF (rectangle noir) Dplace le curseur ou l'ensemble de l'affichage sans modifier le contenu de la mmoire. Fixe la largeur du bus de donnes (DL), le nb de lignes de lafficheur (N) et la taille de la matrice des caractres (F)
1,64ms
1,64ms
40s
40s
40s
40s
Dfinit l'adresse de la mmoire du gnrateur de caractres. Les donnes peuvent tre lues ou crites cette adresse criture de 0 0 1 Adresse interne de la DDRAM (de Dfinit l'adresse de la mmoire de donnes. Les donnes, ladresse de 0 7F) correspondant aux codes des la DDRAM caractres ASCII, peuvent tre lues ou crites partir de cette adresse. Lit l'indicateur Busy (BF) pour Lecture de 0 1 BF Valeur courante du compteur vrifier que l'afficheur et en lindicateur dadressage Busy et de BF=1 : Occup / BF=0 : le contrleur peut accepter mesure de traiter la commande suivante et ladresse courante ladresse une nouvelle commande ou donne du compteur dadressage. criture dans la CGRAM ou criture des 1 0 Donne crire DDRAM selon la valeur du donnes compteur dadressage Lecture dans la CGRAM ou Lecture des Donne lue 1 1 DDRAM selon la valeur du donnes compteur dadressage
40s
40s
1s
46s 46s
1 : les dures peuvent tre plus importantes avec certains contrleurs anciens (jusqu 3 fois les valeurs mentionnes ici).
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
15
On ne peut crire les donnes dans une des 2 RAM qu'aprs avoir : choisi le bon mode d'entre donn l'adresse de dbut de l'enregistrement des donnes (positionnement du compteur d'adressage) Comportement de l'affichage lors d'une criture des donnes. Lors de l'criture des donnes (codes des caractres) dans la DDRAM, le comportement de l'affichage dpend de la programmation prcdente. Exemple. affichage correctement initialis mode d'entre : Incrmentation du compteur d'adressage (dcalage gauche du curseur), pas de dcalage de l'affichage affichage et curseur "on" effacement de l'affichage (compteur d'adressage 0) Lors de chaque criture de donne en DDRAM, le curseur est dcal et le nouveau caractre est affich la suite des autres. Fonctionnement du dcalage A chaque commande de dcalage, laffichage est dcal. Aprs le caractre du dernier emplacement mmoire DDRAM (le 40me), cest le caractre du premier emplacement mmoire DDRAM qui est affich la suite. Ceci permet de raliser des animations circulaires.
BUS DE DONNES DE 8 BITS Pour un module de 2 lignes, fonctionnant en mode 8 bits, le constructeur prconise les oprations suivantes (les temps dpendent des versions du contrleur) :
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
16
attendre au minimum15 ms aprs l'tablissement de la tension d'alimentation 4,5V min crire 3xh dans IR attendre 4,1 ms min crire 3xh dans IR attendre 100 s min crire 3xh dans IR attendre 40 s min crire 38h dans IR (2 lignes, matrice 5x8) attendre la fin de lopration (40s) crire 01h dans IR (effacement de l'cran) attendre la fin de lopration (qqs ms, doc peu prcise) crire 0Ch dans IR (Affichage en fonction, curseur non visible, pas de clignotement du caractre) attendre la fin de lopration (40s) crire 06h dans IR (Incrmentation du compteur d'adressage aprs criture d'un caractre) attendre la fin de lopration (40s)
17
BUS DE DONNES DE 4 BITS Pour un module de 2 lignes, fonctionnant en mode 4 bits, le constructeur prconise les oprations suivantes (les temps dpendent des versions du contrleur) :
attendre au minimum 15 ms aprs l'tablissement de la tension d'alimentation 4,5V min crire 3h dans IR attendre 4,1 ms min crire 3h dans IR attendre 100 s min crire 3h dans IR attendre 40 s min crire 2h dans IR (interface en mode 4 bits) attendre la fin de lopration (40 s) crire en 2 fois 28h dans IR (2 lignes, matrice de 8x5) attendre la fin de lopration (40 s)
18
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
crire 01h dans IR (effacement de l'cran) attendre la fin de lopration (qqs ms, doc peu prcise) crire en 2 fois 0Ch dans IR (Affichage en fonction, curseur non visible, pas de clignotement du caractre) attendre la fin de lopration (40s) crire en 2 fois 06h dans IR (Incrmentation du compteur d'adressage aprs criture d'un caractre) attendre la fin de lopration (40s) Pour attendre la fin de lopration, on peut tester le bit BF
2.8) SOUS PROGRAMMES (FONCTIONS EN LANGAGE C) NCESSAIRES POUR LA GESTION COMPLTE DE LAFFICHEUR
PRSENTATION GNRALE Des fonctions de haut niveau permettent dafficher une ligne entire partir de la gauche de lafficheur ou dafficher une chane de caractres une position dtermine. Ces fonctions de haut niveau utilisent des fonctions de bas niveau pour fixer la valeur du compteur dadressage, crire une commande, etc. Pour respecter les dures entre critures de commande, etc., il est possible dutiliser des temporisations entre les commandes ou des attentes avec test de ltat du contrleur. Il est possible dincorporer ou non ces temporisations ou attentes dans les fonctions de bas niveau ou de niveau intermdiaire. Le tableau ci-dessous donne un exemple densemble de fonctions permettant de grer totalement laffichage. Fonction void EcritUneLigne( const unsigned char* PtrCarMsg, unsigned char Ligne) PtrCarMsg : Pointeur sur un caractre du message, initialement sur le 1er Ligne : N de la ligne daffichage void EffaceUneLigne( unsigned char Ligne) haut niveau Catgorie haut niveau Description Permet dcrire une ligne complte en crasant le contenu prcdent. Si le message fait moins de 16 ou 20 caractres, des blancs sont insrs en fin. Avec un module de 2 lignes, le message peut faire plus de 16 caractres. La fonction de dcalage doit tre utilise pour un affichage complet. Permet deffacer une ligne avant dcrire un ou plusieurs caractres ou une chane. En fin de fonction, le compteur dadressage est remis en dbut de ligne. Ecrit une chane partir de la position courante du compteur dadressage Fixe la valeur du compteur dadressage en fonction de la position et de la ligne indiques
void EcritChaine( const unsigned char* PtrCarMsg) void PosCmptMemAff( unsigned char Position, unsigned char Ligne) Position : position par rapport la gauche de lafficheur. 1er caractre = 0
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
19
void EcritCar (unsigned char Code) void EcritCde(unsigned char Valeur) void AttenteFinOperation(void)
crit un caractre partir de la position courante du compteur dadressage crit une commande (dfilement, etc.) Attend que le drapeau BF passe 1, indiquant ainsi que lopration en cours est termine.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
20
E, RS ET RW Les signaux E, RS, RW et BF utiliss ci-dessous peuvent tre : dfinis avec des directives #define ou remplacs par des expressions ralisant un masquage ou correspondre des champs de bits Utilisation de directive #define Selon le compilateur et le C utilis, on peut utiliser les dfinitions suivantes : Compilateur disposant du type bit (extension C ANSI) ex : compilateur HiTech pour C PIC de Microchip #define E RC2 RC2 est dclar dans le fichier en-tte comme une variable de type bit Compilateur ne disposant pas du type bit Il faut utiliser un champ de bit ex : #define E RC.b2 Avant utilisation, RC doit tre dclar comme un champ de bit Utilisation de masquage Pour E = 1, il faut utiliser E=PORTx | MASQUE_E_1 ; MASQUE_E_1 comporte un seul bit 1 : celui qui correspond la position de E dans le PORTx Pour E = 0, il faut utiliser E = PORTx & MASQUE_E_0 ; MASQUE_E_0 comporte un seul bit 0 : celui qui correspond la position de E dans le PORTx DTAIL DES FONCTIONS
tant donn que RS et RW sont dans la plupart des commandes 0, on prend cette valeur comme la valeur par dfaut. Lorsque une commande ncessite un changement dtat, ce changement seffectue dans la fonction utiliser. Cette fonction remet en fin RS ou RW 0. Dans ce qui suit, on suppose que les donnes sont connectes sur le PortDonnee. Le sens de transfert sur ce port est fix avec un registre de direction SensPortDonnee. 1 correspond la mise en entre Le compilateur utilis dispose dune extension au C ANSI pour la notation binaire. RS, RW et E sont dfinies chacune comme une broche du C. Avec un compilateur ne disposant pas de type boolen, il faut procder par masquage.
void AttenteFinOperation(void) { unsigned char VarTemp; SensPortDonnee = 0b11111111; // les broches de donnes du module sont toutes en sorties // lors dun opration de lecture, donc les broches du C sont en entre RW=1; do {
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
21
E = 1; asm("nop"); // pour utilisation avec C rapide asm("nop"); VarTemp=PortDonnee & 0b10000000; E=0 ; } while(VarTemp !=0); RW=0; SensPortDonnee=0 pour revenir la configuration initiale }
void EcritCde(unsigned char Valeur) {PortDonnee = Valeur; E = 1; asm("nop"); // pour assurer une dure suffisante ltat 1 de E avec un C rapide E = 0; Tempo(D100us); // peut tre remplac par AttenteFinOperation() }
void EcritCar (unsigned char Code) {PortDonnee = Code; RS = 1; E = 1; asm("nop"); // pour permettre de respecter la dure ltat haut de E avec un C rapide E = 0; RS = 0 ; Tempo(D100us); // peut tre remplac par AttenteFinOperation() }
void PosCmptMemAff(unsigned char Position, unsigned char Ligne) // pour un module de 2 lignes de 16 caractres {if (Ligne==1) EcritCde(0x80 + Position); /*0x80 adresse de la DDRAM correspondant au caractre le plus gauche */ if (Ligne==2) EcritCde(0xC0 + Position); }
void EcritUneLigne(const unsigned char* PtrCarMsg, unsigned char Ligne) /* const pour accs donnes en ROM et RAM, syntaxe propre un compilateur pour un C PIC */ { unsigned char NbCarTransfere=0; PosCmptMemAff(0, Ligne); while ((*PtrCarMsg != 0) && (NbCarTransfere != CARS_MAX)) /* CARS_MAX est gal au nombre de caractres max de la mmoire daffichage dune ligne moins un. Ex : CARS_MAX = 39 */
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
22
{ EcritCar(*PtrCarMsg ); NbCarTransfere ++; PtrCarMsg ++; } while (NbCarTransfere != CARS_MAX) { EcritCar(0x20); /*caractere espace*/ NbCarTransfere ++; } } Autre variante : void EcritUneLigne(const unsigned char* PtrCarMsg, unsigned char Ligne) /* const pour accs donnes en ROM et RAM, syntaxe propre un compilateur pour un C PIC */ { unsigned char NbCarTransfere=0; PosCmptMemAff(0, Ligne); if (*PtrCarMsg!=0) {do { EcritCar(*PtrCarMsg); NbCarTransfere ++; PtrCarMsg ++;} while ((*PtrCarMsg != 0) && (NbCarTransfere != CARS_MAX)); /* CARS_MAX est gal au nombre de caractres max de la mmoire daffichage dune ligne. Ex : CARS_MAX = 40 */ } while (NbCarTransfere != CARS_MAX) {EcritCar(0x20); /*caractere espace*/ NbCarTransfere ++; } }
void EffaceUneLigne(unsigned char Ligne) { unsigned char NbCarTransfere=0; PosCmptMemAff(0, Ligne); while (NbCarTransfere != CARS_MAX) {EcritCar(0x20); /*caractere espace*/ NbCarTransfere ++; } PosCmptMemAff(0, Ligne); }
23
PtrCarMsg ++; } }
Limplmentation de Tempo est troitement lie au C utilis. Len-tte est : void Tempo(unsigned char Val) FONCTIONS POUR LA CONVERSION DUN NOMBRE EN UNE SUITE DE CODES ASCII unsigned char* CodageIntASCII(int Valeur) { static unsigned char CodesASCII[5]; unsigned char Position = 0, Quotient; unsigned int Diviseur = 10000; unsigned char ChiffreSignificatif = FAUX; if (Valeur < 0) { Valeur = - Valeur; CodesASCII[Position++]='-'; } if (Valeur == 0){ CodesASCII[Position++] = '0'; } else { while (Diviseur != 0) { Quotient = Valeur / Diviseur; if ((ChiffreSignificatif == VRAI)||(Quotient!=0)) { CodesASCII[Position++]='0'+Quotient; ChiffreSignificatif = VRAI; } Valeur = Valeur % Diviseur; // reste de la division Diviseur = Diviseur /10; } } CodesASCII[Position] = NULL; return(CodesASCII); }
Pour une conversion dun entier non sign vers une chane de caractre, il suffit de conserver quune partie de ce programme.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
24
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
25
Chaque lment de lafficheur (segment, pictogramme, point, etc.) ncessite 2 surfaces conductrices (lectrodes) en regard. Pour le dtail sur le principe de fonctionnement dun afficheur cristaux liquides, voir lannexe. Une des surfaces est situe sur la face arrire de lafficheur : backplane Selon le nombre dlments afficher, on rencontre 2 types de configurations : 1 commun (backplane) pour tous les lments + 1 lectrode pour chaque lment plusieurs communs + 1 lectrode pour chaque groupe dlments interconnects La dernire mthode permet de rduire le nombre de broches de lafficheur. Les commandes dpendent directement de lorganisation des lectrodes.
90
Aprs la mise sous tension, un temps de retard la mise en fonctionnement s'coule jusqu' ce qu'une variation de contraste apparaisse. Le temps de monte est mesur entre 10% et 90% du contraste. De la mme manire, il existe un temps de retard ou de retombe. Les temps de rponse sont fonction de la viscosit de la substance ainsi que de l'paisseur de la cellule : la viscosit et les temps de rponse dcroissent quand la temprature croit. A 25C, les
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
26
temps de rponse sont de l'ordre de 40 ms pour le temps d'tablissement et de l'ordre de 40 80ms pour le temps de disparition. Ce paramtre reprsente un des gros inconvnients des LCD.
10 -40 -20 0 20 40 60 80
T(C)
MODLE QUIVALENT Le modle quivalent entre 2 lectrodes dun lment est le suivant :
R1
R2
Pour un afficheur constitu de segments (SEG) plusieurs communs (BP), si on nglige les rsistances, on obtient le modle quivalent suivant :
TENSION DE COMMANDE Un afficheur transmet la lumire lorsquaucune diffrence de potentiel nest applique entre les 2 lectrodes dun lment. Llment afficher nest pas visible. Il ne transmet pas la lumire lorsquune diffrence de potentiel est appliqu entre les 2 lectrodes. Llment afficher est visible en noir.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
27
La tension entre lectrodes doit toujours tre valeur moyenne proche de 0 (infrieure 50mV) pour viter de dtruire les cristaux liquides par lectrolyse, dans le cas o les lectrodes ne sont pas isoles des cristaux liquides. Pour disposer dune tension valeur moyenne nulle, on envoie des signaux rectangulaires ou en marches plus ou moins complexes entre les lectrodes. Ces signaux sont dtaills dans les 2 suivants. Cest la valeur efficace de la tension entre les lectrodes qui dtermine le comportement de lafficheur. Pour une bonne visibilit, il faut : Voff (eff) < Vth Von (eff) >> Vth D=Von (eff) / Voff (eff) le plus grand possible. D est le rapport de contraste (Discrimination ratio) Un Von trop grand rduit cependant la dure de vie de lafficheur. Les diffrentes valeurs Voff, Vth, Von varient dun afficheur lautre. La frquence des signaux appliqus entre les lectrodes est limite par 2 caractristiques : le scintillement de laffichage si la frquence est trop basse une consommation excessive si la frquence est trop haute Le phnomne de scintillement apparat pour des frquences infrieures 30 Hz. La frquence suprieure est gnralement de l'ordre de 200 Hz. L'application de tensions continues suprieures 50 mV n'est pas admissible, parce que ces tensions provoqueraient alors des ractions d'lectrolyse sur le cristal liquide qui peuvent rduire fortement la dure de vie (segment qui reste visible en permanence).
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
28
Quand il ny a quun seul commun, la commande est dite statique. La figure suivante montre les signaux appliqus sur les lectrodes et les tensions rsultantes entre les lectrodes correspondant un Voff = 0 Von = VDD-VLCD VLCD permet de faire varier Von. D est infini. Le contraste est trs bon
COMMANDE DUN AFFICHEUR AVEC PLUSIEURS COMMUNS Avec plusieurs communs, laffichage est multiplex. Les lments sont commands par groupes. Pour respecter les contraintes prsentes auparavant, plusieurs formes de tensions peuvent tre appliques sur les lectrodes. Elles prsentent toutes des marches descalier. Les diffrentes possibilits se distinguent par : le nombre de valeurs possibles des tensions : 3 ou 4 (2 ou 3 marches) (LCD bias configuration) le taux de multiplexage qui dpend du nombre de communs (BP = Back Plane) (LCD drive mode)
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
29
On prsente ci-dessous uniquement 2 cas : multiplexage 1 : 2 (2 communs) / 3 niveaux multiplexage 1 : 2 (2 communs) / 4 niveaux multiplexage 1 : 2 / 3 niveaux (1/2 bias)
D = 2,236
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
30
D = 2,236
Gnralisation VLCD est obtenu partir dun montage avec un potentiomtre. Les tensions de polarisation sont obtenues avec un diviseur de tension. VLCD permet de faire varier Von et Voff et donc le contraste. Dans les figures ci-dessus Vop = VDD VLCD. Plus le nombre de communs est grand (taux de multiplexage grand), plus le rapport D est faible. VLCD doit tre finement ajust pour obtenir le meilleur contraste possible. Un afficheur de 2 lignes de 16 caractres fonctionne avec un multiplexage 1 : 12.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
31
32
Pour laffichage, on peut envoyer : les codes des caractres, chiffres ou lettres, afficher dans le cas CI prvu pour commander uniquement un affichage alphanumrique les tats de tous les lments du LCD dans le cas dun CI pour commander un affichage quelconque (caractres alphanumrique, dessins, etc.) On prend ici 2 exemples : un CI prvu pour commander 4 chiffres de 7 segments : ICM7211 un CI configurable PCF8566 Seules quelques grandes lignes sont mentionnes ici. Pour plus de dtail, voir la documentation complte de ces circuits. CI POUR COMMANDE DE 4 CHIFFRES : ICM7211 Les informations mmoriser sont les 4 codes DCB des chiffres afficher. Des dcodeurs internes DCB 7 segments laborent les informations utilises pour la commande des segments. Les 4 codes DCB sont envoys en // les uns aprs les autres. Des signaux permettent de slectionner le chiffre dont le code DCB est transmis.
CI CONFIGURABLE PCF8566 Les informations de configuration et les tats des lments du LCD sont transmis sous forme srie. Avec le circuit prsent, le protocole de communication est lI2C. Il existe des circuits du mme type avec dautres protocoles. Une RAM daffichage contient une image des tous les lments du LCD. Chaque bit correspond un lment du LCD. Lutilisateur doit crire dans cette RAM chaque fois quil y a modification de laffichage. Lutilisateur doit cbler son LCD au CI spcialis de faon ce que lcriture dans la RAM daffichage soit la plus simple possible. Par exemple si son afficheur contient des chiffres, il faut sarranger pour que les segments dun mme chiffre correspondent des bits conscutifs dans la mmoire daffichage (7 bits pour les 7 segments + 1 bit pour le point dcimal). Pour modifier un chiffre, il suffit dcrire un octet dans la RAM daffichage.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
33
ANNEXE
PRINCIPE DE FONCTIONNEMENT DUN AFFICHEUR CRISTAUX LIQUIDES
En plaant deux filtres polarisant perpendiculaires l'un de l'autre, le premier va polariser la lumire dans un sens. Le deuxime absorbe toute la lumire car celle ci arrive dans un plan perpendiculaire. Un afficheur LCD utilise 2 filtres polarisateurs entre lesquels sont placs des cristaux liquides qui ont la proprit de permettre la rotation ou non de la lumire polarise selon le champ lectrique auquel ils sont soumis.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
34
Quand les cristaux viennent en contact avec une surface finement rainure
Quand les cristaux sont placs entre 2 surfaces rainures orthogonales, ils subissent un pivotement (twist), comme indiqu sur la figure ci-dessous.
La lumire polarise subit elle aussi un pivotement lorsquelle traverse des cristaux liquides organiss comme ci-contre. Le plan de polarisation de la lumire tourne.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
35
En labsence de champ lectrique appliqu entre les lectrodes, la lumire polarise par le premier filtre subit une rotation et traverse le 2me filtre
En prsence dun champ lectrique, les cristaux changent dalignement et le plan de polarisation de la lumire ne tourne pas entre les 2 filtres aucun lumire ne traverse le 2me filtre
Le principe dcrit correspond au fonctionnement des afficheurs de type TN (Twisted Nematic). Il existe dautres types dafficheurs dans lesquels le pivotement des cristaux en labsence de champ lectrique est plus important.
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
36
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
37
3.3) CONSTITUTION
La figure suivante montre la constitution dun LCD. Les rainures pour lorientation des cristaux ne sont pas mentionnes. Llectrode backplane est normalement celle qui est larrire de lafficheur.
Sources de ce document : Notes dapplication AN658 de Microchip : LCD Fundamentals Using PIC16C92X Microcontrollers Doc Philips PCF8566 Doc contrleur Hitachi HD44780 Document de 7 pages Afficheurs cristaux liquides ralis pour le thme industriel de terminale STI gnie lectronique de 98/99 (auteur non mentionn) Divers documents rcuprs sur Internet
Les afficheurs cristaux liquides /Philippe Morenton / Lyce Technique Pierre Emile Martin - Bourges
38