7
ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA LABORATORIO DE CONTROL CON MICROPROCESADORES PRÁCTICA NO. 02 “FAMILIARIZACIÓN CON LA PROGRAMACIÓN EN ATMEL STUDIO EN C” FAMILIARIZACIÓN CON LA PROGRAMACIÓN EN C 1. OBJETIVO Familiarizar al estudiante con el uso de los programas Atmel Studio e Isis Profesional. 2. DESARROLLO 2.1. Realizar el diagrama circuital completo, simulación, el diagrama de flujo del programa y el programa de control utilizando lenguaje C en Atmel Studio, para el microcontrolador ATMEGA164P, que realice las siguientes actividades: Leer 8 sw colocados en el PORTC Mostrar en 3 displays de 7 segmentos el valor de los sw, en decimal. ANÁLISIS DE ENTRADAS Y SALIDAS Para este programa se necesitarán las siguientes variables: SELECCIÓN DEL MICROCONTROLADOR Los requerimientos mínimos más importantes que debe tener un microcontrolador serán: 19 terminales I/O Otros requerimientos serán: 16 Kbytes de memoria flash Frecuencia de operación 8MHz 1 Kbyte de memoria SRAM 512 bytes memoria EEPROM

Practica 02_Programación en C_Lab. Control Con UC

Embed Size (px)

DESCRIPTION

Practica 02_Programación en C_Lab. Control Con UC

Citation preview

Page 1: Practica 02_Programación en C_Lab. Control Con UC

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

LABORATORIO DE CONTROL CON MICROPROCESADORES PRÁCTICA NO. 02

“FAMILIARIZACIÓN CON LA PROGRAMACIÓN EN ATMEL STUDIO EN C”

FAMILIARIZACIÓN CON LA PROGRAMACIÓN EN C

1. OBJETIVO Familiarizar al estudiante con el uso de los programas Atmel Studio e Isis Profesional.

2. DESARROLLO 2.1. Realizar el diagrama circuital completo, simulación, el diagrama de flujo del programa y el

programa de control utilizando lenguaje C en Atmel Studio, para el microcontrolador

ATMEGA164P, que realice las siguientes actividades:

Leer 8 sw colocados en el PORTC

Mostrar en 3 displays de 7 segmentos el valor de los sw, en decimal.

ANÁLISIS DE ENTRADAS Y SALIDAS

Para este programa se necesitarán las siguientes variables:

SELECCIÓN DEL MICROCONTROLADOR

Los requerimientos mínimos más importantes que debe tener un microcontrolador serán:

19 terminales I/O

Otros requerimientos serán:

16 Kbytes de memoria flash

Frecuencia de operación 8MHz

1 Kbyte de memoria SRAM

512 bytes memoria EEPROM

Page 2: Practica 02_Programación en C_Lab. Control Con UC

Voltaje de alimentación típico de 5V.

Debido al conocimiento y familiaridad se usará el microcontrolador ATMEGA164PA.

DIMENSIONAMIENTO DE DISPOSITIVOS

Para controlar la corriente que circula por el display multiplexado se requerirán resistencias

limitadoras, para su dimensionamiento se tiene lo siguiente:

Sea una recomendable de 25mA, un de 0,33 debido a que se controlarán 3 displays

multiplexados, la corriente pico será:

Por lo que las resistencias limitadoras serán:

DIAGRAMA CIRCUITAL

Page 3: Practica 02_Programación en C_Lab. Control Con UC

DIAGRAMA DE FLUJO

CONVERSIÓN BINARIO A BCD

INICIO

Declaración de Funciones

Declaración de Variables

Configuración E/S

8 pines entrada (Dip-Switch), 8 pines de salida (Display

Multiplexado), 3 pines de control para el display.

Obtener datos de dip-switch

Inicializo Variables

Unidades, Decenas, Centenas=0

Conversión Binaria a BCD

Conversión BCD a 7 Segmentos

Impresión de datos en los display´s multiplexados

Binario>99

Si No

Binario=Binario-100

Centena=Centena+1 Binario>9 Si No

Binario=Binario-10

Decena=Decena+1

Unidades=Binario

Page 4: Practica 02_Programación en C_Lab. Control Con UC

CÓDIGO (Lenguaje C)

/* * Practica_02_Programación_en_C.c * * Created: 28/04/2015 20:04:00 * Author: Byron Sarabia */ #include <avr/io.h> //Declaración funciones void binario_bcd (void); unsigned char bcd_7seg(unsigned char valor); void impresion(void); void retardo (unsigned char k); //Declaración de Variables unsigned char c; int binario; unsigned char centenas; unsigned char decenas; unsigned char unidades; unsigned char centenas_7seg; unsigned char decenas_7seg; unsigned char unidades_7seg; int main(void) { //Configuración de Puertos DDRC=0x00; PORTC=0xff; DDRB=0xff; DDRD=0b00000111; while(1) { c=PINC; binario=c; binario_bcd(); centenas_7seg=bcd_7seg(centenas); decenas_7seg=bcd_7seg(decenas); unidades_7seg=bcd_7seg(unidades); impresion(); } } void binario_bcd(void) { centenas=0; while(binario>99) { binario=binario-100;

Page 5: Practica 02_Programación en C_Lab. Control Con UC

centenas++; } decenas=0; while(binario>9) { binario=binario-10; decenas++; } unidades=binario; return; } unsigned char bcd_7seg(unsigned char valor) { unsigned char segmentos; segmentos=0; //Para display Ánodo común switch(valor) { case 0: segmentos=192; break; case 1: segmentos=249; break; case 2: segmentos=164; break; case 3: segmentos=176; break; case 4: segmentos=153; break; case 5: segmentos=146; break; case 6: segmentos=130; break; case 7: segmentos=248; break; case 8: segmentos=128; break;

Page 6: Practica 02_Programación en C_Lab. Control Con UC

case 9: segmentos=152; break; } return segmentos; } void impresion(void) { PORTD=1; PORTB=centenas_7seg; retardo(1); PORTD=0; PORTD=2; PORTB=decenas_7seg; retardo(2); PORTD=0; PORTD=4; PORTB=unidades_7seg; retardo(4); PORTD=0; return; } void retardo(unsigned char k) { unsigned int a; a=300; while(a>0) { a--; PORTD=k; } return; }

SIMULACIÓN

Displays que

indican el

valor en

decimal

Dip-Switch para

ingresar el valor.

(0111 1000=120)

Page 7: Practica 02_Programación en C_Lab. Control Con UC

3. BIBLIOGRAFÍA

APUNTES DE SISTEMAS MICROPROCESADOS; Ing. Marco Herrera MSc.; Semestre 2014-

B; EPN; Quito-Ecuador.

APUNTES DE CONTROL CON MICROPROCESADORES; Ing. Jhon Pilataxi.; Semestre

2015-A; EPN; Quito-Ecuador.