You are on page 1of 16

“INSTITUTO POLITÉCNICO NACIONAL”

Escuela Superior de Ingeniería


Mecánica y Eléctrica Unidad Zacatenco

Ingeniería en Comunicaciones y Electrónica

Aplicación No. 1 LCD

Alumnos:
Bautista Cruz Juan Antonio
Morales Figueroa Isaac Aaron

Profesor: Gómez Salazar Victor Manuel

Grupo: 7CM9

Fecha de entrega: 18-septiembre-2018


INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA

OBJETIVOS
• Conocer el funcionamiento del display LCD 16 x2, además de su set de instrucciones
• Construir, compilar y simular un código de programa en C18 para el microcontrolador
PIC18F4550 en el programa de desarrollo MPLAB IDE v8.53.

INTRODUCCION

LCD 16X2
Descripción: La pantalla de cristal liquido o LCD (Liquid Crystal Display) es un dispositivo
µControlado de visualización grafico para la presentación de caracteres, símbolos o incluso
dibujos (en algunos modelos), es este caso dispone de 2 filas de 16 caracteres cada una y
cada carácter dispone de una matriz de 5x7 puntos (pixeles), aunque los hay de otro número
de filas y caracteres. Este dispositivo está gobernado internamente por un microcontrolador y
regula todos los parámetros de presentación, este modelo es el más comúnmente usado y esta
información se basará en el manejo de este u otro LCD compatible

Características principales:
-Pantalla de caracteres ASCII, además de los caracteres Kanji y griegos.
-Desplazamiento de los caracteres hacia la izquierda o la derecha.
-Proporciona la dirección de la posición absoluta o relativa del carácter.
-Memoria de 40 caracteres por la línea de pantalla.
-Movimiento del cursor y cambio de su aspecto.
-Permite que el usuario pueda programar 8 caracteres.
-Conexión a un procesador usando un interfaz de 4 u 8 bits
Funcionamiento: Para comunicarse con la pantalla LCD podemos hacerlo por medio de sus
patitas de entrada de dos maneras posibles, con bus de 4 bits o con bus de 8 bits, este ultimo
es el que explicare y la rutina también será para este. En la siguiente figura vemos las dos
maneras posibles de conexionar el LCD con un pic.

Conexionado con bus de 4 bits Conexionado con bus de 8 bits


INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA
Como puede apreciarse el control de contraste se realiza al dividir la alimentación de 5V con
una resistencia variable de 10K.

Las líneas de datos son triestado, esto indica que cuando el LCD no está habilitado sus
entradas y salidas pasan a alta impedancia.

Descripción de pines:

PIN Nº SIMBOLO DESCRIPCION


1 Vss Tierra de alimentación GND
2 Vdd Alimentación de +5V CC
3 Vo Contraste del cristal líquido. (0 a +5V)
Selección del registro de control/registro de datos:
4 RS RS=0 Selección registro de control
RS=1 Selección registro de datos
Señal de lectura/escritura:
5 R/W R/W=0 Escritura (Write)
R/W=1 Lectura (Read)
Habilitación del módulo:
6 E E=0 Módulo desconectado
E=1 Módulo conectado
7-14 D0-D7 Bus de datos bidireccional.

JUEGOS DE INSTRUCCIONES:

Estas son las instrucciones para el control del módulo LCD

CLEAR DISPLAY
Borra el módulo LCD y coloca el cursor en la primera posición
(dirección 0). Pone el bit I/D a 1 por defecto.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 0 0 0 0 0 1
Tiempo de ejecución: 1.64mS

HOME
Coloca el cursor en la posición de inicio (dirección 0) y hace que el display comience a
desplazarse desde la posición original. El contenido de la memoria RAM de datos de
visualización (DD RAM) permanece invariable. La dirección de la memoria RAM de datos para
la visualización (DD RAM) es puesta a 0.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 0 0 0 0 1 X
Tiempo de ejecución: 1.64mS

ENTRY MODE SET


Establece la dirección de movimiento del cursor y especifica si la visualización se va
desplazando a la siguiente posición de la pantalla o no. Estas operaciones se ejecutan durante
la lectura o escritura de la DD RAM o CG RAM. Para visualizar normalmente poner el bit S=0.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 0 0 0 1 I/D S
Tiempo de ejecución: 40µS
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA

DISPLAY ON/OFF CONTROL


Activa o desactiva poniendo en ON/OFF tanto al display (D) como al cursor (C) y se establece
si este último debe o no parpadear (B).

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 0 0 1 D C B
Tiempo de ejecución: 40µS

CURSOR OR DISPLAY SHIFT


Mueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datos de
visualización DD RAM.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 0 1 S/C R/L X X
Tiempo de ejecución: 40µS

