Está en la página 1de 5

1

MICROCONTROLADORES – INTERRUPCIONES EXTERNAS

Integrantes:
Miguel Santiago Diaz Galeano

msdiazg@itc.edu.co

Sergio Andres Aldana Babativa

saaldanab@itc.edu.co

Resumen: Durante el laboratorio de PROCEDIMIENTO


interrupciones externas controladas por el
microcontrolador PIC18F4550 se manejaron temas Desarrollar un programa en el microcontrolador
importantes vistos en la asignatura de PIC que emules el funcionamiento de un horno
microcontroladores con el objetivo de simular el microondas.
funcionamiento de un microondas. Se realizo la
programación debida según los requisitos de la guía de En este caso nuestra primera característica
laboratorio, además de manejar periféricos aprendidos esencial es que será controlado a través de un teclado
en anteriores laboratorios, como lo son el convertidor matricial, esto con el fin de controlar la marcha, a través
ADC (Analog Digital Converter) que en este caso de la tecla ‘*’, los segundos con sus números
será de gran utilidad para el control de temperatura del respectivos y una pausa con la tecla ‘#’. La
microondas. Se configuro adecuadamente los registros visualización de los segundos será a través de dos
de interrupciones que era de gran importancia para displays 7 segmentos, uno encargado de las decenas, y
iniciar nuestras funciones de alta prioridad y baja otro de las unidades. Además, dos leds se encargarán
prioridad. Cabe destacar que el entorno de MPLAB y el de indicar si el microondas se encuentra en reposo o
software de Proteus fueron vitales para llevar a cabo trabajando.
este laboratorio.
Además de las anteriores funciones, el
microcontrolador deberá de tener un control de
temperatura, si esta sube más de 60º C en el horno
INTRODUCCION deberá encender un led rojo alarmando al usuario. Por
último, se tendrá un botón externo, encargado de
Las interrupciones externas son múltiples fuentes realizar un mantenimiento para lo cual se debe probar
dedicadas a interrumpir el programa principal de los displays con una cuenta de 1 a 9, y los indicadores
nuestro microcontrolador, se pueden representar como leds deben apagarse y encenderse 3 veces. Si se
interrupciones de dos tipos, alta y baja prioridad, esto presiona este modo debe suspenderse cualquier otra
nos indica el nivel de importancia una vez se ejecute acción que se esté realizando en el horno.
una función externa, en este caso para nuestro
microondas tendrá varias funciones a realizar y serán Empezamos primeramente con el teclado
ejecutas de acuerdo con el nivel de prioridad. Los matricial. Se utilizo un teclado matricial 4x3, encargado
registros dedicados para estas interrupciones serán: del control mencionado anteriormente. Ver figura 1.
RCON, INTCON, INTCON2, INTCON3, PIR1, PIR2,
PIE1, PIE2, IPRQ y IPR2.

OBJETIVOS
 Utilizar las interrupciones externas
 Responder a eventos procedentes de
dispositivos externos y obtener la
respuesta deseada en las salidas del
microcontrolador.
2

Figura 1. Teclado matricial 4x3 de Proteus Figura 3. Función exclusiva para la configuración de
registros.

En este caso es importante tener en cuenta que


Como bien sabemos para hacer funcionar nuestro las banderas de interrupciones son las que nos
teclado matricial es necesario poner a rotar 0 en indicaran la ejecución de estas mismas, por lo tanto,
nuestros pines conectados a las columnas, en este van configuradas según su prioridad, también hay que
caso estarán conectados en el puerto C y su ejecución tener en cuenta en nuestra configuración que el pin
esta dentro de la función main. Para codificar cada RB0 está asignado a una interrupción de alta prioridad
botón de nuestro teclado, utilizaremos condicionales por defecto, en este caso ira conectado al pin de
que ayudaran a codificar el botón presionado, además mantenimiento, que es controlado por un pulsador
de una variable char asignada a cada uno, también en externo. Ver figura 4.
este caso con la ayuda de los puertos RB4 al RB7 , los
cuales cuentan con las resistencias push – up serán los
encargados de darnos las señales para cada botón. Ver
figura2.

Figura 4. Pulsadores declarados como interrupciones.

Debido a problemas durante el desarrollo del


laboratorio se utilizo el pulsador denominado DES
PAUSE como el botón para des pausar la acción del
pulsador del teclado matricial #. Para nuestra
visualización tenemos dos displays 7 segmentos, uno
encargado para las unidades y otro para las decenas.
Estos displays están codificados según la tecla
asignada a nuestro teclado matricial. Ver figura 5.

Figura 2. Programación teclado matricial.

Antes de esto hay que tener claro que debemos


