5. El módulo LCD alfanumérico HD44780

Click here to load reader

download 5. El módulo LCD alfanumérico HD44780

of 17

Transcript of 5. El módulo LCD alfanumérico HD44780

Diseo de sistemas microprocesados

Profesor:Mag. Ing. Sergio Salas ArriarnDiseo de sistemas microprocesados

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Semana 7:El mdulo LCD alfanumrico HD44780 de Hitachi

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Diferentes tipos de pantallas grficas para control a travs de uCMag. Ing. Sergio Salas A.

LCD alfanumrico 2x16GLCD de 128x64 pxelesGLCD 240x128 pxeles TouchscreenOLED de 128x128 pxeles 216 coloresEl mdulo LCD alfanumrico basado en el controlador HD44780

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Mag. Ing. Sergio Salas A.

Los mdulos LCD alfanumricos son sistemas completos basados en una pantalla LCD, circuitos para Manejo de columnas y filas, circuitera de distribucin de energa y un controlador inteligente (el HD44780. Toda esta electrnica se encuentra ensamblada en un solo circuito integrado conocida como la tecnologa Chip On Glass (COG).Pines de conexin del mdulo LCD

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

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

Tabla de caracteres de la CGROM

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Mag. Ing. Sergio Salas A.

En los mdulos alfanumricos es posible colocar un cdigo ASCII en la memoria RAM del controladorconocida como DDRAM (Display Data RAM). La salida es la imagen de un carcter que utiliza una matrizde puntos de 5x7. En la Tabla se muestran la lista de caracteres ASCII que se encuentra almacenados en la memoria CGROM (Character Generator ROM). La memoria DDRAMMag. Ing. Sergio Salas A.

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

La memoria CGRAMMag. Ing. Sergio Salas A.

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

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

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Mag. Ing. Sergio Salas A.

El diagrama de tiempos del HD44780

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Mag. Ing. Sergio Salas A.

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Mag. Ing. Sergio Salas A.Conexiones del dsPIC al LCD enel mdulo de desarrollo

Librera LCD

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Mag. Ing. Sergio Salas A.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 0void 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);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 LCD se haya estabilizado para poder invocar a esta funcin.

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Mag. Ing. Sergio Salas A.La funcin LCDCONFIG()12

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

La funcin BORRAR_LCD()Mag. Ing. Sergio Salas A.

La funcin BORRAR_LCD() permite eliminar de la pantalla cualquier carcter mostrado y coloca el cursor en la posicin Home (Fila 1 columna 0). Mag. Ing. Sergio Salas A.

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

La funcin ESCRIBE_CHAR(num)

Esta funcin permite mostrar un carcter en la posicin indicada por el cursor. Al invocar la funcin de la siguiente manera ESCRIBE_CHAR(P); se mostrar la letra P en la pantalla yel cursor cambiar de posicin al lado derecho. El parmetro dentro de la funcin debe ser el cdigo ASCII del carcter a mostrar.Mag. Ing. Sergio Salas A.

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

La funcin ESCRIBE_MENSAJE(cadena, tam)

Esta funcin ESCRIBE_MENSAJE(cadena,tam) recibe dos parmetros: cadena es un arreglo decaracteres ASCII y tam es la cantidad de elementos de dicho arreglo. El cursor aparecer al ladoderecho del ltimo carcter. Por ejemplo, para mostrar el mensaje de la figura inferior se utilizala funcin de la siguiente manera:ESCRIBE_MENSAJE(Hola,4);

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Mag. Ing. Sergio Salas A.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 columnas respectivas (columna 0 hasta la columna 15). Se utiliza esta funcin para definir la posicin donde va a iniciar un mensaje en la pantalla. Para ubicar el cursor en la primera fila, columna 5 se llama a la funcin de la siguiente manera:POS_CURSOR(1,5);Si se desea ubicar el cursor en la segunda fila, columna 8 la funcin se invocara de la siguiente manera:POS_CURSOR(2,8),Se debe tener cuidado con el hecho de que la funcin puede operar para pantallas LCD de hasta 40columnas, con lo cual el segundo parmetro puede tomar hasta el valor 39. Dado que la pantalla usadatiene solo 16 columnas, es posible acceder a valores mayores. Si se diera el caso, entonces no semostrara ningn carcter en pantalla. Los caracteres predefinidos por el usuario

Facultad de Ingeniera Electrnica y MecatrnicaCarrera: Ingeniera Electrnica

Mag. Ing. Sergio Salas A.0010001110111011111110110110000111000100Suponga que desea generar un carcter como este, en el cual el 1 es el pxel activo y 0 el pxel inactivo.Se tendra que hacer los siguiente: char nuevo[] = {0x04,0x0E,0x1D,0x1F,0x16,0x18,0x0E,0x04};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);