Sei sulla pagina 1di 19

PANTALLAS GLCD

USO DE LCD GRFICO A diferencia de las pantallas LCD de caracteres donde la unidad de la funcin es un personaje, en el GLCD la unidad de la funcin es un pxel, o un punto. Las pantallas LCD grficas vienen en una variedad de tamaos, su tamao se describe como el nmero de puntos en una fila, y el nmero de filas que tiene. Los aficionados y la mayora de electrnicos utilizan la pantalla de tamao medio, por lo general de 128 x64 puntos. Hay dos clases principales de grfico LCD, de dos colores (blanco y negro), o un solo color, y otras varias formas de pantallas LCD de color. En el presente captulo, se concentrar en el uso comn del LCD grfico de 128 x64. El LCD grfico no tiene un conjunto de caracteres predefinidos ni tabla de fuente. Con el fin de utilizar las pantallas GLCD, usted tiene que definir el juego de caracteres. Comnmente la tabla de caracteres es almacenada en un archivo EEPROM, sin embargo, si el microcontrolador utilizado tiene suficiente memoria RAM, se pueden almacenar en l tambin. Vamos a hablar de EEPROM en captulos posteriores. Aqu mi objetivo es explicar que las fuentes se deben almacenar en algn lugar de la memoria antes de su uso. Chip controlador Un gran nmero de fabricantes estn haciendo LCD grfico con sus propios controladores. Sin embargo, dos son los controladores ms utilizados, Samsung S6B0188 o T6963 de Toshiba. Usted necesitar bibliotecas apropiadas para hacer frente a cada controlador. Protn IDE PLUS tiene incorporadas bibliotecas que soportan los controladores de Samsung, y por lo tanto nuestra discusin se centrara en el uso del LCD grfico Samsung o compatible con el controlador. La pantalla GLCD funciona en modo de datos de 8 bits, y por lo tanto requieren 8 lneas I/O del microcontrolador. Aparte de eso la pantalla GLCD tiene, RS (Registro de Seleccin), R/W (lectura / escritura), Habilitar, CS1 y CS2 (Chip Select) lneas. El LCD grfico requiere voltios negativos, por lo general-6V para ajustar el contraste. Generar los voltios negativos de suministro de 5V estndar se realiza comnmente con CI 7.660. Sin embargo, algunos GLCD tiene el mismo circuito integrado trazado a bordo del mismo, y un contraste de -10V est disponible. El contraste In esta vinculado con 10V a travs de un potencimetro para ajustar el brillo de puntos.

La EEPROM externa es como una parte del circuito cuando el PIC utilizado, no tiene suficiente memoria de almacenaje, sin embargo el PIC 18f4550 tiene suficiente potencial RAM interno para trabajar con el. Declarar pin de Conexiones GLCD Al igual que con el LCD, las necesarias definirlas. LCD_DTPORT = PORTD LCD_RSPIN = PORTC.0 LCD_ENPIN = PORTC.2 LCD_RWPIN = PORTC.1 LCD_CS1PIN = PORTE.0 LCD_CS2PIN = PORTE.1 LCD_TYPE = GRAPHIC Vamos a conectar los datos de cristal lquido en PORTD, los 7 bits de PORTD se utilizaran. Los pines de control sern conectados en PORTC, y los pines de seleccin CS1 y 2 en PORTE. El LCD_TYPE debe ser mencionado como grfico de otra manera por LCD de caracteres por defecto lo asume el compilador de PROTON. Es posible que eligiera otros pines de conexin segn su proyecto. Una vez que estas conexiones se han definido el comando PRINT se puede utilizar para enviar datos de texto, y un montn de comandos para los datos grficos a pantalla GLCD. Fuente Declaracin Despus de declarar las conexiones elctricas, tenemos que informar al compilador acerca de la ubicacin de la tabla de fuentes. La fuente de la tabla se puede encontrar en la RAM interna o EEPROM externa. En segundo lugar ms de un conjunto de tipos de letra se define en la EEPROM. La direccin de comienzo de la tabla fuente a utilizar tambin tiene que ser definida. INTERNAL_FONT = On FONT_ADDR = 0 Estas dos declaraciones definen que vamos a utilizar un chip EEPROM, y el cuadro Font a partir, del byte 0 de la EEPROM. La fuente se describe en un formato especfico, como: 'Fuente CDATA tabla 'Copiar y pegar esta tabla en su propio programa 'si una fuente interna se requiere. Font: CData $00,$00,$00,$00,$00,$00 CData $FF,$FF,$FF,$FF,$FF,$FF CData $07,$07,$07,$00,$00,$00 CData $00,$00,$00,$07,$07,$07 CData $E0,$E0,$E0,$00,$00,$00 'Graphic 'Graphic 'Graphic 'Graphic 'Graphic character character character character character 0 1 2 3 4 conexiones elctricas de la GLCD con el microcontrolador son

