Contador Avr

Introducción El Atmega328 AVR 8-bit es un Circuito integrado de alto rendimiento que está basado un microcontrolador RIS

Views 73 Downloads 1 File size 166KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Introducción El Atmega328 AVR 8-bit es un Circuito integrado de alto rendimiento que está basado un microcontrolador RISC, combinando 32 KB ISP flash una memoria con la capacidad de leermientras-escribe, 1 KB de memoria EEPROM, 2 KB de SRAM, 23 líneas de E/S de propósito general, 32 registros de proceso general, tres temporizadores flexibles/contadores con modo de comparación, interrupciones internas y externas, programador de modo USART, una interface serial orientada a byte de 2 cables, SPIpuerto serial, 6-canales 10-bit Conversor A/D (8-chanales en TQFP y QFN/MLFpackages), "watchdog timer" programable con oscilador interno, y cinco modos de ahorro de energía seleccionables por software. El dispositivo opera entre 1.8 y 5.5 voltios. Por medio de la ejecución de poderosas instrucciones en un solo ciclo de reloj, el dispositivo alcanza una respuesta de 1 MIPS, balanceando consumo de energía y velocidad de proceso.

Objetivo Construir un contador de eventos generados con un botón con salida en un display de 7 segmentos donde la salida deberá ir de 0 a 9, para después reiniciar nuevamente en 0. Planteamiento de hardware Realizaremos el contador por interrupciones mostrando la salida en un display de 7 segmentos, debido a que generamos un 1 lógico en la salida del microcontrolador usamos un display de cátodo común, ya que este display tiene conectados entre sí todos los cátodos y solo se encenderán cuando se genere un ánodo en cualquier pin.

Como sabemos solamente debemos encender una secuencia de leds en un orden específico, entonces generaremos los números del display en hexadecimal: 0--> 0x3F 1--> 0x06 2--> 0x5B 3--> 0x4F

4--> 0x66 5--> 0x6D 6--> 0x7C 7--> 0x07 8--> 0x7F 9--> 0x667

La salida debe incrementarse en 1 cada vez que se presione el botón, consideraremos que el usuario tarda entre 150 y 300 mS al presionar un botón y que las operaciones del MCU están en el orden de microsegundos, por lo que es conveniente usar un delay para que la salida no se incremente en forma desmedida y una segunda evaluación para eliminar el ruido. Diseño del software

Resultados Finalmente con ayuda del software Proteus 8 professional simulamos el circuito para observar el comportamiento del sistema antes de montarlo en un protoboard, como se observa la simulación resulto ser satisfactoria.

Conclusiones Sánchez Silva Salvador Alejandro Es importante señalar que se debe tomar la correcta lectura de la entrada debido a que si no es adecuada puede ocasionar una singularidad en la ejecución del código y provocar un mal funcionamiento del circuito, también nos dimos cuenta de la versatilidad del lenguaje c, ya que al ser de alto nivel es más comprensible a nivel cognitivo . García Juanillo Donaldo Como nos dimos cuenta es vital estar haciendo constantemente la evaluación de nuestros contadores para evitar problemas de secuencia, así como también escoger un tiempo de retardo adecuado para la interacción del usuario al realizar las interrupciones. Camarillo Moreno Orlando Salvador Con base en lo realizado en la práctica yo concluyo que el trabajar en lenguaje c por ser de mas alto nivel que ensamblador puede resultar en ocasiones más sencillo , sin embargo siempre queda la posibilidad de llamar instrucciones de ensamblador en nuestro código en c cuando consideremos conveniente para ayudar a optimizar el funcionamiento de nuestro sistema. Apendice #include #include int main(void) { int i; int cont[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67}; DDRD=0xFF; DDRB=0x00; PORTB=0xFF; while(1) {i=0; while(i