Sei sulla pagina 1di 35

MANEJO DEL VISUALIZADOR LCD

GRFICO (GLCD)

Ing. Junior Figueroa Olmedo

CARACTERSTICAS GENERALES

Un LCD grfico (GLCD) proporciona un mtodo avanzado para visualizar mensajes.


Mientras que un LCD de caracteres puede visualizar slo caracteres alfanumricos,
el LCD grfico puede visualizar los mensajes en forma de dibujos y mapas de bits.

Los GLCDs permiten imprimir fragmentos de lneas horizontales o verticales,


ondas, rectngulos, barras, crculos y textos, los cuales arman en conjunto una
imagen total.

Son comnmente utilizados en muchas aplicaciones cientficas, en las que se desea


visualizar datos grficos, como un grfico de barras o un grfico de lneas x-y, por
ejemplo, un grfico que muestre el cambio de temperatura con el tiempo.

CARACTERSTICAS GENERALES

Otras aplicaciones de consumo:

Telfonos mviles
Reproductores MP3
Sistemas GPS
Juegos
Juguetes educativos
Automatizacin y control industrial, donde
varias caractersticas de la planta pueden ser
fcilmente monitorizadas o cambiadas.

Actualmente, en el mercado existen varias


pantallas
GLCD,
as
como
los
controladores
que
determinan
su
funcionamiento.
Para
aplicaciones
pequeas, uno de los ms comnmente
utilizados es el GLCD monocromtico
(blanco y negro) con un tamao de
128X64 pixeles y con un controlador
KS0108.

En estas presentaciones se va a trabajar


con un GLCD del fabricante Ampire que
posee un controlador KS0108 (AG12864C).

APLICACIONES GLCD

FUNCIONAMIENTO INTERNO DEL GLCD


AG-12864C 128X64 PIXELES

FUNCIONAMIENTO INTERNO DEL GLCD

El mdulo AG-12864C funciona con una alimentacin de 5 V y consume normalmente una


corriente de 8 mA. Cuenta con un circuito generador de tensin negativa interna
(DC/DC Converter) que proporciona un voltaje negativo en la patilla externa VEE. Un
potencimetro externo (normalmente 10 K) est conectado entre los pines VDD y VEE
para ajustar el voltaje de funcionamiento del LCD (contraste) en el pin Vo.

Este mdulo utiliza dos chips controladores KS0108B y KS0107, los cuales controlan el
funcionamiento interno del GLCD.

El KS0108B es un controlador de segmentos de matriz de puntos con 64 canales de salida.


El mdulo AG-12864C contiene dos conjuntos de l para poder manipular los 128
segmentos verticales disponibles en el panel LCD.

El KS0107 es un controlador con 64 canales de salida y tambin es el encargado de


generar la seal de temporizacin para controlar los dos controladores KS0108B.

La pantalla del GLCD est dividida en dos secciones. El KS0107 maneja los 64 segmentos
horizontales de la pantalla (COM1 - COM64). El primer controlador KS0108B maneja la
mitad de los segmentos ubicados a la izquierda de la pantalla (SEG1 a SEG64) y el segundo
controla los segmentos de la mitad derecha (SEG65 a SEG128).

FUNCIONAMIENTO INTERNO DEL GLCD

Las dos mitades de la pantalla pueden ser accedidas de forma individual a travs de
los pines de seleccin CS1 y CS2 ubicados en los dos controladores KS0108B,
respectivamente.
Cada mitad se compone de 8 pginas horizontales (0-7), donde cada pgina es de 8
bits de alto y 8 bytes (64 bits) de ancho. Por lo tanto, cada mitad de la pantalla
consta de 64X64 bits.

FUNCIONAMIENTO INTERNO DEL GLCD

A partir de la pgina 0 en la mitad izquierda (CS1 = 0, CS2 = 1), si transmite un


byte de datos, este aparecer en la primera columna de la pgina 0. Si se repite este
proceso 64 veces y luego se cambia a la segunda mitad derecha (CS1 = 1, CS2 = 0),
y posteriormente se repiten 64 acciones de las mismas (es decir, recorrer 128
posiciones), se trazarn las 8 primeras lneas de la pantalla.

