Está en la página 1de 10

Controlador serie de LCDs: SYM 20-AA

sym_electronics@yahoo.es

1. DESCRIPCIN GENERAL El controlador SYM20AA permite el control serie de pantallas LCD y puede ser gobernado fcilmente por cualquier microcontrolador o Host: PIC, SX, BASIC Stamp, etc, empleando para ello tan slo 1 o 2 lneas de E/S, desde las que se transmiten los datos y comandos a visualizar. Tambin puede conectarse a un canal serie RS232 estndar y por tanto a un PC dotado del correspondiente programa de comunicaciones (p.e. el Hyperterminal o similar). Se trata de un circuito de bajo coste que, sin apenas componentes externos, es capaz de gobernar pantallas LCD de hasta 4 lneas y 40 caracteres por lnea, compatibles con el controlador de Hitachi HD44780. Por defecto asume una pantalla de 2 x16 caracteres (se puede configurar para distintos modelos) y dispone de los comandos necesarios para realizar diferentes opciones de presentacin: control del cursor, Visualizacin On/OFF, generador de caracteres grficos, luz de fondo, etc.. 2.- CARACTERSTICAS Alimentacin nica de 2.5 V a 5.5 V. Consumo de 2 mA a 5V. Cpsula DIL de 18 pines (bajo pedido mnimo se puede suministrar en cpsula SOIC de 18 pines). Seales de transmisin /Recepcin compatibles con TTL. Visualizacin directa de todos los caracteres ASCII. Salto de lnea automtico para la fcil visualizacin de cadenas de caracteres. Se puede comunicar con el Host a 9600 y 19200 baudios. Control total para el posicionamiento del cursor. Hasta 8 caracteres grficos definidos por el usuario. Se puede configurar el modelo de pantalla LCD a emplear.

3.- APLICACIONES El controlador serie SYM 20 est indicado en todas aquellas aplicaciones en las que sea necesaria la visualizacin de texto sobre pantallas LCD con un mnimo de seales de conexin as como de componentes externos: 4.Aplicaciones didcticas y educacionales, ejemplos y aplicaciones de comunicacin serie, etc Monitorizacin de estados: automatismos, robtica, alarmas, etc. Presentacin de textos DESCRIPCIN FUNCIONAL

El empleo del controlador SYM20AA es realmente sencillo. Una vez realizadas las conexiones con la pantalla LCD, basta con aplicar la tensin de alimentacin. El controlador queda a la espera de recibir va serie los diferentes comandos y caracteres a visualizar.

Controlador serie de LCDs: SYM 20-AA


sym_electronics@yahoo.es

5.- DESCRIPCIN DE PINES N PIN 2 1 18 17 9 16 15 14 5 8 7 3 6 4 13 12 6.- CIRCUITOS DE APLICACIN Se proponen una serie de circuitos de aplicacin para el controlador serie de pantallas LCD. NOMBRE D7 D6 D5 D4 E R/W RS VCC GND TxD RxD BAUD BLIGHT Vpp DATA CLK DESCRIPCION Lnea de interface con el LCD Lnea de interface con el LCD Lnea de interface con el LCD Lnea de interface con el LCD Seal de habilitacin del LCD Seal para la lectura/escritura del LCD Seal de comandos y datos del LCD Tensin de alimentacin de +5Vcc Tensin de alimentacin GND Transmisin de datos al Host Recepcin de datos desde el Host Seleccin de baudios. 0 = 9600, 1 = 19200 Salida para el control de la luz de fondo (si est disponible en el LCD) No conectar No conectar No conectar

2 1 18 17

D7 D6 D5 D4

TxD RxD

8 7

9 16 15 14 5

E R/W RS VCC GND

BAUD BLIGHT VPP DATA CLK

3 6 4 13 12

SYM-20AA

A) Circuito tpico de aplicacin


