MICROCONTROLADORES
Pantallas de Cristal Líquido (LCD)
Universidad del Quindío
Álvaro Andrés Navarro
INTRODUCCIÓN
Las pantallas de cristal líquido son pantallas dedicadas a la visualización de
mensajes. Caracteres numéricos y hasta gráficos. Los LCD viene de
diferentes configuraciones dependiendo de la cantidad de líneas o pixeles que
posean.
Clases de pantallas LCD
LCD de 2x16
LCD de 4x20
LCD gráficas
de 128 x 64
PANTALLAS LCD
Características del LCD de 2x16:
• Poseen 1280 celdas elementales de cristal líquido, distribuidas en 32
caracteres que forman 2 líneas de 16 caracteres cada una.
• Cada carácter es una matriz de 5 x 8 puntos o pixeles.
• Se pueden representar 256 caracteres diferentes de los cuales 240 están
grabados dentro de la memoria del LCD y representan las letras
mayúsculas, minúsculas, signos de puntuación, números, etc. Existen 8
caracteres definidos por el usuario.
• A pesar de que el display solo puede visualizar 16 caracteres por línea, en
total puede almacenar 40. (Zona visible y zona no visible).
• La alimentación es de 5V (algunos pueden alimentarse a 3.3V).
PANTALLAS LCD
Diagrama de Bloques:
Conexionado
Vss (1) → Tierra
Vdd (2) → Alimentación
Vo (3) → Contraste
RS (4)
R/W (5)
E (6)
Control de
Lectura y
Escritura
D0 (7)
…..
D7 (14)
Datos
Vo es manejado a través de un potenciómetro si el LCD posee luz trasera.
Si no posee se acostumbra tener Vo = GND para máximo contraste.
PANTALLAS LCD
Memoria del LCD:
Posee 2 tipos de memorias independientes
• DD RAM
• CG RAM
Memoria DD RAM (Display Data RAM)
Esta memoria almacena los caracteres que están siendo visualizados o que se
encuentran en posiciones no visibles. Su tamaño es de 80 bytes.
PANTALLAS LCD
Fila 1: 00h – 0Fh | 10h – 27h
Fila 2: 40h – 4Fh | 50h – 67h
Visible No Visible
El manejo de cada posición de la pantalla es
manejado mediante coordenadas (x,y)
PANTALLAS LCD
Memoria CG RAM (Character Generator RAM)
Es la memoria que contiene los caracteres definibles por el usuario. Está
formado por 64 posiciones (00h – 3Fh). Cada posición es de 5 bits.
La memoria está dividida en 8 bloques, correspondiendo cada bloque a un
carácter definible por el usuario.
Por ello el usuario puede definir como máximo 8 caracteres cuyos códigos
van del 0 al 7.
PANTALLAS LCD
Conexión al microcontrolador:
Comunicación a 8 bits Comunicación a 4 bits
En la comunicación a 4 bits, primero se envía el nibble alto y luego se
envía el nibble bajo.
Información Control
Información Datos
4 bits
8 bits
PANTALLAS LCD
Diagrama de Tiempos:
Diagrama de Tiempos para enviar una palabra de control a 8 bits:
Resumen
• RS = 1
• E = 0
• Enviar dato
• RETARDO
• RS = 0
• RETARDO
• E = 1
• RETARDO
• E = 0
• RETARDO
• RS = 1
• RETARDO
Retardo =
40us
PANTALLAS LCD
Diagrama de Tiempos:
Diagrama de Tiempos para enviar una palabra de control a 4 bits:
Diagrama de Tiempos para enviar
una palabra de datos a 8 bits:
Diagrama de Tiempos para enviar
una palabra de datos a 4 bits:
PANTALLAS LCD
Comandos del LCD:
PANTALLAS LCD
Funciones: Conexión a 4 bits
• lcdInit() → Inicializa el LCD
• lcdControlWrite8 → Enviar palabra de control a 8 bits
• lcdControlWrite4 → Enviar palabra de control a 4 bits
• lcdDataWrite4 → Enviar palabra de datos a 4 bits
• lcdGotoXY → Ubica el cursor en cualquier parte de la pantalla
• lcdPrintData → Imprime un mensaje definido en memoria de programa
Al LCD se le envía datos en código ASCII
• show_char → Imprimir una letra
• show_byte → Imprimir un número de 8 bits
• show_word → Imprimir un número de 16 bits
void lcdInit(void)
{
//Configurar las lineas de datos y control como salida
RS = 1 y E = 0
retardo(15ms)
//Enviar comando para trabajar a 8 bits
lcdControlWrite8(....)
retardo(4.1ms) → _delay_us(4100)
//Repetir el comando anterior
//Se envía comando para trabajar a 4 bits
lcdControlWrite8(....)
//Se envía el mismo comando anterior pero con la función a 4 bits
lcdControlWrite4(....)
//Apaga pantalla y pone el cursor al inicio
lcdControlWrite4(...)
retardo(4.1ms)
//Enciende el display y apaga el cursor
lcdCntrolWrite4(....)
RS = 0 y E = 0
}
void lcdGotoXY(unsigned char x, unsigned char y)
{
uint8_t valor;
switch(x)
{
case 0: valor = 0x00 + y; break;
case 1: valor = 0x40 + y; break;
}
lcdControlWrite4(1<<DD_RAM | valor);
}
PANTALLAS LCD
Archivos correspondientes:
• lcdconf.h → Permite definir el puerto correspondiente a las líneas de control
RS y E así como el puerto para las líneas de datos
#define LCD_CTRL_PORT PORTB
#define LCD_CTRL_DDR DDRB
#define LCD_CTRL_RS 2
#define LCD_CTRL_E 3
#endif
#ifndef LCD_DATA_POUT
#define LCD_DATA_POUT PORTB
#define LCD_DATA_DDR DDRB
• lcd.h → Contiene el prototipo de todas las funciones pertenecientes al LCD y
las constantes según la tabla anterior
• lcd.c → Contiene la definición de todas las funciones del LCD
PANTALLAS LCD
Ejercicio:
Mostrar en el LCD los siguientes mensajes:
Mensaje definido en memoria de
programa.
Visualizado durante 2 segundos
Mostrar una secuencia de
0 a 100 cada 250 ms.
Los puertos son escogidos por cada uno.
Pines de control (RS - E)
Pines de datos (D4 a D7)
PANTALLAS LCD
Ejercicio:
Ingresar una clave de 4 dígitos y visualizarla en los displays. Si la clave es correcta
encender el led L1 y si es incorrecta encender el led L2. El esquema es el siguiente:
Mostrar los siguientes mensajes:
Una vez la clave es
ingresada se debe
mostrar el respectivo
mensaje por 2
segundos y luego
volver a pedir la clave
PANTALLAS LCD
Ejercicio:
Mostrar en el LCD la temperatura entregada por el sensor LM35. El esquema es el
siguiente: Ecuación: v(t) = 10mV * t [°C]
Mostrar los siguientes mensajes:
titulo
Características:
• REF = 2.56V
• Sin Interrupciones
• Res = 8 bits

