Conexión y funciones de un módulo LCD

Una pantalla de cristal líquido o LCD (Liquid Cristal Display) es un dispositivo para la presentación de imagenes o caracteres. En este caso usaremos uno basado en el µControlador Hitachi 44780 o compatible, que muestra 16 o 20 caracteres en 1, 2 o 4 líneas. Las funciones de control son iguales para todos los modelos.

Conexionado:
PINNombreDirecciónFunción
01VssPGND
02VddPAlimentación a 5V
03VeePControl de contraste
04RSISelección de Registro / Dato
05RWISelección de Escritura / Lestura
06EIEnable / Disable
07 - 14D0 - D7I/OBus de datos
15 - 16A - KPCorresponden al ánodo y cátodo del backlight  (si el modelo lo tiene)

Bueno, la operacion del display es bastante sencilla ya que el µControlador interno, hace casi todo el trabajo, para comandarlo debemos saber como funcionan sus pines.

Para enviar un comando o un dato deberemos primero indicar que es lo que estamos enviando para eso se usa el pin RS, cuando este pin esta en 0 el LCD interpretará la información que esta prensente en sus pines D0 a D7 como un comando, si está en 1 significa que estamos enviandole un caracter, en cuyo caso se imprimira donde esté actualmente el cursor.

Asimismo en lugar de enviar información puede llegar el momento en que queramos leer algo de su memoria, para eso se utiliza el pin R/W, en 0 el LCD estará en modo escritura y en 1 en modo lectura.

El pin E es el que le indica al display que ejecute la operación que estamos enviandole, cuando este pin esta en 0 cualquier modificación que hagamos en sus otros pines será ignorada. Entonces la forma de proceder será asi:


- Se colocan los pines RS en 1 o 0 dependiendo si vamos a enviar un caracter o una dirección.

- R/W a 0 si queremos enviar un caracter o un comando y en 1 si queremos leer algun dato del display.

- Ponemos D0 a D7 Con el valor del caracter que queremos imprimir, o con el comando que deseamos ejecutar en el display ( si R/W es 1 estos pines se convertiran en salidas y solo podremos leer el estado)

- Por ultimo se pone en alto el pin E y el display ejecutará la función.

Ahora bien, como ya comenté por ahi, el R/W no lo usaremos, ya que como nosotros escribiremos en el display no necesitaremos obtener ninguna información de el, para hacer esto basta con conectar el pin 5 (R/W) directamente a GND y el LCD estará siempre en modo escritura.

El funcionamiente se resumiría asi: RS nos servirá para indicarle al LCD si lo que le estamos mandando es un comando o un caracter; D0 a D7 para enviarle el dato o el comando y E para que lo ejecute.

Para enviar un caracter simplemente ponemos RS en 1 y el valor binario del caracter en los pines D0 a D7E y aparecerá nuestro caracter en pantalla. luego pasamos a 1 el pin.

Impresión de caracteres.

Pero esto solo nos permite escribir un caracter al lado de otro, para seleccionar donde escribir, borrar pantalla etc debemos hacer el mismo procedimiento pero con el pin RS en 0 y los pines D0 a D7 con el valor del comando correspondiente a la operación que queramos hacer:

CLEAR DISPLAY Borra el contenido de la pantalla.

HOMEColoca el cursor en el primer espacio de la primera línea sin modificar el contenido de la pantalla.

ENTRY MODE SETEspecifica el modo en que se imprimiran los caracteres. 

I/D = 0 Incrementa el cursor 
I/D=1 Decrementa el cursor  
S=0 Desplaza el cursor
S=1 Desplaza el display

DISPLAY ON/OFF CONTROL Control de encendido y apagado de la pantalla.

D=0 Pantalla apagado
D=1 Pantalla encendida
C=0 Oculta el cursor
C=1 Muestra el cursor
B=0 Cursor estático
B=1 Cursor parpadeante

CURSOR OR DISPLAY SHIFT Mueve el display o el cursor.

S/C=0 Mueve el cursor
S/C=1 Mueve el display
R/L=0 Mueve a la derecha
R/L=1 Mueve a la izquierda

FUNCTION SET Establece el bus de datos, cantidad de líneas y modo de caracteres.

DL=0 Bus de datos de 4 bits (D4 a D7)
DL=1 Bus de datos de 8 bits (D0 a D7)  
N=0 LCD de 1 línea  
N=1 LCD de 2 líneas
F=0 Caracteres de 5 x 7 pixeles
F=1 caracteres de 5 x 10 pixeles

SET CG RAM ADDRESS

Ingresando de este modo la dirección de la CG RAM, indica que cuando usemos el comando para escribir en el display, lo que enviaremos serán caracteres personalizados, se necesitan 7 instrucciones por caracter.