Las siguientes 8 lneas se pueden trazar de manera similar cambiando la direccin a


la pgina 1. La cantidad total de bytes necesarios para completar la pantalla
(128X64 pxeles) es, por lo tanto, 2 * 64 pxeles * 8 bits = 1024 bytes.

FUNCIONAMIENTO INTERNO DEL GLCD

El texto a visualizar se escribe en las pginas de la pantalla. Considerando que cada


carcter ocupa 8X8 pixeles, un total de 16 caracteres pueden ser escritos a travs
de una pgina determinada en las dos mitades de la pantalla. Teniendo en cuenta que
hay 8 pginas, un total de 128 caracteres pueden ser escritos en la pantalla.

El origen de la pantalla es la esquina superior izquierda. La direccin X se extiende


hacia la derecha, y la direccin Y se extiende hacia la parte inferior de la pantalla. En
la direccin X, los pxeles van de 0 a 127, mientras que en la direccin Y, los pxeles
van de 0 a 63. La coordenada (127, 63) representa la esquina inferior derecha de la
pantalla.

DISTRIBUCIN DE PINES DEL GLCD


AG-12864C

Los diagramas de distribucin de los pines de los GLCDs basados en controladores


KS0108 no han sido estandarizados y por lo tanto, es importante leer la hoja de
datos del fabricante para el correcto cableado de un mdulo GLCD.

DISTRIBUCIN DE PINES DEL GLCD


AG-12864C

Los dos primeros pines (1 y 2) son los pines de seleccin de chip para el lado
izquierdo y derecho del controlador de la pantalla. Estos pines son activados en bajo
en el mdulo AG-12864C, pero podran ser activados en alto en algunos otros
modelos, por eso es importante revisar la hoja de datos del fabricante.

El mdulo AG-12864C funciona con una fuente de alimentacin de 5,0 V.

El pin nmero 6 D/I es de Data/Instruction (tambin llamado Register Select, RS).


Los datos de 8 bits alimentados a los pines D0-D7 del GLCD son recibidos por el
chip controlador del LCD como un comando si D/I = 0, y como datos si D/I es 1.

Los pines R/W y E tienen similares funciones como en un mdulo LCD basado en
un controlador HD44780.

Una resistencia fija debe ser conectada en serie con el LED de luz de fondo (pin 19)
para limitar la corriente.

MODOS DE OPERACIN DEL GLCD

La seal R/W permite seleccionar si la operacin que se va a realizar sobre el


mdulo LCD es una lectura o una escritura. Cuando R/W=1 se realizan lecturas y
cuando R/W=0 escrituras.

Con D/I se selecciona el registro interno del mdulo GLCD sobre el que se va a
leer/escribir. El GLCD dispone de dos registros internos: registro de control y
registro de datos, ambos registros son de lectura y escritura. Con D/I=0 se
selecciona el registro de control y con D/I=1 el registro de datos.

D/I

R/W

Modo

Una instruccin est siendo escrita, por ejemplo definir la direccin X.

El microcontrolador lee el estado del GLCD (si est ocupado o listo para otro
comando).

Escritura de datos. Los datos se escriben en la memoria RAM de visualizacin


en cualquier coordenada X-Y establecida.

Lectura de datos. Los datos visualizados en la pantalla del GLCD son ledos por
el microcontrolador.

COMANDOS DE CONTROL DEL GLCD

DIAGRAMA DE CONEXIONES PARA EL GLCD

Se pueden utilizar cualquiera de los terminales de los puertos y mediante el


software de programacin se generan las seales con la secuencia correcta.

En este caso en particular, como se van a emplear las libreras prediseadas del
compilador CCS se deben utilizar las conexiones propuestas en la ayuda
especificada en la librera, aunque hay la posibilidad de modificar el programa de
estas libreras para poder utilizar los pines que se deseen.

Diagrama de Flujo del Algoritmo de Programacin

MANEJO DEL MDULO GLCD MEDIANTE


FUNCIONES DEL COMPILADOR CCS

El compilador CCS suministra varios drives para este tipo de LCD grficos, el
GLCD.c, el GRAPHICS.c o el ms especfico el HDM64GS12.c. En esta seccin, se
va explicar las funciones de uso comn de estos drivers previstas para el GLCD de
128x64 pixeles, que trabajan con el controlador KS0108.

