Lc ds

  • 512 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
512
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
60
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. HobbiePic.ComBUSQUEDA RAPIDA MODULOS LCD MODULOS LCD Lista de Precios © 2000 PCB Electronics Systems INDICE GENERAL Todo los Derechos Reservados. HAZ CLICK AQUI PARA IR AL CAPITULO I 1-. Breve Introducción. 2-. Diversidad de algunos módulos LCD. 3-. Identificación de los pines de conexión de un modulo LCD no Matricial. q 3.1-. Interpretación del significado de los Pines del Modulo LCD. 4-. Tiempos mínimos requeridos para que una instrucción o un dato puedan ser ejecutados. q 4.1-. Diagrama de tiempo para una Instrucción. q 4.2-. Diagrama de tiempo para escribir un Dato. q 4.3-. Diagrama de tiempo para leer un Dato. 5-. Bus de Datos de 4 y 8 Bits de Longitud. 6-. Inicialización del modulo LCD. 7-. Conjunto de Instrucciones básicas de un modulo LCD. 8-. Posición de los caracteres en la pantalla según el numero de lineas del modulo LCD. q 8.1-. Display de una Linea x 40 Caracteres, dirección DD-RAM. q 8.2-. Display de dos Lineas x 40 Caracteres, dirección DD-RAM. q 8.3-. Display de Cuatro Lineas x 40 Caracteres, dirección DD-RAM. 9-. Caracteres que podrán ser presentados en la pantalla del modulo LCD. 10-. Ejemplo de como hacer funcionar el modulo LCD por medio de un método manual. 10-. Ejemplo de como hacer funcionar el modulo LCD por medio de un método manual HAZ CLICK AQUI PARA IR AL CAPITULO II http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%200.asp (1 of 2) [07/07/2001 05:55:24 p.m.]
  • 2. HobbiePic.Com 11-. Conectando un modulo LCD a un Microcontrolador PIC16F84. q 11.1-. Declaración de constantes que serán utilizadas en el programa del PIC16F84. q 11.2-. Reserva de Memoria RAM. q 11.3-. Configuración de los Puertos. q 11.4-. Programa Principal. q 11.5-. Subrrutinas: r 11.5.1-. Subrrutina para ejecutar una Instrucción. r 11.5.2-. Subrrutina para escribir un dato o un carácter en el modulo LCD. r 11.5.3-. Subrrutina de 58 microsegundos. r 11.5.4-. Subrrutina de 15.37 milisegundos. r 11.5.6-. Programas para el Microcontrolador. HAZ CLICK AQUI PARA IR AL CAPITULO III 12-. Controlando un modulo LCD Serialmente, Introducción. q 12.1-. Diagrama esquemático de la conexión de un modulo LCD serialmente funcionando con un microcontrolador PIC16F84. q 12.2-. Notas importantes. q 12.3-. Teoría básica de como funciona el circuito Integrado 4094. q 12.4-. Teoría básica de como funciona todo el circuito en general. q 12.5-. Explicación del programa básico para trabajar con un microcontrolador PIC16F84 serialmente con un modulo LCD. q 12.6-. Listado del programa básico. CAPITULO IV 13-. Introducción a los módulos LCD de matriz de Puntos. PCB ELECTRONICS SYSTEMS Los Aceitunos, Av. 69A N-. 80B-105 Maracaibo - Zulia - Venezuela Teléfonos: Fax: (061)-753-51-10 PROVISIONAL - (014)-361-9181 E-MAIL: phorlakis@cantv.nethttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%200.asp (2 of 2) [07/07/2001 05:55:24 p.m.]
  • 3. HobbiePic.ComBUSQUEDA RAPIDA MODULOS LCD MODULOS LCD Lista de Precios Siempre has querido incluir un modulo LCD a tus diseños electrónicos ? Nunca lo habías podido hacer funcionar por que parecían muy complejos y no comprendías su estructura organizacional ? Ahora PCB Electronics Systems dedica esta pequeña © 2000 PCB Electronics Systems sección para informarte en detalle toda la teoría básica de los Módulos LCD o pantallas Todo los Derechos Reservados. de cristal liquido basado en la arquitectura HD-44780 de la empresa HITACHI. Aquí encontraras como hacer funcionar los módulos LCD, algunos ejemplos básicos, ejemplo de aplicaciones y mucho mas. CAPITULO I 1-. Breve Introducción. Antes de aparecer los módulos LCD, nuestros diseños electrónicos utilizaban los Displays de siete segmentos para poder mostrar la información, ademas de su gran limitación de poder mostrar los caracteres alfa numéricos y símbolos especiales, también consumían demasiada corriente y ocupaban demasiado espacio físico. Posteriormente aparecieron otros tipos de displays mas complejos que podían mostrar algunos caracteres y símbolos; pero tenían de igual manera mucho consumo de corriente y espacio físico desperdiciado. Finalmente aparecieron los módulos LCD o pantallas de cristal liquido la cual tienen la capacidad de mostrar cualquier carácter alfa numérico. Estos dispositivos ya vienen con su pantalla y toda la lógica de control pre-programada en la fabrica y lo mejor de todo es que el consumo de corriente es mínimo y no se tendrán que organizar tablas especiales como se hacia anteriormente con los displays de siete segmentos. Las aplicaciones de los módulos LCD son infinitas ya que podrán ser aplicados en la informática, comunicaciones, telefonía, instrumentación, robotica, automóviles, equipos industriales, etc. Todo queda a su imaginación la gran cantidad de aplicaciones que tiene un http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (1 of 16) [07/07/2001 06:00:58 p.m.]
  • 4. HobbiePic.Com modulo LCD. 2-. Diversidad de algunos módulos LCD: En la actualidad los módulos LCD existen una gran variedad de versiones clasificados en dos grupos. El primer grupo esta referido a los módulos LCD de caracteres ( solamente se podrán presentar caracteres y símbolos especiales en las lineas predefinidas en el modulo LCD) y el segundo grupo esta referido a los módulos LCD matriciales ( Se podrán presentar caracteres, símbolos especiales y gráficos). Los módulos LCD varían su tamaño físico dependiendo de la marca; por lo tanto en la actualidad no existe un tamaño estándar para los módulos LCD. Para el caso de la empresa VARITRONIX especializada en la fabricación de LCD, existen configuraciones mínimas desde una linea con un mínimo de ocho caracteres y por el contrario, existen configuraciones desde 4 lineas hasta 40 caracteres por cada linea. La siguiente imagen muestra las dimensiones de una configuración típica de un modulo LCD de dos lineas por 16 caracteres por cada linea incluyendo los detalles de la matriz de como esta conformado un carácter. Otro patrón importante es el tamaño de los caracteres donde las dimensiones de la matriz que forma los caracteres tienen longitudes diferentes. La siguiente imagen muestra la matriz utilizada para poder representar un símbolo o un carácter alfa numérico en un modulo LCD. Esta matriz define algunos aspectos importantes del carácter o el símbolo que están mostrando. Los aspectos que define esta matriz son: Aspectos importantes que define la matriz de Matriz de punto para un solo puntos para un solo caracter en un modulo carácter en un modulo LCD LCD 1-. Altura del carácter definida por dos variables: Alto de cada punto que conforma la matriz y longitud de separación entre cada punto que conforma la matriz. 2-. Ancho del Carácter definido por dos variables: Ancho de cada punto que conforma la matriz y longitud de separación entre cada punto que conforma la matriz. 3-. Calidad gráfica del carácter ( A mayor cantidad de puntos dentro de la matriz, mayor será la calidad visual del carácter presentado por el modulo LCD.http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (2 of 16) [07/07/2001 06:00:58 p.m.]
  • 5. HobbiePic.Com Los primeros módulos LCD tenían los caracteres de color negro y el fondo de la pantalla era de color verdoso claro. Posteriormente se crearon otros colores en donde los caracteres eran de color plata y así sucesivamente fueron variando los colores en el fondo y en los caracteres incluyendo una luz posterior para los módulos LCD denominada Back Light diseñada especialmente para mejorar la visualización de la pantalla sobre todo en lugares muy oscuros. El Back Light existe en varias versiones de colores, entre los mas conocidos tenemos el color verdoso y el azul cielo; pero hasta la fecha los Back Light tienen un alto consumo de corriente. Teóricamente según un reportaje realizado por Edison Duque C. en la revista Colombiana de Electrónica y Computadores N-. 12 del Tercer año dice: Los pines que le suministran la corriente al Back Light se le deben suministrar 5 Voltios pero a una frecuencia aproximada de 60 Hz. para evitar que se presenten altas temperaturas en el modulo LCD. La siguiente imagen representa un modulo LCD del tipo matricial y que tienen encendida la luz posterior ( Back Light ). Ahora la tecnología esta disponible en color para los módulos LCD desde 4 colores hasta los 256 y las combinaciones de ellos. 3-. Identificación de los pines de conexión de un modulo LCD no Matricial: Los pines de conexión de un modulo LCD han sido estandarizados por el cual en la mayoría de ellos son exactamente iguales siempre y cuando la linea de caracteres no sobrepase los ochenta caracteres por linea. En el caso de que esto suceda, localice la hoja de características del fabricante. Por otro lado es de suma importancia localizar exactamente cual es el Pin Numero 1 ya que en algunos módulos se encuentra hacia la izquierda y en otros módulos se encuentra a la derecha. En caso de no estar seguro de la asignación de los pines, localice la hoja de características del fabricante. 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. 0= Escribir en el modulo LCD. 4 RS 0/1 I 1= Leer del modulo LCD 0= Entrada de una Instrucción. 5 R/W 0/1 I 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.http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (3 of 16) [07/07/2001 06:00:58 p.m.]
  • 6. HobbiePic.Com 3.1-. 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 como deberán estar conectados los tres primeros pines. La resistencia representada como R3 es un potenciometro variable que puede oscilar entre 10 K y 20 K indiferentemente. 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. Para entender mejor el funcionamiento del Pin numero 5, tenemos un ejemplo practico que aclara este ultimo punto. Supongase que usted tiene armado un circuito electrónico con un modulo LCD incluyendo un teclado muy limitado que tan solo tiene 5 teclas ( Mover Cursor arriba, Mover cursor a la derecha, mover cursor abajo, mover cursor a la izquierda y Enter ). La finalidad de este teclado es poderse desplazar por toda la pantalla y seleccionar una opción con la tecla de ENTER. Si nuestro circuito electrónico por ejemplo le pregunta al usuario por medio del modulo LCD lo siguiente:http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (4 of 16) [07/07/2001 06:00:59 p.m.]
  • 7. HobbiePic.Com Que refresco desea ? Coca Cola / Pepsi Cola Usted tendría que ubicar el cursor para seleccionar una de las dos opciones presentadas en pantalla. En el momento que usted presiona la tecla de Enter le dice a nuestro pequeño circuito que ya la opción esta seleccionada. He aquí la importancia del Pin numero 5 ya que usted podrá leer la selección que hizo nuestro usuario directamente del bus de datos del modulo LCD. Si el Pin numero 5 = 0 el modulo LCD escribe en pantalla el dato que esta presente el el Bus; pero si el Pin numero 5 = 1 significa que usted necesita leer el dato que esta presente el 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 desabilite 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 lineas 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. 4-. 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 quehttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (5 of 16) [07/07/2001 06:01:00 p.m.]
  • 8. HobbiePic.Com 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: 4.1-. 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. 4.2-. 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.http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (6 of 16) [07/07/2001 06:01:00 p.m.]
  • 9. HobbiePic.Com 4.3-. 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. Nota importante: Notese 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 instruccion o el dato presente en el bus de control. 5-. 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 lineas 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 controlhttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (7 of 16) [07/07/2001 06:01:00 p.m.]
  • 10. HobbiePic.Com ( 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á hacerce 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). 6-. 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: q Selección de la longitud del bus de datos ( 4 Bits / 8 Bits ). q Activar el numero de lineas que se visualizaran el el modulo LCD. q 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. q Mantener el mensaje fijo y desplazar el cursor. q Desplazar el mensaje y mantener el cursor fijo. q Hacer que el carácter señalado parpadee o no. 7-. Conjunto de Instrucciones básicas de un modulo LCD: La siguiente tabla representa el conjunto de instrucciones de un modulo LCD, en ella sehttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (8 of 16) [07/07/2001 06:01:00 p.m.]
  • 11. HobbiePic.Com 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 CODIGO Tiempo de Instrucción. Descripción RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 ejecución Borra la pantalla y retorna Borrar Pantalla 0 0 0 0 0 0 0 0 0 1 el cursor a la dirección 0 ( 1.64 mS. Home ) Retorna el cursor al inicio ( Cursor Home 0 0 0 0 0 0 0 0 1 * 1.64 mS. Dirección o) Donde I/D=0 Decremente la posición del cursor, I/D=1 incrementa la posición del cursor,. S=0 Modo de entrada de 0 0 0 0 0 0 0 1 I/D S El texto de la pantalla no 40 uS. caracteres se desplaza, S=1 El texto de la pantalla se desplaza en el momento que se escribe un carácter Donde D=0 Pantalla apagada, D=1 Pantalla encendida, C=0 Cursor apagado, C=1 Cursor Apagado y encendido 0 0 0 0 0 0 1 D C B encendido, B=0 40 uS.. de la pantalla. Intermitencia del cursor apagado, B=1 Intermitencia del cursor encendido. Cursor and Display 0 0 0 0 0 1 S/C R/L * * 40 uS. Shift 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 & 0 1 BF AC 1 uS. address Write data to CG or 1 0 Escribir el Dato 120 uS. DD RAM Read data to CG or DD 1 1 Leer el Dato 40 uS. RAM 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=1 Incrementa el Cursor en una I/D=0 Decrementa el Cursor en una I/D posición posición. D D=1 Pantalla Encendida D=0 Pantalla Apagada. C C=1 Cursor Encendido. C=0 Cursor Apagado. B=1 Intermitencia del cursor B B=0 Intermitencia del cursor apagado encendida. S/C S/C=1 Mover todo el texto. S/C=0 Mover el cursor. R/L=1 Mover todo el texto a la R/L R/L=1 Mover todo el texto a la derecha. izquierda. 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=1 Matriz para el carácter de 5 X 10 F F=0 Matriz del carácter de 5 x 7 Dost dots N N=1 Activación de dos lineas. N=0 Activación de 1 linea 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 RAMhttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (9 of 16) [07/07/2001 06:01:01 p.m.]
  • 12. HobbiePic.Com 8-. Posición de los caracteres en la pantalla según el numero de lineas del modulo LCD: En la actualidad existen diversidad de módulos LCD por ejemplo tenemos pantallas con una sola linea con tan solo ocho caracteres y módulos con 4 lineas con 40 caracteres por cada linea. Estos son algunos ejemplos básicamente. Ahora en los módulos LCD según la cantidad de lineas cada uno de los caracteres tiene una posición numérica dentro del DD-RAM ( Display Data RAM ). Comencemos con algunos ejemplos basados para módulos LCD de una sola linea. 8.1-. Display de Una Linea x 40 Caracteres, dirección DD-RAM Ubicación física del carácter en el modulo LCD Tamaño de la pantalla Posición del Carácter Dirección DD-RAM 1Linea X 08 Caracteres 00 al 07 00h al 07h 1Linea X 16 Caracteres 00 al 15 00h al 0Fh 1Linea X 20 Caracteres 00 al 19 00h al 13h 1Linea X 24 Caracteres 00 al 23 00h al 17h 1Linea X 32 Caracteres 00 al 31 00h al 1Fh 1Linea X 40 Caracteres 00 al 39 00h al 27h DISPLAY DE UNA LINEA X 40 CARACTERES 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...................... 40 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 ...LINEA 1... 27 8.2-. Display de dos Lineas x 40 Caracteres, dirección DD-RAM Para un modulo LCD que contenga dos lineas tenemos la siguiente ubicación física de los caracteres en la pantalla. Ubicación física del carácter en el modulo LCD Tamaño de la pantalla Posición del Carácter Dirección DD-RAM LINEA 1 LINEA 2 2 Linea X 16 Caracteres 00 al 15 00h al 0Fh + 40h al 4Fh 2 Linea X 20 Caracteres 00 al 19 00h al 13h + 40h al 53h 2 Linea X 24 Caracteres 00 al 23 00h al 17h + 40h al 57h 2 Linea X 32 Caracteres 00 al 31 00h al 1Fh + 40h al 5Fh 2 Linea X 40 Caracteres 00 al 39 00h al 27h + 40h al 67h DISPLAY DE DOS LINEAS X 40 CARACTERES 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...................... 40 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D LINEA 1 27 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D LINEA 2 29 8.3-. Display de Cuatro Lineas x 40 Caracteres, Dirección DD-RAM: Para un modulo LCD que contenga cuatro lineas sucede algo diferente e interesante con respecto a la ubicación física que debe tener cada carácter en la pantalla del modulo LCD ya que en realidad el final del la linea numero 1 tiene su continuación en la linea numero 3; pero el final de la linea numero 2, tiene su continuación en la linea numero 4. Ubicación física del carácter en el modulo LCD Tamaño de la pantalla Posición del Dirección DD-RAM Carácter 4 Linea X 16 Caracteres 00 al 15 00h al 0Fh + 40h al 4Fh + 14h al 23h + 54h al 63h 4 Linea X 20 Caracteres 00 al 19 00h al 13h + 40h al 53h + 14h al 27h + 54h al 67h 4 Linea X 24 Caracteres 00 al 23 00h al 17h + 40h al 57h + 14h al 2Bh + 54h al 6Bh 4 Linea X 32 Caracteres 00 al 31 00h al 20h + 40h al 5Fh + 14h al 33h + 54h al 73h 4 Linea X 40 Caracteres 00 al 39 00h al 27h + 40h al 67h + 14h al 59h + 54h al 7Bh DISPLAY DE 4 LINEAS X 40 CARACTEREShttp://www.hobbiepic.com/COMO%20FUNCION...SAS/Modulos%20LCD/Modulos%20LCD%201.asp (10 of 16) [07/07/2001 06:01:01 p.m.]
  • 13. HobbiePic.Com 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...................... 40 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D LINEA 1 27 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 7A 7B 7C 7D LINEA 3 77 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D LINEA 2 4F 78 79 80 LINEA 4 29 9-. Caracteres que podrán ser presentados en la pantalla del modulo LCD: La siguiente tabla representan los caracteres que podrán ser mostrados en un modulo LCD. Cada uno de los caracteres tienen su representación binaria de ocho bits. Por ejemplo si usted necesita el carácter"A" deberá representarlo con el siguiente código 01000001 por otro lado si quisiera utilizar el carácter"T" deberá representarlo por el código 01010100. Este código deberá ser colocado en el Bus de Datos del Modulo LCD ( Lineas del 7 al 14 ). TABLA DE CARACTERES 10-. Ejemplo de como hacer funcionar el modulo LCD por medio de un método manual: Ahora podemos realizar un ejemplo practico de como hacer funcionar el modulo LCD de una manera manual paso a paso incluyendo la inicialización hasta presentar una serie de caracteres en la pantalla. La siguiente imagen muestra el pequeño circuito que tendrá que montar para realizar la practica. Si la imagen no la puede observar bien, puedes hacer Click Aquí para obtener una imagen mas detallada del circuito.http://www.hobbiepic.com/COMO%20FUNCION...SAS/Modulos%20LCD/Modulos%20LCD%201.asp (11 of 16) [07/07/2001 06:01:01 p.m.]
  • 14. HobbiePic.Com En la imagen anterior, mostramos el circuito básico que usted necesita montar en un ProtoBoard para realizar el experimento. En circuito deberá ser alimentado con 5 Voltios DC. En esta sección practica procederemos a escribir en el modulo LCD la palabra PCB ELECTRONICS SYSTEMS. Observemos los pasos y sus procedimientos de una forma manual: Una vez que este montado el circuito esquemático que mostramos en la imagen anterior, proceda a realizar los siguientes pasos: q PASO 1: Corte toda la energia al circuito del modulo LCD y coloque todos los suiches del circuito a tierra; es decir los suiches denominados SW DIP-2 ( Lineas de control ) y SW DIP-8 ( Bus de datos ) colocados o conectados a tierra ( Gnd ). q PASO 2: En el circuito esquematico no tenemos un interruptor, por lo tanto tan solo suministre la energía al circuito del Modulo LCD con una tension de 5 Voltios DC. A partir de aqui se deberá tomar en cuenta la resistencia variable denominada R1 que representa un potenciometro de 10 K. Como puede observarse en el circuito, la parte central del potenciometro esta conectado al pin numero 3 del modulo LCD. La parte central del potenciometro podra ser ajustado entre 0 voltios y 5 voltios. A medida de que el voltaje el el Pin numero 3 del modulo LCD se acerque a los 5 voltios se observara con mayor detalle las matrices que forman a los caracteresen el modulo LCD; pero si el voltaje suministrado para el Pin numero 3 del modulo se acerca a 0 Voltios, el modulo aparentara que no esta encendido por que las matrices que forman a los caracteres tienen muy poca intensidad para poder ser observados, por lo tanto, para comenzar con nuestro pequeño experimento recomendamos ubicar el potenciometro en la parte central y posteriormente se ajustara cuando el modulo este funcionando. Otro punto importante referente al modulo LCD cuando es encendido, es que se debera esperar unos 15 mili Segundos que se utilizan para estabilizar todas las tensiones dentro del modulo LCD. q PASO 3: Ahora debemos especificar al modulo LCD si va a trabajar en el formato de 8 Bits o de 4 Bits. Es importante saber que los modulos LCD cuando son encendidos, vienen por defecto para trabajar con un bus de datos de 8 bits la cual no sera necesario especificar esta instruccion; pero como estamos realizando un experimento manual con nuestro modulo LCD ejecutaremos la instruccion indiferentemente con la finalidad de que pueda ser observado los procedimientos necesarios. Para trabajar con un bus de datos de 8 bits se debera colocar el siguiente codigo en el bus de datos y bus de control. CODIGO: BUS DE DATOS DE 8 BITS BUS DE BUS DE DATOS CONTROL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 X X X X En el bus de datos, especificamente en los pines DB3, DB2, DB1, DB0 tienen como valor asignado una letra "X". En la teoria electronica la letra "X" representa cualquier valor entrehttp://www.hobbiepic.com/COMO%20FUNCION...SAS/Modulos%20LCD/Modulos%20LCD%201.asp (12 of 16) [07/07/2001 06:01:01 p.m.]
  • 15. HobbiePic.Com "0" y "1" indiferentemente. Una vez que este colocado el codigo en el bus de datos y el bus de control, proceda a presionar ( Una sola Vez ) el pulsador denominado SW1. Este pulsador esta conectado con el pin 6 del modulo LCD especificamente en el "ENABLE" y la condicion minima que requiere es que el pulsador debera estar presionado por lo menos 450 nano segundos. q PASO 4: La siguiente instruccion sera para especificarle al modulo LCD con cuantas lineas desea usted trabajar. para ello debera escribir el siguiente codigo en el bus de datos y el bus de control: CODIGO: ACTIVACION DE NUMERO DE LINEAS BUS DE BUS DE DATOS CONTROL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 N F X X El Pin numero 10 que representa a DB3 tiene la letra "N" la cual tan solo usted debera saber si va a trabajar con una linea o con dos lineas. Para N=0 el modulo LCD trabajara con una linea y para N=1 el modulo LCD trabajara con dos lineas. Este ultimo punto esta dirigido solamente para los modulos LCD que tienen por lo menos 4 lineas fisicamente, como hemos explicado anteriormente, para un modulo LCD de 4 lineas ( Fisicamente ), internamente tan solo tiene dos ya que la primera linea del moldulo LCD esta conformada por la linea N-. 1 y N-. 3 fisicamente del modulo LCD y la linea N-. 2 esta conformada por la linea N-. 2 y N-. 4 del modulo LCD. Entonces podemos concluir para este paso 4 que solamente sera necesario si usted esta utilizando un modulo LCD de 4 y de 2 lineas ( Fisicamente ). Para nuestro pequeño experimente, coloque a N=1 y F=0. q PASO 5: La siguiente instruccion sera para encender la pantalla y el cursor; para ello debera escribirse el siguiente codigo en el bus de datos y en el bus de control: CODIGO: ACTIVACION DEL CURSOR Y LA PANTALLA BUS DE BUS DE DATOS CONTROL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 1 1 0 Para ejecutar el codigo colocado en el bus de datos y el bus de control volvemos nuevamente a presionar el pulsador denominado SW1. q PASO 6: Finalmente, la ultima instruccion de la inicializacion se refiere que cuando se escriba un caracter en la pantalla, el cursor se desplase automaticamente a la derecha. CODIGO: SHIFT Y CURSOR A LA DERECHA BUS DE BUS DE DATOS CONTROL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 1 1 0 Hasta aqui hemos terminado la inicializacion basica de un modulo LCD, ahora podemos proceder a escribir "PCB ELECTRONICS". q PASO 7: Ahora podemos escribir nuestros caracteres con la secuencia como se señala en la siguiente tabla: CODIGO: ESCRIBIR PCB ELECTRONICS BUS DE BUS DE DATOS CONTROL CARACTER RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 P 1 0 0 1 0 1 0 0 0 0 ACTIVAR EL SUICHE SW1 = ENABLE C 1 0 0 1 0 0 0 0 1 1 ACTIVAR EL SUICHE SW1 = ENABLE B 1 0 0 1 0 0 0 0 1 0 ACTIVAR EL SUICHE SW1 = ENABLE ESPACIO 1 0 1 1 1 1 1 1 1 0 ACTIVAR EL SUICHE SW1 = ENABLE E 1 0 0 1 0 0 0 1 0 1 ACTIVAR EL SUICHE SW1 = ENABLE L 1 0 0 1 0 0 1 1 0 0 ACTIVAR EL SUICHE SW1 = ENABLE E 1 0 0 1 0 0 0 1 0 1 ACTIVAR EL SUICHE SW1 = ENABLE C 1 0 0 1 0 0 0 0 1 1 ACTIVAR EL SUICHE SW1 = ENABLE T 1 0 0 1 0 1 0 1 0 0 ACTIVAR EL SUICHE SW1 = ENABLE R 1 0 0 1 0 1 0 0 1 0 ACTIVAR EL SUICHE SW1 = ENABLEhttp://www.hobbiepic.com/COMO%20FUNCION...SAS/Modulos%20LCD/Modulos%20LCD%201.asp (13 of 16) [07/07/2001 06:01:02 p.m.]
  • 16. HobbiePic.Com O 1 0 0 1 0 0 1 1 1 1 ACTIVAR EL SUICHE SW1 = ENABLE N 1 0 0 1 0 0 1 1 1 0 ACTIVAR EL SUICHE SW1 = ENABLE I 1 0 0 1 0 0 1 0 0 1 ACTIVAR EL SUICHE SW1 = ENABLE C 1 0 0 1 0 0 0 0 1 1 ACTIVAR EL SUICHE SW1 = ENABLE S 1 0 0 1 0 1 0 1 0 0 ACTIVAR EL SUICHE SW1 = ENABLE NOTAS: 1-. Activar el suiche que hemos denominado como SW1 la cual su funcion es enviar un "1" logico miestras el suiche se encuentre presionado, podria causar fallas de rebote; esto quiere decir que podria aparecer varios caracteres en la pantalla si el efecto de rebote se hace presente. 2-. El tiempo minimo que necesita el pulsador SW1 sera de 450 nano segundos. Este tiempo no tendra nada de importancia para este procedimiento manual, pero si tendra muchisima importancia para cuando el sistema funcione con un microprocesador o un microcontrolador. HAZ CLICK AQUI PARA IR AL CAPITULO II Amigo Visitante, si usted tiene alguna sugerencia, comentario de nuestro trabajo, cualquier cosa que nos quiera informar, le agradeceríamos mucho que se pusiera en contacto con nosotros por medio del siguiente correo electrónico: phorlakis@cantv.net En el correo, por favor coloque de que Pais pertenece y su ciudad donde vive y finalmente en que se especializa usted ?. PCB ELECTRONICS SYSTEMS Los Aceitunos, Av. 69A N-. 80B-105 Maracaibo - Zulia - Venezuela Teléfonos: Fax: (061)-753-51-10 PROVISIONAL - (014)-361-9181 E-MAIL: phorlakis@cantv.nethttp://www.hobbiepic.com/COMO%20FUNCION...SAS/Modulos%20LCD/Modulos%20LCD%201.asp (14 of 16) [07/07/2001 06:01:02 p.m.]
  • 17. HobbiePic.ComBUSQUEDA RAPIDA MODULOS LCD MODULOS LCD CONECTADO CON UN PIC16F84 Lista de Precios CAPITULO II 11-. Conectando un modulo LCD a un Microcontrolador PIC16F84. En la actualidad los microcontroladores son los elementos electrónicos de mayor utilidad y esta sección nos describe en detalle como utilizar un modulo LCD con un microcontrolador © 2000 PCB Electronics Systems Todo los Derechos Reservados. de la empresa Microship modelo PIC16F84. Aquí suministraremos los diagramas de conexión electrónica, programas de ejemplo para el microcontrolador comenzando con un nivel muy básico hasta un nivel medianamente avanzado. Estos programas podrás obetenerlo directamente por DOWNLOAD en esta pagina WEB de PCB Electronics Systems. Si usted esta interesado en aprender a manejas completamente el microcontrolador PIC16F84 puede hacer doble click Aquí. En ella encontrara un curso completo de todo lo referente al PIC-16F84. Para esta sección usted necesitara conocimientos mínimos de como programar el microcontrolador PIC16F84. Sabemos ahora que los microcontroladores han dado un giro de 360 grados ya que han simplificado la gran cantidad de componentes electrónicos que se utilizaban anteriormente como por ejemplo la arquitectura de un microprocesador Z-80. En la siguiente imagen se muestra el circuito electrónico completo con un microcontrolador PIC16F84 para manejar un modulo LCD. Es importante destacar que el programa realizado para este proyecto tiene las rutinas de tiempo calculadas con un cristal de 4 MHZ; En el caso de que usted trabaje con un cristal mucho mayor o diferente de 4 Mhz, las rutinas de tiempo establecidas en el programa serán mucho mas cortas si el cristal utilizado es mayor de 4 Mhz y para el caso de que el cristal sea menor que 4 Mhz, las rutinas de tiempo serán mucho mas largas, por lo tanto dependiendo del cristal utilizado podría causar problemas de entendimiento con el modulo LCD. http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (1 of 7) [07/07/2001 06:01:57 p.m.]
  • 18. HobbiePic.Com 11.1-. Declaración de constantes que serán utilizadas en el programa del PIC16F84: El siguiente código representa algunas constantes reservadas del microcontrolador PIC16F84 y otras de asignación personal. Estas instrucciones son para el ensamblador y las constantes tratadas serán usadas básicamente en todo nuestro programa. La sección azul representa los registros de funciones especiales del microcontrolador, la sección amarilla representa los Bits del puerto "A" destinados al bus de control del modulo LCD y finalmente la sección morada representa las constantes que definirán los tiempos de las rutinas de temporización. DECLARACION DE CONSTANTES. CODIGO: COMENTARIO PORTB EQU 0X06 Dirección del puerto B TRISB EQU 0X06 Configurador del puerto B para I/O. PORTA EQU 0X05 Dirección del puerto A TRISA EQU 0X05 Configurador del puerto A para I/O. STATUS EQU 0X03 Dirección del registro STATUS. LCD_E EQU 2 Bit del puerto A para control de E. LCD_RW EQU 1 Bit del puerto A para control de R/W. LCD_RS EQU 0 Bit del puerto A para control de RS. RETARDO1 EQU 0X0D Constante del temporizador 1 RETARDO2 EQU 0X00 Constante del temporizador 2 11.2-. Reserva de Memoria RAM: El PIC16F84 tiene disponible 68 Bytes de memoria RAM. La memoria comienza desde la dirección 0X0C ( Posición numero Décima Tercera del mapa de registros ) y termina en la posición 0X4F ( Posición numero 80 del mapa de registros ). La instrucción ORG le indica al ensamblador donde debe comenzar a reservar la memoria RAM que a continuación declaramos. Para nuestro pequeño experimento, tan solo necesitamos dos bytes de memoria RAM. RESERVA DE MEMORIA RAM CODIGO: COMENTARIO ORG 0X0C Inicio de los registros de Uso general CONT1 RES 1 Reserva un Byte para la Variable CONT1 CONT2 RES 1 Reserva un Byte para la Variable CONT2 11.3-. Configuración de los Puertos:http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (2 of 7) [07/07/2001 06:01:57 p.m.]
  • 19. HobbiePic.Com El siguiente código le dice al microcontrolador PIC16F84 que el puerto "A" con sus cinco lineas y el puerto "B" con sus ocho lineas serán configurados como salidas para nuestro pequeño experimento. CONFIGURACION DE LOS PUERTOS: CODIGO: COMENTARIO ORG 0X00 BSF STATUS,5 Cambio al banco 1 MOVLW b00000000 MOVWF TRISA Configura todo el puerto A como salida. MOVLW b00000000 MOVWF TRISB Configura todo el puerto B como salida BCF STATUS,5 Cambio al banco 0 11.4-. Programa Principal: El programa principal en nuestro pequeño proyecto, lo hemos dividido en dos secciones de colores. La sección en color azul representan las instrucciones necesarias para la inicialización del modulo LCD. La sección en color amarillo representa el programa que se encargara de escribir la palabra "PCB ELECTRONICS". En la columna de COMENTARIO del programa, hemos agregado una pequeña información para que usted entienda que es lo que sucede cuando se ejecuta la instrucción señalada. PROGRAMA PRINCIPAL: CODIGO: COMENTARIO Llamada de sub-rrutina de tiempo de 15 milisegundos. Esta Subrrutina es solicitada en el CALL TEMPO2 momento que se enciende el circuito para esperar que el modulo LCD estabilice sus voltajes internos. Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con un bus de datos de 8 Bits. Posteriormente a esta MOVLW b00110000 instrucción se ejecuta una subrrutina llamada LCDI ( LCD INSTRUCCION) que estará encargada de colocar el dato en el modulo LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. Llamada de una sub-rrutina que estará encargada de colocar el dato en el modulo LCD ( Bus de CALL LCDI datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con MOVLW b00111000 Activación de dos lineas en el modulo LCD. Posteriormente a esta instrucción se ejecuta una subrrutina llamada LCDI que fue explicada en la instrucción numero 2 de esta misma tabla. Llamada de una sub-rrutina que estará encargada de colocar el dato en el modulo LCD ( Bus de CALL LCDI datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con MOVLW b00001110 encendido de la pantalla y el cursor en el modulo LCD. Posteriormente a esta instrucción se ejecuta una subrrutina llamada LCDI que fue explicada en la instrucción numero 2 de esta misma tabla. Llamada de una sub-rrutina que estará encargada de colocar el dato en el modulo LCD ( Bus de CALL LCDI datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD.http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (3 of 7) [07/07/2001 06:01:57 p.m.]
  • 20. HobbiePic.Com Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con el MOVLW b00000110 desplazamiento del cursor a la derecha Posteriormente a esta instrucción se ejecuta una subrrutina llamada LCDI que fue explicada en la instrucción numero 2 de esta misma tabla. Llamada de una sub-rrutina que estará encargada de colocar el dato en el modulo LCD ( Bus de CALL LCDI datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. MOVLW "P" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "C" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "B" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "E" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "L" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "E" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "T" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "R" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "O" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "N" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "I" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "C" Coloca el carácter ASCII en W CALL LCDC Rutina para escribir un carácter en el LCD. MOVLW "S" Coloca el carácter ASCII en W CICLO GOTO CICLO 11.5-. Subrrutinas: 11.5.1-. Subrrutina para ejecutar una Instrucción. Esta subrrutina que la hemos llamado LCDI configura el bus de control del modulo LCD para ejecutar una instrucción que esta presente en el bus de datos. La instrucción es inmediatamente ejecutada por el modulo LCD cuando se activa el ENABLE. Esta subrrutina es utilizada por el programa principal solamente cuando se requiere dar una Instrucción al modulo LCD. SUBRRUTINA LCDI: ( EJECUCION DE UNA INSTRUCCION ) CODIGO: COMENTARIO LCDI BCF PORTA,LCD_RW Coloca "0" en el Pin RW. BCF PORTA,LCD_RS Coloca "0" en el Pin RS. BSF PORTA,LCD_E Coloca "1" en el Pin E Coloca el contenido de "W" en el bus de MOVWF PORTB datos del modulo LCD. BCF PORTA,LCD_E Coloca "0" en el Pin E Llamada de una sub-rutina de tiempo de 40 CALL TEMPO1 micro segundos. RETURN Finaliza la Rutina de tiempo. 11.5.2-. Subrrutina para escribir un dato o un carácter en el modulo LCD. Esta subrrutina configura el bus de control del modulo LCD para escribir un dato que estahttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (4 of 7) [07/07/2001 06:01:57 p.m.]
  • 21. HobbiePic.Com presente en el bus de datos del modulo LCD . El dato se escribe en la pantalla inmediatamente cuando se activa el ENABLE. Esta subrrutina es utilizada por el programa principal solamente cuando se quiere escribir un caracter en el modulo LCD. SUBRRUTINA LCDC: ( ESCRIBIR UN DATO O CARACTER ) CODIGO: COMENTARIO LCDC BCF PORTA,LCD_RW Coloca "0" en el Pin RW. BSF PORTA,LCD_RS Coloca "1" en el Pin RS. BSF PORTA,LCD_E Coloca "1" en el Pin E Coloca el contenido de "W" en el bus de MOVWF PORTB datos del modulo LCD. BCF PORTA,LCD_E Coloca "0" en el Pin E Llamada de una sub-rutina de tiempo de 40 CALL TEMPO1 micro segundos. RETURN Finaliza la Rutina de tiempo. 11.5.3-. Subrrutina de 58 microsegundos. Esta subrrutina de tiempo es solicitada cuando se ejecuta una instrucción o un dato para dar el tiempo necesario que requiere el modulo LCD para finalizar el proceso. Esta sub-rrutina denominada TEMPO1 tiene una curación de 58 microsegundos basados en un cristal de 4 Mhz. SUBRRUTINA DE TIEMPO ( TEMPO1 ) CODIGO: COMENTARIO TEMPO1 MOVLW RETARDO1 MOVWF CONT1 CICLOT1 NOP DECFSZ CONT1,1 GOTO CICLOT1 RETURN 11.5.4-. Subrrutina de 15.37 milisegundos. Esta subrrutina de tiempo es utilizada solamente cuando se enciende la pantalla para la estabilizacion de los voltajes. Esta sub-rrutina denominada TEMPO2 tiene una duracion de 15.37 milisegundos basados en un cristal de 4 Mhz. SUBRRUTINA DE TIEMPO ( TEMPO2 ) CODIGO: COMENTARIO TEMPO2 MOVLW RETARDO2 MOVWF CONT2 CICLOT2 CALL TEMPO1 DECFSZ CONT2,1 GOTO CICLOT2 RETURN Estas son todas las instrucciones que usted necesita para controlar un modulo LCD con un microcontrolador PIC16F84. La información presentada en esta sección ha sido probada que funciona correctamente. Para facilitarle a usted el tiempo de transcripción de los programas de prueba para nuestro pequeño experimento, podrá obtener los archivos originales por DOWNLOAD. Tan solo haga doble click con el mouse en el nombre respectivo para obtener el archivo. Nombre del Archivo Comentario LCD1.ASM Archivo principal en lenguaje asembler. LCD1.HEX Archivo compilado. Una pequeña explicación referida a los dos archivos tendrá algo de importancia en el cual el archivo denominado LCD1.ASM es un archivo que podrá ser observado en cualquier editor de textos. El archivo LCD1.HEX es la traducción en lenguaje de maquina del archivo LCD1.ASM y es el que necesita el microcontrolador. HAZ CLICK AQUI PARA IR AL CAPITULO III MODULOS LCD CONECTADOS SERIALMENTE CON UN PIC16F84http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (5 of 7) [07/07/2001 06:01:57 p.m.]
  • 22. HobbiePic.Com Amigo Visitante, si usted tiene alguna sugerencia, comentario de nuestro trabajo, cualquier cosa que nos quiera informar, le agradeceríamos mucho que se pusiera en contacto con nosotros por medio del siguiente correo electrónico: phorlakis@cantv.net En el correo, por favor coloque de que Pais pertenece y su ciudad donde vive y finalmente en que se especializa usted ?. PCB ELECTRONICS SYSTEMS Los Aceitunos, Av. 69A N-. 80B-105 Maracaibo - Zulia - Venezuela Teléfonos: Fax: (061)-753-51-10 PROVISIONAL - (014)-361-9181 E-MAIL: phorlakis@cantv.nethttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (6 of 7) [07/07/2001 06:01:57 p.m.]
  • 23. HobbiePic.Comhttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (7 of 7) [07/07/2001 06:01:57 p.m.]
  • 24. HobbiePic.ComBUSQUEDA RAPIDA MODULOS LCD MODULOS LCD Lista de Precios CAPITULO III 12-. Controlando un Modulo LCD Serialmente, Introducción. © 2000 PCB Electronics Systems En la actualidad sabemos que un modulo LCD requiere de 8 lineas para el bus de datos y 3 Todo los Derechos Reservados. lineas para el bus de control, por lo tanto tenemos un total de 11 lineas que se necesitan para controlar un modulo LCD. Esta cantidad de lineas son demasiadas para algunos proyectos electrónicos. Para el caso de un microcontrolador PIC16F84 que tan solo dispone de 13 lineas, le sobran dos lineas para ser aplicados a cualquier parte de nuestro proyecto que podrían ser insuficientes. Es por eso que aquí presentamos una opción en donde podrás controlar un modulo LCD con solo tres lineas de un microcontrolador, dando así mayor cobertura para el resto del proyecto, para el caso del microcontrolador PIC16F84 tendríamos 10 lineas para nuestro proyecto. El siguiente diagrama electrónico fue diseñado originalmente por el señor Marc Simons en Octubre del año 1996 para el microcontrolador PIC16C54; y modificado por PCB Electronics Systems en Febrero del 2001 para el microcontrolador PIC16F84. http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (1 of 8) [07/07/2001 06:02:53 p.m.]
  • 25. HobbiePic.Com Si la imagen presentada anteriormente no la puede observar bien, puedes obtener una copia haciendo click aquí. El tamaño del archivo es de 137 Kb. NOTAS IMPORTANTES ANTES DE COMENZAR: q En el diagrama esquemático, el circuito integrado 4094 no tiene planteado los pines de suministro de voltaje la cual beberán ser tomados en cuenta a la hora de montarlo en un protoboard para las respectivas pruebas. q El circuito planteado en esta sección, solamente tendrá la capacidad de poder enviar un dato al modulo LCD ( Escribir caracteres en la pantalla ) y enviar alguna instrucción especifica de modulo; pero no tendrá la capacidad de leer información almacenada dentro del modulo LCD. q Para utilizar este circuito electrónico ( Método Serial ) se requiere que la persona tenga un mínimo de conocimientos del las funciones de cada uno de los pines de control del modulo LCD. Para entender este circuito electrónico primero comenzaremos con observar que el microcontrolador PIC16F84 utiliza los pines RB0, RB1 y RB2 para transferir el dato serialmente y para controlar el bus de control del modulo LCD. Ahora explicaremos la teoría básica que se requiere para escribir un carácter el la pantalla del modulo LCD con este método: El circuito integrado 4094 es conocido como un integrado que recibe una información en forma serial y es organizada en forma paralela desde Q1 hasta Q8 que representan las salidas. Este tipo de circuito integrado esta clasificado como un registro de desplazamiento y esta conformado por 8 Flip Flops interconectados serialmente. La información que esta almacenada en los flip flops experimentan un corrimiento hacia la derecha o hacia la izquierda con cada pulso de reloj. Un bit almacenado en un flip flop de la cadena se transfiere o se desplaza ( Derecha o Izquierda ) al flip flop siguiente o adyacente. Por ejemplo, si nosotros queremos escribir el carácter"A" en el modulo LCD, tenemos que saber que la representación binaria del carácter"A = 01000001", un programa interno en el microcontrolador ( diseñado por el programador ) deberá tomar cada uno de los bits que conforman el carácter"A" comenzando por el bit menos significativo; es decir, primero toma el "1", seguidamente el "0", "0", "0", "0", "0", "1" y finalmente el ultimo bit "0". Cada uno dehttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (2 of 8) [07/07/2001 06:02:53 p.m.]
  • 26. HobbiePic.Com estos bits son emitidos por el Pin del microcontrolador denominado RB1 el cual esta conectado con el Circuito Integrado 4094 en el Pin numero 2 denominado "D". Cada vez que se emita un Bit, el microcontrolador (RB0) también emite un pulso de reloj al Pin No. 3 del C.I. 4094. El Bit que esta presente en el Pin No. 2 es tomado y colocado en los registros internos del CI 4094. Cuando la palabra completa de 8 Bits se encuentra dentro de los registros del C.I. 4094 se procede a emitir un pulso desde el microcontrolador (RB2) que esta conectado con el Pin No. 1 del C.I. 4094 (STR), este pulso autoriza al C.I. 4094 a colocar el dato completo de 8 bits en las salidas desde Q1 hasta Q8. Ahora tenemos nuestro carácter"A" presente en las salidas del C.I. 4094 lo cual quiere decir que ya se encuentra presente el carácter"A" en el bus de datos del modulo LCD. El dato será leído por el modulo LCD si su bus de control esta configurado para ello. Observemos en nuestro circuito que Pin R/W del modulo LCD esta conectado a tierra y el Pin "E" del modulo LCD esta conectado directamente a RB2 del microcontrolador, finalmente el Pin "RS" esta conectado a un pequeño circuito conformado por un transistor. Ahora sabemos que para poder escribir un dato en la pantalla del modulo LCD tenemos que tener configurado el Pin R/W = 0, RS=1 y el Pin denominado E del modulo LCD deberá colocarse en E = 1 durante 450 nano segundos y volverlo a colocar en E = 0 para que tome el dato presente en el bus para escribir el carácter en el modulo LCD. Ahora aquí viene la parte interesante de nuestro circuito en el cual le tenemos que decirle al modulo LCD que tome el carácter"A" presente en el bus de datos. Observe primero que el Pin No 8 del microcontrolador (RB2) esta conectado a dos partes diferentes en el circuito, primero esta conectado al Pin No 1 del C.I. 4093 (STR) y segundo esta conectado al modulo LCD en el Pin No. 6 denominado "E", lo cual quiere decir que el Pin RB2 del microcontrolador es utilizado para dos funciones: La primera función del Pin No. 8 del Microcontrolador (RB2) es emitir un pulso para que sea recibido por el Pin N-. 1 del C.I. 4094 (STR) en el momento que la palabra completa de 8 bits se encuentre presente dentro del registro de desplazamiento. Esta palabra de 8 bits aparece en la salida del C.I. 4094 en los pines desde Q1 hasta Q8 en el momento que STR recibe el Pulso. La segunda función del Pin No. 8 del Microcontrolador (RB2) viene inmediatamente después de haber realizado la primera función. En el momento que se ejecuta la primera función, el dato esta presente en las salidas del C.I. 4094 por ende el dato estará presente en el bus de datos del modulo LCD; pero para poder escribir un carácter en la pantalla del modulo, se tiene como condición obligatoria que el Pin No. 6 del modulo LCD "E" deberá permanecer en E=1 durante 450 nano segundos, en este momento se debe volver a cambiar el estado logico de "E" a 0, haciendo que el modulo capture el caracter "A" y lo escriba en la pantalla. Por otra parte, el Pin No. 4 (RS) del bus de control del modulo LCD deberá estar colocado en "1" para escribir un carácter en la pantalla. En nuestro circuito el Pin RS del modulo LCD esta controlado por el Pin RB0 del microcontrolador por medio de un pequeño circuito conformado por C1, Q1, R1 y R4. Se podrá observar que RB0 del microcontrolador también estará encargado de emitir el tren de pulsos que requiere el C.I. 4094 para capturar el dato en sus registros. Si queremos escribir un carácter, primero debemos colocar RB0 = 1 durante 500 micro segundos para que se cargue el condensador C1, permitiendo que el transistor Q1 se active y coloque a RS = 1. Seguidamente se envía el tren de pulsos que esta relacionado con los bits que conforman el dato. Este tren de pulsos no altera el voltaje del capacitor C1 asegurandose de esta manera RS = 1 durante un tiempo dentro el cual se debe activar el Pin denominado "E" del modulo LCD para escribir el carácter en la pantalla. Si queremos enviar una instrucción al modulo LCD, primero debemos colocar RB0 = 0 para que el condensador proceda a descargarse, desactivando el transistor Q1 y colocando a RS = 0 y se procede de igual manera con el tren de pulsos que esta relacionado con los bits que conforman a la instrucción.http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (3 of 8) [07/07/2001 06:02:53 p.m.]
  • 27. HobbiePic.Com 12-. Programas necesarios para el Microcontrolador PIC16F84, comezaremos con la declaración de constantes que serán utilizadas en el programa: El siguiente código representa algunas constantes reservadas del microcontrolador PIC16F84 y otras de asignación personal. Estas instrucciones son para el ensamblador y las constantes tratadas serán usadas básicamente en todo nuestro programa. La sección azul representa los registros de funciones especiales del microcontrolador, y finalmente la sección morada representa las constantes que definirán los tiempos de las rutinas de temporización. DECLARACION DE CONSTANTES. CODIGO: COMENTARIO PORTB EQU 0X06 Dirección del puerto B TRISB EQU 0X06 Configurador del puerto B para I/O. STATUS EQU 0X03 Dirección del registro STATUS. Bit del registro STATUS que informa si existe CARRY EQU 0 acarreo o no. RETARDO1 EQU 0X0D Constante del temporizador 1 RETARDO2 EQU 0X00 Constante del temporizador 2 INSTRUCT EQU 0 Bit de banderas Bit del puerto B para controlar el CLOCK del CI ClockOut EQU 0 4094 DataOut EQU 1 Bit del puerto B para controlar el DATO del CI 4094 Bit del puerto B para controlar el STROBE del CI StrobeOut EQU 2 4094 12.1-. Reserva de Memoria RAM: El PIC16F84 tiene disponible 68 Bytes de memoria RAM. La memoria comienza desde la dirección 0X0C ( Posición numero Décima Tercera del mapa de registros ) y termina en la posición 0X4F ( Posición numero 80 del mapa de registros ). La instrucción ORG le indica al ensamblador donde debe comenzar a reservar la memoria RAM que a continuación declaramos. Para nuestro pequeño experimento, tan solo necesitamos seis bytes de memoria RAM. RESERVA DE MEMORIA RAM CODIGO: COMENTARIO ORG 0X0C Inicio de los registros de Uso general CONT1 RES 1 CONT2 RES 1 RESERVA DE UN BITE DE MEMORIA RAM BANDERAS RES 1 PARA LAS VARIABLES CONT1, CONT2, cont1 RES 1 BANDERAS, OUTPUTREG, COUNTERREG Y OutPutReg RES 1 cont1 CounterReg RES 1 12.2-. Configuración de los Puertos: El siguiente código le dice al microcontrolador PIC16F84 que el puerto "A" con sus cinco lineas y el puerto "B" con sus ocho lineas serán configurados como salidas para nuestro pequeño experimento. CONFIGURACION DE LOS PUERTOS: CODIGO: COMENTARIO ORG 0X00 BSF STATUS,5 Cambio al banco 1 MOVLW b11111000 MOVWF TRISB Configura todo el puerto Bcomo salida. BCF STATUS,5 Cambio al banco 0 12.3-. Programa Principal: El programa principal en nuestro pequeño proyecto, lo hemos dividido en dos secciones de colores. La sección en color azul representan las instrucciones necesarias para la inicialización del modulo LCD. La sección en color amarillo representa el programa que se encargara de escribir la palabra "PCB ELECTRONICS". En la columna de COMENTARIO del programa, hemos agregado una pequeña información para que usted entienda que es lohttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (4 of 8) [07/07/2001 06:02:53 p.m.]
  • 28. HobbiePic.Com que sucede cuando se ejecuta la instrucción señalada. PROGRAMA PRINCIPAL: CODIGO: COMENTARIO Llamada de sub-rrutina de tiempo de 15 milisegundos. Esta Subrrutina es solicitada CALL TEMPO2 en el momento que se enciende el circuito para esperar que el modulo LCD estabilice sus voltajes internos. BSF BANDERAS,INSTRUCT Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con un bus de datos de 8 Bits. Posteriormente a esta instrucción se ejecuta MOVLW b00110000 una subrrutina llamada LCDI ( LCD INSTRUCCION) que estará encargada de colocar el dato en el modulo LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. Llamada de una sub-rrutina que estará encargada de colocar el dato en el modulo CALL salidaLCD LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. CALL TEMPO1 Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con Activación de dos lineas en el modulo MOVLW b00111000 LCD. Posteriormente a esta instrucción se ejecuta una subrrutina llamada LCDI que fue explicada en la instrucción numero 2 de esta misma tabla. Llamada de una sub-rrutina que estará encargada de colocar el dato en el modulo CALL SALIDALCD LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. CALL TEMPO1 Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con encendido de la pantalla y el cursor en MOVLW b00001110 el modulo LCD. Posteriormente a esta instrucción se ejecuta una subrrutina llamada LCDI que fue explicada en la instrucción numero 2 de esta misma tabla. Llamada de una sub-rrutina que estará encargada de colocar el dato en el modulo CALL SALIDALCD LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. CALL TEMPO1 Este comando carga en el acumulador del PIC16F84 el numero binario que representa el comando en el modulo LCD para trabajar con el desplazamiento del cursor a la MOVLW b00000110 derecha Posteriormente a esta instrucción se ejecuta una subrrutina llamada LCDI que fue explicada en la instrucción numero 2 de esta misma tabla.http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (5 of 8) [07/07/2001 06:02:53 p.m.]
  • 29. HobbiePic.Com Llamada de una sub-rrutina que estará encargada de colocar el dato en el modulo CALL SALIDALCD LCD ( Bus de datos ) y ejecuta la secuencia requerida para el bus de control del modulo LCD. CALL TEMPO1 BCF BANDERAS, INTRUCT MOVLW "P" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "C" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "B" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "E" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "L" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "E" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "T" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "R" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "O" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "N" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "I" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "C" Coloca el carácter ASCII en W CALL SALIDALCD Rutina para escribir un carácter en el LCD. MOVLW "S" Coloca el carácter ASCII en W CICLO GOTO CICLO 12.4-. Subrrutinas: 12.4.1-. Subrrutina para la comunicacion con el modulo LCD. Esta subrrutina que la hemos llamado SALIDALCD que consiste en enviar un dato de ocho bits por el pin de datos de forma sincrona ( Uno detras del otro) controlados por el pulso de reloj. Despues de transmitir el dato se aplica la seña del strobe para que el dato completo del CI 4094 pase a sus salidas y el LCD lo capture. Todo este proceso se hace tomando en cuenta los tiempos de carga y descarga del capacitor y el tiempo de respuesta del modulo LCD. SUBRRUTINA DE TIEMPO ( SALIDALCD) CODIGO: COMENTARIO SALIDALCD MOVWF OUTPUTREG BCF PORTB,CLOCLOUT BTFSS BANDERAS,INSTRUCT BSF PORTB,CLOCKOUT MOVLW .140 MOVWF CONT1 LOADCAPLOOP DECFSZ CONT1,1 GOTO LOADCAPLOOP BSF PORTB,CLOCKOUT MOVLW .8 MOVWF COUNTERREG BCF PORTB,CLOCKOUT BCF PORTB,DATAOUT RLF OUTPUTREG,1 BTFSC STATUS,CARRY BSF PORTB,DATAOUT BSF PORTB,CLOCKOUT DECFSZ COUNTERREG,1http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (6 of 8) [07/07/2001 06:02:53 p.m.]
  • 30. HobbiePic.Com GOTO NEXTOUT BCF PORTB,CLOCKOUT BSF PORTB,STROBEOUT BCF PORTB,STROBEOUT RETLW 0 12.4.2-. Subrrutina de 58 microsegundos. Esta subrrutina de tiempo es solicitada cuando se ejecuta una instrucción o un dato para dar el tiempo necesario que requiere el modulo LCD para finalizar el proceso. Esta sub-rrutina denominada TEMPO1 tiene una curación de 58 microsegundos basados en un cristal de 4 Mhz. SUBRRUTINA DE TIEMPO ( TEMPO1 ) CODIGO: COMENTARIO TEMPO1 MOVLW RETARDO1 MOVWF CONT1 CICLOT1 NOP DECFSZ CONT1,1 GOTO CICLOT1 RETURN 12.4.3-. Subrrutina de 15.37 milisegundos. Esta subrrutina de tiempo es utilizada solamente cuando se enciende la pantalla para la estabilizacion de los voltajes. Esta sub-rrutina denominada TEMPO2 tiene una duracion de 15.37 milisegundos basados en un cristal de 4 Mhz. SUBRRUTINA DE TIEMPO ( TEMPO2 ) CODIGO: COMENTARIO TEMPO2 MOVLW RETARDO2 MOVWF CONT2 CICLOT2 CALL TEMPO1 DECFSZ CONT2,1 GOTO CICLOT2 RETURN Estas son todas las instrucciones que usted necesita para controlar un modulo LCD con un microcontrolador PIC16F84. La información presentada en esta sección ha sido probada que funciona correctamente. Para facilitarle a usted el tiempo de transcripción de los programas de prueba para nuestro pequeño experimento, podrá obtener los archivos originales por DOWNLOAD. Tan solo haga doble click con el mouse en el nombre respectivo para obtener el archivo. Nombre del Archivo Comentario LCD1.ASM Archivo no copilado en .ASM HAZ CLICK AQUI PARA IR AL CAPITULO IV MODULOS LCD MATRICIALES Amigo Visitante, si usted tiene alguna sugerencia, comentario de nuestro trabajo, cualquier cosa que nos quiera informar, le agradeceríamos mucho que se pusiera en contacto con nosotros por medio del siguiente correo electrónico: phorlakis@cantv.net En el correo, por favor coloque de que Pais pertenece y su ciudad donde vive y finalmente en que se especializa usted ?. PCB ELECTRONICS SYSTEMS Los Aceitunos, Av. 69A N-. 80B-105 Maracaibo - Zulia - Venezuela Teléfonos: Fax: (061)-753-51-10 PROVISIONAL - (014)-361-9181http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (7 of 8) [07/07/2001 06:02:53 p.m.]
  • 31. HobbiePic.Com E-MAIL: phorlakis@cantv.nethttp://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (8 of 8) [07/07/2001 06:02:53 p.m.]