Programación con Display de 7 segmentos
Competencia Específica de la sesión
- Conocer el Display de 7 segmentos y su funcionamiento
- Conocer las técnicas de multiplexación
- Programar HMI para juego de encestar
¿Qué
es una variable?
Una variable es un espacio en la memoria, en el cual el
programador asigna un valor determinado por el tipo de dato que el lenguaje de
programación va soportar.
Es representada por un nombre que es asignado por el
programador, y se nombra justo después de su tipo de dato, los siguientes son
los tipos de datos esenciales:
- int; es numérico sirve para números enteros sin punto
decimal (1,2,3,4.. )
- float; es numérico y sirve para números con parte
fraccionaria, es decir con punto decimal ( 1.2, 1.3, 1.4, ….)
- char; es de tipo carácter y cadena de caracteres, es decir
que puedes asignar desde una letra, símbolo o numero hasta una palabra o serie
de caracteres ( a, 2, !, &, hola, etc.)
- bool; es de tipo verdadero o falso, este tipo de dato
mostrara en pantalla un “1” en caso de ser true o “0” en caso de ser false.
Sofware
#include <16f877a.h>
#use delay (clock=20M)
#fuses HS, NOPROTECT, NOWDT
int tabBCD[10]={0b00111111,0b00000110,0b01011011,0b01001111,0b01100110,0b01101101,0b01111101,0b00000111,0b01111111,0b01101111};
int delay=5;
int i;
int16 dato=0;
int16 unidades=0, decenas=0, centenas=0;
// Funcion que descompone un número Entero de 4 cifras
void descomp_entero(int16 valor)
{
centenas = (int16) valor / 100;
valor -= centenas * 100;
decenas = (int16) valor / 10;
valor -= decenas * 10;
unidades = (int16) valor;
}
// Funcion para displayar en forma multiplexada
void visualizar(void)
{
output_b(tabBCD[centenas]);
output_a(0b00001000);
delay_ms(delay);
output_b(tabBCD[decenas]);
output_a(0b00000100);
delay_ms(delay);
output_b(tabBCD[unidades]);
output_a(0b00000010);
delay_ms(delay);
}
// Funcion para emitir un pitido
void BIP()
{
FOR (i=0;i<=100;++i)
{
output_high(PIN_E1);
delay_ms(1);
output_low(PIN_E1);
delay_ms(1);
}
}
// FUNCION PRINCIPAL VOID (MAIN)
void main ()
{
dato = 392;
descomp_entero(dato);
visualizar();
while(1)
{
IF (!input(PIN_D0))
{
BIP();
dato = dato + 5;
descomp_entero(dato);
delay_ms(300);
}
IF (!input(PIN_D1))
FOR (i=0;i<=4;++i)
{
{
dato = dato - 1;
descomp_entero(dato);
delay_ms(300);
visualizar();
delay_ms(1000);
}
}
VÍDEO DE EXPLICACIÓN
https://youtu.be/TCGAm-iGYBk
OBSERVACIONES Y CONCLUSIONES
Observaciones
Conclusiones
https://youtu.be/TCGAm-iGYBk
OBSERVACIONES Y CONCLUSIONES
Observaciones
- En el comando “int” se declaran las variables como enteras (1 y 0), estas pueden ser denominadas con cualquier nombre.
- El comando “int 16” a diferencia del comando “int” este nos indica que nuestra variable se está guardando como “Entera de 16 bits”.
- El bucle “for” permite indicar tres elementos en un solo lugar, al principio del bucle, facilitando así la obtención de un código compacto, pero legible.
- El comando “IF” evalúa las condiciones que se requieren para realizar las instrucciones que están dentro de este comando, cuenta con dos opciones si las condiciones son verdaderas cumple las instrucciones pero si es falsa el comando ignora esa línea de programación y se pasa a la siguiente .
- Cabe resaltar que la simulación en el software Proteus no fue exitosa, así que las pruebas se hicieron directamente en el entrenador.
- Para emitir el bipido se logro gracias al buzzer piezoelectrico, a esta buzzer no se le puede agregar un 0 o 1 así que le enviamos corriente alterna.
- para cambiar el valor de un variable utilizamos en signo "¡"
Conclusiones
- Se realizó el código de programación para un sistema con 2 pulsadores de entrada (D0, D1), un zumbador en el pin E1 y 3 displays de salida.
- Se identificó el funcionamiento de cada uno de los comandos en el programa PIC C Compiler
- Utilizamos sub rutinas,como: descomp_entero, que descompone el numero entero en 3 cifras, visualizar, el cual displaya en forma multiplexada, y BIP que emite un pitido.
- Se utilizó el comando “For” para realizar la instrucción del funcionamiento del “pin D1”, el cual tenía que disminuir de 1 en 1 solo 5 veces con solo presionarlo una vez.
- Realizamos las simulaciones del código de programación en el microcontrolador PIC 16F877a para visualizar mejor los valores del display.
INTEGRANTES
1.
Mendiola Espinoza Gilmar Jose





No hay comentarios:
Publicar un comentario