FUNCTION SET
Establece el tamaño de interfase con el bus de datos (DL), número de líneas del display (N) y
tipo de carácter (F)

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 1 DL N F X X
Tiempo de ejecución: 40µS

SET THE CG RAM ADDRESS


El módulo LCD además de tener definidos todo el conjunto de caracteres ASCII, permite al
usuario definir 4 u 8 caracteres gráficos. La composición de estos caracteres se va guardando
en una memoria llamada CG RAM con capacidad para 64 bytes. Cada carácter gráfico definido
por el usuario se compone de 16 u 8 bytes que se almacenan en sucesivas posiciones de la
CG RAM.

Mediante esta instrucción se establece la dirección de memoria CG RAM a partir de la cual se


irán almacenando los bytes que definen un carácter gráfico. Ejecutando este comando todos
los datos que se lean o escriban posteriormente, lo hacen desde esta memoria CG RAM.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 1 Dirección de la CG RAM
Tiempo de ejecución: 40µS

SET THE DD RAM ADDRESS


Los caracteres o datos que se van visualizando, se van almacenando en una memoria llamada
DD RAM para de aquí pasar a la pantalla.

Mediante esta instrucción se establece la dirección de la memoria


DD RAM a partir de la cual se irán almacenando los datos a visualizar. Ejecutando este
comando, todos los datos que se escriban o lean posteriormente lo harán desde esta memoria
DD RAM. Las direcciones de la 80h a la 8Fh corresponden con los 16 caracteres del primer
renglón y de la C0h a la CFh con los 16 caracteres del segundo renglón, para este modelo de
LCD.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 1 Dirección de la DD RAM
Tiempo de ejecución: 40µS
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA

READ BUSY FLAG & ADDRESS


Cuando el módulo LCD está ejecutando cualquiera de estas instrucciones, tarda un cierto
tiempo de ejecución en el que no se debe mandar ninguna instrucción. Para ello dispone de un
flag llamado BUSY (ocupado) que indica que se está ejecutando una instrucción previa.

Esta instrucción de lectura informa del estado de dicho flag además de proporcionar el valor
del contador de direcciones de la CG RAM o de la DD RAM según la última que se haya
empleado.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 1 BF Dirección de la CG RAM o DD RAM
Tiempo de ejecución: 40µS

WRITE DATA TO GG OR DD RAM


Mediante este comando se escribe en la memoria DD RAM los datos que se quieren presentar
en pantalla y que serán los diferentes códigos ASCII de los caracteres a visualizar.

Igualmente se escribe en la memoria CG RAM los diferentes bytes que permiten confeccionar
caracteres gráficos a gusto del usuario.

El escribir en uno u otro tipo de memoria depende de si se ha empleado previamente la


instrucción de direccionamiento DD RAM o la de direccionamiento CG RAM.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


1 0 Código ASCII o byte del carácter gráfico
Tiempo de ejecución: 40µS

READ DATA FROM CG RAM OR DD RAM


Mediante este comando se lee de la memoria DD RAM los datos que haya almacenados y que
serán los códigos ASCII de los caracteres almacenados.

Igualmente se lee de la memoria CG RAM los diferentes bytes con los que se ha confeccionado
un determinado carácter gráfico.

El leer de uno u otro tipo de memoria depende de si se ha empleado previamente la instrucción


de direccionamiento de la DD RAM o la de direccionamiento CG RAM.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


1 1 Código ASCII o byte del carácter gráfico
Tiempo de ejecución: 40µS
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA

ABREVIATURAS:

Abreviaturas empleadas en los códigos anteriores:

1 - Desplaza la visualización cada vez que se escribe un dato


S
0 - Modo normal
1 - Incremento del cursor
I/D
0 - Decremento del cursor
1 - Desplaza el display
S/C
0 - Mueve el cursor
1 - Desplazamiento a la derecha
R/L
0 - Desplazamiento a la izquierda
1 - Módulo ocupado
BF
0 - Módulo disponible
1 - Bus de datos de 8 bits
DL
0 - Bus de datos de 4 bits
1 - LCD de dos líneas
N
0 - LCD de una línea
1 - Carácter de 5 x 10 puntos
F
0 - Carácter de 5 x 7 puntos
1 - Parpadeo del cursor ON
B
0 - Parpadeo del cursor OFF
1 - Cursor ON
C
0 - Cursor OFF
1 - Display ON
D
0 - Display OFF
X Indeterminado
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA
DESARROLLO
Creamos el nuevo proyecto en MPLAB X IDE.

Seleccionamos la opción de STANDALONE PROJECT

Escribimos el nombre del PIC que usaremos


INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA
Escogemos la opción de SIMULATION

Seleccionamos el compilador que usaremos XC8

Nombramos nuestro proyecto


INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA

En la opción de SOURCE FILES agregamos uno nuevo

Nos creara una nueva fuente en la carpeta de SOURCE FILES y podremos comenzar a
escribir nuestro código
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA

