Universidad Antonio Nariño

Aplicación Industrial de Micros
Código: 444405

CAPITULO 1
Introducción a los microcontroladores (PIC de Microchip®)

1.8 Interrupciones
 Los 16CXX agregan la posibilidad de contar con sistema de interrupciones. Este sistema consiste en un mecanismo por el cual un evento interno o externo, asincrónico respecto del programa, puede interrumpir la ejecución de éste produciendo automáticamente un salto a una subrutina de atención, de manera que pueda atender inmediatamente el evento, y retomar luego la ejecución del programa exactamente en donde estaba al momento de ser interrumpido. Este mecanismo es muy útil por ejemplo para el manejo de timers o rutinas que deben repetirse periódicamente (refresh de display, antirebote de teclado, etc.), detección de pulsos externos, recepción de datos, etc.

Existen de tres a doce eventos que pueden generar interrupciones en los PIC16CXX existentes hasta el momento, pero nada impide que puedan agregarse más en versiones futuras.

Funcionamiento
En los 16CXX las interrupciones se comportan casi exactamente igual que las subrutinas. Desde el punto de vista del control del programa, al producirse una interrupción se produce el mismo efecto que ocurriría si el programa tuviese un CALL  0004h en el punto en que se produjo la interrupción. En uno de los registros de control del sistema de interrupciones existe un bit de habilitación general de interrupciones GIE, que debe ser programado en 1 para que las interrupciones puedan actuar. Al producirse una interrupción, este bit se borra automáticamente para evitar nuevas interrupciones. La instrucción RETFIE que se utiliza al final de la rutina de interrupción, es idéntica a un retorno de subrutina, salvo que además coloca en uno automáticamente el bit GIE volviendo a habilitar las interrupciones. Dentro de la rutina de interrupción, el programa deberá probar el estado de los flags de interrupción de cada una de las fuentes habilitadas, para detectar cual fue la que causo la interrupción y así decidir que acción tomar.

Lógica de interrupciones para los µcontroladores PIC16F8X

Fuentes
La señal que produce la interrupción es en realidad una sola, que resulta de la combinación de todas las fuentes posibles y de los bits de habilitación. Existen dos grupos de fuentes, unas que se habilitan con solo colocar en uno el bit GIE, y otras que además necesitan que este puesto a uno el bit PEIE. En algunas versiones de los 16CXX solo existe el primer grupo. Además, cada fuente de interrupciones tiene su respectivo bit de habilitación individual.

Las fuentes de interrupción varían con cada versión, y pueden ser por ejemplo:

· Interrupción externa por pin RB0/INT
· Desborde del Timer 0 o RTCC
· Cambio en el estado de los bits 4 a 7 del puerto B
· Desborde del timer 1
· Desborde del timer 2
· Interrupción del capture/compare 1
· Interrupción del capture/compare 2
· transmisión o recepción de un caracter por la interface serie sincrónica
· transmisión o recepción de un caracter por la interface serie asincrónica
· Fin de conversión A/D
· Lectura/escritura del puerto paralelo de comunicación con otros microprocesadores
· Escritura de EEPROM finalizada


  índice de capítulo