Esto debe ser declarado en la parte inferior del programa. Aviso de la fuente: - antes de asumir los datos. El CData esta listo para leer los datos en la memoria del programa, a partir de su ubicacin en la que se declaro. Los datos en s constan de 6 bytes, el patrn de bits de los cuales define un carcter completo de la pantalla.

Afortunadamente PROTON IDE PLUS viene con dos archivos de fuentes predefinidos, que se encuentra en la carpeta de instalacin. Usted puede incluir este archivo en su programa, al copiar y pegar toda la tabla, o copiando el archivo en su carpeta del proyecto y el uso de include. Algunas pantallas invierten las seales de chip1 y CHIP2, que dan lugar mal alineados de datos. Si este es el caso de la pantalla tambin incluir esta declaracin antes de usar la pantalla GLCD. Declare GLCD_CS_INVERT true En mi caso debo hacer uso de esta instruccin para utilizar la GLCD dando el Aviso de la instruccin de inclusin en el programa. Incluyendo el archivo FONT.INC. Este programa imprime el texto en pantalla grfica LCD. La Notificacin de la sentencia print es exactamente la misma, pero Internamente se ha ocupado de la complejidad de la pantalla grfica LCD.

DISTRIBUCION DE PINES DEL GLCD

CIRCUITO:

Ejemplo 1: Mostrar un mensaje simple en una Pantalla GLCD Device = 18F4550 XTAL = 20 LCD_DTPORT = PORTB LCD_RSPIN = PORTD.5 LCD_ENPIN = PORTD.1 LCD_RWPIN = PORTD.4 LCD_CS1PIN = PORTD.2 LCD_CS2PIN = PORTD.3 Declare GLCD_CS_INVERT true Declare GLCD_STROBE_DELAY 1 Declare LCD_INTERFACE =8 Declare GLCD_READ_DELAY 2

Declare LCD_TYPE= SAMSUNG INTERNAL_FONT = On FONT_ADDR = 0 Print Cls Print "CONTROL GLCD SAMSUNG" End Include "FONT.INC" Declare GLCD_STROBE_DELAY 1: Se utiliza cuando el GLCD suele no inicializarse correctamente, el defecto tpico es que cuando se enciende una vez sale perfecto y otras todo desgarrado. No poner valores muy altos de no ser necesario el delay puede ser entre 0 y 65535.

Bueno, hay unas cuantas cosas ms que usted puede proporcionar a la orden de impresin, usted puede utilizar el comando AT, teniendo en cuenta que los nmeros despus de la AT describen la lnea y la posicin del carcter. Ejemplo 2: Mostrar un mensaje en la Pantalla GLCD con el comando Inverse 1, el cual mostrar el texto en formato inverso, que es de color blanco sobre fondo negro. Device = 18F4550 XTAL = 20 LCD_DTPORT = PORTB LCD_RSPIN = PORTD.5 LCD_ENPIN = PORTD.1 LCD_RWPIN = PORTD.4 LCD_CS1PIN = PORTD.2 LCD_CS2PIN = PORTD.3 Declare GLCD_CS_INVERT true 'Declare GLCD_STROBE_DELAY 1 Declare LCD_INTERFACE =8 'Declare GLCD_READ_DELAY 2 Declare LCD_TYPE= SAMSUNG INTERNAL_FONT = On FONT_ADDR = 0 Print Cls Print At 4,1,Inverse 1,"Manejo GLCD SAMSUNG" End Include "FONT.INC"