El driver HDM64GS12.c, define los pines de salida y algunas instrucciones para el


funcionamiento del GLCD HDM64GS12 de la compaa Hantronix con un
controlador de pantalla KS0108.

El driver GRAPHICS.c contiene funciones para el dibujo de lneas, rectngulos,


barras, crculos y texto en el LCD. Una funcin la cual dibuje un solo pxel debe ser
definida antes de llamar a las funciones en este archivo. Esta funcin y otras ms se
encuentran definidas dentro del driver HDM64GS12.c, por dicha razn se suelen
utilizar y llamar a ambos drivers en el mismo programa principal.

Para evitar la llamada de ambos drivers en el compilador CCS se encuentra


disponible el driver GLCD.c cuya estructura es la unin de las variables, expresiones
y funciones de los dos drivers mencionados anteriormente.

MANEJO DEL MDULO GLCD MEDIANTE


FUNCIONES DEL COMPILADOR CCS
Los drivers antes mencionados no son exclusivos para el manejo del GLCD
HDM64GS12. El programador puede utilizar estos drivers para poner en
funcionamiento otros mdulos GLCDs pero que tengan el mismo controlador
KS0108 aunque sean de diferentes fabricantes; basta con aadir o modificar (si es
necesario) nuevas lneas de cdigo antes de las llamadas de los drivers en el
programa principal. La conexin definida en estos ficheros es la siguiente:

La definicin de los pines puede ser cambiada al inicio del programa principal con la
intencin de no modificar la estructura original del driver utilizado.

MANEJO DEL MDULO GLCD MEDIANTE


FUNCIONES DEL COMPILADOR CCS

glcd_init (mode)
Se encarga de inicializar el GLCD. El parmetro mode determina si estar encendido
(si recibe un "ON") o apagado (si recibe un "OFF"). Esta debe ser la primera funcin
en invocarse antes que cualquier otra.

MANEJO DEL MDULO GLCD MEDIANTE


FUNCIONES DEL COMPILADOR CCS

Para enviar cualquier dato o comando al mdulo GLCD se emplea la funcin glcd_writeByte
(chip, data) que est desarrollada en base a los criterios mostrados en el diagrama de flujo y
al cronograma de tiempos para una operacin de escritura mostrado en la Figura. El
programador no interacta directamente con esta funcin, sino que esta es invocada por
otras funciones ms especficas.

MANEJO DEL MDULO GLCD MEDIANTE


FUNCIONES DEL COMPILADOR CCS

glcd_pixel (x, y, color)

Esta funcin lo que hace solo es pintar un pixel, los parmetros "x" e "y" son las coordenadas
donde se encuentra el pixel que se desea pintar y el parmetro color indica si el pixel se pinta o
no, poniendo ON u OFF, respectivamente. La coordenada "x" (horizontal) puede tomar valores
entre 0 a 127 (izquierda a derecha) y la coordenada "y" (vertical) puede tomar valores entre 0 a
63 (arriba a abajo). A partir de esta funcin estn desarrolladas todas las funciones restantes.

MANEJO DEL MDULO GLCD MEDIANTE


FUNCIONES DEL COMPILADOR CCS

glcd_line (x1, y1, x2, y2, color)


Esta funcin permite trazar una recta entre el punto (x1,y1) y el punto (x2,y2). Las coordenadas
"x" pueden tomar valores entre 0 a 127 y las coordenadas "y" puede tomar valores entre 0 a
63. El parmetro color indica si la lnea se pinta de negro o no (ON u OFF). Los parmetros x1,
x2, y1 y y2 son de tipo int.

glcd_rect (x1, y1, x2, y2, fill, color)


Esta funcin permite dibujar un rectngulo entre el punto (x1,y1) (esquina superior izquierda) y
el punto (x2,y2) (esquina inferior derecha). El parmetro fill permite rellenar o no el interior del
rectngulo colocando YES o NO respectivamente. El parmetro color indica si se pintan o no los
bordes del rectngulo colocando ON u OFF respectivamente. Los parmetros x1, x2, y1 y y2
son de tipo int.

glcd_bar (x1, y1, x2, y2, width, color)