lcd

  • 1.
    MICROCONTROLADORES Pantallas de CristalLíquido (LCD) Universidad del Quindío Álvaro Andrés Navarro
  • 2.
    INTRODUCCIÓN Las pantallas decristal líquido son pantallas dedicadas a la visualización de mensajes. Caracteres numéricos y hasta gráficos. Los LCD viene de diferentes configuraciones dependiendo de la cantidad de líneas o pixeles que posean. Clases de pantallas LCD LCD de 2x16 LCD de 4x20 LCD gráficas de 128 x 64
  • 3.
    PANTALLAS LCD Características delLCD de 2x16: • Poseen 1280 celdas elementales de cristal líquido, distribuidas en 32 caracteres que forman 2 líneas de 16 caracteres cada una. • Cada carácter es una matriz de 5 x 8 puntos o pixeles. • Se pueden representar 256 caracteres diferentes de los cuales 240 están grabados dentro de la memoria del LCD y representan las letras mayúsculas, minúsculas, signos de puntuación, números, etc. Existen 8 caracteres definidos por el usuario. • A pesar de que el display solo puede visualizar 16 caracteres por línea, en total puede almacenar 40. (Zona visible y zona no visible). • La alimentación es de 5V (algunos pueden alimentarse a 3.3V).
  • 4.
    PANTALLAS LCD Diagrama deBloques: Conexionado Vss (1) → Tierra Vdd (2) → Alimentación Vo (3) → Contraste RS (4) R/W (5) E (6) Control de Lectura y Escritura D0 (7) ….. D7 (14) Datos Vo es manejado a través de un potenciómetro si el LCD posee luz trasera. Si no posee se acostumbra tener Vo = GND para máximo contraste.
  • 5.
    PANTALLAS LCD Memoria delLCD: Posee 2 tipos de memorias independientes • DD RAM • CG RAM Memoria DD RAM (Display Data RAM) Esta memoria almacena los caracteres que están siendo visualizados o que se encuentran en posiciones no visibles. Su tamaño es de 80 bytes.
  • 6.
    PANTALLAS LCD Fila 1:00h – 0Fh | 10h – 27h Fila 2: 40h – 4Fh | 50h – 67h Visible No Visible El manejo de cada posición de la pantalla es manejado mediante coordenadas (x,y)
  • 7.
    PANTALLAS LCD Memoria CGRAM (Character Generator RAM) Es la memoria que contiene los caracteres definibles por el usuario. Está formado por 64 posiciones (00h – 3Fh). Cada posición es de 5 bits. La memoria está dividida en 8 bloques, correspondiendo cada bloque a un carácter definible por el usuario. Por ello el usuario puede definir como máximo 8 caracteres cuyos códigos van del 0 al 7.
  • 8.
    PANTALLAS LCD Conexión almicrocontrolador: Comunicación a 8 bits Comunicación a 4 bits En la comunicación a 4 bits, primero se envía el nibble alto y luego se envía el nibble bajo. Información Control Información Datos 4 bits 8 bits
  • 9.
    PANTALLAS LCD Diagrama deTiempos: Diagrama de Tiempos para enviar una palabra de control a 8 bits: Resumen • RS = 1 • E = 0 • Enviar dato • RETARDO • RS = 0 • RETARDO • E = 1 • RETARDO • E = 0 • RETARDO • RS = 1 • RETARDO Retardo = 40us
  • 10.
    PANTALLAS LCD Diagrama deTiempos: Diagrama de Tiempos para enviar una palabra de control a 4 bits: Diagrama de Tiempos para enviar una palabra de datos a 8 bits: Diagrama de Tiempos para enviar una palabra de datos a 4 bits:
  • 11.
  • 12.
    PANTALLAS LCD Funciones: Conexióna 4 bits • lcdInit() → Inicializa el LCD • lcdControlWrite8 → Enviar palabra de control a 8 bits • lcdControlWrite4 → Enviar palabra de control a 4 bits • lcdDataWrite4 → Enviar palabra de datos a 4 bits • lcdGotoXY → Ubica el cursor en cualquier parte de la pantalla • lcdPrintData → Imprime un mensaje definido en memoria de programa Al LCD se le envía datos en código ASCII • show_char → Imprimir una letra • show_byte → Imprimir un número de 8 bits • show_word → Imprimir un número de 16 bits void lcdInit(void) { //Configurar las lineas de datos y control como salida RS = 1 y E = 0 retardo(15ms) //Enviar comando para trabajar a 8 bits lcdControlWrite8(....) retardo(4.1ms) → _delay_us(4100) //Repetir el comando anterior
  • 13.
    //Se envía comandopara trabajar a 4 bits lcdControlWrite8(....) //Se envía el mismo comando anterior pero con la función a 4 bits lcdControlWrite4(....) //Apaga pantalla y pone el cursor al inicio lcdControlWrite4(...) retardo(4.1ms) //Enciende el display y apaga el cursor lcdCntrolWrite4(....) RS = 0 y E = 0 } void lcdGotoXY(unsigned char x, unsigned char y) { uint8_t valor; switch(x) { case 0: valor = 0x00 + y; break; case 1: valor = 0x40 + y; break; } lcdControlWrite4(1<<DD_RAM | valor); }
  • 14.
    PANTALLAS LCD Archivos correspondientes: •lcdconf.h → Permite definir el puerto correspondiente a las líneas de control RS y E así como el puerto para las líneas de datos #define LCD_CTRL_PORT PORTB #define LCD_CTRL_DDR DDRB #define LCD_CTRL_RS 2 #define LCD_CTRL_E 3 #endif #ifndef LCD_DATA_POUT #define LCD_DATA_POUT PORTB #define LCD_DATA_DDR DDRB • lcd.h → Contiene el prototipo de todas las funciones pertenecientes al LCD y las constantes según la tabla anterior • lcd.c → Contiene la definición de todas las funciones del LCD
  • 15.
    PANTALLAS LCD Ejercicio: Mostrar enel LCD los siguientes mensajes: Mensaje definido en memoria de programa. Visualizado durante 2 segundos Mostrar una secuencia de 0 a 100 cada 250 ms. Los puertos son escogidos por cada uno. Pines de control (RS - E) Pines de datos (D4 a D7)
  • 16.
    PANTALLAS LCD Ejercicio: Ingresar unaclave de 4 dígitos y visualizarla en los displays. Si la clave es correcta encender el led L1 y si es incorrecta encender el led L2. El esquema es el siguiente: Mostrar los siguientes mensajes: Una vez la clave es ingresada se debe mostrar el respectivo mensaje por 2 segundos y luego volver a pedir la clave
  • 17.
    PANTALLAS LCD Ejercicio: Mostrar enel LCD la temperatura entregada por el sensor LM35. El esquema es el siguiente: Ecuación: v(t) = 10mV * t [°C] Mostrar los siguientes mensajes: titulo Características: • REF = 2.56V • Sin Interrupciones • Res = 8 bits