Pin N-. | Sismología | Nivel | I/O | Función | |||||||||||
| |||||||||||||||
1 | VSS | – | – | 0 Vlts. Tierra ( GND ). | |||||||||||
2 | VCC | – | – | + 5 Vlts. DC. | |||||||||||
3 | Vee = Vc | – | – | Ajuste del Contraste. | |||||||||||
4 | RS | 0/1 | I | 0= Escribir en el modulo LCD. 1= Leer del modulo LCD | |||||||||||
5 | R/W | 0/1 | I | 0= Entrada de una Instrucción. 1= Entrada de un dato. | |||||||||||
6 | E | 1 | I | Habilitación del modulo LCD | |||||||||||
7 | DB0 | 0/1 | I/O | BUS DE DATO LINEA 1 ( LSB ). | |||||||||||
8 | DB1 | 0/1 | I/O | BUS DE DATO LINEA 2 | |||||||||||
9 | DB2 | 0/1 | I/O | BUS DE DATO LINEA 3 | |||||||||||
10 | DB3 | 0/1 | I/O | BUS DE DATO LINEA 4 | |||||||||||
11 | DB4 | 0/1 | I/O | BUS DE DATO LINEA 5 | |||||||||||
12 | DB5 | 0/1 | I/O | BUS DE DATO LINEA 6 | |||||||||||
13 | DB6 | 0/1 | I/O | BUS DE DATO LINEA 7 | |||||||||||
14 | DB7 | 0/1 | I/O | BUS DE DATO LINEA 8 (MSB). | |||||||||||
15 | A | – | – | LED (+) Back Light | |||||||||||
16 | K | – | – | LED (-) Back Light. |
Interpretación del significado de los Pines del Modulo LCD
El Pin numero 1 y 2 están destinados para conectarle los 5 Voltios que requiere el modulo para su funcionamiento y el Pin numero 3 es utilizado para ajustar el contraste de la pantalla; es decir colocar los caracteres mas oscuros o mas claros para poderse observar mejor.
Observe la siguiente imagen de cómo deben estar conectados los tres primeros pines. La resistencia representada como R3 es un potenciómetro variable que puede oscilar entre 10 K y 20 K indiferentemente.
Gráfico 3. Configuración de pines del módulo LCD
El Pin numero 4: denominado "RS" trabaja paralelamente al Bus de datos del modulo LCD ( Bus de datos son los Pines del 7 al 14 ). Este bus es utilizado de dos maneras, ya que usted podrá colocar un dato que representa una instrucción o podrá colocar un dato que tan solo representa un símbolo o un carácter alfa numérico; pero para que el modulo LCD pueda entender la diferencia entre un dato o una instrucción se utiliza el Pin Numero 4 para tal fin.
Si el Pin numero 4 = 0 le dirá al modulo LCD que esta presente en el bus de datos una instrucción, por el contrario, si el Pin numero 4 = 1 le dirá al modulo LCD que esta presente un símbolo o un carácter alfa numérico.
El Pin numero 5: denominado "R/W" trabaja paralelamente al Bus de datos del modulo LCD ( Bus de datos son los Pines del 7 al 14 ). También es utilizado de dos maneras, ya que usted podrá decirle al modulo LCD que escriba en pantalla el dato que esta presente en el Bus; por otro lado también podrá leer que dato esta presente en el Bus.
Si el Pin numero 5 = 0 el modulo LCD escribe en pantalla el dato que esta presente el Bus; pero si el Pin numero 5 = 1 significa que usted necesita leer el dato que esta presente el bus del modulo LCD.
El Pin numero 6: denominado "E" que significa habilitación del modulo LCD tiene una finalidad básica: conectar y desconectar el modulo. Esta desconexión no estará referida al voltaje que le suministra la corriente al modulo; la desconexión significa tan solo que se hará caso omiso a todo lo que este presente en el bus de datos de dicho modulo LCD.
En la mayoría de los circuitos electrónicos modernos que incluyan elementos electrónicos como Microcontroladores, Memorias y Módulos LCD, utilizan el mismo bus de datos. Esto es para no tener un bus de datos independientemente por cada elemento electrónico, esto implicaría que los circuitos electrónicos sean mucho mas grandes por la cantidad de conexiones necesaria a cada uno de los elementos.
Ahora como los Microcontroladores, memorias y módulos LCD utilizan el mismo bus de datos, deberá existir en cada uno de ellos un Pin de habilitación "E" que permita desconectar y conectar cuando sea necesario. Por ejemplo si usted necesita trabajar con la memoria RAM para obtener o escribir cierta información, será necesario que deshabilite el modulo LCD para que no presente basura en la pantalla, o se ejecuten instrucciones no deseadas.
Los Pines desde el numero 7 hasta el numero 14 representan 8 líneas que se utilizan para colocar el dato que representa una instrucción para el modulo LCD o un carácter alfa numérico. El Bus de datos es de 8 Bits de longitud y el Bit menos significativo esta representado en el Pin numero 7, el Pin mas significativo esta representado en el Pin numero 14
Los Pines 15 y 16: estarán destinados para suministrar la corriente al Back Light. Es importante conocer que no todos los módulos LCD disponen del Back Light aunque tenga los pines de conexión en el circuito impreso.
Tiempos mínimos requeridos para que una instrucción o un dato puedan ser ejecutados.
Los Pines de control ( E, RS y E/W ) están estrechamente relacionados ya que por medio de ellos podemos especificar si queremos ejecutar una instrucción o leer / escribir un dato en la pantalla o la memoria RAM; sin embargo existe una condición importante que deberá tomarse en cuenta referida directamente al tiempo necesario que se necesita para cambiar de un estado a otro en los pines de control. ( E, RS y R/W ). En el caso de que este tiempo sea mas pequeño que el tiempo mínimo requerido, entonces el modulo LCD no tendrá el tiempo suficiente para responder a las instrucciones solicitadas por el usuario y por consecuencia se perderán los datos o instrucciones según sea el caso.
En otras palabras, las personas suelen cometer un error común cuando se esta intentando hacer funcionar un modulo LCD en el cual no consideran la velocidad de proceso del microprocesador o el microcontrolador específicamente en los pines de control ( E, RS y R/W ), esto quiere decir que si usted tuviera conectado un modulo LCD a un microcontrolador que tiene una velocidad de proceso demasiado alta en los pines de control, cuando se ejecuta una solicitud de cualquier tipo ( escritura / lectura e Instrucción. ), el modulo LCD no tendrá la capacidad de entender la solicitud hecha por el microcontrolador ya que esta se ejecuto demasiado rápida. Para ello los programas o los circuitos electrónicos que manejan un modulo LCD deberán respetar los siguientes diagramas de tiempo:
Diagrama de tiempo para una Instrucción:
Para enviarle una instrucción al modulo, primero hay que colocar la instrucción en el bus de datos ( Pines del 7 al 14 ). Una vez que esta presente la instrucción en el bus de datos se procede a ejecutar el diagrama de tiempo requerido para una instrucción en los pines de control. Este diagrama de tiempo es muy sencillo de entender, tan solo usted deberá colocar el Pin RS = 0, el Pin R/W = 0 y el Pin E = 0; Una vez colocados los pines con las tensiones mencionadas, proceda a cambiar el estado del Pin E = 1. El nuevo estado de este Pin "E" deberá permanecer por lo menos 450 ns antes de volver a cambiar de estado para que la pantalla pueda entender la instrucción.
Gráfico 4. Diagrama de tiempos para una instrucción.
Diagrama de tiempo para escribir un dato:
Para escribir un dato en el modulo LCD, primero hay que colocar el dato en el bus ( Pines del 7 al 14 ). Una vez que esta presente el dato en el bus se procede a ejecutar el diagrama de tiempo requerido para escribir un dato en los pines de control. Este diagrama de tiempo es muy sencillo de entender, tan solo usted deberá colocar el Pin RS = 1, el Pin R/W = 0 y el Pin E = 0; Una vez colocados los pines con las tensiones mencionadas, proceda a cambiar el estado del Pin E = 1. El nuevo estado de este Pin "E" deberá permanecer por lo menos 450 ns antes de volver a cambiar de estado para que la pantalla pueda entender la instrucción.
Gráfico 5. Diagrama de tiempos para escribir un dato
Diagrama de tiempo para leer un dato
Para leer un dato de la pantalla o la memoria RAM en el modulo LCD, los pines de control deberán estar colocados como sigue: Pin RS = 1, Pin R/W = 1 y el Pin E = 0. Una vez colocados los pines con las tensiones mencionadas, proceda a cambiar el estado del Pin E =1. El nuevo estado de este Pin "E" deberá permanecer por lo menos 450 ns antes de volver a cambiar de estado para que la pantalla pueda entender la instrucción.
Gráfico 6. Diagrama de tiempo para leer un dato
Nota importante:
Nótese que en los tres diagramas de tiempos el Pin denominado como "E" tiene que estar previamente en el estado lógico "CERO", posteriormente se cambia el estado lógico a "UNO" la cual permanecerá por lo menos unos 450 nano segundos y finalmente vuelve al estado lógico" CERO ", en el preciso momento que el Pin "E" del modulo LCD tiene el flanco de bajada, es cuando se ejecuta la instrucción o el dato presente en el bus de control.
Bus de Datos de 4 y 8 Bits de Longitud
El Bus de datos de un modulo LCD puede ser configurado para trabajar con 4 Bits y con 8 Bits. Para los diseños electrónicos que están limitados por la cantidad de líneas utilizadas en el Bus de datos, podrán utilizar un bus de datos con una longitud de 4 Bits; sin embargo si este no fuera su caso, podrá utilizar el bus de datos completo de 8 Bits. Las señales de control ( RS – R/W – E ) y los diagramas de tiempo explicados anteriormente, trabajan igual sea para un bus de datos de 4 Bits o de 8 Bits. Sin embargo, si usted esta interesado en trabajar el bus de datos con una longitud de 8 Bits, deberá saber que cuando se enciende el modulo LCD la configuración para 8 Bits entra por defecto; es decir que no necesitara programarse, pero la configuración del bus de datos con una longitud de 4 Bits requiere una secuencia cuidadosa de instrucciones previas inmediatamente después de encender el modulo LCD.
La longitud escogida para trabajar el bus de datos deberá hacerse en el principio de la programación del modulo LCD. En la siguiente imagen se puede observar la inicialización de un modulo LCD para trabajar con un bus de datos de 8 (izquierda) y 4 Bits (Derecha).
Gráfico 7. Inicializaciones para bus de datos de 4 u 8 bits
Inicialización del modulo LCD
Todo modulo LCD deberá inicializarse, esta inicialización indicara como deberá operar la pantalla. La inicialización representan las instrucciones que deberán ser ejecutadas por el modulo LCD antes de su funcionamiento normal. Las instrucciones que están dentro de la inicialización solamente se ejecuta después que se enciende el modulo LCD y no podrán ser cambiadas posteriormente. Por ejemplo tenemos algunos parámetros que pueden ser ejecutados en la inicialización antes de comenzar a funcionar nuestro modulo LCD:
Selección de la longitud del bus de datos ( 4 Bits / 8 Bits ).
Activar el numero de líneas que se visualizaran el el modulo LCD.
Encender el Modulo LCD.
Las siguientes instrucciones también podrán ser colocadas en la inicialización, con la diferencia que podrán ser cambiadas en cualquier parte del programa.
Mantener el mensaje fijo y desplazar el cursor.
Desplazar el mensaje y mantener el cursor fijo.
Hacer que el carácter señalado parpadee o no.
Conjunto de Instrucciones básicas de un modulo LCD:
La siguiente tabla representa el conjunto de instrucciones de un modulo LCD, en ella se muestran toda la información necesaria que se requiere para cada instrucción, pero posteriormente se da una explicación mas amplia de algunas de ellas.
TABLA N-. 1: INSTRUCCIONES BASICAS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Instrucción. | CODIGO | Descripción | Tiempo de ejecución | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Borrar Pantalla | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Borra la pantalla y retorna el cursor a la dirección 0 ( Home ) | 1.64 mS. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cursor Home | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * | Retorna el cursor al inicio ( Dirección o) | 1.64 mS. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Modo de entrada de caracteres | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S | Donde I/D=0 Decremente la posición del cursor, I/D=1 incrementa la posición del cursor,. S=0 El texto de la pantalla no se desplaza, S=1 El texto de la pantalla se desplaza en el momento que se escribe un carácter | 40 uS. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apagado y encendido de la pantalla. | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | Donde D=0 Pantalla apagada, D=1 Pantalla encendida, C=0 Cursor apagado, C=1 Cursor encendido, B=0 Intermitencia del cursor apagado, B=1 Intermitencia del cursor encendido. | 40 uS.. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cursor and Display Shift | 0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | * | * | 40 uS. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Funtion Set | 0 | 0 | 0 | 0 | 1 | DL | N | F | * | * | 40 uS. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set CG RAM address | 0 | 0 | 0 | 1 | ACG | 40 uS. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set DD RAM address | 0 | 0 | 1 | ADD | 40 uS. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ready busy flag & address | 0 | 1 | BF | AC | 1 uS. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Write data to CG or DD RAM | 1 | 0 | Escribir el Dato | 120 uS. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Read data to CG or DD RAM | 1 | 1 | Leer el Dato | 40 uS. |
La tabla numero dos, esta referida a las nomenclaturas utilizadas en la tabla numero uno
Tabla 2: NOMENCLATURAS | |||||
Nomenclatura | Variable = 1 | Variable = 0 | |||
I/D | I/D=1 Incrementa el Cursor en una posición | I/D=0 Decrementa el Cursor en una posición. | |||
D | D=1 Pantalla Encendida | D=0 Pantalla Apagada. | |||
C | C=1 Cursor Encendido. | C=0 Cursor Apagado. | |||
B | B=1 Intermitencia del cursor encendida. | B=0 Intermitencia del cursor apagado | |||
S/C | S/C=1 Mover todo el texto. | S/C=0 Mover el cursor. | |||
R/L | R/L=1 Mover todo el texto a la izquierda. | R/L=1 Mover todo el texto a la derecha. | |||
DL | DL=1 Bus de datos de 8 Bits. | DL=0 Bus de datos de 4 Bits. | |||
S | S=1 Desplazamiento del texto. | S=0 No desplazamiento del texto | |||
BF | BF=1 Operación Interna en progreso. | BF=0 No puede aceptar instrucción | |||
F | F=1 Matriz para el carácter de 5 X 10 dots | F=0 Matriz del carácter de 5 x 7 Dost | |||
N | N=1 Activación de dos líneas. | N=0 Activación de 1 línea |
La tabla numero tres, esta referida a las abreviaturas utilizadas en la tabla numero uno
Tabla 3: ABREVIATURAS | ||
Abreviatura |
| |
DD RAM | Display Data RAM | |
CG RAM | Generador de Caracteres RAM |
Conexión de un modulo LCD a un Microcontrolador PIC16F84.
En la actualidad los microcontroladores son los elementos electrónicos de mayor utilidad y ahora describimos en detalle como utilizar un modulo LCD con un microcontrolador de la empresa Microchip modelo PIC16F84.
La conexión entre un módulo LCD y un microcontrolador PIC16F84 debe realizarse como se ilustra en la siguiente gráfica:
Gráfico 8. Esquema del circuito
Para ilustrar el uso del módulo LCD hemos desarrollado un programa que pasa un aviso deslizante en la pantalla de cristal liquido. Para ello hemos utilizado el paquete de software MPLAB.
Gráfico 9. Paquete MPLAB
El programa
El código fuente del programa en ensamblador es el siguiente:
;practica numero 4 del laboratorio
;manejo de un modulo LCD
list p=16f84
indf equ 0h
tmro equ 1
pc equ 2
status equ 3
fsr equ 4
ptoa equ 5
ptob equ 6
r0c equ 0ch
r0d equ 0dh
r13 equ 13h
z equ 2h
c equ 0h
w equ 0h
r equ 1h
e equ 1h
rs equ 0h
org 0
goto inicio
org 05
retardo movlw 0ffh
movwf r13
decre decfsz r13,r
goto decre
retlw 0
control bcf ptoa,rs
goto dato2
dato bsf ptoa,rs
dato2 bsf ptoa,e
movwf ptob
call retardo
bcf ptoa,e
call retardo
retlw 0
tabla2 addwf pc,r
retlw "c"
retlw "u"
retlw "r"
retlw "s"
retlw "o"
retlw " "
retlw "d"
retlw "e"
retlw " "
retlw "m"
retlw "i"
retlw "c"
retlw "r"
retlw "o"
retlw "c"
retlw "o"
retlw "n"
retlw "t"
retlw "r"
retlw "o"
retlw "l"
retlw "a"
retlw "d"
retlw "o"
retlw "r"
retlw "e"
retlw "s"
retlw " "
retlw "p"
retlw "i"
retlw "c"
retlw " "
retlw " "
retlw " "
retlw " "
retlw " "
retlw 0
inicio movlw 0fch
tris ptoa
movlw 00
tris ptob
begin movlw 30h
call control
movlw 07h
call control
movlw 0ch
call control
muestra movlw 0
movwf r0c
ciclo movf r0c,w
call tabla2
call dato
movlw 09fh
movwf r0d
reta1 call retardo
call retardo
decfsz r0d,r
goto reta1
incf r0c,r
movlw 28h
xorwf r0c,w
btfss status,z
goto ciclo
goto muestra
end
Archivo .LST
El archivo .LST generado al ensamblar el código fuente es:
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ;practica numero 4 del laboratorio
00002 ;manejo de un modulo LCD
00003 list p=16f84
00004
00000000 00005 indf equ 0h
00000001 00006 tmro equ 1
00000002 00007 pc equ 2
00000003 00008 status equ 3
00000004 00009 fsr equ 4
00000005 00010 ptoa equ 5
00000006 00011 ptob equ 6
0000000C 00012 r0c equ 0ch
0000000D 00013 r0d equ 0dh
00000013 00014 r13 equ 13h
00000002 00015 z equ 2h
00000000 00016 c equ 0h
00000000 00017 w equ 0h
00000001 00018 r equ 1h
00000001 00019 e equ 1h
00000000 00020 rs equ 0h
00021
0000 00022 org 0
0000 2839 00023 goto inicio
0005 00024 org 05
00025
0005 30FF 00026 retardo movlw 0ffh
0006 0093 00027 movwf r13
00028
0007 0B93 00029 decre decfsz r13,r
0008 2807 00030 goto decre
0009 3400 00031 retlw 0
00032
000A 1005 00033 control bcf ptoa,rs
000B 280D 00034 goto dato2
00035
000C 1405 00036 dato bsf ptoa,rs
00037
000D 1485 00038 dato2 bsf ptoa,e
000E 0086 00039 movwf ptob
000F 2005 00040 call retardo
0010 1085 00041 bcf ptoa,e
0011 2005 00042 call retardo
0012 3400 00043 retlw 0
00044
0013 0782 00045 tabla2 addwf pc,r
0014 3463 00046 retlw "c"
0015 3475 00047 retlw "u"
0016 3472 00048 retlw "r"
0017 3473 00049 retlw "s"
0018 346F 00050 retlw "o"
0019 3420 00051 retlw " "
001A 3464 00052 retlw "d"
001B 3465 00053 retlw "e"
001C 3420 00054 retlw " "
001D 346D 00055 retlw "m"
001E 3469 00056 retlw "i"
001F 3463 00057 retlw "c"
0020 3472 00058 retlw "r"
0021 346F 00059 retlw "o"
0022 3463 00060 retlw "c"
0023 346F 00061 retlw "o"
0024 346E 00062 retlw "n"
0025 3474 00063 retlw "t"
0026 3472 00064 retlw "r"
0027 346F 00065 retlw "o"
0028 346C 00066 retlw "l"
0029 3461 00067 retlw "a"
002A 3464 00068 retlw "d"
002B 346F 00069 retlw "o"
002C 3472 00070 retlw "r"
002D 3465 00071 retlw "e"
002E 3473 00072 retlw "s"
002F 3420 00073 retlw " "
0030 3470 00074 retlw "p"
0031 3469 00075 retlw "i"
0032 3463 00076 retlw "c"
0033 3420 00077 retlw " "
0034 3420 00078 retlw " "
0035 3420 00079 retlw " "
0036 3420 00080 retlw " "
0037 3420 00081 retlw " "
0038 3400 00082 retlw 0
00083
0039 30FC 00084 inicio movlw 0fch
003A 0065 00085 tris ptoa
003B 3000 00086 movlw 00
003C 0066 00087 tris ptob
00088
003D 3030 00089 begin movlw 30h
003E 200A 00090 call control
003F 3007 00091 movlw 07h
0040 200A 00092 call control
0041 300C 00093 movlw 0ch
0042 200A 00094 call control
00095
0043 3000 00096 muestra movlw 0
0044 008C 00097 movwf r0c
00098
0045 080C 00099 ciclo movf r0c,w
0046 2013 00100 call tabla2
0047 200C 00101 call dato
0048 309F 00102 movlw 09fh
0049 008D 00103 movwf r0d
00104
004A 2005 00105 reta1 call retardo
004B 2005 00106 call retardo
004C 0B8D 00107 decfsz r0d,r
004D 284A 00108 goto reta1
004E 0A8C 00109 incf r0c,r
004F 3028 00110 movlw 28h
0050 060C 00111 xorwf r0c,w
0051 1D03 00112 btfss status,z
0052 2845 00113 goto ciclo
0053 2843 00114 goto muestra
00115
00116 end
SYMBOL TABLE
LABEL VALUE
__16F84A 00000001
begin 0000003D
c 00000000
ciclo 00000045
control 0000000A
dato 0000000C
dato2 0000000D
decre 00000007
e 00000001
fsr 00000004
indf 00000000
inicio 00000039
muestra 00000043
pc 00000002
ptoa 00000005
ptob 00000006
r 00000001
r0c 0000000C
r0d 0000000D
r13 00000013
reta1 0000004A
retardo 00000005
rs 00000000
status 00000003
tabla2 00000013
tmro 00000001
w 00000000
z 00000002
Conclusiones
Al trabajar con un módulo LCD, debemos configurar su bus de datos como de 4 u 8 bits.
El módulo LCD posee puertos para la entrada de datos y a través de ellos se pueden ingresar caracteres a la pantalla (R/W=0) o se puede leer de él (R/W=1).
Un módulo LCD posee dentro de sí mismo un microcontrolador.
Se pueden enviar a la pantalla del móculo LCD la mayoría de los caracteres de una tabla ASCII.
Autor:
Mauricio Alberto Orozco Salguero
![]() | ![]() ![]() | Página siguiente ![]() |