Esta funcin sirve para dibujar una barra desde el primer punto (x1, y1) al segundo (x2, y2). El
parmetro width permite especificar el ancho de la barra, este ancho depende de la resolucin
del GLCD y la posicin de la barra. El parmetro color indica si se pintan o no los bordes de la
barra colocando ON u OFF respectivamente. Los parmetros x1, x2, y1, y2 y width son de tipo
int.

MANEJO DEL MDULO GLCD MEDIANTE


FUNCIONES DEL COMPILADOR CCS

glcd_circle (x, y, radius, fill, color)


Esta funcin permite dibujar un crculo con centro en el punto (x,y) y con el radio especificado
en el parmetro radius. El parmetro fill permite rellenar o no el interior del circulo colocando
YES o NO respectivamente. El parmetro color indica si se pintan o no los bordes del crculo
colocando ON u OFF respectivamente. Los parmetros x, y y radius son de tipo int.

glcd_text57 (x, y, textptr, size, color)


Esta funcin permite escribir texto empezando en el punto (x, y), los caracteres son de 5x7
pxeles. El parmetro textptr corresponde al texto que va ser visualizado, el parmetro size es un
nmero entero que escala el tamao del texto y el parmetro color indica si se pintan o no de
negro las letras colocando ON u OFF respectivamente. Esta funcin enva de forma automtica
los caracteres a la lnea siguiente cuando se ha alcanzado el lmite derecho de la pantalla del
GLCD.

glcd_fillScreen (color)
Esta es la funcin que "pinta" toda la pantalla con uno u otro color. Si recibe como parmetro un
"ON", la pintar completamente de negro. Si recibe un "OFF", la limpiar por completo. Por
supuesto, su mayor utilidad es la segunda alternativa.

glcd_update ( )
Escribe en la RAM del GLCD; slo es posible utilizar esta funcin si la variable FAST_GLCD
est definida. Esta funcin nicamente est disponible en el driver HDM64GS12.c

EJEMPLOS CON EL COMPILADOR CCS


Ejemplo 1: Elaborar un programa que permita realizar la lectura de un potencimetro y que esta
se visualice en la pantalla del GLCD HDM64GS12 (en Proteus es el LGM12641BS1R). Una barra
debe mostrar la lectura actual en relacin con los valores mximo y mnimo. Si la lectura es
superior a 4 voltios, se visualiza un mensaje de advertencia. Elaborar un reloj con el uso de las
funciones para crear crculos y lneas, adems el reloj diseado debe realizar algn tipo de
movimiento que demuestre que el programa est activo.

EJEMPLOS CON EL COMPILADOR CCS


La resolucin de este ejercicio ya est desarrollada en el ejemplo EX_GLCD.c que viene en el compilador CCS
(C:\Program Files (x86)\PICC\Examples). Para poner en funcionamiento el circuito es necesario hacer un par de
modificaciones al programa original EX_GLCD.c: en la lnea 28 reemplace la instruccin #include <18F452.h> por
#include <18F4550.h> y en la lnea 52 reemplace la instruccin setup_adc_ports(RA0_ANALOG) por
setup_adc_ports(AN0_ANALOG).

EJEMPLOS CON EL COMPILADOR CCS

EJEMPLOS CON EL COMPILADOR CCS


Ejemplo 2: Elaborar un programa que permita realizar la lectura del estado de las entradas del
puerto A y las visualice en el mdulo GLCD AG-12864C (en Proteus es el AMPIRE128X64) segn
se muestra en la Figura 15. Se solicita utilizar el driver GLCD.C y cambiar los pines E a RB3, R/W a
RB4 y RST a RB5.

EJEMPLOS CON EL COMPILADOR CCS


La diferencia entre el mdulo GLCD HDM64GS12 y el mdulo GLCD AG-12864C nicamente radica en activacin
de los terminales para seleccionar los segmentos del GLCD puesto que el controlador en ambos casos es el KS0108
y la distribucin de todos los pines es la misma. Mientras que en el primero estos pines se activan en alto (CS1 =
1, CS2 = 1) en el segundo estos terminales se activan en bajo (CS1 = 0, CS2 = 0). Para no modificar la librera
original GLCD.C lo que se a optado por realizar es colocar dos compuertas NOT 7404 a las salidas de los
terminales del microcontrolador.

