LABORATORIO
5
PROGRAMACIÓN DE UNA PANTALLA LCD
COMPETENCIA
ESPECÍFICA DE LA SESIÓN
·
Utilizar
al microcontrolador en aplicaciones de control electrónico.
·
Desarrollar
y ejecutar programas en un microcontrolador PIC.
·
Programar
y configurar interfaces básicas del microcontrolador.
I.
MARCO TEÓRICO
1)
¿Qué
es una pantalla LCD?
Una pantalla LCD (liquid crystal display:
‘pantalla de cristal líquido’ por sus siglas en inglés) es una pantalla delgada
y plana formada por un número de píxeles en color o monocromos colocados
delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos
electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía
eléctrica.
Está presente en un sin número de aparatos,
desde la limitada imagen que muestra una calculadora de bolsillo hasta
televisores de 50 o más pulgadas. Estas pantallas se componen de miles de
pequeños cristales líquidos, que no son sólidos ni líquidos en realidad, sino
un estado intermedio.
2)
Funcionamiento
de la pantalla LCD
La base de su funcionamiento hay que buscarla
en los cristales líquidos, elementos que se coloca entre dos capas de cristales
polarizados. Cada píxel de la pantalla podríamos decir que incluye moléculas
helicoidales de cristal líquido, que es un material especial que comparte
propiedades de un sólido y líquido.
II.
EVIDENCIA DEL LABORATORIO
#include
<16f877a.h>
#use delay (clock=20M)
#fuses HS, NOPROTECT,
NOWDT
#define LCD_ENABLE_PIN
PIN_D3 //Definimos los pines a ser
#define LCD_RS_PIN
PIN_D2 //pantalla LCD
#define LCD_RW_PIN
PIN_A0
#define LCD_DATA4
PIN_D4
#define LCD_DATA5
PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7
PIN_D7
#include <lcd.c>
//
Incluimos librería para manejar Pantalla LCD
int16 dato;
void main ()
{
lcd_init () ;
//
Inicializamos pantalla LCD
dato = 50;
//
Damos valor inicial para empezar la cuenta
printf (lcd_putc, "
CONTADOR") ; //
Mandamos mensaje por única vez
lcd_gotoxy(1,2);
printf (lcd_putc, "Valor:
%4lu", dato) ;
WHILE (true)
{
IF
(!input(PIN_D0)) //
Rutina para INCREMENTAR dato
{
dato++;
lcd_gotoxy(1,2);
printf
(lcd_putc, "Valor: %4lu", dato) ;
while
(!input(PIN_D0)) // Rutina ANTIRREBOTE por software
{}
}
IF
(!input(PIN_D1))
{
dato--;
lcd_gotoxy(1,2);
printf
(lcd_putc, "Valor: %4lu", dato) ;
while (!input(PIN_D1)) // Rutina ANTIRREBOTE por
software
{}
}
}
}
III.
VIDEO
DE LA TAREA
Se dispone de una pantalla LCD. Elaborar un programa que
INCREMENTE un número en 150 unidades cada vez que se presione un pulsador y
DECREMENTE dicho número en 25 unidades cada vez que se presione otro pulsador.
Si el
valor del número supera 1000 unidades, mostrar en la pantalla LCD en la primera
línea: “FULL”. Si el valor llega a ser menor o igual a 10, mostrar “VALOR
MINIMO”. En ambos casos el valor del número no debe incrementarse ni
decrementarse.
https://www.youtube.com/watch?v=FMXY0NtkVIo&feature=youtu.be
https://www.youtube.com/watch?v=FMXY0NtkVIo&feature=youtu.be
IV. OBSERVACIONES
·
Se observó que hubo varios saltos
cuando incrementamos 150 de forma muy rápido.
·
Se observa que si no declaramos con
gran precisión la fila de la pantalla LCD se mostrara en toda la pantalla.
·
Si sobrepasa en la fila y columna debimos dar una variable que nos
indique lo excesivo de los valores.
·
La pantalla LCD tiene su propia librería que si no copiamos este nos
mostrara error y nos será difícil copilar datos a la pantalla.
·
V. CONCLUSIONES
·
Se concluye que el tiempo que le demos a cada pulsador no nos de muchos
satos ya que esto retrasara su incremento será más preciso las pulsaciones que
le demos.
·
Se concluye que con este programa logramos el crecimiento de valores a
150 y también los decrecimiento de 25 indicándonos por medio de la pantalla LCD
que si nos faltan valores o estamos bien.
·
Se concluye que a través del programa Copiler CCS también se pueden declarar
variables para trabajar con LCD.
·
En los comandos de la pantalla LCD tenemos de proporcionar la dirección de
las filas y columnas en caso de que queramos colocar varios valores y también si
queremos ponerlos en enteros o decimales (lcd_gotoxy(1,2)), printf (lcd_putc,
"Valor: %4lu", dato)
