miércoles, 5 de agosto de 2020

LAB 6 - Manejo de una Pantalla LCD


LAB 6 - Manejo de una Pantalla LCD
CURSO DE PROGRAMACIÓN DE MICROCONTROLADORES PIC

PARTE A: Programación de Microcontroladores PIC de MICROCHIP.
MANEJO DE UNA PANTALLA LCD
 

CAPACIDAD TERMINAL

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.
COMPETENCIA ESPECIFICA DE LA SESION

• Conocer el Display LCD y su funcionamiento
• Programar eficientemente el LCD

CONTENIDOS A TRATAR

Pantalla LCD
Envío de datos y variables a una pantalla LCD
RESULTADOS

Diseñan y optimizan sistemas y procesos para cumplir con las condiciones establecidas y gestionando adecuadamente los recursos materiales y humanos.
MATERIALES Y EQUIPO

CCS Compiler instalado.
Entrenador de PICS
PIC16F877A
Guía de Laboratorio. El trabajo se desarrolla de manera GRUPAL.
PC con Software de simulación.
DIAGRAMA ESQUEMÁTICO:
diagrama LCD.png

CÓDIGO DE PROGRAMACIÓN EN PIC C COMPILER:

#INCLUDE <16F877A.H>
#USE DELAY(CLOCK=4000000) //Cristal externo 4MHz
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
#INCLUDE <lcd.c>

void MAIN()
{
LCD_INIT(); //Inicializa el LCD
LCD_PUTC("\f"); //Borrar el contenido del LCD
WHILE(TRUE)
{
LCD_GOTOXY(5,1); //Se ubica En la columna 5 fila 1
LCD_PUTC("Control"); //Muestre el mensaje "Control"
LCD_GOTOXY(3,2); //Ubicarse en la columna 3 fila 2
LCD_PUTC("Automatico"); // Sacar el mensaje "Automatico"
} //Cierra while true
}

#INCLUDE <16F877A.H>
#USE DELAY(CLOCK=4000000) //Cristal externo 4MHz
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
#INCLUDE <lcd.c>

int16 dato=0;

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_A0)) // Rutina para INCREMENTAR dato
{
dato++;
lcd_gotoxy(1,2);
printf (lcd_putc, "Valor: %4lu", dato) ;
while (!input(PIN_A0)) // Rutina ANTIRREBOTE por software
{}
}
IF (!input(PIN_A1))
{
dato--;
lcd_gotoxy(1,2);
printf (lcd_putc, "Valor: %4lu", dato) ;
while (!input(PIN_A1)) // Rutina ANTIRREBOTE por software
{}
}
}
}
pruebas
video 







RETO DE LA SEMANA:

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.

aqui vemos la programacion del reto de la semana 



video  del  reto 




observaciones 
  • para  poder hacer el laboratorio se necesito de un buen internet y ver el video completo ya que por la pandemia el internet es demasiado lento

conclusiones 
  • se logro poder armar el circuito dado y compilar en la aplicación cccompiler y así poder demostrar lo que el profesor enseño , cambiando algunos datos para poder ser modificado
  • se pudo observar bucles de control toma importancia en el presente laboratorio  nos permitio realizar operaciones múltiples, ya sea WHILE (mientras) o FOR (para una accion).






No hay comentarios:

Publicar un comentario