EJEMPLOS CON EL COMPILADOR CCS

Ejercicio: Realizar un cronmetro que muestre el conteo en horas : minutos : segundos sobre un
mdulo GLCD, adems en la pantalla debe haber una animacin que muestre el paso de cada
segundo. Para realizar la temporizacin se solicita utilizar el Timer 1. El inicio, pausa o finalizacin
(reseteo) del contador est gobernado por tres pulsadores ubicados en cualquiera de los terminales
del puerto A. El estudiante puede aadir la cantidad de elementos y textos que crea conveniente.

CARGAR IMGENES PRE-ELABORADAS


SOBRE EL GLCD

Los mdulos GLCD tambin permiten cargar y visualizar imgenes pre-elaboradas.

Las imgenes que se desean cargar deben ser editadas con anterioridad en algn editor de
imgenes como el Paint de Windows.

Estos archivos deben respetar las dimensiones de la pantalla grfica en este caso de 128x64
pxeles. Por ltimo el archivo debe ser guardado en formato bmp y color monocromtico.

Lo que realmente se necesita de la imagen es el mapa de bits (arreglo de datos) que representa
la informacin de los pixeles en negro y en blanco.

Para la generacin del arreglo de datos se puede utilizar la herramienta gratuita LCD Assistant
(pgina oficial: http://en.radzio.dxp.pl/bitmap_converter/), la cual permite convertir mapas de bits
monocromticos a arreglos de datos para facilitar su uso con programas para sistemas
embebidos con microcontroladores y LCDs grficos monocromticos.

CARGAR IMGENES PRE-ELABORADAS


SOBRE EL GLCD

Una vez que se ejecute la aplicacin se abrir una ventana como la mostrada en la Figura. Lo
primero que se debe realizar es cargar la imagen de la cual se desea obtener el arreglo de datos,
para ello dirjase al men File>Load image y en el explorador busque la localizacin de la imagen.

Luego de que la imagen es insertada, coloque en el casillero Table name el nombre del arreglo,
por ejemplo imagen. Los dems parmetros se dejan por defecto y finalmente vaya al men
File>Save output, tras lo cual la matriz de datos se guardar en el archivo con el nombre
especificado. A continuacin, basta con incluir este archivo en el programa principal del
compilador CCS y utilizar el nombre de la matriz (en este caso imagen) como parmetro de la
funcin que cargar el mapa de bits sobre el mdulo GLCD.

CARGAR IMGENES PRE-ELABORADAS


SOBRE EL GLCD

El cdigo generado en lenguaje C, puede ser agregado al cdigo del programa principal justo al
inicio en la parte de la declaracin de constantes. Est declaracin es un arreglo de tipo: const
unsigned char.

Se debe mencionar que el arreglo generado tiene 1024 elementos y cada uno de ellos
representa una columna de 8 bits perteneciente a cualquiera de las 8 pginas del GLCD.

El orden como se generan estos datos es considerando que se empieza por la primera columna
de la primera pgina, luego se generan las dems columnas (de izquierda a derecha) hasta llegar
al final de primera pgina, para posteriormente saltar a la primera columna de la segunda pgina
y seguir con el mismo proceso hasta generar la ltima columna de la ltima pgina. Esta
informacin es muy importante de comprender puesto que permitir generar la funcin
encargada de visualizar el arreglo de datos sobre el GLCD, tal y como se muestra en el cdigo
de programacin.

Despus de editar, inicializar, y anexar el mapa de bits en el cdigo fuente se tiene la siguiente
fuente total:

CARGAR IMGENES PRE-ELABORADAS


SOBRE EL GLCD

CARGAR IMGENES PRE-ELABORADAS


SOBRE EL GLCD

CARGAR IMGENES PRE-ELABORADAS


SOBRE EL GLCD

CARGAR IMGENES PRE-ELABORADAS


SOBRE EL GLCD

Ejercicio: Realizar una aplicacin dinmica cualquiera en la que se demuestre la existencia de carga
de imgenes sobre un mdulo GLCD. La calificacin de este trabajo estar basada en la complejidad
de la aplicacin.

Potrebbero piacerti anche