SET DD RAM ADDRESS

Cuando escribimos en el display lo que en realidad estamos diciendole al módulo que haga es almacenar X caracter en Y posición de memoria, con este comando indicamos en que lugar de la DD RAM se guardará el próximo caracter que enviemos. 80-8F corresponde a la memoria para la primera linea y C0-CF a la segunda.

Lo siguiente que nos queda es mostrar las rutinas para hacer todo esto, y eso lo pueden ver en este apartado: Control de un módulo LCD con PIC y CCS C

14 comentarios:

  1. Anónimo7/4/10

    muy chulo, un trabajo encomiable.
    admirable.
    si me ponen una pistola al pecho y me obligaran a corregir algo, quizás me decidiría por colocar un color algo mas claro de fondo para hacer mas facil la lectura

    ResponderEliminar
  2. Muchas gracias, y con respecto a los colores es algo que justamente estaba tratando de corregir, en un principio pensé que sería bueno idea para no cansar la vista, pero leyendo algunas recomendaciones sobre estilo, me enteré que lo mejor es una fuente oscura sobre fondo claro.

    saludos.

    ResponderEliminar
  3. perdona, tendrias por ahi algun circuito para controlar un display retirado de una calculadora dañada?, quise limpiar los numeros del velocimetro de mi carro y los borre, use un circuito para hacer un velocimetro digital (lo encontre en internet)pero si le pega el sol, no se ve el display, entonces quiero poner ese display LCD, pero al parecer, no se usa voltaje constante porque se daña el display, podrias ayudarme??
    tips, criticas, lo que sea a ofsalcido@gmail.com
    gracias por adelantado
    octavio salcido

    ResponderEliminar
  4. Ya te respondí en la entrada http://picrobot.blogspot.com/2008/12/display7segshiftregister.html ya que el display que dices es un VFD y el manejo es mas parecido a un display de LED que a un LCD microcontrolado.

    Saludos.

    ResponderEliminar
  5. Hola, mi amigo, perdona por ser tan latoso pero te juro que es un display LCD de una calculadora moderna, en mi tiempo tambien hice circuitos con VFd, pero se acaban las pilas muy rapido, en serio, es un LCD.

    ResponderEliminar
  6. Anónimo1/7/11

    Una pregunta, que software utilizas para programar ya que programe en MICKROC pero hay algunas instrucciones que no encuentro como int8, una pregunta más que modelo de LCD utiliza ya que yo probe con un LCD SC162A3 y pues no puedo hacer ke despliege caracteres

    ResponderEliminar
  7. La programación está hecha en CCS C, int8 puede ser que la puedas reemplazar por simplemente int (no conozco el lenguaje que me dices).
    Y el LCD puede ser cualquiera que esté controlado por un µControlador Hitachi 44780 o compatible, creo que ese modelo es compatible.

    Saludos.

    ResponderEliminar
  8. ola nose si me puede ayudar en la coneccion entre el lcd y el pic respecto al programa del pic
    gracias

    ResponderEliminar
  9. La conexión del módulo LCD al PIC la tienes en la siguiente entrada http://picrobot.blogspot.com/2008/12/controlar-de-un-lcd-con-pic-y-ccs-c.html

    Saludos.

    ResponderEliminar
  10. Anónimo30/6/12

    Hola, tengo 2 display distintos en sus conecciones al flex, podrias guiarme como conectarlos corrctamente para que se vea la imagen, te cuento tengo una notebook con lcd 13.3 que se me rompio, compre uno que a simple vista es igual pero resulto que no lo era porque tiene distintas conecciones, decime que necesito pasarte para que me ayudes los modelos de las pantallas son:
    la numeracion de la pantalla lcd que traia la maquina es N133l1-L01
    yo compre una LTD133EX2X pero puedo ver la imagen de windows y la maquina levanta lo mas bien, lo unico que veo es una pantalla blanca o sea esta iluminada pero nada mas. Gracias por tu tiempo y ayuda, saludos

    ResponderEliminar
  11. Si lees el artículo te darás cuenta que de lo que aquí hablo es sobre un módulo LCD microcontrolado y tú te refieres a una pantalla de portátil, son dos cosas diferentes.

    Saludos.

    ResponderEliminar
  12. tengo un duda con respeto a la alimentacion del modulo lcd, es necesario alimentarla con un fuente independiente a la de pic o se puede hacer con las misma ????

    ResponderEliminar
  13. Puede ser la misma ya que ambos trabajan a 5 VDC.

    Saludos.

    ResponderEliminar
  14. Anónimo23/12/12

    Excelente blog, lo estoy leyendo profundamente!

    ResponderEliminar

Tal vez le interese: