Está en la página 1de 10

SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001

ACADÉMICA Fecha: 12-septiembre-2023


Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15

INFORMACIÓN GENERAL

GUÍA DE APRENDIZAJE PRÁCTICO – EXPERIMENTAL / CONCEPTUAL / TÉCNICO /


MODALIDAD PRESENCIAL – VIRTUAL.
CARRERA: Electrónica NIVEL: Tercero
ASIGNATURA: Microcontroladores CÓDIGO: CET32
TIEMPO DE
NRO. PRÁCTICA: 02 2 Horas
DURACIÓN:
MODALIDAD Presencial X Virtual Autónomo Otra
TÍTULO PRÁCTICA: Aplicaciones con display y teclado

DESARROLLO
OBJETIVO:
Guiar al estudiante a la práctica de presentadores de datos de información como son un display de 7
segmentos y LCD.
Familiarizar el uso del teclado matricial y organizar cada uno de los proyectos a la preparación de este tipo de
elementos.
TRABAJO PREPARATORIO:
Consulta
● Consultar el datasheet del display LCD y sus formas de configuración de 4 y 8 bits.

Los displays LCD (Liquid Crystal Displays) suelen ser controlados por microcontroladores o
microprocesadores a través de un bus de datos. La diferencia entre el modo de 4 y 8 bits radica en la
cantidad de líneas de datos utilizadas para enviar comandos y datos al LCD.

Modo de 4 bits:

En el modo de 4 bits, se utilizan solo 4 líneas de datos (D4-D7) para transmitir información al LCD. El
microcontrolador envía comandos o datos en dos bloques de 4 bits cada uno. Primero se envían los 4
bits más significativos (MSB), seguidos por los 4 bits menos significativos (LSB).

El proceso de inicialización típico en modo de 4 bits implica enviar una secuencia de comandos
especiales al LCD para configurar la interfaz de 4 bits. Después de la inicialización, los datos y
SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001
ACADÉMICA Fecha: 12-septiembre-2023
Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15
comandos se envían en bloques de 4 bits.

Modo de 8 bits:

En el modo de 8 bits, se utilizan todas las 8 líneas de datos (D0-D7) para transmitir información al LCD
en un solo paso. Esto proporciona una transmisión de datos más rápida en comparación con el modo
de 4 bits.

Al igual que en el modo de 4 bits, la inicialización implica enviar una secuencia de comandos
específicos al LCD para configurar la interfaz de 8 bits. Después de la inicialización, los datos y
comandos se envían en bloques de 8 bits.

Para obtener información detallada sobre cómo configurar un display LCD específico, te recomendaría
consultar el datasheet proporcionado por el fabricante del LCD que estás utilizando. El datasheet
suele incluir información detallada sobre los comandos, secuencias de inicialización y otros aspectos
relevantes para la interfaz y configuración del LCD. Puedes buscar el datasheet en el sitio web del
fabricante o en otras fuentes confiables.

Ejercicios
4. Diseñe un programa para el funcionamiento de un teclado, lcd, display de 7 segmentos y que:
• Realizar una caja registradora de productos que permita sumar hasta 5 elementos
• Los costos de cada producto se podrán ingresar por medio de teclado matricial.
• La presentación de la información debe ser realizada tanto en LCD como display de 7 segmentos (6 dígitos).
• Tomar en cuenta el precio final que debe incluir el iva, en display LCD debe presentar con y sin iva, y en
display de 7 segmentos solo con iva.
• Debe existir una presentación de la tienda, mini market, bazar, etc. del estudiante por display de LCD, y
presentar por display de 7 segmentos algún logo representativo de
su tienda antes de empezar a trabajar.
#include <LiquidCrystal.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int mil, centena, decena, unidad, dato1 = 1234;
int dato, tecla, f1, f2, f3, f4, num, numero1, aux, aux1, aux2, aux3, aux4, aux5, opera,
veces;
SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001
ACADÉMICA Fecha: 12-septiembre-2023
Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15
float nro;
int bloqueo = 0, t = 0;
unsigned long tiempoAnterior = 0;
int x[10] = { 192, 249, 164, 176, 153, 146, 131, 248, 128, 152 };
int y[5] = { 209, 178, 227, 202, 197 };
float numero;

void setup() {
lcd.init();
lcd.backlight();
lcd.begin(16, 2);
DDRC = 0B00001111;
PORTC = 255;
pinMode(33, INPUT_PULLUP);
pinMode(32, INPUT_PULLUP);
pinMode(31, INPUT_PULLUP);
pinMode(30, INPUT_PULLUP);
dato = 16;
DDRA = 255;
DDRB = 255;
}

