You are on page 1of 17

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

Diseo de sistemas microprocesados


Semana 9: El mdulo LCD alfanumrico HD44780 de Hitachi
Profesor: Mag. Ing. Sergio Salas Arriarn

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

Diferentes tipos de pantallas grficas para control a travs de uC

LCD alfanumrico 2x16

GLCD de 128x64 pxeles

GLCD 240x128 pxeles

OLED de 128x128 pxeles 216 colores

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

El mdulo LCD alfanumrico basado en el controlador HD44780

Los mdulos LCD alfanumricos son sistemas completos basados en una pantalla LCD Manejo de columnas y filas, circuitera de distribucin de energa y un controlador inteli HD44780. Toda esta electrnica se encuentra ensamblada en un solo circuito integrado la tecnologa Chip On Glass (COG).

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

Pines de conexin del mdulo LCD

El mdulo LCD posee 11 pines de I/O para su comunicacin con un microcontrolador. Lo (Enable), R/W y RS (Register Select) son de configuracin, mientras los pines DB0-DB7 Es posible utilizar el bus de datos a 4 lneas (haciendo uso de los pines DB4-DB7) de tal Byte enviado se tenga que transmitir Nibble por Nibble. Las conexiones del mdulo LCD se muestran en la figura inferior.

Mag. Ing. Sergio Salas

Tabla de caracteres de la CGROM


Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

En los mdulos alfanumricos es posible colocar un cdigo ASCII en la memoria RAM d conocida como DDRAM (Display Data RAM). La salida es la imagen de un carcter que de puntos de 5x7. En la Tabla se muestran la lista de caracteres ASCII que se encuentra memoria CGROM (Character Generator ROM).

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

La memoria DDRAM

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

La memoria CGRAM

El usuario puede rescribir los patrones de caracteres dentro de la CGRAM mediante caracteres de 5 x 8 pxeles, es posible generar 8 caracteres predefinidos por el usua de 5 x 10 pxeles, es posible reescribir cuatro patrones nuevos.

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

Registros de configuracin

Mag. Ing. Sergio Sala

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

El diagrama de tiempos del HD44780

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

Conexiones del dsPIC al LCD en el mdulo de desarrollo

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

Librera LCD

Compuesta por las siguientes funciones: #define ENABLE LATBbits.LATB9 #define RW LATBbits.LATB10 #define RS LATBbits.LATB11 #define FCY 10000000UL //FCY = XTAL*PLL/4 #define ON 1 #define OFF 0 #define DATO 1 #define COMANDO 0 void EnviaLCD(unsigned char dato,unsigned char R); void LCD_CONFIG(void); void BORRAR_LCD(void); void ESCRIBE_CHAR(unsigned char caracter); void ESCRIBE_MENSAJE(char cadena[],unsigned char tam); void CURSOR_ONOFF(unsigned char val); void BLINK_CURSOR(unsigned char val); void CURSOR_HOME(void); void DISPLAY_ONOFF(unsigned char val); void POS_CURSOR(unsigned char fila, unsigned char columna); void GeneraCaracter(unsigned char vector[],unsigned char pos); Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

La funcin LCDCONFIG()
Esta funcin inicializa el mdulo LCD para que trabaje a dos filas, con un bus de datos de 4 bits, el cursor activo y movindose a la derecha por cada carcter enviado y la pantalla activa. Esta funcin debe ser la primera a ser invocada antes de que el dsPIC enve cualquier comando al mdulo LCD. Pero, antes, se deber esperar 15 milisegundos que el voltaje de alimentacin del mdulo

Mag. Ing. Sergio Sala

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

La funcin BORRAR_LCD()

La funcin BORRAR_LCD() permite eliminar de la pantalla cualquier carcter most coloca el cursor en la posicin Home (Fila 1 columna 0).

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

La funcin ESCRIBE_CHAR(num)

Esta funcin permite mostrar un carcter en la posicin indicada por el cursor. Al inv funcin de la siguiente manera ESCRIBE_CHAR(P); se mostrar la letra P en la el cursor cambiar de posicin al lado derecho. El parmetro dentro de la funcin d cdigo ASCII del carcter a mostrar.

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

La funcin ESCRIBE_MENSAJE(cadena, tam)

Esta funcin ESCRIBE_MENSAJE(cadena,tam) recibe dos parmetros: cadena es caracteres ASCII y tam es la cantidad de elementos de dicho arreglo. El cursor apa derecho del ltimo carcter. Por ejemplo, para mostrar el mensaje de la figura infe la funcin de la siguiente manera: ESCRIBE_MENSAJE(Hola,4);

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

La funcin POS_CURSOR(fila,columna)

Esta funcin ubica el cursor en una de las dos filas (fila 1 o fila 2) y en una de las 16 respectivas (columna 0 hasta la columna 15). Se utiliza esta funcin para definir la posicin donde va a iniciar un mensaje en la pan Para ubicar el cursor en la primera fila, columna 5 se llama a la funcin de la siguient POS_CURSOR(1,5); Si se desea ubicar el cursor en la segunda fila, columna 8 la funcin se invocara de POS_CURSOR(2,8), Se debe tener cuidado con el hecho de que la funcin puede operar para pantallas L columnas, con lo cual el segundo parmetro puede tomar hasta el valor 39. Dado qu tiene solo 16 columnas, es posible acceder a valores mayores. Si se diera el caso, en mostrara ningn carcter en pantalla.

Mag. Ing. Sergio Salas

Facultad de Ingeniera Electrnica y Mecatrnica Carrera: Ingeniera Electrnica

Los caracteres predefinidos por el usuario


Suponga que desea generar un carcter como este, en el cual el 1 es el pxel activo y
0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0

Se tendra que hacer los siguiente: char nuevo[] = {0x04,0x0E,0x1D,0x1F,0x16,0x18 Luego se llama a la siguiente funcin: GeneraCaracter(nuevo,0); Con esto se crea el carcter nuevo y se le asigna el identificador 0. Para imprimir este nuevo carcter en la pantalla LCD se hace lo siguiente: ESCRIBE_CHAR(0);

Mag. Ing. Sergio Sala

You might also like