Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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(
4+4
MICROCONTROLADORES
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 *(
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
?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
474
MICROCONTROLADORES
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
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(
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(
4,4
MICROCONTROLADORES
Figura 2. Car"cter de#inido por el usuario y los .alores a almacenar en la C> RAM
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(
Bna .e3 de#inido el nue.o car"cter% cada .e3 que se en.ie su c&di'o correspondiente al display se .isuali3ar"(
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(
4I4
MICROCONTROLADORES
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(
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(
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(
4H4
MICROCONTROLADORES
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(
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(
?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(
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(
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
4 ++ 4
MICROCONTROLADORES
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!(
?ara ir al re'istro de datos de)era tener RS5+ datos y RS58 control y acti.ar E5+ se'<n el tiempo determinado que el pro'ramador desee Acti.o el ena)le y lue'o los datos o .ice.ersa( Se en.a los 7 )its MS se termina el tiempo del ena)le y tam)i$n se terminan de en.iar los 7)its MS pero toda.a no son reconocidos 2 los pines del LCD por esto se .uel.e a acti.ar el ena)le para que se almacenen los 7 )it MS en el LCD
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(
4 +* 4
MICROCONTROLADORES
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( 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(
4 +6 4
MICROCONTROLADORES
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
4 +7 4
MICROCONTROLADORES
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( 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(
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( 4 +9 4
MICROCONTROLADORES
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=
4 +I 4
MICROCONTROLADORES
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=
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 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=
4 +; 4
MICROCONTROLADORES
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(
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=
Con SJC5+ se mue.e el display% con SJC58 el cursor( RJL5+ despla3a a la derec=a y RJL58 a la i3quierda( Cuando encontramos O es un .alor no importa puede ser 8 o +
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!(
4 +H 4
MICROCONTROLADORES
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=
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=
4 *8 4
MICROCONTROLADORES
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 CBSP 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=
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( 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=
4 *+ 4
MICROCONTROLADORES
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=
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(
4 ** 4
MICROCONTROLADORES
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!Q 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!( ?ara sa)er si se autoincrementa o permanece en el dato( 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 *6 4
MICROCONTROLADORES
4 *7 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( LCDRE )s# RA%* nop )c# RA%* return
QActi.a se@al E QEspera de +S necesario con de #;M=3! QDesacti.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( LCD4CBSP )s# RA%+ )s# STATBS%S mo.l0 82## mo.0# TRISC )c# STATBS%S )s# RA%* nop LRCBSP )t#sc 'oto )c# )s# clr# )c# )c# return RC%I LRCBSP RA%* STATBS%S TRISC STATBS(S RA%+
Q?one el LCD en modo lectura QSelecciona el )anco + Q?ort C acti.o de entrada QSelecciona el )anco 8 QActi.a el LCD se@al E!
QC=equea el )it )usy QEst" A+ M ocupado! QDesacti.a el LCD se@al E! QSelecciona el )anco + Q?ort C acti.o de salida QSelecciona el )anco 8 Q?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 *9 4
MICROCONTROLADORES
LCDRRE>
QDesacti.a RS modo instrucci&n! QSaca el c&di'o de instrucci&n QEspera que se li)ere el LCD Q>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( LCDRDATOS )c# RA%8 mo.0# RC call LCDRCBS )s# RA%8 'oto LCDRE
(.' LCDIINI
QDesacti.a RS modo instrucci&n! Q:alor ASCII a sacar por RC QEspera que se li)ere el LCD QActi.a RS modo dato! Q>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 )S88+++888+ call LCDRRE> call DELAPR9MS mo.l0 )S88+++888+ call LCDRRE> call DELAPR9MS mo.l0 )S88+++888S call LCD4RE> call DELAP49MS mo.l0 )G8888888+G call LCDRRE> return
QC&di'o de instrucci&n QTempori3a 9 mS QC&di'o de instrucci&n QTempori3a 9 mS QC&di'o de instrucci&n QTempori3a 9 mS QCorra el LCD y =ome
(.( DELAYI'MS
>enera una tempori3aci&n de 9 mS( Se emplean dos .aria)les llamadas DATORA y DATORC que se decrementan =asta completar la tempori3aci&n( DELAPR9MS mo.l0 82+A mo.0# DATO4C clr# DATORA DELAP4+ dec#s3 DATORA%+ 'oto DELAP4+ dec#s3 DATORC%+ 'oto DELAPR+ return
QCar'a la .aria)le DATO 4C QCar'a la .aria)le DATO4A QDecrementa la .aria)le DATO4A QDecrementa la .aria)le DATO4C
4 *, 4
MICROCONTROLADORES
>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+( DELAPI8 )c# INTCON%* mo.l0 82D; mo.0# TMER8 INTCON%* DELAP+8R+ TEM?O+%+ DELAP+8
Q#la' de estado del TMRO QCar'a TMRO para que cuente 6H QEspera o.er#lo0 del TMRO QRepite TEM?O+ .eces
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=!( DELAPIS mo.l0 82,7 mo.0# TEM?8+ call DELAPLS return QCai'a la .aria)le TEMI?8+
4 *I 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(
4 *; 4