You are on page 1of 27

MICROCONTROLADORES

DISPLAY DE CRISTAL LQUIDO (LCD)

1. INTRODUCCIN Las pantallas de cristal lquido o display LCD para mensajes Liquid Crystal Display! tienen la capacidad de mostrar cualquier car"cter al#anum$rico% permitiendo representar la in#ormaci&n que 'enera cualquier equipo electr&nico de una #orma #"cil y econ&mica( En esta parte se trata so)re los detalles de #uncionamiento de un LCD de * lneas de +, caracteres( Todos los displays de este tipo disponi)les en el mercado son compati)les entre s( Se detallan las caractersticas principales del display- caracteres% memoria interna% alimentaci&n% aspecto #sico( Esta parte de)e ser comprendida y conocida por cualquiera que .aya a manejar un LCD( Tam)i$n se tratan los detalles relacionados con el /ard0are- asi'naci&n de pines% )us de datos% de control% control del contraste% crono'ramas( 1inalmente son e2plicados los comandos de control del LCD y la secuencia de iniciali3aci&n% as como la #orma de conectar el LCD con un microcontrolador(

2. CARACTERSTICAS DEL DISPLAY

4+4

MICROCONTROLADORES

2.1 ASPECTO FSICO

Figura 1. Aspecto #sico del LCD

El LCD tiene un aspecto #sico como el mostrado en la #i'ura +( Est" constituido por un circuito impreso en el que est"n inte'rados los controladores del display y los pines para la cone2i&n del display( So)re el circuito impreso se encuentra el LCD en s% rodeado por una estructura met"lica que lo prote'e( En total se pueden .isuali3ar * lneas de +, caracteres cada una% es decir% *2+,56* caracteres% como se muestra en la #i'ura *(

Figura 2. Aspecto #sico del LCD

