Professional Documents
Culture Documents
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).
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.
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).
La memoria DDRAM
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.
Registros de configuracin
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
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
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).
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.
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);
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.
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);