Es el mostrado en la figura. Se aprecia la conexin tpica con cualquier pantalla LCD que incorpore el controlador HD44780 o compatible. Las lneas D7-D4 del controlador SYM20AA establecen un interface de 4 bits con la pantalla LCD. Las seales E, R/W y RS controlan el flujo y sentido de la informacin. La resistencia R1 de 1K permite ajustar el contraste de la pantalla. El valor indicado es orientativo. En su lugar tambin se puede colocar una resistencia ajustable o potencimetro que permita obtener un contraste variable. Para ello basta conectar los extremos del potencimetro con +5Vcc y GND respectivamente. El cursor se conecta directamente a la patilla VLC (3) del LCD. Opcionales tambin son la resistencia R2 y el jumper JP1. Permiten seleccionar la velocidad de comunicacin entre el controlador SYM20AA y el Host. Cuando JP1 est abierto, la patilla BAUD (3) recibe un nivel lgico 0. Se selecciona 9600 baudios. Si por el contrario JP1 se cierra, la patilla BAUD recibe un nivel lgico alto. Se selecciona 19200 baudios. La seleccin de baudios se debe realizar antes de alimentar al sistema. Cualquier cambio posterior no tendr efecto alguno. La patilla BAUD tambin se puede conectar, de forma permanente a GND o a +5Vcc, con lo que la velocidad de comunicacin ser fija.

Controlador serie de LCDs: SYM 20-AA


sym_electronics@yahoo.es

LCD HD44780 compatible


GND VCC VLC RS RW E D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14 L+ L15 16

1 2 3

4 5 6

R1 1K

2 1 18 17

D7 D6 D5 D4

TxD RxD

8 7

Rx del controlador Tx del controlador

2 4K7 R2 +5Vcc 1

9 16 15 14 5 R3 2K2 C1 100n Q1 BC547

E R/W RS VCC GND

BAUD BLIGHT VPP DATA CLK

3 6 4 13 12 JP1 O=9600 b C=19200 b

SYM-20AA

+5Vcc

El control ON/OFF de la luz de fondo de la pantalla se realiza mediante la patilla BLIGHT. Se emplea para ello el transistor Q1 y su resistencia de polarizacin R3. Se debe incidir que esta patilla y su circuito asociado slo tiene sentido si la pantalla LCD dispone de luz de fondo. En caso contrario se aconseja dejar esta patilla sin conectar. Por la patilla RxD (7) el controlador recibe desde el Host los comandos y datos que se desean visualizar en la pantalla. Estos se ejecutan en tiempo real segn van llegando. Mediante la patilla TxD (8) el controlador transmite el cdigo ACK (0x06) cada vez que se inicia el sistema y cuando un comando termina su ejecucin. El empleo de esta seal es opcional, pero el software de comunicaciones del Host debe tener en cuenta que algunos comandos necesitan de un cierto tiempo de ejecucin durante el cual no se debe mandar nada al controlador SYM20AA. Para ello puede esperar a que llegue el cdigo ACK o bien realizar una cierta temporizacin de espera para que acabe el comando previo (o la secuencia de inicio tras conectar la alimentacin).

B) Interface RS232
El siguiente esquema propuesto permite conectar el controlador SYM20AA con un canal serie estndar RS232. De esta forma es posible gobernarlo desde un PC dotado del software de comunicaciones apropiado p.e el Hyperterminal de Windows o cualquier otro software especfico de aplicacin. La nica condicin es que dicho software sea capaz de transferir cualquier cdigo comprendido entre 0 y 255 en decimal (0x00 0xFF), entre los que se encuentran los caracteres a visualizar y los diferentes comandos interpretados por el controlador. Como se puede apreciar en la figura, simplemente se ha aadido el circuito de adaptacin de niveles MAX232 y el conector DB9 hembra. Por lo dems, el resto del circuito es similar al explicado anteriormente.

Controlador serie de LCDs: SYM 20-AA


sym_electronics@yahoo.es

LCD HD44780 compatible


GND VCC VLC RS RW E RxD D0 D1 D2 D3 D4 D5 D6 D7 L+ LTxD U1 2 1 18 17 D7 D6 D5 D4 TxD RxD 8 7 100n 3 2 6 4 13 12 4K7 JP1 C3 100n

12 9 11 10 1 3 2

U2 MAX232 T1OUT T2OUT T1IN T2IN C1+ C1V+ Vcc R1IN R2IN R1OUT R2OUT C2+ C2VGND

13 8 14 7 4 5 6

R4 330 330 R5 C6 100n TxD RxD

5 9 4 8 3 7 2 6 1 RS232

7 8 9 10 11 12 13 14

R1

1K

15 16

1 2 3

4 5 6

C4

C5

100n

16

9 16 15 14 5 R3 2K2 C1 100n +5Vcc Q1 BC547

E R/W RS VCC GND

BAUD BLIGHT VPP DATA CLK

C2 100n

15

+5Vcc

O=9600 b +5Vcc C=19200 b 1 +5Vcc

