Está en la página 1de 9

INSTITUTO TECNOLOGICO DE ESTUDIOS SUPERIORES

DE ZAMORA
Ing. Electrónica
MICROCONTROLADORES

PRACTICA 3: DISPLAY Y MANAJO DE DISPLAY CON


POTENCIOMETRO

Integrantes:
Luis David Ramírez Pérez
Diego Isaac Pacheco Lázaro

8 de abril de 2022
INTRODUCCION
En esta practica implementaremos el uso de un display de 7 segmentos de ánodo
común esto lo usaremos como método de visualización de la salida o resultado
esperado.
OBJETIVO
Aprender a manipular un display de 7 segmentos de ánodo común, con este una
vez aprendido como usarlo haremos un segundero que valla de 0 a 9; también
aprenderemos a manipular rangos de voltaje y verlos en el display que seria de 0
a 9.
MATERIAL
• ATMEGA16
• Protoboard
• 7 resistencias
• Cables
• Programador ISP-ASP
• Potenciómetro
• Display de 7 segmentos AC

EQUIPO
• Computadora
• Programa Code Vision
• Programa AVR Burn-O-Mat

DESARROLLO
DISPLAY
Abrimos el programa de code vision, seleccionamos nuevo proyecto y escogemos
el tipo de microcontrolador (ATMEGA16) y en la pestaña de puertos habilitamos
las salidas D.
Guardamos los 3 archivos con el mismo nombre y recordar la ruta de guardado.
En la pantalla siguiente empezaremos a programar y para esto tendremos que
declarar algunas variables y lo dejaremos de esta manera:
#include <mega16.h>
#include <delay.h>
unsigned char x;
const unsigned char display
[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X98};
con estas líneas lo que hacemos es crear una variable llamada X y una tabla
llamada display para saber que va a pasar cada segundo al momento de cambiar
la tabla debemos entender como funciona un display, en la siguiente imagen lo
veremos;

En esta imagen ya vemos las combinaciones y cual es el funcionamiento del


display, vienen 7 leds internamente y con esto sabemos que para encender un led
tenemos que darle señal de 0, entonces con base al numero binario lo pasamos a
numero hexadecimal, en este caso volvemos a dividir en dos grupos de 4 para
facilitar la lectura hexadecimal.

Ahora bajamos hasta el while, y escribiremos:


PORTD=display[x];
delay_ms(1000);
x++;
if(x==10)
{
x=0;
}
Ya con el programa listo ya sabemos que el display va a cambiar de numero con
forme cada segundo y cambiara en orden del 0 al 9.
Para armar nuestro circuito colocamos nuestro microcontrolador en la protoboard y
ubicamos las 8 salidas del puerto D

Ubicamos los pines del 14 al 20 y conectamos


Pin 14 a una resistencia y de ahí al pin a del display
Pin 15 a una resistencia y de ahí al pin b del display
Pin 16 a una resistencia y de ahí al pin c del display
Pin 17 a una resistencia y de ahí al pin d del display
Pin 18 a una resistencia y de ahí al pin e del display
Pin 19 a una resistencia y de ahí al pin f del display
Pin 20 a una resistencia y de ahí al pin g del display
Y el pin común del display a VCC.
Ahora en nuestro programador ISP ubicamos nuestras salidas
Y de estas conectamos la MOSI al pin 6 del micro
RST al pin 9
SCK al pin 8
MISO al pin 7
VCC al pin 10
GND al pin 11
Una vez tengamos todo conectado correctamente instalaremos los drivers
correspondientes a la computadora.
Y conectaremos nuestro controlador a la entrada USB de nuestra computadora.
Abrimos AVR burn y buscamos nuestro programa .hex y lo cargamos a nuestro
microcontrolador.
Si seguimos los pasos correctamente nuestro semáforo tendría que funcionar sin
ningún problema.
MANAJO DE DISPLAY CON POTENCIOMETRO
Ahora como ya sabemos cómo funciona el display juntaremos la idea del
tacómetro, pero en vez que la salida se vea en los leds que sea el display.
Abrimos el programa de code vision, seleccionamos nuevo proyecto y escogemos
el tipo de microcontrolador (ATMEGA16) y en la pestaña de puertos habilitamos
las salidas D.
También nos vamos a la pestaña analog to digital converter y habilitamos la casilla
ADC enabled, también la casilla use 8 bits y en volt. Ref. pondremos AVCC pin,
con esto activaremos la opción ADC.
Guardamos los 3 archivos con el mismo nombre y recordar la ruta de guardado.
En la pantalla siguiente empezaremos a programar y para esto tendremos que
declarar algunas variables y lo dejaremos de esta manera:

#include <mega16a.h>
#include <delay.h>
unsigned char X;
// Voltage Reference: AVCC pin
#define ADC_VREF_TYPE 0x60
Ahora bajamos hasta el while, y escribiremos:
X=read_adc(0);
if ((X>=0)&&(X<25))
{
PORTD=0X40;
}
if ((X>=26)&&(X<50))
{
PORTD=0X79;
}
if ((X>=51)&&(X<75))
{
PORTD=0XA4;
}
if ((X>=76)&&(X<100))
{
PORTD=0XB0;
}
if ((X>=101)&&(X<125))
{
PORTD=0X99;
}
if ((X>=126)&&(X<150))
{
PORTD=0X92;
}
if ((X>=151)&&(X<175))
{
PORTD=0X82;
}
if ((X>=176)&&(X<200))
{
PORTD=0X78;
}
if ((X>=201)&&(X<225))
{
PORTD=0X80;
}
if ((X>=226)&&(X<255))
{
PORTD=0X98;
}
Con estas líneas el micro podrá leer el rango de voltaje del potenciómetro y lo
podremos apreciar como el display cambia del 0 al 9 dependiendo que voltaje
mande el potenciómetro.
Para armar nuestro circuito colocamos nuestro microcontrolador en la protoboard y
ubicamos las 8 salidas del puerto D

Ubicamos los pines del 14 al 20 y conectamos


Pin 14 a una resistencia y de ahí al pin a del display
Pin 15 a una resistencia y de ahí al pin b del display
Pin 16 a una resistencia y de ahí al pin c del display
Pin 17 a una resistencia y de ahí al pin d del display
Pin 18 a una resistencia y de ahí al pin e del display
Pin 19 a una resistencia y de ahí al pin f del display
Pin 20 a una resistencia y de ahí al pin g del display
Y el pin común del display a VCC.
Pondremos un potenciómetro el pin del centro lo conectaremos al pin 40 del micro
el de la derecha a 5v y el otro a tierra (GND).
Además de conectar el pin 30 (AVCC) a 5v y el 31 a tierra (GND).
Ahora en nuestro programador ISP ubicamos nuestras salidas

Y de estas conectamos la MOSI al pin 6 del micro


RST al pin 9
SCK al pin 8
MISO al pin 7
VCC al pin 10, 30 y a una patita del potenciómetro
GND al pin 11, 31 y a la patita restante del potenciómetro
Una vez tengamos todo conectado correctamente instalaremos los drivers
correspondientes a la computadora.
Y conectaremos nuestro controlador a la entrada USB de nuestra computadora.
Abrimos AVR burn y buscamos nuestro programa .hex y lo cargamos a nuestro
microcontrolador.
Si seguimos los pasos correctamente nuestro semáforo tendría que funcionar sin
ningún problema.
CONCLUSION
En esta practica pudimos aprender como usar un display de 7 segmentos y la
infinidad de usos que le podemos dar quien diría que con tan solo agregar el
display tendríamos miles de opciones, cada vez las practicas son más creativas e
interesantes.

También podría gustarte