Ejemplo 3: Mostrar un lnea negra en la Pantalla GLCD, la cual ira apareciendo y desapareciendo es de color negro sobre fondo blanco. Device = 18F4550 XTAL = 20 LCD_DTPORT = PORTB LCD_RSPIN = PORTD.5 LCD_ENPIN = PORTD.1 LCD_RWPIN = PORTD.4 LCD_CS1PIN = PORTD.2 LCD_CS2PIN = PORTD.3 Declare GLCD_CS_INVERT true Declare GLCD_STROBE_DELAY 1 Declare LCD_INTERFACE =8 Declare GLCD_READ_DELAY 2 Declare LCD_TYPE= SAMSUNG INTERNAL_FONT = 0 FONT_ADDR = 0 Print Cls Dim xpos As Byte INICIO: ' RUTINA PARA DIBUJAR LINEA For xpos = 0 To 127 Plot 20 , xpos DelayMS 10 Next ' RUTINA PARA BORRAR LINEA For xpos = 0 To 127 UnPlot 20 , xpos DelayMS 10 Next GoTo INICIO End

Cls Imprimir Plot 20,50 El comando Plot es el comando de la biblioteca grfica, est dispuesto a aceptar y, coordina la posicin x para mostrar un punto en ubicacin del GLCD. Puede utilizar este comando en una variedad de maneras para controlar la ubicacin de las coordenadas y la pantalla puntos. Por ejemplo hacer una forma de onda, a partir de los datos ledos en el puerto analgico para mostrar sus fluctuaciones. Lo contrario del comando Plot es el Unplot. Este borra el pxel y, la ubicacin x. El programa anterior, seala en primer lugar una lnea, por escrito los puntos individuales, y luego los borra uno por uno. Ejemplo 4: Se dibuja una secuencia de lneas, el eje x se incrementan en 2. Ya que las lneas se calculan matemticamente, hay poco de lneas oblicuas Device = 18F4550 XTAL = 20 LCD_DTPORT = PORTB LCD_RSPIN = PORTD.5 LCD_ENPIN = PORTD.1 LCD_RWPIN = PORTD.4 LCD_CS1PIN = PORTD.2 LCD_CS2PIN = PORTD.3 Declare GLCD_CS_INVERT true Declare GLCD_STROBE_DELAY 1 Declare LCD_INTERFACE =8 Declare GLCD_READ_DELAY 2 Declare LCD_TYPE= SAMSUNG INTERNAL_FONT = On FONT_ADDR = 0 Dim x As Byte Print Cls For x=0 To 127 Step 2 Line 1,x,0,127-x,63 Next x End Include "FONT.INC"

Line 1,0,0,127,63 El comando Line se utiliza para dibujar una lnea entre dos coordenadas. El primer argumento 1 en este ejemplo indica si la lnea se va a dibujar o borrar. Una es dibujar. Los siguientes dos pares son x1, y1, x2, y2 dos conjuntos de coordenadas para indicar las posiciones de fin de lnea. Ejemplo 5: Realizar un cuadro en el centro de la GLCD Device = 18F4550 XTAL = 20 LCD_DTPORT = PORTB LCD_RSPIN = PORTD.5 LCD_ENPIN = PORTD.1 LCD_RWPIN = PORTD.4 LCD_CS1PIN = PORTD.2 LCD_CS2PIN = PORTD.3 Declare GLCD_CS_INVERT true Declare GLCD_STROBE_DELAY 1 Declare LCD_INTERFACE =8 Declare GLCD_READ_DELAY 2 Declare LCD_TYPE= SAMSUNG INTERNAL_FONT = On FONT_ADDR = 0 Dim x As Byte Print Cls For x=0 To 127 Step 2 Box 1, 60,30,20 Next x End Include "FONT.INC" Box 1, 60,30,20 El comando Box se hace una caja en la pantalla. El primer parmetro es una vez ms, el tiempo para mostrar, los prximos dos son las coordenadas x e y del centro de la caja, y el ltimo parmetro es el tamao de la caja. Ejemplo 6: Manejo de GLCD con varios mensajes

