Está en la página 1de 4

Creacin de nuevos caracteres en LCDs alfanumricos.

Escrito por Zaxione Martes, 01 de Septiembre de 2009 21:41 - Actualizado Domingo, 13 de Septiembre de 2009 01:06

Aqu tenis un sencillo tutorial sobre la creacin de nuevos caracteres o smbolos en Displays alfanumricos. EstosLCDstienen normalmenteun controlador HD44780 o compatible y se componen deuna matriz de 5 pxeles horizontales por 8 verticales por carcter. Ensu memoria CGRAM puede almacenarhasta8 nuevos caracteres. La aplicacin de smbolos es muy utilizada para crearanimacioneso enindicadores de estado, como podra serel tringulopara Play, cuadrado para Stop,smbolo de batera, etc... Enla imagende la derecha podemosverla creacin de 4nuevos smbolos y mi Alias "Zaxione". //

Esta matriz con cuadros nos ayudara a calcular los Bytes necesarios paracrear un carcter o smbolo nuevo. Los cuadros azules tienen una numeracin que se repite en cada fila horizontal. Esta numeracines necesaria para poder hacer el clculo ypasar de pxeles a Bytes. Como ejemplo, enrojos ayadibujada una flecha. Si sumamos los cuadrados marcados enrojode cada fila horizontaltendremos 8 nmeros decimales (cuadrados amarrillos) necesarios para generar unnuevocarcter. Ahora solo nos falta enviar la informacin al microcontrolador de la siguiente manera: LCDOUT 254, 64, 4, 14, 21, 4, 4, 4, 4, 0 Donde LCDOUT es la instruccin que controla el LCD. Enviando 254 o $FE le indicamosalLCD que va arecibir un comando. El comando 64 indica al LCD que es el primer carcter de la memoria CGRAM. Los datos 4, 14, 21, 4, 4, 4, 4, 0 representan los Bytes del nuevo carcter. Una vez echo esto, el nuevo carcter ya estgrabado en la memoria CGRAM del LCD, pero no se visualizarahasta que lo utilicemos de la siguiente manera: LCDOUT 0 Donde LCDOUT es la instruccin que controla el LCD. Y 0 es el primer carcter de la memoria CGRAM que previamente habamos grabado en el comando 64.

1/4

Creacin de nuevos caracteres en LCDs alfanumricos.


Escrito por Zaxione Martes, 01 de Septiembre de 2009 21:41 - Actualizado Domingo, 13 de Septiembre de 2009 01:06

Para aadir ms caracteres a la memoria CGRAM tenemos que sumarle 8 al comando, en ese caso es 64 + 8 = 72 y as sucesivamente. Eneste ejemplo podemos observar los 8 comandos ya calculados con los Bytes de los nuevos caracteres. LCDOUT 254,64, 4, 14, 21, 4, 4, 4, 4, 0 LCDOUT 254,72, 14, 31, 0, 10, 0, 17, 14, 0 LCDOUT 254,80,4, 14, 4, 14, 21, 21, 10, 10 LCDOUT 254,88, 0, 14, 27, 31, 3, 31, 14, 0 LCDOUT 254,96, 0 ,31 ,31, 31 ,31 ,31 ,0 ,0 LCDOUT 254, 104, 0 ,8 ,12, 14 ,12 ,8 ,0 ,0 LCDOUT 254, 112, 0 ,14 ,31, 31 ,31 ,14 ,0 ,0 LCDOUT 254, 120, 0 ,4 ,14, 31 ,0 ,31 ,31 ,0 Una vez echo esto,para poder visualizarlos solo es necesario escribir la posicin donde se grabaron. LCDOUT 0, 1, 2, 3, 4, 5, 6, 7 Donde LCDOUT es la instruccin que controla el LCD. Y 0 corresponde al carcter guardado en el comando 64. El 1 corresponde al carcter guardado en el comando 72 y as sucesivamente. Esquema y componentes electrnicos:

Para estetutorial se ha utilizado un microcontrolador PIC 16F877A y un LCD HD44780 OLED-ORGANIC alfanumrico de 2filasde 16 caracteres cada una.

2/4

Creacin de nuevos caracteres en LCDs alfanumricos.


Escrito por Zaxione Martes, 01 de Septiembre de 2009 21:41 - Actualizado Domingo, 13 de Septiembre de 2009 01:06

ElCdigo Fuente:

Est escritoenLenguaje Basic, concretamente el PicBasic Pro 2.50C (PBP). '******************************************************************************* '* Archivo : CARACTERES.PBP * '* Autor : Sal (Alias Zaxione) * '* Fecha : 10/09/2009 * '* Versin : 1.0 * '* Nota : Creacin de nuevos caracteres en LCDs alfanumricos. * '* Web : http://www.zaxione.com * '******************************************************************************* DEFINE OSC 20'Oscilador de 20 MHz '******************************************************************************* ADCON1 = 00001110 'Definir algunos puertos como Digitales PAUSE 500 'Tiempo necesario para la iniciacin del LCD DEFINE LCD_DREG PORTB 'LCD PORT para envo de datos B DEFINE LCD_DBIT 4 'LCD utiliza los Bit inferior 0 o superior 4 DEFINE LCD_RSREG PORTA 'LCD RS en el PORTA DEFINE LCD_RSBIT 1 'LCD RS PORTA.1 DEFINE LCD_EREG PORTA 'LCD E en el PORTA DEFINE LCD_EBIT 3 'LCD E PORTA.3 DEFINE LCD_BITS 4 'LCD se utilizan 4 o 8 bits para datos DEFINE LCD_LINES 2 'LCD Numero de lineas del lcd '******************************************************************************* LCDOUT254,64, 14 ,31 ,0, 10 ,0 ,17 ,14 ,0 'cgram posicin 0 LCDOUT 254,72, 4 ,14 ,4, 14 ,21 ,21 ,10 ,10 'cgram posicin 1 LCDOUT254,80, 0 ,14 ,27, 31 ,3 ,31 ,14 ,0 'cgram posicin 2 LCDOUT 254,88, 4 ,14 ,21, 4 ,4 ,4 ,4 ,0 'cgram posicin 3 '******************************************************************************* LCDOUT $FE, 1 'Borrado de la pantalla LCDOUT " ",0, 1, " Zaxione ", 2, 3'Imprimir en pantalla '******************************************************************************* END

En la Zona de Descargas puedes encontrar los siguientes archivos: - CARACTER.GIF Esquemtico del circuito. - CARACTER.PBP Cdigo Fuente para el compilador PicBasic Pro. - CARACTER.ASM Cdigo escrito en Lenguaje Assembly.

3/4

Creacin de nuevos caracteres en LCDs alfanumricos.


Escrito por Zaxione Martes, 01 de Septiembre de 2009 21:41 - Actualizado Domingo, 13 de Septiembre de 2009 01:06

- CARACTER.HEX Firmware en Lenguaje mquina.

Para ms informacin puedes consultaro exponertus dudas en el Foro " Creacin de nuevos caracteres en LCDs alfanumricos " .

4/4