Son las partes fundamentales del


código ya que se llama a las
librerías, se declaran las funciones
principales y también se declara la
configuración del pic.

Se hace la declaración de las


variables globales a utilizar

Programa principal.

Se configuran los puertos de


entrada y salida, Config_Puerto
configura el puerto D como salidas
para el LCD.
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA

En el programa
principal, se inicializa
el LCD con el cursor
apagado, así como el
parpadeo, se inicia a
valor en 31, pero con
el aumento que se le
da imprime la
dirección 32 que es el
primer dato de la
tabla mostrada
anteriormente y es un
espacio o bien está
en blanco.
En seguida hace las
operaciones
correspondientes
para mostrar en qué dirección es que se encuentra estas operaciones son
realizadas como se muestra a continuación

Con estas operaciones haciendo la


división entre 10 obtenemos la
centena, decena y unidad para
mostrar el numero decimal en la
pantalla, después continuamos a
imprimir que es lo siguiente:
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA
Con comando LCD
seleccionamos la línea en que
vamos a imprimir, después
imprimimos los mensajes que
son estáticos como lo es Numero,
para la línea 1 y Dato para la
línea 2, después de eso
imprimimos la Centena, Decena
y Unidad para mostrar la
dirección en decimal

Se imprime lo que tiene auxiliar


que es lo que tiene dato y esto
muestra lo que hay en ese lugar.

Volvemos a principal y si el botón sigue sin presionar,


entonces valor retoma aux que es un auxiliar ya que al salir
de la función operaciones valor es 0, lo aumenta y realiza
los pasos anteriores
Si el botón se presiona imprime el mismo mensaje una y
otra vez
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA
RESULTADOS
SIMULACION EN PROTEUS

Diagrama de simulación

Programa simulado corriendo.


INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA

LCD en físico mostrando la dirección y su dato correspondiente

Si se presiona el botón del reset el LCD


vuelve a la dirección inicial 32 que es un
espacio en blanco como se mostro en la tabla
anterior

Llega hasta la dirección 255 que es un cuadro


lleno de 5x7

Como en la simulación como en físico en la


dirección 33 tenemos el signo ‘!’ lo que nos
indica que todo funciona correctamente

Si se presiona el botón se imprime lo mismo


una y otra vez.
INSTITUTO POLITECNICO NACIONAL
ESIME ZACANTENCO
INGENIERIA EN COMUNICACIONES Y ELECTRONICA

PROBLEMAS PRESENTADOS
El primer problema que tuvimos fue al simularlo en Proteus ya que al momento de correr la
simulación esta no funcionaba, y en el display no mostraba nada, fue cuando apretamos varias
veces el botón el programa pudo correr de forma correcta, mostrando las direcciones y datos
adecuados. El segundo problema que tuvimos fue el armado en físico de nuestro Display LCD
ya que colocamos un valor de resistencia muy alta en la terminal A, esto ocasiono que no se
pudiera ver el Display, pero afortunadamente lo resolvimos colocando una resistencia de un
valor de 47 ohm.

CONCLUSIONES
Con el desarrollo de esta practica se aprendió el funcionamiento de un display LCD 16x2, y
como es que se debe configurar mediante su hoja de datos para poder adaptarlo a nuestros
objetivos, la configuración se da por medio de la plantilla que se nos fue proporcionada ya que
una vez sabiendo como se configura el LCD es muy fácil de usar. Mediante la realización del
programa se pudo observar toda la tabla de datos del LCD ya que este código diseñado por
nosotros muestra de carácter en carácter que es lo que contiene el LCD y se le fue agregado
un botón que si es presionado nos muestra el carácter en especifico donde se encuentra, esto
lo hace mientras el botón esta presionado y con esto nos ayuda a visualizar de mejor manera
los datos por si queremos tomar un dato en específico.

Bautista Cruz Juan Antonio

En esta práctica aprendimos el funcionamiento del display LCD 16x2, además de su set de
instrucciones, por medio de esta aplicación pudimos ver todo el código de caracteres que el
LCD nos puede ofrecer, además de la visualización de un especifico carácter al oprimir un
botón en donde podíamos detener la secuencia hasta que dejemos de oprimir el botón. Esta
práctica fue un poco difícil de simular en PROTEUS donde al momento de correr la simulación
esta no funcionaba, y en el display no mostraba nada, aunque en la simulación todo parecía
perfecto, al momento de llevarlo a la práctica nos tomó algo de tiempo terminar la aplicación,
pero al final pudimos solucionar los problemas que se presentaron y entregamos la aplicación
satisfactoriamente.
Morales Figueroa Isaac Aaron

WEBGRAFIA

AlphanumericAppNotes.pdf
http://www.bolanosdj.com.ar/SOBRELCD/TEORIALCDV1.pdf

You might also like