Device = 18F4550 XTAL = 20 ALL_DIGITAL= TRUE LCD_DTPORT = PORTB LCD_RSPIN = PORTD.5 LCD_ENPIN = PORTD.1 LCD_RWPIN = PORTD.4 LCD_CS1PIN = PORTD.2 LCD_CS2PIN = PORTD.3 Declare GLCD_CS_INVERT true 'Declare GLCD_STROBE_DELAY 1 Declare LCD_INTERFACE =8 'Declare GLCD_READ_DELAY 2 Declare LCD_TYPE= SAMSUNG INTERNAL_FONT = On FONT_ADDR = 0 Cls DelayMS 500 Inicio: Print At 0,1,"Pantalla de cristal" DelayMS 500 Print At 1,3,"Liquido grafica" DelayMS 500 Print At 2,3,"Manejo con PIC" DelayMS 500 Print At 3,4,"128*64 GLCD" DelayMS 500 Print At 4,3,"con PROTON IDE" DelayMS 500 Print At 5,2,"y Microcontrolador" DelayMS 500 Print At 6,5,"pic 18f4550" DelayMS 500 Print At 7,2,"simulacion Proteus" DelayMS 500 GoTo Inicio End Include "font.inc" Ejemplo 7: Manejo de GLCD con tamao de fuente de letra Arial 8 y 12.

Device = 18F4550 XTAL = 20 ALL_DIGITAL= TRUE LCD_DTPORT = PORTB LCD_RSPIN = PORTD.5 LCD_ENPIN = PORTD.1 LCD_RWPIN = PORTD.4 LCD_CS1PIN = PORTD.2 LCD_CS2PIN = PORTD.3 Declare GLCD_CS_INVERT true 'Declare GLCD_STROBE_DELAY 1 Declare LCD_INTERFACE =8 'Declare GLCD_READ_DELAY 2 Declare LCD_TYPE= SAMSUNG INTERNAL_FONT = On FONT_ADDR = 0 GLCD_EXTERNAL_PRINT = PPRINT Cls DelayMS 500 Inicio: Print Font ArialK____12 Print At 2,20,"Glcd-PIC" DelayMS 500 Print Font ArialK____12 Print At 19,0,"****************" DelayMS 500 Print Font Arial____8 Print At 36,0,"Tutorial PROTON IDE" DelayMS 500

Print Font ArialK____12 Print At 49,0,"18F4550 + GLCD" DelayMS 500 End Include "Arialk12.txt" Include "ARIAL8.txt" VISUALIZACIN DE IMGENES MAPA DE BITS Las imgenes de mapa de bits se realizan con un convertidor de formato adecuado para su visualizacin en la pantalla grfica LCD este tipo de formato es con extensin .bmp. Los programas que permiten esta conversin de formato estn disponibles en Internet uno de ellos es el convertidor de imgenes jpg a bmp.

Ingresamos a Internet seleccionamos imgenes y escribimos en el buscador lo que deseamos, las imgenes requeridas deben estar en formato jpg, en este caso ubicamos una ya establecida en la red.

Abrimos la imagen y la guardamos en la carpeta de mis imgenes con el nombre de mot, por ejemplo.

Abrimos la carpeta de mis imgenes y ubicamos la imagen con sus respectivas caractersticas:

La imagen seleccionada se debe pasar al formato Bmp de la siguiente forma:

Una vez realizado esto dar clic en el icono de cargar la imagen que ser convertida a formato Bitmaps [*.bmp] .Los datos convertidos se guardan en una carpeta creada previamente en consideracin se recomienda crearla en unidad de disco C.

