0% encontró este documento útil (0 votos)
92 vistas5 páginas

Interrupciones en Microcontroladores PIC

Las interrupciones en los microcontroladores PIC causan que el programa principal se detenga temporalmente para que el microcontrolador realice otras tareas de menor prioridad. Existen registros como INTCON, PIE y PIR que controlan y detectan las diferentes fuentes de interrupción como desbordamientos de temporizadores, cambios en los puertos, finalización de conversiones ADC, entre otras. Al producirse una interrupción, el contador de programa se guarda en la pila y se carga con la dirección del vector de interrupción para ejecutar la rutina correspondiente.

Cargado por

Karen Macias
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
92 vistas5 páginas

Interrupciones en Microcontroladores PIC

Las interrupciones en los microcontroladores PIC causan que el programa principal se detenga temporalmente para que el microcontrolador realice otras tareas de menor prioridad. Existen registros como INTCON, PIE y PIR que controlan y detectan las diferentes fuentes de interrupción como desbordamientos de temporizadores, cambios en los puertos, finalización de conversiones ADC, entre otras. Al producirse una interrupción, el contador de programa se guarda en la pila y se carga con la dirección del vector de interrupción para ejecutar la rutina correspondiente.

Cargado por

Karen Macias
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

INTERRUPCIONES

Las interrupciones en microcontroladores como el PIC son eventos que


hacen que el programa principal se detenga, para que el microcontrolador
PIC se dedique a realizar otras tareas, mientras no ocurra una
interrupción el microcontrolador solo realizará las tareas indicadas dentro
del programa principal.
Cada modelo de microcontrolador PIC tendrá una serie de interrupciones
que podrá detectar, para que se detecten las interrupciones con el PIC,
es necesario programar algunos registros dependiendo de cual se quiere
que sea la causa de las interrupciones, se tienen registros para habilitar
las interrupciones con el PIC y registros para detectar cuando se han
producido interrupciones.

El siguiente es el registro INTCON para el PIC16F877A

El siguiente es el registro INTCON para el PIC18F4550

El bit7 GIE del registro INTCON es conocido como el bit de habilitación


de las interrupciones globales, cuando este bit es puesto a 1 se habilita el
uso de cualquier interrupción, cuando es puesto a 0 no se pueden utilizar
las interrupciones.
Para habilitar el uso de las interrupciones con el PIC además será
necesario la utilización de otros bits que dependerán del tipo de
interrupción que se quiera utilizar, por ejemplo, si se quiere utilizar la
interrupción externa, será necesario poner a 1 también el bit4 del registro
INTCON.

Además del registro INTCON que es del que siempre se pondrá a 1 su


bit7 para habilitar las interrupciones con el PIC, se tienen otros registros
relacionados con las interrupciones como los registros PIE y PIR, el
registro PIE es para escoger el tipo de interrupción o la fuente que se
quiere que provoque la interrupción, y el registro PIR están los bits
que detectan cuando se ha producido la interrupción y la fuente que la ha
provocado, a los bits del registro PIR se les conoce como banderas de
aviso que ha ocurrido una interrupción.

Los bits de detección de interrupciones o banderas de interrupción se


tienen que poner a 0 para que detecten las interrupciones, si están a 1
no detectan la interrupciones con el PIC, cuando son puestas a 0 y ocurre
alguna interrupción, dependiendo de cuál sea la fuente de interrupción su
respectiva bandera se pondrá a 1, luego dentro de la rutina de atención
a las interrupciones este bit bandera tendrá que ponerse nuevamente a 0
para que se sigan detectando más interrupciones.(MIcrocontroladores
PIC, s.f.)
La familia Pic16F87x tiene 13 fuentes de interrupciones los de 28 pines y
14 los de 40 pines.
Al aceptarse una interrupción se salva el valor del PC (contador de
programa) en la pila y se carga aquel con el valor 0004h, que es el Vector
de Interrupción. La mayoría de los recursos o periféricos de que disponen
los Pic16F87x son capaces de ocasionar una interrupción, si se programan
adecuadamente los bits de los registros que pasamos a
describir a continuación.
 Desbordamiento del TMR0
 Activación de la patita de interrupción RB0/INT
 Cambio de estado de una de las cuatro patitas de más peso del
puerto B
 Finalización de la escritura de un byte en la EEPROM

Hasta aquí se tienen las mismas causas de interrupción del Pic16F84


 5. Desbordamiento del Timer1
 6. Desbordamiento del Timer2
 7. Captura o comparación en el módulo CCP1
 8. Captura o comparación en el módulo CCP2
 9. Transferencia en la puerta serie Síncrona
 10.Colisión de bus en la puerta serie Síncrona
 11.Fin de la transmisión en el USART
 12.Fin de la recepción en el USART
 13.Fin de la conversión en el conversor A/D
 14.Transferencia en la puerta paralela esclava (Esta causa de
interrupción no esta
 disponible en los Pic16F87x de 28 patitas)

Registro de Control de Interrupciones (INTCON)

Es un registro que podemos leer o escribir y lo encontramos en cualquiera


de los cuatro bancos, ocupando las direcciones 0x0Bh, 0x8Bh, 0x10Bh,
0x18Bh, respectivamente. Tiene la misión de controlar las interrupciones
provocadas por el TMR0, cambio de estado en las
cuatro líneas de más peso de la puerta B y activación de la patita RB0/INT.
El bit PEIE actúa como una segunda llave parcial de permiso o prohibición
de las causas de interrupción que nos están contenidas en INTCON y que
las provocan los restantes
periféricos del microcontrolador. GIE es el bit de permiso global de todas
las interrupciones.
Registro de permiso de interrupciones 1 (PIE1)
Contiene los bits que permiten (1) o prohíben (0) las interrupciones
provocadas por los periféricos internos del microcontrolador y que no
estaban contempladas en INTCON.
Ocupa la dirección 8Ch y para que cumplan su función los bits de PIE1 es
necesario que PEIE=1 en INTCON <6>. El bit PSPIE solo es válido en los
modelos de 40 pines, manteniéndose a 0 en los que tienen 28 pines.

Registro de permiso de interrupciones 2 (PIE2)


Contiene los bits de permiso de interrupción de las tres causas que no
figuran en PIE1. La de fin de escritura en la EEPROM, colisión de bus en
el modo SSP y producción de una captura o una comparación en el módulo
CCP2.

Registros de los señalizadores de interrupciones 1 y 2 (PIR1 y PIR2)


En correspondencia con los bits de permiso/prohibición de las causas de
interrupción recogidas en los registros PIE1 y PIE2, existen otros dos registros, PIR1
y PIR2, cuyos bits actúan de señalizadores del momento en el que se origina la
causa que provoca la interrupción, independientemente de si está permitida o
prohibida. Ocupan las direcciones 0Ch y 0Dh, respectivamente.
(Microprocesadores)
Referencias

MIcrocontroladores PIC. (s.f.). Obtenido de Interrupciones del PIC:


http://microcontroladores-mrelberni.com/interrupciones-con-el-pic/
Microprocesadores. (s.f.). Recuperado el 9 de Mayo de 2020, de PIC16f877:
http://files.unexpo-microprocesadores1.webnode.es/200000004-
6845269329/PIC16F877.pdf

También podría gustarte