pantallas glcd

19
PANTALLAS GLCD USO DE LCD GRÁFICO A diferencia de las pantallas LCD de caracteres donde la unidad de la función es un personaje, en el GLCD la unidad de la función es un píxel, o un punto. Las pantallas LCD gráficas vienen en una variedad de tamaños, su tamaño se describe como el número de puntos en una fila, y el número de filas que tiene. Los aficionados y la mayoría de electrónicos utilizan la pantalla de tamaño medio, por lo general de 128 x64 puntos. Hay dos clases principales de gráfico LCD, de dos colores (blanco y negro), o un solo color, y otras varias formas de pantallas LCD de color. En el presente capítulo, se concentrará en el uso común del LCD gráfico de 128 x64. El LCD gráfico 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. Comúnmente 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 también. Vamos a hablar de EEPROM en capítulos posteriores. Aquí mi objetivo es explicar que las fuentes se deben almacenar en algún lugar de la memoria antes de su uso. Chip controlador Un gran número de fabricantes están haciendo LCD gráfico con sus propios controladores. Sin embargo, dos son los controladores más utilizados, Samsung S6B0188 o T6963 de Toshiba. Usted necesitará bibliotecas apropiadas para hacer frente a cada controlador. Protón IDE PLUS tiene incorporadas bibliotecas que soportan los controladores de Samsung, y por lo tanto nuestra discusión se centrara en el uso del LCD gráfico Samsung o compatible con el controlador. La pantalla GLCD funciona en modo de datos de 8 bits, y por lo tanto requieren 8 líneas I/O del microcontrolador. Aparte de eso la pantalla GLCD tiene, RS (Registro de Selección), R/W (lectura / escritura), Habilitar, CS1 y CS2 (Chip Select) líneas. El LCD gráfico requiere voltios negativos, por lo general-6V para ajustar el contraste. Generar los voltios negativos de suministro de 5V estándar se realiza comúnmente 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 través de un potenciómetro para ajustar el brillo de puntos.

Upload: isaias-estrada

Post on 12-Aug-2015

514 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: PANTALLAS GLCD

PANTALLAS GLCD

USO DE LCD GRÁFICO A diferencia de las pantallas LCD de caracteres donde la unidad de la función es un personaje, en el GLCD la unidad de la función es un píxel, o un punto. Las pantallas LCD gráficas vienen en una variedad de tamaños, su tamaño se describe como el número de puntos en una fila, y el número de filas que tiene. Los aficionados y la mayoría de electrónicos utilizan la pantalla de tamaño medio, por lo general de 128 x64 puntos. Hay dos clases principales de gráfico LCD, de dos colores (blanco y negro), o un solo color, y otras varias formas de pantallas LCD de color. En el presente capítulo, se concentrará en el uso común del LCD gráfico de 128 x64. El LCD gráfico 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. Comúnmente 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 también. Vamos a hablar de EEPROM en capítulos posteriores. Aquí mi objetivo es explicar que las fuentes se deben almacenar en algún lugar de la memoria antes de su uso. Chip controlador Un gran número de fabricantes están haciendo LCD gráfico con sus propios controladores. Sin embargo, dos son los controladores más utilizados, Samsung S6B0188 o T6963 de Toshiba. Usted necesitará bibliotecas apropiadas para hacer frente a cada controlador. Protón IDE PLUS tiene incorporadas bibliotecas que soportan los controladores de Samsung, y por lo tanto nuestra discusión se centrara en el uso del LCD gráfico Samsung o compatible con el controlador. La pantalla GLCD funciona en modo de datos de 8 bits, y por lo tanto requieren 8 líneas I/O del microcontrolador. Aparte de eso la pantalla GLCD tiene, RS (Registro de Selección), R/W (lectura / escritura), Habilitar, CS1 y CS2 (Chip Select) líneas. El LCD gráfico requiere voltios negativos, por lo general-6V para ajustar el contraste. Generar los voltios negativos de suministro de 5V estándar se realiza comúnmente 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 través de un potenciómetro para ajustar el brillo de puntos.

Page 2: PANTALLAS GLCD

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 conexiones eléctricas de la GLCD con el microcontrolador son 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 líquido en PORTD, los 7 bits de PORTD se utilizaran. Los pines de control serán conectados en PORTC, y los pines de selección CS1 y 2 en PORTE. El LCD_TYPE debe ser mencionado como gráfico de otra manera por LCD de caracteres por defecto lo asume el compilador de PROTON. Es posible que eligiera otros pines de conexión según su proyecto. Una vez que estas conexiones se han definido el comando PRINT se puede utilizar para enviar datos de texto, y un montón de comandos para los datos gráficos a pantalla GLCD. Fuente Declaración Después de declarar las conexiones eléctricas, tenemos que informar al compilador acerca de la ubicación de la tabla de fuentes. La fuente de la tabla se puede encontrar en la RAM interna o EEPROM externa. En segundo lugar más de un conjunto de tipos de letra se define en la EEPROM. La dirección de comienzo de la tabla fuente a utilizar también 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 específico, 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 'Graphic character 0 CData $FF,$FF,$FF,$FF,$FF,$FF 'Graphic character 1 CData $07,$07,$07,$00,$00,$00 'Graphic character 2 CData $00,$00,$00,$07,$07,$07 'Graphic character 3 CData $E0,$E0,$E0,$00,$00,$00 'Graphic character 4 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 ubicación en la que se declaro. Los datos en sí constan de 6 bytes, el patrón de bits de los cuales define un carácter completo de la pantalla.

