martes, 11 de septiembre de 2018

LABORATORIO N° 03

PROGRAMACIÓN CON DISPLAY DE 7
SEGMENTOS

1. COMPETENCIA ESPECIFICA 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.

2. MARCO TEÓRICO

2.1. TIPOS DE VARIABLES
Una variable es un objeto del lenguaje cuyo valor se puede cambiar. Antes de utilizar una variable ésta debe de ser declarada. Al declarar una variable, se le asocia un identificador, es decir, un nombre, con un tipo de almacenamiento cuya forma determina la visibilidad y existencia de la variable. 
Hay dos clases de tipos de datos: tipos fundamentales y tipos derivados.
A continuación veremos los tipos de datos fundamentales:

2.1.1. TIPO ENTERO
Representa números enteros con o sin signo, que estarán compuestos por los dígitos del 0 al 9, pudiendo ser precedidos por los signos + o -.
Algunos ejemplo de datos enteros son: 0, 23, -176, -1, etc.
Para definir variables en C se antepone la palabra reservada del tipo al identificador de la variable. El tipo de datos entero se define en el lenguaje de programación C por la palabra reservada int.
Para definir un tipo de dato en C se escribe lo siguiente:
int nombre_variable = valor;
No es necesario que la variable tenga un valor predeterminado. Se puede definir sin asignarle ningún valor.
Si tenemos varios datos que son del mismo tipo, se pueden definir todas en la misma línea de código escribiendo un único int, separando el nombre de las variables por “,”. Una vez que se haya acabado de definir variables, se cierra la línea de código con “;”.

Por ejemplo: 
int edad = 24;
int edad;
int edad, num, contador;


2.1.2. TIPO REAL
Se emplean para representar números reales (con decimales).
Para definir datos reales se antepone la palabra reservada float al identificador de la variable.
float identificador = valor;

Por ejemplo: 
float numero1, numero2;
float numero3 = 123.43;
float numero3;


2.1.3. TIPO CARACTER
Este tipo de datos se emplea para representar un carácter perteneciente a un determinado código utilizado por el ordenador (normalmente el código ASCII).
Para representar este tipo de dato se antepone la palabra reservada char al identificador de la variable.
Char identificador = ‘valor’;
Una constante tipo char se representa como un solo carácter encerrado entre comillas simples.

Por ejemplo: 
char letra, letra2;
char letra=’a’;


2.1.4. TIPO CADENA DE CARACTERES
Una cadena de caracteres es un número de caracteres consecutivos (incluso ninguno) encerrado entre unos delimitadores determinados, que en el lenguaje C son las comillas dobles.
Para definir variables de tipo cadena, estas se definen como vectores de caracteres, esto es, anteponiendo la palabra reservada char al identificador de la variable, y después entre corchetes la longitud máxima de cadena.
Char identificador[cantidad] = “ mensaje ”;

Por ejemplo:
char cadena[20];
char cadena[20] = “Hola mundo”;
char cadena[] = “HOLA”;

En la siguiente tabla se hace un resumen de los distintos tipos de datos:
TIPO DE DATO
ESPECIFICADORES DE FORMATO
COMENTARIO
Int
%d
Entero con signo
Float
%f
Real con signo
Char
%c
carácter
Char [n]
%s
Cadena de caracteres

Estos tipos básicos admiten una modificación del rango de valores, aplicando las siguientes palabras  reservadas:
  • short (corto)
  • long (largo)
  • signed (con signo)
  • unsigned (sin signo)
Las modificaciones se aplican a los tipos int y char, a excepción del modificador long que también puede aplicarse al tipo double. Las posibles combinaciones son:
TIPO
NÚMERO DE BITS
RANGO
char
8
-128 a 127
unsigned char
8
0 a 255
signed char 
8
-128 a 127
short 
16
-32768 a 32767
int 
16
-32768 a 32767
unsigned int 
16
0 a 65535
signed int 
16
-32768 a 32767
short int
16
-32768 a 32767
unsigned short int
16
0 a 65535
signed short int
16
-32768 a 32767
long int
32
-2147483648 a 2147483647
signed long int
32
-2147483648 a 2147483647
unsigned long int
32
0 a 4294967295
long
32
-2147483648 a 2147483647
unsigned long
32
0 a 4294967295
float
32
3.4E-38 a 3.4E+38
double
64
1.7E-308 a 1.7E+308
long double
64 ó 80 (según versión).
1.7E-308 a 1.7E+308   ó 3.4E-4932 a 1.1E+4932

3. EVIDENCIA DE TAREAS EN LABORATORIO

3.1. DIAGRAMA DE LA SIMULACIÓN DEL ENTRENADOR DE PICS EN PROTEUS


3.2. VIDEO EXPLICATIVO MOSTRANDO LAS TAREAS A SER EVALUADAS, SIMULACIÓN E IMPLEMENTACIÓN DEL PROGRAMA SOLICITADO

4. OBSERVACIONES:
  • Para llamar a una subrutina, debemos colocar el nombre de esta y luego colocar paréntesis con la variable a ser evaluada, dependiendo del caso.
  • Para hacer que la visualización de los tres Displays de 7 segmentos se vea en forma continua, tenemos que multiplexar el encendido de estos a una gran velocidad.
  • Para hacer que se escuche un pitido en el parlante del entrenador se realizó una subrutina en la programación, en donde se creaba un tren de pulsos a una determinada frecuencia.
  • Para realizar los tres pitidos en caso de que se sobrepase el número 600, se estableció un intervalo de 200ms entre ellos y uno de 1000ms en cada secuencia.
  • Al momento de presionar los pulsadores, en los Displays de 7 segmentos solo se mostraba la cifra de unidades. Para solucionar este problema se creó un bucle con "for" adicional en vez de un retardo de tiempo.

5. CONCLUSIONES
  • Se realizaron subrutinas y se aprendió a cómo llamarlas dentro del programa principal.
  • Se modificó el programa base con las tareas a ser evaluadas, utilizando el programa PIC C Compiler, en donde se crearon nuevos bucles con "for" y se llamaron a las subrutinas necesarias.
  • Se programaron bucles con "for" en la modificación del programa base, para no tener que copiar demasiadas lineas repetitivas.
  • Se crearon bucles con "for" adicionales en lugar de los delays, para hacer que el numero se muestre en todo momento en los Displays casi de manera simultánea.
  • Se logró transferir el archivo generado HEX al entrenador utilizando el programa PICKIT2.
  • Se probó en el entrenador el correcto funcionamiento de las tareas a ser evaluadas, incluso se realizaron mejoras al programa anterior para que los Displays se visualizaran en todo momento incluso cuando se presionaban los pulsadores.

6. FOTO GRUPAL

7. ANEXOS

7.1. Cuestionario 3 - Curso virtual: Simulando Sistemas Embebidos con Microcontroladores PIC











No hay comentarios:

Publicar un comentario