Una vez cargada y guardada la imagen en formato [*.bmp]; se procede a abrir el Software FasLCD.exe

Esta es la ventana de trabajo del software que se utiliza para cargar la imagen a 128 x64

Se da click en el icono de abrir

y ubicamos la imagen antes trabajada y convertida mot.bmp

Una ver realizado esto cargamos la imagen al entorno de trabajo en el icono Load, seleccionamos Stretch y selection y por ultimo OK esto es para poder trabjar la imagen a 128 x 64

Una vez realizado lo anterior la imanen aparece en el entorno de trabajo de la siguiente forma:

La imagen esta lista para ser grafica en la GLCD 128 X 64

Guardamos el proyecto en una carpeta para su posterior utilizacin.

Para transformar la imagen en cdigo Basic se utiliza el PicBasic PLus GLCD

Se carga la imagen como se ve a continuacin:

Una vez realizado esto se genera programa\ProtonIDE\PDS\PDS\Includes\Sources

el

Mot.in

en

C:\Archivos

de

Device = 18F4550 Xtal = 20 All_Digital= TRUE LCD_DTPort = PORTB LCD_RSPin = PORTD.5 LCD_ENPin = PORTD.1 LCD_RWPin = PORTD.4 LCD_CS1Pin = PORTD.2 LCD_CS2Pin = PORTD.3 Declare GLCD_CS_Invert true 'Declare GLCD_STROBE_DELAY 1 Declare LCD_Interface =8 'Declare GLCD_READ_DELAY 2 Declare LCD_Type= Samsung Internal_Font = On Font_Addr = 0 GLCD_EXTERNAL_PRINT = PPRINT Cls DelayMS 500 Dim Xpos As Byte Dim Ypos As Byte Dim Addr As Word Dim char As Byte BASLA: For Ypos = 0 To 7 For Xpos = 0 To 127 Addr = (Ypos*128)+Xpos char = CRead mot+Addr LCDWrite Ypos,Xpos,[char] Next Next DelayMS 100 GoTo BASLA Include "mot.inc"

Ejemplo 7: Mostrar una imagen obtenida de Internet en la GLCD. Device = 18F4550 Xtal = 20 LCD_DTPort = PORTB LCD_RSPin = PORTD.5 LCD_ENPin = PORTD.1 LCD_RWPin = PORTD.4 LCD_CS1Pin = PORTD.2 LCD_CS2Pin = PORTD.3 Declare GLCD_CS_Invert true 'Declare GLCD_STROBE_DELAY 1 Declare LCD_Interface =8 'Declare GLCD_READ_DELAY 2 Declare LCD_Type= Samsung Internal_Font = On Font_Addr = 0 GLCD_EXTERNAL_PRINT = PPRINT Cls

DelayMS 500 Dim Xpos As Byte Dim Ypos As Byte Dim Addr As Word Dim char As Byte BASLA: For Ypos = 0 To 7 For Xpos = 0 To 127 Addr = (Ypos*128)+Xpos char = CRead MOTOS +Addr LCDWrite Ypos,Xpos,[char] Next Next DelayMS 100 GoTo BASLA Include "MOTOS.inc" Circuito

COLOR LCD Y PANELES TCTILES Aparte de las pantallas LCD de uso grfico, hay monitores LCD tambin. Estos LCD tienen diferente controlador a bordo, y usted tendr que mirar las hojas de datos de la pantalla para uso particular. La LCD de color difiere en la profundidad de color. Esto significa que el nmero de colores se pueden visualizar por pxel. Paneles tctiles son ahora de uso comn en relacin con el grfico de las pantallas LCD para obtener la entrada del usuario. EL panel tctil consiste en una hoja separada de la membrana transparente, incorporando miles de puntos sensibles a tocar. Es disponible por separado o, en ocasiones incorpora sobre la pantalla. Tiene su propio circuito de control, que necesita ser calibrado con la pantalla. Para inquietudes desde http://www.forosdeelectronica.com/f24/tutorial-manejo-proton-ide-27932/