Page 3: PANTALLAS GLCD

Afortunadamente PROTON IDE PLUS viene con dos archivos de fuentes predefinidos, que se encuentra en la carpeta de instalación. 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 señales de chip1 y CHIP2, que dan lugar mal alineados de datos. Si este es el caso de la pantalla también incluir esta declaración antes de usar la pantalla GLCD. Declare GLCD_CS_INVERT true En mi caso debo hacer uso de esta instrucción para utilizar la GLCD dando el Aviso de la instrucción de inclusión en el programa. Incluyendo el archivo FONT.INC. Este programa imprime el texto en pantalla gráfica LCD. La Notificación de la sentencia print es exactamente la misma, pero Internamente se ha ocupado de la complejidad de la pantalla gráfica LCD.

DISTRIBUCION DE PINES DEL GLCD

Page 4: PANTALLAS 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

Page 5: PANTALLAS GLCD

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 típico 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 más que usted puede proporcionar a la orden de impresión, usted puede utilizar el comando AT, teniendo en cuenta que los números después de la AT describen la línea y la posición del carácter. 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"

Page 6: PANTALLAS GLCD

Ejemplo 3: Mostrar un línea 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

Page 7: PANTALLAS GLCD

Cls Imprimir Plot 20,50 El comando Plot es el comando de la biblioteca gráfica, está dispuesto a aceptar y, coordina la posición x para mostrar un punto en ubicación del GLCD. Puede utilizar este comando en una variedad de maneras para controlar la ubicación de las coordenadas y la pantalla puntos. Por ejemplo hacer una forma de onda, a partir de los datos leídos en el puerto analógico para mostrar sus fluctuaciones. Lo contrario del comando Plot es el Unplot. Este borra el píxel y, la ubicación x. El programa anterior, señala en primer lugar una línea, por escrito los puntos individuales, y luego los borra uno por uno. Ejemplo 4: Se dibuja una secuencia de líneas, el eje x se incrementan en 2. Ya que las líneas se calculan matemáticamente, hay poco de líneas 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"

Page 8: PANTALLAS GLCD

Line 1,0,0,127,63 El comando Line se utiliza para dibujar una línea entre dos coordenadas. El primer argumento 1 en este ejemplo indica si la línea 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 línea. 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 parámetro es una vez más, el tiempo para mostrar, los próximos dos son las coordenadas x e y del centro de la caja, y el último parámetro es el tamaño de la caja. Ejemplo 6: Manejo de GLCD con varios mensajes

Page 9: PANTALLAS GLCD

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 tamaño de fuente de letra Arial 8 y 12.

Page 10: PANTALLAS GLCD

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

Page 11: PANTALLAS GLCD

Print Font ArialK____12 Print At 49,0,"18F4550 + GLCD" DelayMS 500 End Include "Arialk12.txt" Include "ARIAL8.txt" VISUALIZACIÓN DE IMÁGENES MAPA DE BITS Las imágenes de mapa de bits se realizan con un convertidor de formato adecuado para su visualización en la pantalla gráfica LCD este tipo de formato es con extensión .bmp. Los programas que permiten esta conversión de formato están disponibles en Internet uno de ellos es el convertidor de imágenes jpg a bmp.

Ingresamos a Internet seleccionamos imágenes y escribimos en el buscador lo que deseamos, las imágenes 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 imágenes con el nombre de mot, por ejemplo.

Page 12: PANTALLAS GLCD

Abrimos la carpeta de mis imágenes y ubicamos la imagen con sus respectivas características:

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 consideración se recomienda crearla en unidad de disco C.

Page 13: PANTALLAS GLCD

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

Page 14: PANTALLAS GLCD

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 utilización.

Para transformar la imagen en código Basic se utiliza el PicBasic PLus GLCD

Page 15: PANTALLAS GLCD

Se carga la imagen como se ve a continuación:

Una vez realizado esto se genera el Mot.in en C:\Archivos de programa\ProtonIDE\PDS\PDS\Includes\Sources

Page 16: PANTALLAS GLCD

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"

Page 17: PANTALLAS GLCD

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

Page 18: PANTALLAS GLCD

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

Page 19: PANTALLAS GLCD

COLOR LCD Y PANELES TÁCTILES Aparte de las pantallas LCD de uso gráfico, hay monitores LCD también. 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 número de colores se pueden visualizar por píxel. Paneles táctiles son ahora de uso común en relación con el gráfico de las pantallas LCD para obtener la entrada del usuario. EL panel táctil 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/