void loop() {
while (t == 0) {
barrid();
present();
unsigned long tiempoA = millis(); // Obtener el tiempo actual en milisegundos

// Verificar si ha pasado un segundo (2000 milisegundos)


if (tiempoA - tiempoAnterior >= 2000) {
// Realizar alguna acción cada segundo

// Actualizar el tiempo anterior al actual


tiempoAnterior = tiempoA;
lcd.clear();
t = 1;
}
}
lcd.setCursor(0, 0);
lcd.print(numero);
lcd.print(" ");

dato1 = numero;
separa();
barrido();
teclado();
if (dato < 10) {
lcd.clear();
bloqueo = 0;
num++;
if (num == 1) { numero = dato; }
if (num == 2) { numero = numero * 10 + dato; }
SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001
ACADÉMICA Fecha: 12-septiembre-2023
Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15
if (num == 3) { numero = numero * 10 + dato; }
if (num == 4) {
numero = numero * 10 + dato;
num = 0;
}
dato = 16;
}
if (bloqueo == 0) {
nro = numero;
}
if (dato == 10) {

veces++;
if (veces == 1) {
aux1 = numero;
}
if (veces == 2) {
aux2 = numero;
}
if (veces == 3) {
aux3 = numero;
}
if (veces == 4) {
aux4 = numero;
}
if (veces == 5) {
aux5 = numero;
}
lcd.setCursor(15, 0);
lcd.print("+");
opera = 1;
dato = 16;
num = 0;
}
if (dato == 11) {
bloqueo = 1;
num = 0;
veces = 0;
lcd.setCursor(15, 0);
lcd.print("=");
if (opera == 1) {
numero = aux1 + aux2 + aux3 + aux4 + aux5 + numero;
}
float numero2 = numero * 1.12;
nro = numero2;
lcd.setCursor(3, 0);
lcd.setCursor(0, 1);
lcd.print("Con IVA= ");
lcd.setCursor(10, 1);
lcd.print(nro);
dato = 16;
}
SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001
ACADÉMICA Fecha: 12-septiembre-2023
Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15
}

void separa() {
mil = nro / 1000;
centena = nro - mil * 1000;
aux = centena;
centena = centena / 100;
decena = aux - centena * 100;
aux = decena;
decena = decena / 10;
unidad = aux - decena * 10;
}
void barrido() {
PORTB = 0B11111110;
PORTA = x[mil];
delay(50);
PORTB = 0B11111101;
PORTA = x[centena];
delay(50);
PORTB = 0B11111011;
PORTA = x[decena];
delay(50);
PORTB = 0B11110111;
PORTA = x[unidad];
delay(50);
}

void teclado() {
tecla = 16;
PORTC = 0B11111110;
leer();
if (f1 == 0) { tecla = 1; }
if (f2 == 0) { tecla = 4; }
if (f3 == 0) { tecla = 7; }
if (f4 == 0) { tecla = 10; }
PORTC = 0B11111101;
leer();
if (f1 == 0) { tecla = 2; }
if (f2 == 0) { tecla = 5; }
if (f3 == 0) { tecla = 8; }
if (f4 == 0) { tecla = 0; }
PORTC = 0B11111011;
leer();
if (f1 == 0) { tecla = 3; }
if (f2 == 0) { tecla = 6; }
if (f3 == 0) { tecla = 9; }
if (f4 == 0) { tecla = 11; }
PORTC = 0B11110111;

if (tecla < 16) {


dato = tecla;
delay(300);
SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001
ACADÉMICA Fecha: 12-septiembre-2023
Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15
}
}
void leer() {
f1 = digitalRead(33);
f2 = digitalRead(32);
f3 = digitalRead(31);
f4 = digitalRead(30);
}
void barrid() {

PORTB = 0B11111110;
PORTA = y[0];
delay(50);
PORTB = 0B11111101;
PORTA = y[1];
delay(50);
PORTB = 0B11111011;
PORTA = y[2];
delay(50);
PORTB = 0B11110111;
PORTA = y[3];
delay(50);
}
void present() {
lcd.setCursor(0, 0);
lcd.print("ELECTRONICA");
lcd.setCursor(0, 1);
lcd.print("CRISTHIAN");
delay(2500);
}
SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001
ACADÉMICA Fecha: 12-septiembre-2023
Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15

5. Realizar un sistema de seguridad:


• Por medio de un teclado matricial debe armar el sistema de seguridad con una clave de acceso.
• Por medio de la misma clave se desarmará el sistema de seguridad.
• Colocar sensores para detectar las alarmas.
• Si coloca tres veces la clave se bloquea el sistema por 30 segundos.
• Si un sensor es activado cuan la alarma esta armada, sonará una alarma hasta que coloque la clave para
desarmarlo.
• Presentar la clave en display de 7 segmentos.
SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001
ACADÉMICA Fecha: 12-septiembre-2023
Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15

RESULTADOS ESPERADOS:

● Entiende la creación de algoritmos para solucionar problemas planteados con el uso de


microcontroladores.
● Comprende el funcionamiento de los microcontroladores al armarlos en un protoboard y probarlos
con la lógica propuesta.
● Analiza como optimizar la ejecución de sistemas microcontrolados.

RESULTADOS OBTENIDOS:
Actividades que el estudiante debe realizar o comprobar para incluirlas en el preparatorio, al finalizar o
posterior a la ejecución de la práctica, teniendo por lo menos que incluir:
Evidencia de las pruebas realizadas en la práctica (Hoja de preparatorio firmada por el docente).
SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001
ACADÉMICA Fecha: 12-septiembre-2023
Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15
SEGUIMIENTO, CONTROL Y EVALUACIÓN Código: ISUS-SGE-PD-001
ACADÉMICA Fecha: 12-septiembre-2023
Versión:2.00
Guía de Práctica en el Entorno Académico Página: 1 de 15

También podría gustarte