Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MODULOS LCD
Lista de Precios
MODULOS LCD
I NDI CE GENERAL
HAZ CLICK AQUI PARA IR AL CAPITULO I
CAPITULO IV
MODULOS LCD
Lista de Precios
MODULOS LCD
Siempre has querido incluir un modulo LCD a tus diseos electrnicos ? Nunca lo
habas podido hacer funcionar por que parecan muy complejos y no comprendas su
estructura organizacional ? Ahora PCB Electronics Systems dedica esta pequea
seccin para informarte en detalle toda la teora bsica de los Mdulos LCD o pantallas
de cristal liquido basado en la arquitectura HD-44780 de la empresa HITACHI. Aqu
encontraras como hacer funcionar los mdulos LCD, algunos ejemplos bsicos, ejemplo
de aplicaciones y mucho mas.
CAPI TULO I
1-. Breve Introduccin.
Antes de aparecer los mdulos LCD, nuestros diseos electrnicos utilizaban los Displays de
siete segmentos para poder mostrar la informacin, ademas de su gran limitacin de poder
mostrar los caracteres alfa numricos y smbolos especiales, tambin consuman demasiada
corriente y ocupaban demasiado espacio fsico. Posteriormente aparecieron otros tipos de
displays mas complejos que podan mostrar algunos caracteres y smbolos; pero tenan de
igual manera mucho consumo de corriente y espacio fsico desperdiciado.
Finalmente aparecieron los mdulos LCD o pantallas de cristal liquido la cual tienen la
capacidad de mostrar cualquier carcter alfa numrico. Estos dispositivos ya vienen con su
pantalla y toda la lgica de control pre-programada en la fabrica y lo mejor de todo es que el
consumo de corriente es mnimo y no se tendrn que organizar tablas especiales como se
hacia anteriormente con los displays de siete segmentos.
Las aplicaciones de los mdulos LCD son infinitas ya que podrn ser aplicados en la
informtica, comunicaciones, telefona, instrumentacin, robotica, automviles, equipos
industriales, etc. Todo queda a su imaginacin la gran cantidad de aplicaciones que tiene un
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (1 of 16) [07/07/2001 06:00:58 p.m.]
modulo LCD.
2-. Diversidad de algunos mdulos LCD:
En la actualidad los mdulos LCD existen una gran variedad de versiones clasificados en dos
grupos. El primer grupo esta referido a los mdulos LCD de caracteres ( solamente se podrn
presentar caracteres y smbolos especiales en las lineas predefinidas en el modulo LCD) y el
segundo grupo esta referido a los mdulos LCD matriciales ( Se podrn presentar caracteres,
smbolos especiales y grficos). Los mdulos LCD varan su tamao fsico dependiendo de la
marca; por lo tanto en la actualidad no existe un tamao estndar para los mdulos LCD.
Para el caso de la empresa VARITRONIX especializada en la fabricacin de LCD, existen
configuraciones mnimas desde una linea con un mnimo 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 configuracin tpica de un modulo LCD de
dos lineas por 16 caracteres por cada linea incluyendo los detalles de la matriz de como esta
conformado un carcter.
Otro patrn importante es el tamao 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 smbolo o un carcter alfa numrico en un modulo LCD.
Esta matriz define algunos aspectos importantes del carcter o el smbolo que estn
mostrando. Los aspectos que define esta matriz son:
Matriz de punto para un solo
carcter en un modulo LCD
Aspectos importantes que define la matriz de
puntos para un solo caracter en un modulo
LCD
1-. Altura del carcter definida por dos variables:
Alto de cada punto que conforma la matriz y
longitud de separacin entre cada punto que
conforma la matriz.
2-. Ancho del Carcter definido por dos
variables: Ancho de cada punto que conforma la
matriz y longitud de separacin entre cada punto
que conforma la matriz.
3-. Calidad grfica del carcter ( A mayor
cantidad de puntos dentro de la matriz, mayor
ser la calidad visual del carcter presentado por
el modulo LCD.
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (2 of 16) [07/07/2001 06:00:58 p.m.]
Los primeros mdulos LCD tenan 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 mdulos LCD denominada Back Light diseada
especialmente para mejorar la visualizacin 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. Tericamente segn un reportaje realizado por Edison Duque C. en la revista
Colombiana de Electrnica y Computadores N-. 12 del Tercer ao 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 tecnologa esta disponible en color para los mdulos LCD desde 4 colores hasta los
256 y las combinaciones de ellos.
3-. Identificacin de los pines de conexin de un modulo LCD no Matricial:
Los pines de conexin de un modulo LCD han sido estandarizados por el cual en la mayora
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 caractersticas
del fabricante. Por otro lado es de suma importancia localizar exactamente cual es el Pin
Numero 1 ya que en algunos mdulos se encuentra hacia la izquierda y en otros mdulos se
encuentra a la derecha. En caso de no estar seguro de la asignacin de los pines, localice la
hoja de caractersticas del fabricante.
Pin N-. Sismologa Nivel I/O Funcin
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (3 of 16) [07/07/2001 06:00:58 p.m.]
3.1-. Interpretacin del significado de los Pines del Modulo LCD:
El Pin numero 1 y 2 estn 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 debern 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 instruccin o podr colocar un dato que tan solo
representa un smbolo o un carcter alfa numrico; pero para que el modulo LCD pueda
entender la diferencia entre un dato o una instruccin 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
instruccin, por el contrario, si el Pin numero 4 = 1 le dir al modulo LCD que esta presente
un smbolo o un carcter alfa numrico.
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 ). Tambin 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 tambin 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 electrnico 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 opcin con la tecla de
ENTER. Si nuestro circuito electrnico por ejemplo le pregunta al usuario por medio del
modulo LCD lo siguiente:
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (4 of 16) [07/07/2001 06:00:59 p.m.]
Que refresco desea ?
Coca Cola / Pepsi Cola
Usted tendra 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 pequeo
circuito que ya la opcin esta seleccionada. He aqu la importancia del Pin numero 5 ya que
usted podr leer la seleccin 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 habilitacin del modulo LCD tiene una
finalidad bsica: conectar y desconectar el modulo. Esta desconexin no estar referida al
voltaje que le suministra la corriente al modulo; la desconexin 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 mayora de los circuitos electrnicos modernos que incluyan elementos electrnicos
como Microcontroladores, Memorias y Mdulos LCD, utilizan el mismo bus de datos. Esto
es para no tener un bus de datos independientemente por cada elemento electrnico, esto
implicara que los circuitos electrnicos sean mucho mas grandes por la cantidad de
conexiones necesaria a cada uno de los elementos.
Ahora como los Microcontroladores, memorias y mdulos LCD utilizan el mismo bus de
datos, deber existir en cada uno de ellos un Pin de habilitacin"E" que permita desconectar y
conectar cuando sea necesario. Por ejemplo si usted necesita trabajar con la memoria RAM
para obtener o escribir cierta informacin, 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 instruccin para el modulo LCD o un carcter alfa
numrico. 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: estarn destinados para suministrar la corriente al Back Light. Es
importante conocer que no todos los mdulos LCD disponen del Back Light aunque tenga los
pines de conexin en el circuito impreso.
4-. Tiempos mnimos requeridos para que una instruccin o un dato puedan ser
ejecutados.
Los Pines de control ( E, RS y E/W ) estn estrechamente relacionados ya que por medio de
ellos podemos especificar si queremos ejecutar una instruccin o leer / escribir un dato en la
pantalla o la memoria RAM; sin embargo existe una condicin 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 pequeo que el tiempo mnimo requerido, entonces el modulo LCD no tendr el tiempo
suficiente para responder a las instrucciones solicitadas por el usuario y por consecuencia se
perdern los datos o instrucciones segn sea el caso.
En otras palabras, las personas suelen cometer un error comn cuando se esta intentando
hacer funcionar un modulo LCD en el cual no consideran la velocidad de proceso del
microprocesador o el microcontrolador especficamente 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
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%201.asp (5 of 16) [07/07/2001 06:01:00 p.m.]
tiene una velocidad de proceso demasiado alta en los pines de control, cuando se ejecuta una
solicitud de cualquier tipo ( escritura / lectura e Instruccin. ), el modulo LCD no tendr la
capacidad de entender la solicitud hecha por el microcontrolador ya que esta se ejecuto
demasiado rpida. Para ello los programas o los circuitos electrnicos que manejan un
modulo LCD debern respetar los siguientes diagramas de tiempo:
4.1-. Diagrama de tiempo para una Instruccin:
Para enviarle una instruccin al modulo, primero hay que colocar la instruccin en el bus de
datos ( Pines del 7 al 14 ). Una vez que esta presente la instruccin en el bus de datos se
procede a ejecutar el diagrama de tiempo requerido para una instruccin 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 instruccin.
MODULOS LCD
CONECTADO CON UN
PIC16F84
Lista de Precios
MODULOS LCD
CAPI TULO I I
11-. Conectando un modulo LCD a un Microcontrolador PIC16F84.
En la actualidad los microcontroladores son los elementos electrnicos de mayor utilidad y
esta seccin nos describe en detalle como utilizar un modulo LCD con un microcontrolador
de la empresa Microship modelo PIC16F84.
Aqu suministraremos los diagramas de conexin electrnica, programas de ejemplo para el
microcontrolador comenzando con un nivel muy bsico hasta un nivel medianamente
avanzado. Estos programas podrs 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 seccin usted necesitara conocimientos mnimos 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 electrnicos que se utilizaban anteriormente
como por ejemplo la arquitectura de un microprocesador Z-80. En la siguiente imagen se
muestra el circuito electrnico 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 sern
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 sern mucho mas largas, por lo tanto dependiendo del
cristal utilizado podra causar problemas de entendimiento con el modulo LCD.
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (1 of 7) [07/07/2001 06:01:57 p.m.]
PROGRAMA PRINCIPAL:
CODIGO: COMENTARIO
CALL TEMPO2
Llamada de sub-rrutina de tiempo de 15
milisegundos. Esta Subrrutina es solicitada en el
momento que se enciende el circuito para esperar
que el modulo LCD estabilice sus voltajes
internos.
MOVLW b'00110000'
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
instruccin 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.
CALL LCDI
Llamada de una sub-rrutina 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.
MOVLW b'00111000'
Este comando carga en el acumulador del
PIC16F84 el numero binario que representa el
comando en el modulo LCD para trabajar con
Activacin de dos lineas en el modulo LCD.
Posteriormente a esta instruccin se ejecuta una
subrrutina llamada LCDI que fue explicada en la
instruccin numero 2 de esta misma tabla.
CALL LCDI
Llamada de una sub-rrutina 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.
MOVLW b'00001110'
Este comando carga en el acumulador del
PIC16F84 el numero binario que representa el
comando en el modulo LCD para trabajar con
encendido de la pantalla y el cursor en el modulo
LCD. Posteriormente a esta instruccin se ejecuta
una subrrutina llamada LCDI que fue explicada
en la instruccin numero 2 de esta misma tabla.
CALL LCDI
Llamada de una sub-rrutina 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.
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (3 of 7) [07/07/2001 06:01:57 p.m.]
MOVLW b'00000110'
Este comando carga en el acumulador del
PIC16F84 el numero binario que representa el
comando en el modulo LCD para trabajar con el
desplazamiento del cursor a la derecha
Posteriormente a esta instruccin se ejecuta una
subrrutina llamada LCDI que fue explicada en la
instruccin numero 2 de esta misma tabla.
CALL LCDI
Llamada de una sub-rrutina 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.
MOVLW "P" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "C" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "B" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW " " Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "E" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "L" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "E" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "T" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "R" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "O" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "N" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "I" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "C" Coloca el carcter ASCII en W
CALL LCDC Rutina para escribir un carcter en el LCD.
MOVLW "S" Coloca el carcter ASCII en W
CICLO GOTO CICLO
11.5-. Subrrutinas:
11.5.1-. Subrrutina para ejecutar una Instruccin.
Esta subrrutina que la hemos llamado LCDI configura el bus de control del modulo LCD para
ejecutar una instruccin que esta presente en el bus de datos. La instruccin 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 Instruccin 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
MOVWF PORTB
Coloca el contenido de "W" en el bus de
datos del modulo LCD.
BCF PORTA,LCD_E Coloca "0" en el Pin E
CALL TEMPO1
Llamada de una sub-rutina de tiempo de 40
micro segundos.
RETURN Finaliza la Rutina de tiempo.
11.5.2-. Subrrutina para escribir un dato o un carcter en el modulo LCD.
Esta subrrutina configura el bus de control del modulo LCD para escribir un dato que esta
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (4 of 7) [07/07/2001 06:01:57 p.m.]
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
MOVWF PORTB
Coloca el contenido de "W" en el bus de
datos del modulo LCD.
BCF PORTA,LCD_E Coloca "0" en el Pin E
CALL TEMPO1
Llamada de una sub-rutina de tiempo de 40
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 instruccin o un dato para dar el
tiempo necesario que requiere el modulo LCD para finalizar el proceso. Esta sub-rrutina
denominada TEMPO1 tiene una curacin 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 informacin presentada en esta seccin ha sido probada que
funciona correctamente.
Para facilitarle a usted el tiempo de transcripcin de los programas de prueba para nuestro
pequeo 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 pequea explicacin 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 traduccin en lenguaje de maquina del archivo
LCD1.ASM y es el que necesita el microcontrolador.
HAZ CLI CK AQUI PARA I R AL CAPI TULO I I I MODULOS LCD
CONECTADOS SERI ALMENTE CON UN PI C16F84
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%202.asp (5 of 7) [07/07/2001 06:01:57 p.m.]
Amigo Visitante, si usted tiene alguna sugerencia, comentario de nuestro trabajo, cualquier cosa que nos
quiera informar, le agradeceramos mucho que se pusiera en contacto con nosotros por medio del siguiente
correo electrnico: 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 ?.
MODULOS LCD
Lista de Precios
MODULOS LCD
CAPI TULO I I I
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (1 of 8) [07/07/2001 06:02:53 p.m.]
Si la imagen presentada anteriormente no la puede observar bien, puedes obtener una copia
haciendo click aqu. El tamao del archivo es de 137 Kb.
NOTAS IMPORTANTES ANTES DE COMENZAR:
En el diagrama esquemtico, el circuito integrado 4094 no tiene planteado los pines de
suministro de voltaje la cual bebern ser tomados en cuenta a la hora de montarlo en un
protoboard para las respectivas pruebas.
G
El circuito planteado en esta seccin, solamente tendr la capacidad de poder enviar un
dato al modulo LCD ( Escribir caracteres en la pantalla ) y enviar alguna instruccin
especifica de modulo; pero no tendr la capacidad de leer informacin almacenada
dentro del modulo LCD.
G
Para utilizar este circuito electrnico ( Mtodo Serial ) se requiere que la persona tenga
un mnimo de conocimientos del las funciones de cada uno de los pines de control del
modulo LCD.
G
Para entender este circuito electrnico 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 teora bsica que se requiere para escribir un carcter el la pantalla del
modulo LCD con este mtodo:
El circuito integrado 4094 es conocido como un integrado que recibe una informacin 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 informacin 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 carcter"A" en el modulo LCD, tenemos que
saber que la representacin binaria del carcter"A = 01000001", un programa interno en el
microcontrolador ( diseado por el programador ) deber tomar cada uno de los bits que
conforman el carcter"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
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (2 of 8) [07/07/2001 06:02:53 p.m.]
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) tambin 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 carcter"A" presente en las salidas del C.I. 4094 lo cual quiere decir
que ya se encuentra presente el carcter"A" en el bus de datos del modulo LCD. El dato ser
ledo 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 pequeo 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 carcter 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 carcter"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 funcin 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 funcin del Pin No. 8 del Microcontrolador (RB2) viene inmediatamente despus
de haber realizado la primera funcin. En el momento que se ejecuta la primera funcin, 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 carcter en la pantalla del modulo, se
tiene como condicin 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 carcter en la pantalla. En nuestro circuito el Pin RS del modulo LCD
esta controlado por el Pin RB0 del microcontrolador por medio de un pequeo circuito
conformado por C1, Q1, R1 y R4. Se podr observar que RB0 del microcontrolador tambin
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 carcter, 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 enva 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 carcter en la pantalla.
Si queremos enviar una instruccin 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 instruccin.
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (3 of 8) [07/07/2001 06:02:53 p.m.]
12-. Programas necesarios para el Microcontrolador PIC16F84, comezaremos con la
declaracin de constantes que sern utilizadas en el programa:
El siguiente cdigo representa algunas constantes reservadas del microcontrolador PIC16F84
y otras de asignacin personal. Estas instrucciones son para el ensamblador y las constantes
tratadas sern usadas bsicamente en todo nuestro programa. La seccin azul representa los
registros de funciones especiales del microcontrolador, y finalmente la seccin morada
representa las constantes que definirn los tiempos de las rutinas de temporizacin.
DECLARACION DE CONSTANTES.
CODIGO: COMENTARIO
PORTB EQU 0X06 Direccin del puerto B
TRISB EQU 0X06 Configurador del puerto B para I/O.
STATUS EQU 0X03 Direccin del registro STATUS.
CARRY EQU 0
Bit del registro STATUS que informa si existe
acarreo o no.
RETARDO1 EQU 0X0D Constante del temporizador 1
RETARDO2 EQU 0X00 Constante del temporizador 2
INSTRUCT EQU 0 Bit de banderas
ClockOut EQU 0
Bit del puerto B para controlar el CLOCK del CI
4094
DataOut EQU 1 Bit del puerto B para controlar el DATO del CI 4094
StrobeOut EQU 2
Bit del puerto B para controlar el STROBE del CI
4094
12.1-. Reserva de Memoria RAM:
El PIC16F84 tiene disponible 68 Bytes de memoria RAM. La memoria comienza desde la
direccin 0X0C ( Posicin numero Dcima Tercera del mapa de registros ) y termina en la
posicin 0X4F ( Posicin numero 80 del mapa de registros ).
La instruccin ORG le indica al ensamblador donde debe comenzar a reservar la memoria
RAM que a continuacin declaramos.
Para nuestro pequeo experimento, tan solo necesitamos seis bytes de memoria RAM.
RESERVA DE MEMORIA RAM
CODIGO: COMENTARIO
ORG 0X0C Inicio de los registros de Uso general
CONT1 RES 1
RESERVA DE UN BITE DE MEMORIA RAM
PARA LAS VARIABLES CONT1, CONT2,
BANDERAS, OUTPUTREG, COUNTERREG Y
cont1
CONT2 RES 1
BANDERAS RES 1
cont1 RES 1
OutPutReg RES 1
CounterReg RES 1
12.2-. Configuracin de los Puertos:
El siguiente cdigo le dice al microcontrolador PIC16F84 que el puerto "A" con sus cinco
lineas y el puerto "B" con sus ocho lineas sern configurados como salidas para nuestro
pequeo experimento.
CONFIGURACION DE LOS PUERTOS:
CODIGO: COMENTARIO
ORG 0X00
BSF STATUS,5 Cambio al banco 1
MOVLW b'11111000'
MOVWF TRISB Configura todo el puerto Bcomo salida.
BCF STATUS,5 Cambio al banco 0
12.3-. Programa Principal:
El programa principal en nuestro pequeo proyecto, lo hemos dividido en dos secciones de
colores. La seccin en color azul representan las instrucciones necesarias para la
inicializacin del modulo LCD. La seccin 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 pequea informacin para que usted entienda que es lo
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (4 of 8) [07/07/2001 06:02:53 p.m.]
que sucede cuando se ejecuta la instruccin sealada.
PROGRAMA PRINCIPAL:
CODIGO: COMENTARIO
CALL TEMPO2
Llamada de sub-rrutina de tiempo de 15
milisegundos. Esta Subrrutina es solicitada
en el momento que se enciende el circuito
para esperar que el modulo LCD estabilice
sus voltajes internos.
BSF BANDERAS,INSTRUCT
MOVLW b'00110000'
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 instruccin 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.
CALL salidaLCD
Llamada de una sub-rrutina 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.
CALL TEMPO1
MOVLW b'00111000'
Este comando carga en el acumulador del
PIC16F84 el numero binario que representa
el comando en el modulo LCD para trabajar
con Activacin de dos lineas en el modulo
LCD. Posteriormente a esta instruccin se
ejecuta una subrrutina llamada LCDI que
fue explicada en la instruccin numero 2 de
esta misma tabla.
CALL SALIDALCD
Llamada de una sub-rrutina 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.
CALL TEMPO1
MOVLW b'00001110'
Este comando carga en el acumulador del
PIC16F84 el numero binario que representa
el comando en el modulo LCD para trabajar
con encendido de la pantalla y el cursor en
el modulo LCD. Posteriormente a esta
instruccin se ejecuta una subrrutina
llamada LCDI que fue explicada en la
instruccin numero 2 de esta misma tabla.
CALL SALIDALCD
Llamada de una sub-rrutina 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.
CALL TEMPO1
MOVLW b'00000110'
Este comando carga en el acumulador del
PIC16F84 el numero binario que representa
el comando en el modulo LCD para trabajar
con el desplazamiento del cursor a la
derecha Posteriormente a esta instruccin se
ejecuta una subrrutina llamada LCDI que
fue explicada en la instruccin numero 2 de
esta misma tabla.
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (5 of 8) [07/07/2001 06:02:53 p.m.]
CALL SALIDALCD
Llamada de una sub-rrutina 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.
CALL TEMPO1
BCF BANDERAS, INTRUCT
MOVLW "P" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "C" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "B" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW " " Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "E" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "L" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "E" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "T" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "R" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "O" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "N" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "I" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "C" Coloca el carcter ASCII en W
CALL SALIDALCD Rutina para escribir un carcter en el LCD.
MOVLW "S" Coloca el carcter ASCII en W
CICLO GOTO CICLO
12.4-. Subrrutinas:
12.4.1-. Subrrutina para la comunicacion con el modulo LCD.
Esta subrrutina que la hemos llamado SALIDALCD que consiste en enviar un dato de ocho
bits por el pin de datos de forma sincrona ( Uno detras del otro) controlados por el pulso de
reloj. Despues de transmitir el dato se aplica la sea del strobe para que el dato completo del
CI 4094 pase a sus salidas y el LCD lo capture. Todo este proceso se hace tomando en cuenta
los tiempos de carga y descarga del capacitor y el tiempo de respuesta del modulo LCD.
SUBRRUTINA DE TIEMPO ( SALIDALCD)
CODIGO: COMENTARIO
SALIDALCD MOVWF OUTPUTREG
BCF PORTB,CLOCLOUT
BTFSS BANDERAS,INSTRUCT
BSF PORTB,CLOCKOUT
MOVLW .140
MOVWF CONT1
LOADCAPLOOP DECFSZ CONT1,1
GOTO LOADCAPLOOP
BSF PORTB,CLOCKOUT
MOVLW .8
MOVWF COUNTERREG
BCF PORTB,CLOCKOUT
BCF PORTB,DATAOUT
RLF OUTPUTREG,1
BTFSC STATUS,CARRY
BSF PORTB,DATAOUT
BSF PORTB,CLOCKOUT
DECFSZ COUNTERREG,1
HobbiePic.Com
http://www.hobbiepic.com/COMO%20FUNCIONA...OSAS/Modulos%20LCD/Modulos%20LCD%203.asp (6 of 8) [07/07/2001 06:02:53 p.m.]
GOTO NEXTOUT
BCF PORTB,CLOCKOUT
BSF PORTB,STROBEOUT
BCF PORTB,STROBEOUT
RETLW 0