A pesar de que el display s&lo puede .isuali3ar +, caracteres por lnea% puede almacenar en total 78 por lnea( Es el usuario el que especi#ica qu$ +, caracteres son los que se .an a .isuali3ar( 2.2. ALIMENTACIN La tensi&n nominal de alimentaci&n es de 9:% con un consumo menor de 9mA( 2.3. LOS CARACTERES DEL LCD El LCD dispone de una matri3 de 92; puntos para representar cada car"cter( En total se pueden representar *9, caracteres di#erentes( *78 caracteres est"n 'ra)ados dentro del LCD y representan las letras may<sculas% min<sculas% si'nos de puntuaci&n% n<meros% etc((( E2isten ; caracteres que pueden ser de#inidos por el usuario( En la #i'ura 6 se

4*4

MICROCONTROLADORES

muestra 'r"#icamente c&mo es la matri3 de representaci&n de los caracteres( Se =a di)ujado el car"cter A y un car"cter de#inido por el usuario(

Figura 3( Matri3 de representaci&n de caracteres% representaci&n del car"cter A y de un car"cter de#inido por el usuario

2. .! LA MEMORIA DEL LCD El LCD dispone de dos tipos de memorias independientes- la DD RAM y la C> RAM
2. .1. DDRAM (Da"a Di#$%a& RAM)

En esta memoria se almacenan los caracteres que est"n siendo .isuali3ados o que se encuentran en posiciones no .isi)les( El display almacena en esta memoria dos lneas de 78 caracteres pero s&lo se .isuali3an * lneas de +, caracteres( ?or ello la DDRAM tiene un tama@o de *2785;8 )ytes% #i'ura 7(

Figura ( DDRAM

De)ido a esta peculiar disposici&n de la DDRAM se puede pensar en el display como un display .irtual constituido por dos lneas de 78 caracteres cada una #i'ura 9!( La posici&n situada m"s a la i3quierda de cada lnea es la posici&n + y la situada m"s a la derec=a es la posici&n 78(

464

MICROCONTROLADORES

Figura '. Display .irtual y display real

?ara locali3ar los elementos dentro del display .irtual se .a a utili3ar un par de coordenadas 2%y! donde 2 representa la posici&n =ori3ontal comprendida entre +478! e y representa la lnea +4*!( El display real es una .entana en la que se .isuali3an dos lneas de +, caracteres( Es lo que el usuario est" .iendo( En el ejemplo de la #i'ura 9 se encuentra almacenado en la lnea + del display .irtual el mensaje- AESTO ES BNA ?RBECA DE BN MENSADEE( Sin em)ar'o% en este ejemplo% el usuario s&lo .er" en el display el mensaje A?RBECA DE BN MENE que tiene e2actamente +, caracteres de lon'itud( M"s adelante se .er" c&mo es posi)le Fmo.erG el display real para que se desplace a lo lar'o del display .irtual( Tal y como se encuentra con#i'urado el display real en la #i'ura 9% la posici&n +7%+! se corresponde con la letra ?% la posici&n +9%+! con la letra R% (((((% y la posici&n *H%+! con la letra N( Cuando se iniciali3a el LCD% el display real se sit<a en el e2tremo m"s i3quierdo del display .irtual% que se corresponde con los .alores de 2 comprendidos entre + y +,( En la #i'ura , se muestra la situaci&n del display real respecto al .irtual al iniciali3ar el LCD(

Figura (. ?osici&n del display real respecto al .irtual cuando se iniciali3a el LCD

En el ejemplo de la #i'ura ,% en la posici&n *%+! se encuentra la letra E y en la posici&n +,%+! la letra B(

474

MICROCONTROLADORES

Figura ). Mapa de memoria de la DDRAM y sus posiciones en el display .irtual(

El mapa de memoria de la DDRAM se muestra en la #i'ura I( Est" constituido por dos )loques de 78 )ytes( El primer )loque se corresponde con los 78 caracteres de la lnea + del display .irtual( El se'undo )loque con la se'unda lnea( En la #i'ura se =an representado las direcciones en =e2adecimal( As% las direcciones 88=4*I= est"n asociadas a las posiciones +%+!4 78%+! del display .irtual y las direcciones 78=4,I= a las posiciones +%*!4 78%*!( En el ejemplo% en la direcci&n 78= de la DDRAM se encuentra almacenado el car"cter /% que se corresponde con la posici&n +%*! del display .irtual( En la direcci&n 8*= se encuentra el car"cter S% posici&n 6%+! del display .irtual( N&tese que los )loques de memoria asociados a la lnea + y * no son conti'uos( Las operaciones de escritura en el display% en realidad son operaciones de escritura en la memoria DDRAM( Se'<n en la posici&n de esta memoria en la que se escri)a el car"cter% aparecer" en una posici&n u otra en el display real( Los caracteres en.iados al display pueden ser .isi)les si se encuentran en posiciones que caen dentro del display real o pueden ser no .isi)les( En la #i'ura ,% las posiciones +%+!4 +,%+! y +%*!4 +,%*! son .isi)les( Todos los caracteres en.iados a esas posiciones ser"n .isi)les( Si se en.a un car"cter a cualquiera de las otras posiciones no ser" .isi)le(

494

MICROCONTROLADORES

2. .2. **RAM (C+ara,"-r *-.-ra/0r RAM)

La C>RAM es la memoria que contiene los caracteres de#ini)les por el usuario( Est" #ormada por ,7 posiciones% con direcciones 88=461=( Cada posici&n es de 9 )its( La memoria est" di.idida en ; )loques% correspondiendo cada )loque a un car"cter de#ini)le por el usuario( ?or ello el usuario puede de#inir como m"2imo ; caracteres% cuyos c&di'os .an del 8 al I(

Figura 1. Mapa de memoria de la C> RAM

En la #i'ura ; se =a representado la C>RAM( Todas las direcciones est"n en =e2adecimal( Como se represent& en la #i'ura 6% cada car"cter est" constituido por una matri3 de 9 columnas 2 ; #ilas( ?ara de#inir un car"cter y asi'narle por ejemplo el c&di'o 8 =a)r" que almacenar en las posiciones 88=48I= los .alores )inarios de las ; #ilas del car"cter del usuario( Bn )it con .alor + representa un punto encendido( Bn )it con .alor 8 es un punto apa'ado(

Figura 2. Car"cter de#inido por el usuario y los .alores a almacenar en la C> RAM

4,4

MICROCONTROLADORES

En la #i'ura H se =a di)ujado un car"cter que se quiere de#inir( A la Derec=a del di)ujo se encuentran los .alores en )inario y en =e2adecimal que =ay que almacenar en las posiciones de la C>RAM( Si se quiere que este car"cter ten'a asi'nado el c&di'o 8 =a)r" que almacenar el .alor 8E= en la posici&n 88=% 8+= y 8*=% el .alor 87= en la 86=(((( y el .alor ++= en la posici&n 8I=% como se muestra en la #i'ura +8(

Figura 13. :alores a almacenar en la C>RAM para de#inir el car"cter 8

Bna .e3 de#inido el nue.o car"cter% cada .e3 que se en.ie su c&di'o correspondiente al display se .isuali3ar"(

3.! INTERFA4 5ARD6ARE


3.1.! ASI*NACION DE PINES

El m&dulo LCD tiene +7 pines descritos en la #i'ura ++ y ta)la +( Se conecta #"cilmente a cualquier sistema microcontrolador% tal como se muestra en la #i'ura +I y +;( Las lneas del )us datos son triestados y pasan a estado de alta impedancia cuando el LCD no est" =a)ilitado(

Figura 11. Asi'naci&n de pines del LCD

4I4

MICROCONTROLADORES

Ta7%a 1( 1unci&n de los pines en un LCD

3.2.! EL INTERFA4 DEL DISPLAY CON EL MUNDO E8TERIOR

Figura 12. Inter#a3 del LCD con un sistema de control

4;4

MICROCONTROLADORES

En la #i'ura +* aparecen las se@ales necesarias para el #uncionamiento y control del display( Los datos se transmiten por un )us de datos de ; )its de anc=ura El display o#rece la posi)ilidad de tra)ajar con este )us multiple2ado en dos 'rupos de 7 )its% pero esto se .er" m"s adelante!( ?ara el control del display son necesarios 6 )its- una se@al de ena)le E!% una para indicar lecturaJescritura RJK! y otra para seleccionar uno de los dos re'istros internos RS!( ?or ello% en el caso peor% el sistema de control del display necesitar" utili3ar ;L65++ )its( En el caso de utili3arse un microcontrolador por ejemplo el ?IC+,1;7A de la #i'ura +I y +;! ser" necesario utili3ar * puertos% por ejemplo el ?BERTO C para los datos y el ?BERTO A para el control(

3.3. EL 9US DE DATOS

El )us de datos del display se puede con#i'urar para #uncionar de dos #ormas di#erentes( Cien como un )us de ; )its o )ien como un )us multiple2ado de 7 )its( El utili3ar el )us multiple2ado de 7 )its es una opci&n muy <til para a=orrar )its en el sistema de control( En .e3 de utili3ar ++ )its en total% se utili3an I( Se a=orran )its pero se 'ana en complejidad del controlador microcontrolador!% que tiene que multiple2ar y demultiple2ar los datos( Al utili3ar un )us de ; )its =acemos que el controlador sea m"s sencillo pero se F'astanG muc=os mas )its(

Figura 13. Cone2i&n del LCD utili3ando un )us de ; )its y de 7 )its

En la #i'ura +* aparecen representados los dos tipos de )uses( Cuando se utili3a un )us de 7 )its s&lo se utili3an los pines D74DI del display dej"ndose D84D6 Fal aireG( La trans#erencia de la in#ormaci&n se reali3a de la si'uiente manera- primero los 7 )its m"s si'ni#icati.os y lue'o los 7 menos si'ni#icati.os( 4H4

MICROCONTROLADORES

3. . EL 9US DE CONTROL

El )us de control est" #ormado por 6 se@ales- RS, R/W y E( La se@al E es la se@al de .alidaci&n de los datos( Cuando no se utili3a el display esta se@al de)e permanecer a 8( S&lo en las trans#erencias de in#ormaci&n lecturas o escrituras! es cuando se pone a ni.el + para .alidar los datos% pasando despu$s de un tiempo a ni.el 8(M"s adelante se e2plican detalladamente las tempori3aciones( La se@al R:6 permite seleccionar si la operaci&n que se .a a reali3ar so)re el display es una lectura o una escritura( Cuando R:6;1 se reali3an lecturas y cuando R:6;3 escrituras( Lo normal siempre es reali3ar escrituras% no o)stante% el display o#rece la posi)ilidad de poder leer los contenidos de la memoria C>RAM y DDRAM as como leer el estado interno del display ocupado o disponi)le! y el contador de direcciones(( Con RS Re'ister Select! se selecciona el re'istro interno del display so)re el que se .a a leerJescri)ir( El LCD dispone de dos re'istros internos- R-gi#"r0 /- ,0."r0% y r-gi#"r0 /- /a"0#( Am)os re'istros son de lectura y escritura( RS;3 selecciona el re'istro de control( RS;1 el re'istro de datos(

En la secci&n 7 se tratan con detalle los di#erentes comandos internos del display(

3.'.! EL CONTROL DEL CONTRASTE

?ara controlar el constraste =ay que introducir por el pin :LC una tensi&n entre 9 y 8 .oltios( La tensi&n tpica es de 8(, .oltios( Normalmente se coloca un potenci&metro para poder ajustar en cada momento el contraste m"s adecuado( En la #i'ura +7 se muestra un esquema tpico de control del contraste(

Figura 1 . Control del contraste en el LCD

4 +8 4

MICROCONTROLADORES

3.'.! TEMPORI4ACIN

En la #i'ura +9 se =an representado los crono'ramas correspondientes a una operaci&n de escritura y otra de lectura( Al controlar el display los tiempos empleados de)en ser siempre mayores que los mnimos indicados en la #i'ura y menores que los m"2imos( A pesar de la aparente complejidad del crono'rama% las operaciones de lectura y escritura son muy sencillas( En la #i'ura +9 se =a supuesto que las transmisiones de los datos se reali3a)an a ; )its(

Figura 1'. Crono'ramas del LCD

En la #i'ura +, se muestran los crono'ramas correspondientes a las operaciones m"s =a)ituales- escritura de un car"cter en el LCD( Se presenta el crono'rama cuando se usa un )us de ; )its y cuando se usa un )us multiple2ado de 7 )its( Se =a supuesto que el car"cter en.iado es el 7+= La letra FAG!(

4 ++ 4

MICROCONTROLADORES

Figura 1(. Crono'ramas correspondientes a la operaci&n de escri)ir el dato 7+= Car"cter FAG! en el display utili3ando un )us de datos de ; y 7 )its(

?ara el caso de 7 )its% primero se en.an los 7 )its MAS SI>NI1ICATI:OS y despu$s los 7 )its menos si'ni#icati.os( Los crono'ramas de arri)a se pueden e2presar FsecuencialmenteG% descri)iendo las operaciones que tendra que reali3ar un microcontrolador para escri)ir el car"cter A en el LCD( O$-ra,i0.-# a r-a%i<ar $ara -% ,a#0 /- 1 7i"#. +( La se@al E se encuentra siempre a 8 antes de reali3ar cualquier operaci&n *( ?oner RS5+ y RJK58 6( Situar el dato a imprimir en el )us de datos del LCD En este ejemplo se en.iara 7+=! 7( E5+ 9( E58 ,( El car"cter =a sido imprimido en el LCD(

4 +* 4

MICROCONTROLADORES

O$-ra,i0.-# a r-a%i<ar $ara -% ,a#0 /- 7i"#= +( ?oner RS5+ y RJK58 *( Situar el .alor 7 en el )us de datos del LCD 7 )its m"s si'ni#icati.os! 6( E5+ 7( E58 9( Situar el .alor + en el )us de datos del LCD 7 )its menos si'ni#icati.os! ,( E5+ I( E58 ;( El car"cter =a sido imprimido en el LCD

En la #i'ura +I y +; se ilustra las dos #ormas de conectar el modulo LCD en este caso el LCD LM8+,L! con un microcontrolador en este ejemplo el ?IC+,1;7A!% como se =a estado mencionando =asta el momento el )us de datos del display se puede con#i'urar para #uncionar de dos #ormas di#erentes( Cien como un )us de ; )its o )ien como un )us multiple2ado de 7 )its(

Figura 1). Cone2i&n del LCD utili3ando un )us de 7 )its

