SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
HobbiePic.Com



BUSQUEDA 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.]
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.net




http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%200.asp (2 of 2) [07/07/2001 05:55:24 p.m.]
HobbiePic.Com



BUSQUEDA 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.]
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.]
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.]
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.]
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 que


http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (5 of 16) [07/07/2001 06:01:00 p.m.]
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.]
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 control

http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (7 of 16) [07/07/2001 06:01:00 p.m.]
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 se


http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (8 of 16) [07/07/2001 06:01:00 p.m.]
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 RAM


http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (9 of 16) [07/07/2001 06:01:01 p.m.]
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 CARACTERES


http://www.hobbiepic.com/COMO%20FUNCION...SAS/Modulos%20LCD/Modulos%20LCD%201.asp (10 of 16) [07/07/2001 06:01:01 p.m.]
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.]
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 entre



http://www.hobbiepic.com/COMO%20FUNCION...SAS/Modulos%20LCD/Modulos%20LCD%201.asp (12 of 16) [07/07/2001 06:01:01 p.m.]
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 = ENABLE




http://www.hobbiepic.com/COMO%20FUNCION...SAS/Modulos%20LCD/Modulos%20LCD%201.asp (13 of 16) [07/07/2001 06:01:02 p.m.]
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.net




http://www.hobbiepic.com/COMO%20FUNCION...SAS/Modulos%20LCD/Modulos%20LCD%201.asp (14 of 16) [07/07/2001 06:01:02 p.m.]
HobbiePic.Com



BUSQUEDA 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.]
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.]
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 b'00000000'
                                          MOVWF TRISA                Configura todo el puerto A como salida.
                                          MOVLW b'00000000'
                                          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 b'00110000'     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 b'00111000'     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 b'00001110'     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.]
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 b'00000110'     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 esta


http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (4 of 7) [07/07/2001 06:01:57 p.m.]
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 PIC16F84


http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (5 of 7) [07/07/2001 06:01:57 p.m.]
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.net




http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (6 of 7) [07/07/2001 06:01:57 p.m.]
HobbiePic.Com




http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (7 of 7) [07/07/2001 06:01:57 p.m.]
HobbiePic.Com



BUSQUEDA 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.]
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 de


http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (2 of 8) [07/07/2001 06:02:53 p.m.]
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.]
Lc ds
Lc ds
Lc ds
Lc ds
Lc ds

Más contenido relacionado

Similar a Lc ds

Controladores lógicos programables
Controladores lógicos programablesControladores lógicos programables
Controladores lógicos programablesf2721
 
Proyecto 7 segmentos v1.
Proyecto 7 segmentos v1.Proyecto 7 segmentos v1.
Proyecto 7 segmentos v1.Adán Silva
 
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886Victor Asanza
 
Proyecto micro
Proyecto microProyecto micro
Proyecto microjhompix
 
Microcontroladores PIC
Microcontroladores PICMicrocontroladores PIC
Microcontroladores PICSohar Carr
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CLuis Zurita
 
Guia simulador modulo digital
Guia simulador modulo digitalGuia simulador modulo digital
Guia simulador modulo digitalvitesa1
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontroladorVannesa Salazar
 

Similar a Lc ds (20)

Manual de programación del PLC Festo
Manual de programación del PLC FestoManual de programación del PLC Festo
Manual de programación del PLC Festo
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Plc i dont know
Plc i dont knowPlc i dont know
Plc i dont know
 
Informe1
Informe1Informe1
Informe1
 
Controladores lógicos programables
Controladores lógicos programablesControladores lógicos programables
Controladores lógicos programables
 
El microcontrolador PIC16F877
El microcontrolador PIC16F877El microcontrolador PIC16F877
El microcontrolador PIC16F877
 
Proyecto 7 segmentos v1.
Proyecto 7 segmentos v1.Proyecto 7 segmentos v1.
Proyecto 7 segmentos v1.
 
Micro1
Micro1Micro1
Micro1
 
Curso basico de plc
Curso basico de plcCurso basico de plc
Curso basico de plc
 
Libro basico pic
Libro basico picLibro basico pic
Libro basico pic
 
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
 
Proyecto micro
Proyecto microProyecto micro
Proyecto micro
 
Micro1.ppt
Micro1.pptMicro1.ppt
Micro1.ppt
 
Microcontroladores PIC
Microcontroladores PICMicrocontroladores PIC
Microcontroladores PIC
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
 
Curso plc
Curso plcCurso plc
Curso plc
 
Guia simulador modulo digital
Guia simulador modulo digitalGuia simulador modulo digital
Guia simulador modulo digital
 
Lcd
LcdLcd
Lcd
 
Curso plc[1]
Curso plc[1]Curso plc[1]
Curso plc[1]
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontrolador
 

Lc ds

  • 1. HobbiePic.Com BUSQUEDA 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.net http://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.Com BUSQUEDA 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 que http://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 control http://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 se http://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 RAM http://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 CARACTERES http://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 entre http://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 = ENABLE http://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.net http://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.Com BUSQUEDA 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 b'00000000' MOVWF TRISA Configura todo el puerto A como salida. MOVLW b'00000000' 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 b'00110000' 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 b'00111000' 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 b'00001110' 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 b'00000110' 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 esta http://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 PIC16F84 http://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.net http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (6 of 7) [07/07/2001 06:01:57 p.m.]
  • 24. HobbiePic.Com BUSQUEDA 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 de http://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.]