Sunteți pe pagina 1din 7

LCD 2x16

TEORIA

Descripcin: La pantalla de cristal liquido o LCD (Liquid Crystal Display) es un dispositivo Controlado de visualizacin grafico para la presentacin de caracteres, smbolos o incluso dibujos (en algunos modelos), es este caso dispone de 2 filas de 16 caracteres cada una y cada carcter dispone de una matriz de 5x7 puntos (pixels), aunque los hay de otro nmero de filas y caracteres. Este dispositivo esta gobernado internamente por un microcontrolador Hitachi 44780 y regula todos los parmetros de presentacin, este modelo es el mas comnmente usado y esta informacin se basar en el manejo de este u otro LCD compatible.
Caracteristicas principales: -Pantalla de caracteres ASCII, adems de los caracteres Kanji y Griegos. -Desplazamiento de los caracteres hacia la izquierda o la derecha. -Proporciona la direccin de la posicin absoluta o relativa del caracter. -Memoria de 40 caracteres por lnea de pantalla. -Movimiento del cursor y cambio de su aspecto. -Permite que el usuario pueda programar 8 caracteres. -Conexin a un procesador usando un interfaz de 4 u 8 bits

Funcionamiento: Para comunicarse con la pantalla LCD podemos hacerlo por medio de sus patitas de entrada de dos maneras posibles, con bus de 4 bits o con bus de 8 bits, este ultimo es el que explicare y la rutina tambin ser para este. En la siguiente figura vemos las dos maneras posibles de conexionar el LCD con un pic16F84.

Conexionado con bus de 4 bits

Conexionado con bus de 8 bits

Como puede apreciarse el control de contraste se realiza al dividir la alimentacin de 5V con una resistencia variable de 10K. Las lneas de datos son triestado, esto indica que cuando el LCD no esta habilitado sus entradas y salidas pasan a alta impedancia. Descripcin de pines:
PIN N SIMBOLO DESCRIPCION

1 2 3 4

6 7-14

Tierra de alimentacin GND Alimentacin de +5V CC Contraste del cristal liquido. ( 0 a +5V ) Seleccin del registro de control/registro de datos: RS RS=0 Seleccin registro de control RS=1 Seleccin registro de datos Seal de lectura/escritura: R/W R/W=0 Escritura (Write) R/W=1 Lectura (Read) Habilitacin del modulo: E E=0 Mdulo desconectado E=1 Mdulo conectado D0-D7 Bus de datos bidireccional.

Vss Vdd Vo

JUEGOS DE INSTRUCCIONES: Estas son las instrucciones para el control del modulo LCD Hitachi 44780 o compatible. CLEAR DISPLAY Borra el mdulo LCD y coloca el cursor en la primera posicin (direccin 0). Pone el bit I/D a 1 por defecto.

RS 0

R/W 0

DB7 0

DB6 0

DB5 0

DB4 0

DB3 0

DB2 0

DB1 0

DB0 1

Tiempo de ejecucin: 1.64mS

HOME Coloca el cursor en la posicin de inicio (direccin 0) y hace que el display comience a desplazarse desde la posicin original. El contenido de la memoria RAM de datos de visualizacin (DD RAM) permanece invariable. La direccin de la memoria RAM de datos para la visualizacin (DD RAM) es puesta a 0. RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 0 DB1 1 DB0 X

Tiempo de ejecucin: 1.64mS

ENTRY MODE SET Establece la direccin de movimiento del cursor y especifica si la visualizacin se va desplazando a la siguiente posicin de la pantalla o no. Estas operaciones se ejecutan durante la lectura o escritura de la DD RAM o CG RAM. Para visualizar normalmente poner el bit S=0. RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 1 DB1 I/D DB0 S

Tiempo de ejecucin: 40S

DISPLAY ON/OFF CONTROL Activa o desactiva poniendo en ON/OFF tanto al display (D) como al cursor (C) y se establece si este ltimo debe o no parpadear (B). RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 1 DB2 D DB1 C DB0 B

Tiempo de ejecucin: 40S

