Está en la página 1de 6

Área Académica Electricidad y Electrónica

Sede: Iquique
Docente: Lieter Javier Silva Díaz

Visualización. Ejercicios.

Sumario:

• Visualización mediante Display o Lámpara de 7 segmentos.


• Visualización mediante Display alfanumérico.

Ejercicio 1:

Diseñe un sistema basado en microcontroladores que permita mostrar el número 0 (mientras el


botón esté presionado) y 9 (cuando no esté presionado). Para esto utilice una lámpara 7
segmentos de cátodo común. Esta está conectada en el Puerto C como se muestra en la figura 1.

Figura 1: Circuito del ejercicio 1.

Ejercicio 2:

El siguiente ejercicio es para aprender a visualizar textos y números en un visualizador o display


alfanumérico y crear habilidades en el trabajo con estas herramientas.

Se utilizará el display LM016L que se conectará en el puerto C del PIC18F45K22, como se muestra
en la figura 2.

Se trabajará con una guía para el desarrollo de una serie de pasos para comprender como
visualizar letras y números en este display. El objetivo de este ejercicio no es desarrollar una
aplicación práctica, sino ejercitar cómo visualizar caracteres alfanuméricos con el display LM016L.
Área Académica Electricidad y Electrónica
Sede: Iquique
Docente: Lieter Javier Silva Díaz

Figura 2: Circuito del ejercicio 2.

Primero debe configurar el oscilador interno y el Puerto C como salida para la conexión del display.

Luego copiar los drivers para trabajar con el display (lcd.h y lcd.c) en la carpeta del proyecto.

Después agregar estos archivos al proyecto (como se indicó en taller anterior) e incluir la librería
lcd.h en el main para poder utilizar las funciones de estos drivers para el trabajo con el
visualizador.

#include "lcd.h"

No olvidar, inicializar el LCD

LCD_Initialize();

Paso 1: Visualizar un texto o cadena de caracteres.

#include "mcc_generated_files/mcc.h"
#include "lcd.h"

/*
Main application
*/
void main(void)
{
// Initialize the device
Área Académica Electricidad y Electrónica
Sede: Iquique
Docente: Lieter Javier Silva Díaz

SYSTEM_Initialize();
LCD_Initialize();

//Ejemplo cómo escribir texto


//Escribir un texto en la línea 1
LCDGoto(0, 0); //ubicarse en la posición inicial. Caracter 0 y línea 0 (0,0)
LCDPutStr("Esto es un texto"); //Escribir (en esta posición) la cadena de caracteres: "Esto es un
texto"
//Escribir un texto en la línea 2
LCDGoto(0, 1); //ubicarse en la segunda línea. Caracter 0 y línea 1 (0,1)
LCDPutStr("texto en linea 2"); //Escribir (en esta posición) la cadena de caracteres: "Esto es un
texto"

while (1)
{
// Add your application code
}
}
/**
End of File
*/

Simule en Proteus, luego escriba otros textos para que observe su funcionamiento.

Nota: Recuerde que puede insertar 2 líneas de texto (L0 y L1) y 16 caracteres por cada línea (desde
C0 hasta C15). Ver figura 3

Figura 3: Organización de caracteres en el LCD.

Paso 2: Visualizar un número entero y uno real.

Para visualizar los números (con el driver que se está trabajando) primero hay que convertirlo a
una cadena de caracteres para luego visualizarlos. Esto se hace con una función sprintf() que se
encuentra en la biblioteca stdio.h

El código quedaría como se muestra a continuación.


Área Académica Electricidad y Electrónica
Sede: Iquique
Docente: Lieter Javier Silva Díaz

#include "mcc_generated_files/mcc.h"
#include "lcd.h"
#include <stdio.h>

/*
Main application
*/
void main(void)
{
// Initialize the device
SYSTEM_Initialize();
LCD_Initialize();

//inicialización de variables
int a = 2; //variable tipo entero (que se va a mostrar en el LCD)
float b = 2.5; //variable tipo real (que se va a mostrar en el LCD)
char cadena[20]; //arreglo de caracteres (cadena vacía)

//Ejemplo cómo escribir una variable tipo entero (int)


sprintf(cadena, "N. Entero: %u",a); //convertir el valor entero a y guardarlo en la cadena de
caracteres cadena
LCDGoto(0, 0); //ubicarse en la posición inicial. Caracter 0 y línea 0 (0,0)
LCDPutStr(cadena); //Escribir la cadena con el número entero

//Ejemplo cómo escribir una variable tipo real (float)


sprintf(cadena, "N. Real: %.2f",b); //convertir el valor real b y guardarlo en la cadena de
caracteres cadena
LCDGoto(0, 1); //ubicarse en la segunda línea. Caracter 0 y línea 1 (0,1)
LCDPutStr(cadena); //Escribir la cadena con el número real

while (1)
{
// Add your application code
}
}
/**
End of File
*/

Paso 3: Visualizar un texto o cadena de caracteres durante 3 segundos, borrar lo escrito y luego
visualizar un número entero y uno real.

#include "mcc_generated_files/mcc.h"
#include "lcd.h"
#include <stdio.h>
Área Académica Electricidad y Electrónica
Sede: Iquique
Docente: Lieter Javier Silva Díaz

/*
Main application
*/
void main(void)
{
// Initialize the device
SYSTEM_Initialize();
LCD_Initialize();

//inicialización de variables
int a = 2; //variable tipo entero (que se va a mostrar en el LCD)
float b = 2.5; //variable tipo real (que se va a mostrar en el LCD)
char cadena[20]; //arreglo de caracteres (cadena vacía)

//Ejemplo cómo escribir texto


//Escribir un texto en la línea 1
LCDGoto(0, 0); //ubicarse en la posición inicial. Caracter 0 y línea 0 (0,0)
LCDPutStr("Esto es un texto"); //Escribir (en esta posición) la cadena de caracteres: "Esto es un
texto"
//Escribir un texto en la línea 2
LCDGoto(0, 1); //ubicarse en la segunda línea. Caracter 0 y línea 1 (0,1)
LCDPutStr("texto en linea 2"); //Escribir (en esta posición) la cadena de caracteres: "Esto es un
texto"

//demora de 3 segundos para ver el resultado de la operación anterior


__delay_ms(3000);

//borrar lo escrito para que no queden remanentes del texto anterior cuando se escriba
nuevamente
LCDGoto(0, 0); //ubicarse en la posición inicial. Caracter 0 y línea 0 (0,0)
LCDPutStr(" ");//16 espacios
LCDGoto(0, 1); //ubicarse en la segunda línea. Caracter 0 y línea 1 (0,1)
LCDPutStr(" ");//16 espacios

//Ejemplo cómo escribir una variable tipo entero (int)


sprintf(cadena, "N. Entero: %u",a); //convertir el valor entero a y guardarlo en la cadena de
caracteres cadena
LCDGoto(0, 0); //ubicarse en la posición inicial. Caracter 0 y línea 0 (0,0)
LCDPutStr(cadena); //Escribir la cadena con el número entero

//Ejemplo cómo escribir una variable tipo real (float)


sprintf(cadena, "N. Real: %.2f",b); //convertir el valor real b y guardarlo en la cadena de
caracteres cadena
LCDGoto(0, 1); //ubicarse en la segunda línea. Caracter 0 y línea 1 (0,1)
LCDPutStr(cadena); //Escribir la cadena con el número real
Área Académica Electricidad y Electrónica
Sede: Iquique
Docente: Lieter Javier Silva Díaz

while (1)
{
// Add your application code
}
}
/**
End of File
*/

También podría gustarte