El conector DB9 permite una conexin directa con cualquier canal estndar RS232. Se puede emplear para ello el clsico cable comercial con un DB9 hembra en un extremo y un macho en el otro. Tambin se puede hacer las modificaciones oportunas para emplear los conectores DB25 usados por algunos canales serie. 7.- MANEJANDO EL CONTROLADOR SYM20AA Se detallan a continuacin una serie consideraciones que se deben tener en cuenta a la hora de emplear el controlador serie de LCD SYM20AA. 7.1.- Secuencia de Inicio Tiene lugar nada mas conectar la tensin de alimentacin. La pantalla LCD necesita un cierto tiempo para su inicializacin durante el que realiza una serie de operaciones internas. Dicho tiempo se cifra en unos 50 mS. Cuando finaliza esta secuencia el controlador SYM20AA transmite el cdigo ACK (0x06). A partir de este momento el Host puede hacerse cargo del controlador y comenzar a enviarle datos y/o comandos. En la secuencia de inicio se toman una serie de valores por defecto: Pantalla LCD de 2 lneas y 16 caracteres por lnea (2x16) Display ON. La pantalla est lista para recibir y visualizar caracteres o mensajes de texto. Cursor ON. Se visualiza sobre la 1 posicin de la 1 lnea. Blink OFF. El cursor se visualiza de forma esttica sin parpadeo. Backlight OFF. La salida para el control de la luz de fondo queda desconectada. Estos valores por defecto se pueden modificar mediante los comandos apropiados. 7.2.- Visualizando texto Una vez realizada la secuencia de inicio descrita anteriormente, el sistema est listo para recibir y visualizar sobre el LCD los distintos caracteres ASCII segn le van llegando. Se comienza a escribir

R2

SYM-20AA

Controlador serie de LCDs: SYM 20-AA


sym_electronics@yahoo.es

desde la 1 posicin de la 1 lnea. Cada vez que llega un nuevo carcter el cursor se desplaza una posicin a la derecha. No se transmite ningn cdigo de reconocimiento como se hace con los comandos. Cuando se alcanza la ltima posicin de una lnea el cursor se coloca, automticamente, en la 1 posicin de la siguiente. Cuando se llega a la ltima posicin de la ltima lnea disponible, el cursor se vuelve a colocar en la 1 posicin de la 1 lnea . No se borra la pantalla. Los nuevos caracteres que van llegando, se sobreescriben sobre los que ya haba. El proceso se repite de forma indefinida y es similar a como se escribe sobre el papel. El nmero de lnea y caracteres por lnea se fijan por defecto en 2x16. Mediante el comando Set_LCD se puede seleccionar otro tipo de pantalla con una configuracin diferente. 7.3 Controlando el cursor Adems de lo expuesto anteriormente, el cursor se puede colocar en cualquier lugar de la pantalla, con lo que los siguientes cdigos ASCII se visualizarn a partir de esa nueva posicin. Para ello se dispone de una serie de comandos: Backspace: Retrocede una posicin a la izquierda y borra el carcter que en ella hubiera. Cuando se llega a la 1 posicin de una lnea, el cursor se coloca en la ltima posicin de la lnea previa. Si esta fuera la 1 lnea, se pasa a la ltima posicin de la ltima lnea. Desplaza una posicin a la izquierda sin borra el carcter que en ella hubiera. Cuando se llega a la 1 posicin de una lnea, el cursor se coloca en la ltima posicin de la lnea previa. Si esta fuera la 1 lnea, se pasa a la ltima posicin de la ltima lnea.

Shift_Left:

Shift_Right: Desplaza una posicin a la derecha sin borrar el carcter que en ella hubiera. Cuando se llega a la ltima posicin de una lnea, se pasa a la 1 de la siguiente. Si esta fuera la ltima, se pasa a la 1 posicin de la 1 lnea. Line_Feed: El cursor pasa a la lnea siguiente pero en la misma posicin que en la que se encontraba en la lnea anterior. Si se encuentra en la ltima lnea disponible, se pasa a la 1. El cursor se coloca en la 1 posicin de la 1 lnea y se borra toda la pantalla. Es como si se hiciera un cambio de pgina. El cursor se sita en la 1 posicin de la siguiente lnea. Si esta fuera la ltima, se coloca en la 1 posicin de la 1 lnea. Coloca el cursor en la posicin (columna) y fila indicada. No borra nada de lo que hubiera actualmente en el LCD. El comando comprueba si las coordenadas indicadas estn fuera del rango establecido por el tipo de LCD, en cuyo caso se establece la columna 0 y/o la fila 0.