CURSOR OR DISPLAY SHIFT Mueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datos de visualizacin DD RAM. RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 1 DB3 S/C DB2 R/L DB1 X DB0 X

Tiempo de ejecucin: 40S

FUNCTION SET Establece el tamao de interfase con el bus de datos (DL), nmero de lneas del display (N) y tipo de carcter (F) RS 0 R/W 0 DB7 0 DB6 0 DB5 1 DB4 DL DB3 N DB2 F DB1 X DB0 X

Tiempo de ejecucin: 40S

SET THE CG RAM ADDRESS El mdulo LCD adems de tener definidos todo el conjunto de caracteres ASCII, permite al usuario definir 4 u 8 caracteres grficos. La composicin de estos caracteres se va guardando en una memoria llamada CG RAM con capacidad para 64 bytes. Cada carcter grfico definido por el usuario se compone de 16 u 8 bytes que se almacenan

en sucesivas posiciones de la CG RAM. Mediante esta instruccin se establece la direccin de memoria CG RAM a partir de la cual se irn almacenando los bytes que definen un carcter grfico. Ejecutando este comando todos los datos que se lean o escriban posteriormente, lo hacen desde esta memoria CG RAM. RS 0 R/W 0 DB7 0 DB6 1 DB5 DB4 DB3 DB2 DB1 Direccin de la CG RAM DB0

Tiempo de ejecucin: 40S

SET THE DD RAM ADDRESS Los caracteres o datos que se van visualizando, se van almacenando en una memoria llamada DD RAM para de aqu pasar a la pantalla. Mediante esta instruccin se establece la direccin de la memoria DD RAM a partir de la cual se irn almacenando los datos a visualizar. Ejecutando este comando, todos los datos que se escriban o lean posteriormente lo harn desde esta memoria DD RAM. Las direcciones de la 80h a la 8Fh corresponden con los 16 caracteres del primer rengln y de la C0h a la CFh con los 16 caracteres del segundo rengln, para este modelo de LCD. RS 0 R/W 0 DB7 1 DB6 DB5 DB4 DB3 DB2 DB1 Direccin de la DD RAM DB0

Tiempo de ejecucin: 40S

READ BUSY FLAG & ADDRESS Cuando el modulo LCD esta ejecutando cualquiera de estas instrucciones, tarda un cierto tiempo de ejecucin en el que no se debe mandar ninguna instruccin. Para ello dispone de un flag llamado BUSY (ocupado) que indica que se est ejecutando una instruccin previa. Esta instruccin de lectura informa del estado de dicho flag adems de proporcionar el valor del contador de direcciones de la CG RAM o de la DD RAM segn la ltima que se haya empleado. RS 0 R/W 1 DB7 BF DB6 DB5 DB4 DB3 DB2 DB1 DB0 Direccin de la CG RAM o DD RAM
Tiempo de ejecucin: 40S

WRITE DATA TO GG OR DD RAM Mediante este comando se escribe en la memoria DD RAM los datos que se quieren presentar en pantalla y que sern los diferentes cdigos ASCII de los caracteres a visualizar. Igualmente se escribe en la memoria CG RAM los diferentes bytes que permiten confeccionar caracteres grficos a gusto del usuario. El escribir en uno u otro tipo de memoria depende de si se ha empleado previamente la instruccin de direccionamiento DD RAM o la de direccionamiento CG RAM. RS 1 R/W 0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Cdigo ASCII o byte del carcter grfico
Tiempo de ejecucin: 40S

READ DATA FROM CG RAM OR DD RAM Mediante este comando se lee de la memoria DD RAM los datos que haya almacenados y que sern los cdigos ASCII de los caracteres almacenados. Igualmente se lee de la memoria CG RAM los diferentes bytes con los que se ha confeccionado un determinado carcter grfico. El leer de uno u otro tipo de memoria depende de si se ha empleado previamente la instruccin de direccionamiento de la DD RAM o la de direccionamiento CG RAM.

RS 1

R/W 1

DB7

DB6 DB5 DB4 DB3 DB2 DB1 DB0 Cdigo ASCII o byte del carcter grfico
Tiempo de ejecucin: 40S

