Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Laboratorio de Interrupciones en Microcontroladores AVR ATmega328P, Guías, Proyectos, Investigaciones de Microprocesadores

La implementación de interrupciones externas en microcontroladores avr, específicamente en el atmega328p. Se detalla el uso de interrupciones para la creación de un contador de eventos ascendente/descendente utilizando lenguaje assembler. Incluye diagramas de flujo, diagramas circuitales, código en assembler y la verificación de la simulación en microchip studio. El documento está estructurado como un informe de laboratorio, con secciones dedicadas a la introducción, el desarrollo del proyecto, la implementación física y los entregables. Se enfatiza la importancia de las interrupciones para atender eventos de manera eficiente sin interrumpir el flujo principal del programa. El documento proporciona una guía práctica para estudiantes de ingeniería eléctrica y electrónica que deseen aprender sobre el uso de interrupciones en microcontroladores.

Tipo: Guías, Proyectos, Investigaciones

2024/2025

Subido el 07/06/2025

player-dick
player-dick 🇵🇪

1 documento

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
02/06/2025
LABORATORIO 04
INTERRUPCIONES EN AVR ATMEL
LABORATORIO 05: INTERRUPCIONES EXTERNAS EN EL ATMEGA238P
Introducción
Una interrupción es una característica de los Microcontroladores que permite detener
momentáneamente el programa que se está ejecutando, para atender alguna eventualidad que
se considere de suma importancia y que deba ser atendida inmediatamente una vez que ocurra.
Al ocurrir la interrupción, el sistema altera el valor del registro apuntador de instrucción y
almacena en el la dirección de la subrutina para atención de la interrupción (ISR); entonces, el
programa salta a ´esta subrutina y una vez terminada, volverá al programa en la línea siguiente
a la cual partió. La idea es que, en vez de estar preguntando continuamente en el programa si
ha ocurrido una eventualidad, ´este se dedique a hacer otras cosas, y al momento de ocurrir
dicho evento, se genere una notificación de interrupción para que ´esta sea atendida.
Contador de eventos en assembler
Implemente en lenguaje assembler un contador de eventos ascendente/descendente
de 0 a 255, con salida en binario. Se conecta pulsadores a las terminales INT0 e INT1,
configurados como Interrupciones, para el ingreso de eventos; la salida se muestra
sobre leds. (NO DEBE UTILIZAR PCINT).
Diagrama de flujo principal y de la interrupción
Se pide implementar 2 interrupciones que cumplan las funciones de contador
ascendente y descendente de eventos generados por un pulsador.
Para ello comenzamos con la declaracion de rutinas de inicio, como de las
interrupciones. Las interrupciones deberán estar en orden ya que se ejecutarán de
forma secuencial.
Esto es, la interrupción INT0 se ejecutará primero y ejecutará la rutina que sigue en
secuencia a la rutina Start. Si se activa la interrupción INT1 se ejecutará la rutina que
sigue a la rutina de interrupción 0.
La rutina de inicio lo usamos para inicializar el contador, definimos los puertos que se
usaran de entrada y salida de acuerdo a nuestra conveniencia.
En la rutina principal manipulamos el contador para que se muestre adecuadamente en
los puestos de salida. En esta rutina se hará la interrupción para que se ejecuten
cualquiera de las rutinas de interrupción cuya rutina modificara el contador de forma
ascendente o descendente de uno en uno con cada flanco de salida. Una vez terminada
la interrupción, la rutina principal sigue su curso ejecutándose con el valor de contador
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga Laboratorio de Interrupciones en Microcontroladores AVR ATmega328P y más Guías, Proyectos, Investigaciones en PDF de Microprocesadores solo en Docsity!

INTERRUPCIONES EN AVR ATMEL LABORATORIO 05: INTERRUPCIONES EXTERNAS EN EL ATMEGA238P Introducción Una interrupción es una característica de los Microcontroladores que permite detener momentáneamente el programa que se está ejecutando, para atender alguna eventualidad que se considere de suma importancia y que deba ser atendida inmediatamente una vez que ocurra. Al ocurrir la interrupción, el sistema altera el valor del registro apuntador de instrucción y almacena en el la dirección de la subrutina para atención de la interrupción (ISR); entonces, el programa salta a ´esta subrutina y una vez terminada, volverá al programa en la línea siguiente a la cual partió. La idea es que, en vez de estar preguntando continuamente en el programa si ha ocurrido una eventualidad, ´este se dedique a hacer otras cosas, y al momento de ocurrir dicho evento, se genere una notificación de interrupción para que ´esta sea atendida. Contador de eventos en assembler Implemente en lenguaje assembler un contador de eventos ascendente/descendente de 0 a 255, con salida en binario. Se conecta pulsadores a las terminales INT0 e INT1, configurados como Interrupciones, para el ingreso de eventos; la salida se muestra sobre leds. (NO DEBE UTILIZAR PCINT). Diagrama de flujo principal y de la interrupción Se pide implementar 2 interrupciones que cumplan las funciones de contador ascendente y descendente de eventos generados por un pulsador. Para ello comenzamos con la declaracion de rutinas de inicio, como de las interrupciones. Las interrupciones deberán estar en orden ya que se ejecutarán de forma secuencial. Esto es, la interrupción INT0 se ejecutará primero y ejecutará la rutina que sigue en secuencia a la rutina Start. Si se activa la interrupción INT1 se ejecutará la rutina que sigue a la rutina de interrupción 0. La rutina de inicio lo usamos para inicializar el contador, definimos los puertos que se usaran de entrada y salida de acuerdo a nuestra conveniencia. En la rutina principal manipulamos el contador para que se muestre adecuadamente en los puestos de salida. En esta rutina se hará la interrupción para que se ejecuten cualquiera de las rutinas de interrupción cuya rutina modificara el contador de forma ascendente o descendente de uno en uno con cada flanco de salida. Una vez terminada la interrupción, la rutina principal sigue su curso ejecutándose con el valor de contador

INTERRUPCIONES EN AVR ATMEL modificado y volviendo a ejecutarse en un bucle infinito. El diagrama de flujo se presenta en la figura Diagrama Circuital Para diseñar el diagrama del circuito empezamos por asignar salidas con leds y resistencias a los puertos D4, D5, D6, D7, B0, B1, B2 y B3 donde D4 es el menos significativo y B3 es el bit más significativo en orden. Además de agregamos una entrada pull down para que los pulsadores puedan generar la interrupción en D2 y D3. Elementos del circuito: Arduino UNO. Microcontrolador atmega238p

INTERRUPCIONES EN AVR ATMEL

INTERRUPCIONES EN AVR ATMEL

INTERRUPCIONES EN AVR ATMEL El resultado de la interrupción de conteo descendente con un resultado de 99 por el puerto D (conteo de evento 99) se muestra en la figura 6

Implementación del sistema

Se debe usar los componentes físicos para la implementación del circuito y su grabación del archivo .hex generado por Atmel studio con el microcontrolador y su cristal sobre una placa Arduino. Entregables Se presentará un archivo en el que se justifique con las evidencias necesarias que se ha realizado la simulación del archivo .hex, la ejecución del programa en el Atmel studio

INTERRUPCIONES EN AVR ATMEL y la implementación física del circuito son el microcontrolador sobre una placa Arduino y el programa .hex grabado en el con su correcto funcionamiento. La estructura anterior del informe debe mantenerse.