Form_Feed:

Return:

Set_Cursor:

Controlador serie de LCDs: SYM 20-AA


sym_electronics@yahoo.es

7.4 Control de la pantalla Mediante otro conjunto de comandos se puede controlar la pantalla y ajustar los valores por defecto. Display_ON: Display_OFF: Activa la pantalla LCD visualizando el contenido actual. Valor por defecto al inicio. Desactiva la pantalla LCD. Los datos y caracteres no se borran de la memoria interna, simplemente no se visualizan hasta que se ejecute Display_ON. Se activa la visualizacin del cursor. Este se representa como una lnea en la parte inferior del carcter (guin bajo). Valor por defecto al inicio. Desactiva la visualizacin del cursor. Su posicin actual no se pierde, simplemente no se visualiza hasta la ejecucin del siguiente comando Cursor_ON. Activa el parpadeo del cursor. Este se visualiza de forma intermitente sobre su posicin actual. Desactiva el parpadeo del cursor. Valor por defecto al inicio.

Cursor_ON:

Cursor_OFF:

Blink_ON:

Blink_OFF:

Backlight_ON: Activa la luz de fondo. Slo es til si la pantalla LCD realmente dispone de dicha luz. Backlight_OFF: Desactiva la luz de fundo. Valor por defecto al inicio Set_LCD: Permite determinar el nmero de filas y columnas disponibles en la pantalla LCD actual. El valor por defecto al inicio es de 2x16. El rango de las filas est comprendido entre 1 y 4, el de las columnas entre 1 y 40. Si se excede de estos rangos, se toma el valor por defecto. Cada vez que se ejecuta este comando se produce el total borrado de la pantalla y el cursor se coloca en la 1 posicin de la 1 fila.

7.5 Generando caracteres grficos El controlador SYM20AA permite definir hasta 8 caracteres grficos diferentes diseados por el propio usuario. Un carcter grfico queda definido en el LCD mediante un nmero comprendido entre 0 y 7 que lo identifica y un conjunto de 8 bytes (B0 B7), de los que slo se emplean los 5 bits de menos peso y, que representan la matriz del carcter. Para su posterior visualizacin basta con indicar al controlador su nmero de identificacin (del 0 al 7) como si de un cdigo ASCII cualquiera se tratara. En la figura se muestra la matriz de cualquier carcter de una pantalla LCD compatible con HD44780. Est compuesta de 8 filas de 5 pixels cada una. Cada fila est numerada de B0 a B7.

Controlador serie de LCDs: SYM 20-AA


sym_electronics@yahoo.es

Para activar un pxel en particular basta con poner a nivel 1 un bit en el byte correspondiente. As, en la siguiente figura se representa los bytes B0 a B7 con los valores binarios (y hex.) que deben tener para definir el carcter de la . El controlador SYM20AA permite, mediante un nico comando, generar cualquiera de estos caracteres grficos. Set_Char: Genera uno de los 8 caracteres grficos posibles. El comando debe ir acompaado de 9 bytes consecutivos. El 1 de ellos debe ser de un valor comprendido entre 0 y 7 y sirve para identificar el carcter. Los 8 siguientes se emplean para definir la matriz de dicho carcter en cuestin (B0-B7).