ABREVIATURAS Abreviaturas empleadas en los cdigos anteriores: 1 - Desplaza la visualizacin cada vez que se escribe un dato 0 - Modo normal 1 - Incremento del cursor 0 - Decremento del cursor 1 - Desplaza el display 0 - Mueve el cursor 1 - Desplazamiento a la derecha 0 - Desplazamiento a la izquierda 1 - Mdulo ocupado 0 - Mdulo disponible 1 - Bus de datos de 8 bits 0 - Bus de datos de 4 bits 1 - LCD de dos lneas 0 - LCD de una lnea 1 - Carcter de 5 x 10 puntos 0 - Carcter de 5 x 7 puntos 1 - Parpadeo del cursor ON 0 - Parpadeo del cursor OFF 1 - Cursor ON 0 - Cursor OFF 1 - Display ON 0 - Display OFF Indeterminado

S I/D S/C R/L BF DL N F B C D X

Juego de caracteres:

RUTINA

Descripcin: La siguiente librera bsica de rutinas es para controlar un LCD Hitachi 44780 o compatible. Los datos o comandos a enviar al LCD los meteremos en el acumulador W antes de hacer la llamada a cualquiera de las rutinas siguientes.

LCD_E

LCD_BUSY

LCD_REG

LCD_DATOS

LCD_INI LCD_PORT

Genera un pulso de 1S por PORTB,2 patita 6 (Enable) del LCD. Si se usa una velocidad de micro diferente de 4MHz habr que ajustar este tiempo. Chequea si el LCD esta ocupado (BUSY) y retorna de la rutina cuando ya no lo este. Pone al LCD en modo de recibir comandos , espera a que no este ocupado y va a LCD_E. Pone el LCD en modo datos y manda el byte presente en W que ser mostrado en pantalla. Inicializacion del modulo LCD segun los tiempo marcados por el fabricante. Bus de 8 bits, 2 lineas de visualizacion y caracteres de 5 x 7 puntos. Configura los puertos del PIC para ser

usados con el LCD.

Rutina LCD 2x16

LCD.lib

Ejemplo: El siguiente ejemplo muestra lo fcil que es manejar un LCD. Lo que hace bsicamente es configurar el LCD, los puertos del PIC y luego mandar los datos segn los va cogiendo de la tabla de datos, para mostrar en el LCD la tpica frase "HOLA MUNDO".
;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>> INICIO CLRF CALL BCF BCF START CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL REPETIR MOVF CALL IORLW BTFSC GOTO CALL INCF GOTO acabar nop goto Digito LCD_PORT RA,0 RA,2 LCD_INI b'00000001' LCD_REG b'00000110' LCD_REG b'00001100' LCD_REG 0x80 LCD_REG Digito,w DATO_1 0 STATUS,2 acabar LCD_DATOS Digito,f REPETIR ;Pone a 0 la variable digito ;Puertos en modo LCD ;Desactiva RS del modulo LCD ;Desactiva E del modulo LCD ;Inicia LCD (CFG puertos...) ;Borrar LCD y Home

;LCD On, cursor Off,Parpadeo Off ;Direccion caracter

;W=Digito ;Coge el caracter ;Compara ;Es el ultimo? ;Si ;Visualiza caracter ;Incrementa numero de Digito ;Vuelve a escribir

acabar

;Buclee infinito

;<<<<<<---------------------- TABLA DE DATOS ------------------------->>>>>>> DATO_1 ADDWF PCL,1 RETLW 'H' RETLW 'O' RETLW 'L' RETLW 'A' RETLW ' ' RETLW 'M' RETLW 'U' RETLW 'N' RETLW 'D' RETLW 'O' RETLW 0x00

Ejemplo HOLA MUNDO

hola.asm

Nota: Esta rutina solo funciona correctamente con LCD's rpidos, osea los que son un poco mas caros jejej, esto lo descubri Taiteki que fue uno de los que la probaron y les fall, la solucin consiste en usar un LCD bueno o meter delays entre cada llamada a la rutina del LCD. espero que no tengis muchos problemas con ella. Suerte.

S-ar putea să vă placă și