4 +6 4

MICROCONTROLADORES

Figura 11. Cone2i&n del LCD utili3ando un )us de ; )its

3.(. MODOS DE FUNCIONAMIENTO

La mayora de LCDs% tienen tres modos de #uncionamiento principales M0/0 C0>a./0. Cuando por el )us de datos el LCD reci)e instrucciones como MCorrar DisplayM% MMo.er CursorM% MDespla3ar a i3quierdaM% etc( ?ara tra)ajar en modo comando% el pin RS de)e estar a M8M( El pin RJK tam)i$n de)e ser M8M para indicar que se est" reali3ando una operaci&n de escritura( Bna operaci&n en este modo tarda un m"2imo de +%,7 ms( M0/0 Car?,"-r 0 Da"0. Cuando por el )us de datos el .isuali3ador LCD reci)e un car"cter a escri)ir en la DDRAM( Es decir% cuando se en.a al LCD el car"cter ASCII a .isuali3ar( ?ara tra)ajar en este modo% el pin RS de)e estar a M+M( El pin RJK de)e ser MOM para indicar que est" reali3ando una operaci&n de escritura( Tam)i$n se le puede llamar Mmodo car"cterM o Mmodo re'istroM( Bna operaci&n en este modo tarda un m"2imo de 78 us( M0/0 %-,"ura /-% @9u#& F%ag@ 0 LCD O,u$a/a. En el )it I del )us de dato el LCD in#orma al microcontrolador de que est" ocupado% este )it es denominado Cusy 1la'!( ?ara ello se lee el )us de dato con RS58 y RJK5 +% si el )it I del )us de datos es M+M indica que la pantalla LCD est" ocupada reali3ando operaciones internas y no puede aceptar nue.as instrucciones ni datos( /ay que esperar a que el Cusy 1la' .al'a M8M para en.iarle la si'uiente instrucci&n o car"cter(

4 +7 4

MICROCONTROLADORES

El modo de operaci&n de lectura del Cusy 1la' se =a ideado para e.itar posi)les pro)lemas de tiempo% de manera que no se reali3a nin'una operaci&n con el LCD =asta compro)ar que no est" ocupado( El pin RJK permite leer el re'istro de estado en el modo Busy Flag que s&lo sir.e para compro)ar si el controlador =a terminado de reali3ar la instrucci&n que se le =a en.iado y as poder en.iar m"s( ?ara un control sencillo% se pueden reali3ar pausas despu$s de cada instrucci&n o en.o de datos para no tener que leer el re'istro de estado% con ello se e.ita el modo de lectura del Cusy 1la'( La principal .entaja de esto es que se lo'ra a=orrar un pin del microcontrolador porque la lnea RJK no es necesaria y se puede conectar directamente a masa( La detecci&n del Cusy 1la' se sustituye entonces por un peque@o retardo antes de reali3ar cualquier nue.a operaci&n con el display LCD( Este retardo de)e ser mayor de +%,7 ms si tra)aja en modo comando y mayor de 78 Ns si tra)aja en modo dato( .! COMANDOS DE CONTROL DEL LCD
.1.! INTRODUCCIN

El LCD se controla mediante comandos que se en.an al re'istro de control del LCD% seleccionado al poner la se@al RS a ni.el )ajo 8!( Cuando lo que se quiere es imprimir caracteres en el display o en.iar in#ormaci&n a la C>RAM para de#inir caracteres se selecciona el re'istro de datos poniendo RS a ni.el alto +!( E2iste un contador de direcciones para la DDRAM y otro para la C>RAM% el cual contiene la direcci&n a la que se .a a acceder( Modi#icando el contador de direcciones es posi)le acceder a cualquier posici&n tanto de la C>RAM como de la DDRAM( Con ello se consi'ue por ejemplo imprimir caracteres en cualquier posici&n del LCD( Cada .e3 que se reali3a un acceso a memoria% el contador de direcciones se incrementa o decrementa autom"ticamente% se'<n c&mo se =aya con#i'urado el LCD( Al LCD le lle.a un cierto tiempo procesar cada comando en.iado( ?or ello% para que se ejecute el comando especi#icado es necesario ase'urarse de que el comando anterior =a #inali3ado( E2isten dos estrate'ias para reali3ar esto( La primera se )asa en leer del display el 7i" /- 0,u$a/0( Si este )it se encuentra a + quiere decir que el LCD est" ocupado procesando el comando anterior y por tanto no puede procesar nue.os comandos( La se'unda estrate'ia% menos ele'ante pero m"s c&moda de implementar% consiste en reali3ar una pausa antes de .ol.er a en.iar el si'uiente comando( Los tiempos m"2imos que tarda el display en procesar los comandos est"n especi#icados por el #a)ricante y tienen un .alor tpico de 78 Ns( Si se reali3a una pausa mayor o i'ual a esta se tiene 'aranta de que el display =a terminado de ejecutar el comando(
.2. RESUMEN DE COMANDOS

Los comandos que admite el m&dulo LCD se resumen en la ta)la *(

4 +9 4

MICROCONTROLADORES

Ta7%a 2. Resumen de los comandos del LCD

Ta7%a 3. A)re.iaturas empleadas en los c&di'os y su si'ni#icado

.3. DESCRIPCIN DE LOS COMANDOS

4 +, 4

MICROCONTROLADORES

Se'uidamente se presenta una serie de comando o instrucciones que permiten con#i'urar di#erentes opciones de tra)ajo del m&dulo LCD y conse'uir con ello distintos e#ectos de .isuali3aci&n El jue'o de instrucciones consiste en di#erentes c&di'os que se introducen a tra.$s del Cus de datos del m&dulo LCD conectado al ?ort C del ?IC+,1;7A
CLEAR DISPLAY (90rrar Di#$%a&)

Este comando )orra todas las posiones del display .irtual y sit<a el display real en la posici&n inicial 1i'ura ,!% en la que se .isuali3an las posiciones desde la +%+! =asta la +,%+! y desde la +%*! =asta la +,%*!( El cursor se sit<a en la posici&n +%+! Direcci&n 8 de la DDRAM!( ?one el )it I:D a M+M por de#ecto para auto incremento de la posici&n del cursor( CA/ig0=

RETURN 5OME (Cur#0r a 50>-)

En.iar el cursor a la posici&n +%+!( El display real se sit<a en la posici&n inicial( 1i'ura ,!( Es decir que coloca el cursor en la posici&n de inicio direcci&n 8! y =ace que el display comience a despla3arse desde la posici&n ori'inal( El contenido de la memoria RAM de datos de .isuali3aci&n DDRAM! permanece in.aria)le( La direcci&n de la memoria RAM de datos para la .isuali3aci&n DDRAM! es puesta a 8( CA/ig0=

ENTRY MODE SET (E#"a7%-,-r M0/0 /- Fu.,i0.a>i-."0)

Actuali3ar el contador de direcciones en la #orma especi#icada y esta)lecer si el display reali3a despla3amientos o no( Estas acciones se lle.an a ca)o cada .e3 que se reali3a una lectura o escritura en el display( Cuando IJD5+% el contador de direcciones se incrementa% lo que pro.oca que el cursor a.ance =acia la derec=a cada .e3 que se imprime un car"cter en el display( Cuando IJD58 el contador se decrementa y el cursor 4 +I 4

MICROCONTROLADORES

se mue.e =acia la i3quierda al imprimir( Con S5+ se indica al LCD que de)e mo.er el display real una posici&n a la derec=a cada .e3 que se imprime un car"cter( Con S58 el display de)e permanecer FquietoG al imprimir( Normalmente se utili3a IJD5+ y S58% por lo que el ,0>a./0 "B$i,0 -# 3C3(! Estas operaciones se ejecutan durante la lectura o escritura de la DDRAM o C>RAM( CA/ig0=

DISPLAY ON:OFF CONTROL

Acti.a o desacti.a poniendo en ONJO11 tanto al display D! como al cursor C! y se esta)lece si este <ltimo de)e o no parpadear C!( CA/ig0=

Display ON/OFF- D5+ acti.ar el LCD( Cuando D58 el LCD #unciona normalmente pero no se .isuali3a nin'una in#ormaci&n( Es posi)le reali3ar impresiones% en.iar comandos% pero nada quedar" re#lejado en pantalla( S&lo cuando D5+ se puede .er al'o en el display( Cursor ON/OFF- C5+ acti.a el cursor( Con C58 el cursor no se .e( Parpadeo ON/OFF- C5+ =ace que los caracteres situados en la posici&n del cursor parpadeen( Con C58 no =ay parpadeo(

CURSOR AND DISPLAY S5IFT (D-#$%a<a>i-."0 /-% ,ur#0r:/i#$%a&)

Mue.e el cursor y despla3a el display sin cam)iar el contenido de la memoria de datos de .isuali3aci&n DD RAM( CA/ig0=

4 +; 4

MICROCONTROLADORES

Con SJC5+ se mue.e el display% con SJC58 el cursor( RJL5+ despla3a a la derec=a y RJL58 a la i3quierda(
FUNCTION SET (M0/0 /- Tra.#D-r-.,ia /- %a I.D0r>a,iA.)

Esta)lece el tama@o de inter#ase con el )us de datos DL!% n<mero de lneas del display N! y tipo de car"cter 1!( CA/ig0=

D L5 E+E Tra)aja en )us de ; )its% si 5E8E )us de 7 )its N 5 A+E ?resentaci&n en * lneas% si 5 A8E se una lnea 1 5 E+E caracteres de 92+8 pi2el% si 5E8E 92I
SET C*RAM ADDRESS (A,,-#0 a P0#i,i0.-# C0.,r-"a# /- %a C*RAM)

El m&dulo LCD adem"s de tener de#inidos todo el conjunto de caracteres ASCII% permite al usuario de#inir 7 u ; caracteres 'r"#icos( La composici&n de estos caracteres se .a 'uardando en una memoria llamada C>RAM con capacidad para ,7 )ytes( Cada car"cter 'r"#ico de#inido por el usuario se compone de +, u , )ytes que se almacenan en sucesi.as posiciones de la C>RAM( Mediante esta instrucci&n se esta)lece la direcci&n de la memoria C> RAM a partir de la cual se ir"n almacenando los )ytes que de#inen un car"cter 'r"#ico( Ejecutado este comando todos los datos que se escri)an o se lean posteriormente% lo =acen desde esta memoria C>RAM( CA/ig0=

4 +H 4

MICROCONTROLADORES

SET DDRAM ADDRESS (A,,-#0 a P0#i,i0.-# C0.,r-"a# /- %a DDRAM)

Los caracteres o datos que se .an .isuali3ando% se .an almacenando pre.iamente en una memoria llamada DDRAM para de aqu pasar a la pantalla( Mediante esta instrucci&n se esta)lece la direcci&n de memoria DDRAM a partir de la cual se ir"n almacenando los datos a .isuali3ar( Ejecutado este comando% todos los datos que se escri)an o lean posteriormente los =acen desde esta memoria DDRAM( CA/ig0=

READ 9USY FLA* E ADDRESS

Cuando el m&dulo LCD est" ejecutando cualquiera de estas instrucciones% tarda un cierto tiempo de ejecuci&n en el que no se le de)e mandar nin'una otra instrucci&n( ?ara ello dispone de un #la' llamado CBSO C1! que indica que se est" ejecutando una instrucci&n pre.ia( Esta instrucci&n de lectura in#orma del estado de dic=o #la' adem"s de proporcionar el .alor del contador de direcciones de la C>RAM o de la DDRAM se'<n la <ltima que se =aya empleado( CA/ig0=

C1 5E+E el m&dulo LCD est" ocupado y si 5E8E est" disponi)le

6RITE DATA TO C*RAM OR DDRAM (E.FBar /a"0# a %a C*RAM 0 a %a DDRAM)

Mediante este comando se escri)e en la memoria DDRAM los datos que se quieren presentar en pantalla y que ser"n los di#erentes c&di'os ASCII de los caracteres a .isuali3ar( I'ualmente se escri)e en la memoria C>RAM los di#erentes )ytes que permiten con#eccionar caracteres 'r"#icos a 'usto del usuario( 4 *8 4

MICROCONTROLADORES

El escri)ir en uno u otro tipo de memoria depende de si se =a empleado pre.iamente la instrucci&n de direccionamiento DD RAM o la de direccionamiento C>RAM( Lo normal es acceder siempre a la DDRAM% porque es donde se .a a reali3ar la impresi&n de caracteres en el display( CA/ig0=

READ DATA FR6 C*RAM OR DD RAM (L--r /a"0# /- %a C*RAM 0 %a DDRAM)

Mediante este comando se lee de la memoria DDRAM los datos que =aya almacenados y que ser"n los c&di'os ASCII de los caracteres .isuali3ados( I'ualmente se lee de la memoria C>RAM los di#erentes )ytes con los que se =a con#eccionado un determinado car"cter 'r"#ico( El leer de uno u otro tipo de memoria depende de si se =a empleado pre.iamente la instrucci&n de direccionamiento de la DDRAM o la de direccionamiento C> RAM( CA/ig0=

4 *+ 4

MICROCONTROLADORES

. SECUENCIA TIPICA DE INICIALI4ACION DEL LCD

El m&dulo LCD ejecuta autom"ticamente una secuencia de inicio interna en el instante de aplicarle la tensi&n de alimentaci&n si se cumplen los requisitos de alimentaci&n e2puestos en el si'uiente crono'rama(

Dic=os requisitos consisten en que el tiempo que tarde en esta)ili3arse la tensi&n desde 8(* : =asta los 7(9: mnimos necesarios sea entre 8(+ mS y +8 mS( I'ualmente el tiempo de descone2i&n de)e ser como mnimo de + mS antes de .ol.er a conectar( La secuencia de inicio ejecutada es la si'uiente+( Se ejecuta el comando CLEAR DISPLAY )orrando la pantalla( El #la' 9USY se mantiene a M+M ocupado! durante +9 mS =asta que #inali3a la iniciali3aci&n( *( Se ejecuta el comando FUNCTION SET% que esta)lece el inter#a3 con el Cus de datos( Se eli'e por de#ecto el tama@o del )us de datos a ; )its DL5+! y el n<mero de ren'lones del display en + N58!( 6( Se ejecuta el comando DISPLAY ON:OFF CONTROLG que =ace que el display que en O11 D58!P tam)i$n cursor en O11 C58! y sin parpadeo del cursor en C58! 7( Se ejecuta el comando ENTRY MODE SETG que esta)lece la direcci&n de mo.imiento del cursor con autoincremento del cursor IJD5+! y modo normal% no despla3amiento% del display S58!( Si la cone2i&n de la alimentaci&n no reune las condiciones que e2i'e el m&dulo LCD% =a)ra que reali3ar la secuencia de iniciali3aci&n por so#t0are( En cualquier caso% es importante en.iar al LCD la primera instrucci&n de tra)ajo despu$s de que =ayan transcurrido +9 ms% para completar dic=a secuencia de iniciali3aci&n(

'. HUE*O DE CARACTERES Es el mostrado en la si'uiente 1i'ura +H( Las posiciones marcadas como C>RAM n! corresponden a uno de los ; posi)les caracteres 'r"#icos de#inidos por el usuario(

4 ** 4

MICROCONTROLADORES

Figura 12. Due'o de Caracteres

4 *6 4

MICROCONTROLADORES

(. RUTINAS DE CONTROL En este apartado se presentan una serie de rutinas escritas en el ensam)lador M?ASM de MICROC/I? con o)jeto de proporcionar al usuario una idea de c&mo 'estionar las di#erentes acti.idades a reali3ar con el m&dulo LCD( Est"n reali3adas )as"ndose en un ?IC +,1;7A a 7 M/3 de .elocidad(
(.1. LCDIE

>enera un pulso por la patilla RA* se@al E! para acti.ar al m&dulo LCD( El pulso es de lS de duraci&n tra)ajando a 7 M/3( En caso de #recuencias mayores de tra)ajo =a)r" que aumentar este tiempo para no re)asar la duraci&n mnima impuesta por el #a)ricante del LCD( LCDQE )s# RA%* nop )c# RA%* return
PActi.a se@al E PEspera de +S necesario con de #;M=3! PDesacti.a se@al E

(.2 LCD!9USY

C=equea el estado del #la' Cusy del LCD y espera a que #inalice cualquier instrucci&n pre.ia antes de retomar( LCD4CBSO )s# RA%+ )s# STATBS%S mo.l0 82## mo.0# TRISC )c# STATBS%S )s# RA%* nop LQCBSO )t#sc 'oto )c# )s# clr# )c# )c# return RC%I LQCBSO RA%* STATBS%S TRISC STATBS(S RA%+
P?one el LCD en modo lectura PSelecciona el )anco + P?ort C acti.o de entrada PSelecciona el )anco 8 PActi.a el LCD se@al E!

PC=equea el )it )usy PEst" A+ M ocupado! PDesacti.a el LCD se@al E! PSelecciona el )anco + P?ort C acti.o de salida PSelecciona el )anco 8 P?one el LCD en modo escrita

(.3 LCDIRE*

Deposita el c&di'o de instrucci&n presente en el re'istro K del ?IC so)re el ?ORTC( Espera que el LCD ejecute la <ltima operaci&n y 'enera el pulso de acti.aci&n en la se@al E( 4 *7 4

MICROCONTROLADORES

LCDQRE>

)c# RA%8 mo.0# RC call LCDQCBSO 'oto LCDQE

PDesacti.a RS modo instrucci&n! PSaca el c&di'o de instrucci&n PEspera que se li)ere el LCD P>enera pulso en la se@al E

(. LCDIDATOS

Deposita el c&di'o ASCII del car"cter a .isuali3ar presente en el re'istro K% so)re el ?ORTC( Espera a que el LCD ejecute la <ltima operaci&n y 'enera el pulso de acti.aci&n en la se@al E( LCDQDATOS )c# RA%8 mo.0# RC call LCDQCBS )s# RA%8 'oto LCDQE
(.' LCDIINI
PDesacti.a RS modo instrucci&n! P:alor ASCII a sacar por RC PEspera que se li)ere el LCD PActi.a RS modo dato! P>enera pulso en la se@al E

Reali3a la iniciali3aci&n del m&dulo LCD se'<n los tiempos marcados por el #a)ricante +9 mS!( En este ejemplo se inicia con un inter#ase de ; )its de )us de datos% * lneas de .isuali3aci&n y caracteres de 9 2 I puntos( LCD4INI mo.l0 )R88+++888+ call LCDQRE> call DELAOQ9MS mo.l0 )R88+++888+ call LCDQRE> call DELAOQ9MS mo.l0 )R88+++888R call LCD4RE> call DELAO49MS mo.l0 )G8888888+G call LCDQRE> return
PC&di'o de instrucci&n PTempori3a 9 mS PC&di'o de instrucci&n PTempori3a 9 mS PC&di'o de instrucci&n PTempori3a 9 mS PCorra el LCD y =ome

(.( DELAYI'MS

>enera una tempori3aci&n de 9 mS( Se emplean dos .aria)les llamadas DATOQA y DATOQC que se decrementan =asta completar la tempori3aci&n( DELAOQ9MS mo.l0 82+A mo.0# DATO4C clr# DATOQA DELAO4+ dec#s3 DATOQA%+ 'oto DELAO4+ dec#s3 DATOQC%+ 'oto DELAOQ+ return
PCar'a la .aria)le DATO 4C PCar'a la .aria)le DATO4A PDecrementa la .aria)le DATO4A PDecrementa la .aria)le DATO4C

4 *9 4

MICROCONTROLADORES

(.). DELAY 13 >#

>enera% con ayuda del TMRO y el preescaler de *9,% una tempori3aci&n de unos l8 mS que se repite tantas .eces como indique la .aria)le TEM?O+( DELAOI8 )c# INTCON%* mo.l0 82D; mo.0# TMER8 INTCON%* DELAO+8Q+ TEM?O+%+ DELAO+8
P#la' de estado del TMRO PCar'a TMRO para que cuente 6H PEspera o.er#lo0 del TMRO PRepite TEM?O+ .eces

DELAO+8Q+ )t#ss 'oto dec#s3 'oto return


(.1. DELAY 1 #

En )ase a la rutina anterior se reali3a una tempori3aci&n de +s car'ando en la .aria)le TEM?O+ el .alor +88 ,7=!( DELAOIS mo.l0 82,7 mo.0# TEM?8+ call DELAOLS return PCai'a la .aria)le TEMI?8+

4 *, 4

MICROCONTROLADORES

). CONCLUSIONES En muc=os proyectos es necesario .isuali3ar in#ormaci&n a tra.$s de una pantalla de )ajo coste( La #orma m"s utili3ada es mediante un display LCD tal y como se e2plico en este tra)ajo de in.esti'aci&n( Distintos #a)ricantes o#recen multitud de .ersiones de .isuali3adores de cristal lquido Los modelos m"s utili3ados son los m&dulos de dos lneas de +, caracteres cada una( Su #"cil manejo los =acen ideal para dispositi.os que necesitan una capacidad de .isuali3aci&n peque@a o media( La .entaja #undamental del control mediante ; )its respecto de 7 )its% es una mayor rapide3 al en.iar los ; )its por el puerto de una .e3% en lu'ar de empaquetarlos en )loque de 7 )its( Adem"s% el so#t0are de control es m"s sencillo( Se'<n la necesidad del usuario y la tarea a reali3ar se de)e esco'er y manejar un espec#ico modo #uncionamiento del LCD para #acilitar el intercam)io de in#ormaci&n con el microcontrolador( 1. 9I9LIO*RAFA =ttp-JJ000(terra(esJpersonalJ#remiroJArc=i.osJLcd(pd# =ttp-JJ000(micro)otica(comJ0e)Jdo0nlJdocsJdisplay(pd# =ttp-JJccna9(netJccna4rs4introduction4to4net0orSs4c=apter4*4e2am4.ersion49484pd#J cisco =ttp-JJccna9(netJccna4rs4introduction4to4net0orSs4c=apter464e2am4.ersion49484pd#J

4 *I 4

You might also like