Para visualizar cualquier carcter de los que estn previamente definidos, basta con enviar al controlador el cdigo de identificacin correspondiente (del 0 al 7) como si de un cdigo ASCII se tratara. 8.- JUEGO DE INSTRUCCIONES A continuacin se muestra un resumen de todos los comandos o instrucciones disponibles. En la tabla se indica el cdigo de cada uno (en dec. y en hex.), y una descripcin del mismo. Tambin se indica el tiempo mximo de ejecucin de cada comando. Este tiempo de ejecucin es un factor a tener en cuenta ya que el host no debe enviar un comando mientras se est ejecutando el anterior. La forma mas segura de que esto no ocurra, es que el host espere a detectar el cdigo ACK (0X06) que el controlador enva cada vez que termina la ejecucin del comando en curso. DEC HEX DESCRIPCIN T.MAX. 0x00 0 Visualiza el carcter grfico n 0 previamente definido mediante Set_Char 0.5mS 0x01 1 Visualiza el carcter grfico n 1 previamente definido mediante Set_Char 0.5mS 0x02 2 Visualiza el carcter grfico n 2 previamente definido mediante Set_Char 0.5mS 0x03 3 Visualiza el carcter grfico n 3 previamente definido mediante Set_Char 0.5mS 0x04 4 Visualiza el carcter grfico n 4 previamente definido mediante Set_Char 0.5mS 0x05 5 Visualiza el carcter grfico n 5 previamente definido mediante Set_Char 0.5mS 0x06 6 Visualiza el carcter grfico n 6 previamente definido mediante Set_Char 0.5mS 0x07 7 Visualiza el carcter grfico n 7 previamente definido mediante Set_Char 0.5mS 0x08 8 BackSpace: Mueve el cursor una posicin a la izquierda y borra el carcter actual 0.5mS que hubiera 0x0A 10 Line_Feed: El cursor se mueve a la siguiente lnea. Si se encuentra en la ltima se 0.5mS pasa a la primera. Se conserva la posicin dentro de la lnea 0x0C 12 Form_Feed: Salto de pgina. El cursor se coloca en la 1 posicin de la 1 lnea. La 6mS pantalla se borra 0x0d 13 Return: El cursor se mueve a la 1 posicin de la siguiente lnea. Si esta fuera la 0.5ms ltima, se pasar a la 1. 0x20 32 Visualiza el carcter correspondiente al cdigo ASCII. Ver tabla de caracteres en 0.5mS el apartado 9. 0x7F 127

Controlador serie de LCDs: SYM 20-AA


sym_electronics@yahoo.es

DEC HEX DESCRIPCIN 0x80 128 Display_ON: Activa el LCD y visualiza el contenido actual. Valor por defecto. 0x81 129 Display_OFF: Desactiva el LCD. La pantalla queda en blanco, pero el contenido actual permanece intacto. 0x82 130 Cursor_ON: Visualiza el cursor en la posicin actual. Valor por defecto 0x83 131 Cursor_OFF: Desactiva la visualizacin del cursor 0x84 132 Blink_ON: Activa intermitencia del cursor 0x85 133 Blink_OFF: Desactiva la intermitencia del cursor. Valor por defecto 0x86 134 Backlight_ON: Activa la luz de fondo. Slo es vlido en pantallas LCD que dispongan de dicha luz. 0x87 135 Backlight_OFF: Desactiva la luz de fondo. Valor por defecto 0x88 136 Shift_Right: Desplaza el cursor una posicin a la derecha sin borrar el carcter actual 0x89 137 Shift_Left: Desplaza el cursor una posicin a la izquierda sin borrar el carcter actual 0x8A 138 Set_Cursor: Coloca el cursor en las coordenadas indicadas sin borrar el carcter actual.

T.MAX. 0.5mS 0.5mS 0.5mS 0.5mS 0.5mS 0.5mS 0.5mS 0.5mS 0.5mS 0.5mS 0.5mS

Formato: 0x8A ff cc ff = filas (entre 1 y 4) cc = columnas (entre 1 y 40)


Se verifica si las coordenadas indicadas estn fuera del rango establecido por el tipo de LCD (Set_LCD), en cuyo caso se establecen las coordenadas por defecto (0-0) 0x8B 139 Set_Char: Genera uno de los posibles caracteres grficos y los almacena en la memoria interna del LCD.

0.5mS

Formato: 0x8B nn B0 B1 B2 B3 B4 B5 B6 B7 nn = nmero de identificacin del carcter. B0-B7 = Son los bytes que definen la matriz.
Si el sistema queda sin alimentacin los caracteres que haya definidos se borran, con lo que habr que volver a repetir el proceso. 0x8C 140 Sel_LCD: Ajusta el modelo de LCD disponible.

6mS

Formato: 0x8C ff cc ff = Nmero de filas (entre 1 y 4) cc = Nmero de columnas (entre 1 y 40)


Si un parmetro excede de los lmites, se toma el modelo por defecto (2x16). La nueva configuracin slo se mantiene mientras el sistema est alimentado. La ejecucin de este comando implica un borrado total de la pantalla y el posicionamiento del cursor en la 1 posicin de la 1 fila.

Controlador serie de LCDs: SYM 20-AA


sym_electronics@yahoo.es

9.- CONJUNTO DE CARACTERS ASCII La siguiente tabla muestra todos los caracteres ASCII visualizados sobre las pantallas LCD compatibles con HD44780. Estos caracteres van desde 0x20 a 0x7F (132 a 127) y vasta con mandarlos directamente al controlador SYM20AA para que sean visualizados.

Controlador serie de LCDs: SYM 20-AA


sym_electronics@yahoo.es

10

También podría gustarte