configurar los registros de interrupciones y el
convertidor ADC, para ello se realiza una función
especial de configuración de registros, donde esta paso
por paso el como se utiliza cada uno. Ver figura 3.

Figura 5. Codificación para el display de las


decenas.
3

Se puede mostrar que la función contiene un


parámetro y, este será el encargado de ayudar a contar
regresivamente los segundos introducidos en nuestro
teclado matricial. Nuestra cuenta regresiva está
controlada por ciclos for, que serán los encargados de
dar la cuenta regresiva con un tiempo de espera de 1 s
entre número y numero. Ver figura 6 y 7.

Figura 8. Función de temperatura.

La función temperatura es llamada en nuestro


ciclo while inicial. Así que una vez definido nuestros
módulos, pasamos a ver de que prioridad
especificamos estas funciones. De alta prioridad
tendremos nuestro mantenimiento y nuestra
temperatura, así que la función de interrupción irá
programada la rutina que debe hacer según la guía,
mientras la bandera de mantenimiento es alta, esta
Figura 6. Programación de cuenta regresiva. hará el patrón de contar consecutivamente en los
displays 7 segmentos los números del 1 al 9 además de
apagar y encender los leds indicativos. Ver figura 9.

Figura 7. Visualización de segundos.

Respecto a nuestro parámetro de temperatura.


Nuestro sensor LM35 será el encargado de indicarnos
en que temperatura esta actualmente. Como se trata de
un sistema de protección, en este caso indicar al
usuario que existe una temperatura mayor a 60ºC, debe
tomarse como una interrupción de alta prioridad. De
igual forma se dispone de una función explicita para la Figura 9. Rutina programada para mantenimiento.
configuración de nuestro sensor. Ver figura 8.
4

interrupción externa llama PAUSE, que como lo


comentamos anteriormente esta controlada por el
Se observa la bandera en nuestro registro pulsador del teclado matricial #. Nuestra bandera está
INTCONbits.INT0IF, la cual va conectada físicamente a en el registro INTCON3bits.INT2IF, si esta esta activa
el pin RB0. Para nuestra segunda rutina de alta pausara el proceso y realizara la rutina.
prioridad, la bandera será la encargada de indicarnos la
interrupción, en este caso el registro que la controla
será el INTCON3bits.INT1IF, donde también ira
conectado el led indicativo de temperatura que
físicamente será nuestro pin RB1. Ver figura 10.

Figura 11. Interrupción de baja prioridad

CONCLUSIONES
A partir de este laboratorio se aplicaron conceptos
relacionados con las interrupciones, tales como el
manejo de los registros INTCON y sus variedades de
configuraciones. Se obtuvo un problema a partir de
definir las prioridades ya que el microcontrolador no las
Figura 10. Sensor de temperatura, leds indicativos
definía como debe ser, esto fue porque no se especifico
y PIC18F4550.
el registro de jerarquía de interrupciones
(RCONbits.IPEN) el cual debe estar en 1 lógico para
diferenciar entre alta y baja prioridad.
Así que programamos nuestra rutina de acuerdo
con lo pactado en la guía, nuestro led indicativo será Se utilizo la información del fabricante, para la
encendido, se puede observar en la imagen como el configuración de nuestros registros INTCON, los cuales
LED LF que se encenderá una vez la temperatura sea se encargan de las interrupciones en el
mayor a 60ºC. Así que se procede a incluir en nuestra microcontrolador PIC18F4550, además de los registros
función de prioridad la rutina. ADCON para nuestro convertidor ADC. Respecto a la
programación en MPLAB XC8 se utilizo el concepto de
funciones por medio de prototipos esto por conceptos
organización, además de simplificar al máximo la
programación. Si bien se observa la codificación para la
visualización de los segundos, por medio de los
displays 7 segmentos, se hizo con el código binario
BCD, realmente los pines del microcontrolador deberían
pasar por un codificador físico, como el 7448 o algún
otro modulo, pero en este caso no se incluyo debido a
no añadir más componentes.

Por ultimo se destaca el uso del simulador Proteus


y el entorno de programación MPLAB XC8 como
herramientas para el buen desarrollo practico de
nuestro laboratorio número tres con temática de
interrupciones externas.

Figura 11. Rutina de temperatura.


WEBGRAFIA
[1]
Por último, queda observar las interrupciones de
baja prioridad, la primera de ellas será nuestra
5

https://www.youtube.com/watch?
v=IsVemy9Up7I&t=233s

[2]

http://microcontroladores-mrelberni.com/interrupciones-
con-el-pic/

[3]

Data Sheet PIC18F4550 / Microchip

https://ww1.microchip.com/downloads/en/devicedoc/396
32c.pdf

También podría gustarte