Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORMACIÓN GENERAL
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
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;
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
RESULTADOS ESPERADOS:
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