Está en la página 1de 39

Interrupciones

Fuentes de Interrupciones para el PIC16F1787

Interrupción externa a través del pin RB0/INT Interrupción por cambio de nivel Interrupción por escritura en la EEPROM Interrupción por desbordamiento del TMR0

Interrupción por desbordamiento del TMR1 Interrupción por desbordamiento del TMR2 Interrupción por el modulo CCP1 Interrupción por el modulo CCP2

Interrupciones

Fuentes de Interrupciones para el PIC16F1787

Interrupción por transferencia en el modulo MSSP Interrupción por colisión en el bus del modulo MSSP Interrupción por Tx en el modulo USART Interrupción por Rx en el modulo USART

Interrupción por fin de conversión en el DAC Interrupción por Gate del Timer 1

Interrupción por Falla en el Oscilador Interrupción por el Comparador 1

Interrupciones

Fuentes de Interrupciones para el PIC16F1787

Interrupción por el Comparador 2 Interrupción por el Comparador 3 Interrupción por el Comparador 4 Interrupción por PWM Mejorado 1

Interrupción por PWM Mejorado 2 Interrupción por PWM Mejorado 3

Interrupción por Auto Shutdown EPWM 1 Interrupción por Auto Shutdown EPWM 2

Interrupción por Auto Shutdown EPWM 3

Interrupciones

Como se atiende una Interrupción

PILA Dir_04
PILA
Dir_04

Dir_01

Dir_02

Dir_03

Dir_04

Dir_05

Dir_SUMA

Dir_07

Dir_08

Dir_09

Programa

Principal

BSF 03,5 BCF 03,6 MOVF 3F,0 CALL SUMA GOTO 000h BCF 03,5 BSF 03,6 ADDWF
BSF
03,5
BCF
03,6
MOVF 3F,0
CALL SUMA
GOTO 000h
BCF
03,5
BSF
03,6
ADDWF 5A,1
RETURN

Sub-Rut

Interrupción

RETFIE
RETFIE

Interrupciones

Fuentes de Interrupciones a estudiar

Interrupción externa a través del pin RB0/INT

a estudiar Interrupción externa a través del pin RB0/INT U N E X P O –

Interrupciones

Fuentes de Interrupciones a estudiar

Interrupción por cambio de nivel

Interrupciones a estudiar Interrupción por cambio de nivel U N E X P O – P
Interrupciones a estudiar Interrupción por cambio de nivel U N E X P O – P

UNEXPO Pto. Ordaz.

Prof.Prof. AntonioAntonio PatetiPateti

MICROPROCESADORES

Interrupciones

Registros del área SFR que se utilzan con las Interrupciones

INTCON OPTION_REG PIE1 PIR1 PIE2 PIR2 PIE4 PIR4

OPTION_REG PIE1 PIR1 PIE2 PIR2 PIE4 PIR4 Solo para INT/RB0 UNEXPO – Pto. Ordaz. Prof.Prof.

Solo para INT/RB0

Interrupciones

Registros del área SFR que se utilzan con las Interrupciones Por Cambio de Nivel

IOCAP, IOCAN y IOCAF (PORTA)

IOCBP, IOCBN y IOCBF (PORTB)

IOCCP, IOCCN y IOCCF (PORTC)

IOCEP, IOCEN y IOCEF (PORTE)

Interrupciones

Interrupciones U N E X P O – P t o . O r d a
Interrupciones U N E X P O – P t o . O r d a
Interrupciones U N E X P O – P t o . O r d a

Interrupciones

Interrupciones U N E X P O – P t o . O r d a

UNEXPO Pto. Ordaz.

Prof.Prof. AntonioAntonio PatetiPatetiMICROPROCESADORES

Interrupciones

INTCON

Interrupciones INTCON GIE : Bandera de Habilitación Global de las Interrupciones. 0 : Deshabilitadas todas las

GIE: Bandera de Habilitación Global de las Interrupciones.

0: Deshabilitadas todas las Interrupciones. 1: Permite habilitar las Interrupciones.

PEIE: Bandera de Habilitación global de las Interrupciones que no controla INTCON.

0: Deshabilita todas las Interrupciones. 1: Permite habilitar las Interrupciones.

T0IE: Bandera de Habilitación del TMR0.

0: Deshabilita la Interrupción del TMR0. 1: Habilita la Interrupción del TMR0.

Interrupciones

INTCON

Interrupciones INTCON INTE : Bandera de Habilitación de la Interrupción Externa RB0/INT. 0 : Deshabilita la

INTE: Bandera de Habilitación de la Interrupción Externa RB0/INT.

0: Deshabilita la Interrupción Externa RB0/INT.

1:Habilita la Interrupción Externa RB0/INT.

IOCIE:Bandera de Habilitación de la Interrupción por Cambio de Nivel.

0: Deshabilita la Interrupción por cambio de Nivel. 1:Habilita la Interrupción por cambio de Nivel.

Interrupciones

INTCON

Interrupciones INTCON TMR0IF : Bandera que señaliza Interrupción en TMR0. INTF : Bandera que señaliza Interrupción

TMR0IF: Bandera que señaliza Interrupción en TMR0.

INTF:

Bandera que señaliza Interrupción Externa RB0/INT.

IOCIF:

Bandera que señaliza Interrupción por cambio de Nivel

Interrupciones

OPTION_REG

Interrupciones OPTION_REG INTEDG : Flanco activo de la Interrupción Externa. 0: Flanco Descendente. 1: Flanco Ascendente.

INTEDG: Flanco activo de la Interrupción Externa. 0: Flanco Descendente. 1: Flanco Ascendente.

Interrupciones

PIE1

Interrupciones PIE1 TMR1GIE : Bandera de Habilitación para la Interrupción Gate Timer 1. 0 : Deshabilita

TMR1GIE: Bandera de Habilitación para la Interrupción Gate Timer 1. 0: Deshabilita la Interrupción de Lectura/Escritura en PSP. 1: Habilita la Interrupción de Lectura/Escritura en PSP.

ADIE: Bandera de Habilitación para la Interrupción del conversor A/D. 0: Deshabilita la Interrupción del conversor A/D. 1: Habilita la Interrupción del conversor A/D.

RCIE: Bandera de Habilitación para la Interrupción de Recepción del USART. 0: Deshabilita la Interrupción de Recepción del USART. 1: Habilita la Interrupción del Recepción del USART.

TXIE: Bandera de Habilitación para la Interrupción de Transmisión del USART. 0: Deshabilita la Interrupción de Transmisión del USART. 1: Habilita la Interrupción del Transmisión del USART.

Interrupciones

PIE1

Interrupciones PIE1 SSPIE : Bandera de Habilitación para la Interrupción del Puerto Serial Síncrono (SSP). 0

SSPIE: Bandera de Habilitación para la Interrupción del Puerto Serial Síncrono (SSP). 0: Deshabilita la Interrupción del SSP. 1: Habilita la Interrupción del SSP.

CCP1IE: Bandera de Habilitación para la Interrupción del módulo CCP1.

0:

D

es ab

h

bili

l

I

ta a nterrupc

d

n de

l

m

ód

l

du o

CCP1

.

1: Habilita la Interrupción del módulo CCP1.

TMR2IE: Bandera de Habilitación para la Interrupción del TMR2. 0: Deshabilita la Interrupción del TMR2. 1:Habilita la Interrupción del TMR2.

TMR1IE: Bandera de Habilitación para la Interrupción del TMR1.

0:

1:Habilita la Interrupción del módulo TMR1.

Deshabilita la Interrupción del TMR1.

Interrupciones

PIR1

Interrupciones PIR1 TMR1GIF : Bandera que señaliza Interrupción por Gate Timer1. ADIF : Bandera que señaliza

TMR1GIF: Bandera que señaliza Interrupción por Gate Timer1.

ADIF: Bandera que señaliza Interrupción en el conversor A/D.

RCIF: Bandera

q

ue señaliza Interru ción en la Rx del USART

p

.

TXIF: Bandera que señaliza Interrupción en la Tx del USART.

SSPIF: Bandera que señaliza Interrupción del Puerto Serial Síncrono (SSP).

CCP1IF: Bandera que señaliza Interrupción del módulo CCP1.

TMR2IF: Bandera que señaliza Interrupción del TMR2.

TMR1IF: Bandera que señaliza Interrupción del TMR1.

Interrupciones

PIE2

Interrupciones PIE2 OSFIE : Bandera de Habilitación por Falla en el Oscilador. 0 : Deshabilita la

OSFIE: Bandera de Habilitación por Falla en el Oscilador. 0: Deshabilita la Interrupción por Falla en el Oscilador. 1: Habilita la Interrupción por Falla en el Oscilador.

C2IE: Bandera de Habilitación por Comparador 2. 0: Deshabilita la Interrupción por Comparador 2. 1: Habilita la Interrupción por Comparador 2.

C1IE:

Bandera de Habilitación por Comparador 1. 0:Deshabilita la Interrupción por Comparador 1. 1:Habilita la Interrupción por Comparador 1.

EEIE:Bandera de Habilitación para la operación de Escritura en la EEPROM. 0: Deshabilita la Interrupción de Escritura en EEPROM. 1: Habilita la Interrupción de Escritura en EEPROM.

Interrupciones

PIE2

Interrupciones PIE2 BCL1IE : Bandera de Habilitación por colisión de Bus el SSP. 0 : Deshabilita

BCL1IE: Bandera de Habilitación por colisión de Bus el SSP. 0: Deshabilita la Interrupción por colisión de Bus el SSP. 1: Habilita la Interrupción por colisión de Bus el SSP.

C4IE: Bandera de Habilitación por Comparador 4. 0: Deshabilita la Interrupción por Comparador 4. 1: Habilita la Interrupción por Comparador 4.

C3IE:

Bandera de Habilitación por Comparador 3. 0:Deshabilita la Interrupción por Comparador 3. 1:Habilita la Interrupción por Comparador 3.

CCP2IE: Bandera de Habilitación para la Interrupción del módulo CCP2. 0:Deshabilita la Interrupción del módulo CCP2. 1:Habilita la Interrupción del módulo CCP2.

Interrupciones

PIR2

Interrupciones PIR2 OSFIF : Bandera que señaliza Interrupción por falla en el Oscilador. C2IF : Bandera

OSFIF: Bandera que señaliza Interrupción por falla en el Oscilador. C2IF: Bandera que señaliza Interrupción por Comparador 2.

C1IF: Bandera que señaliza Interrupción por Comparador 1.

EEIF: Bandera que señaliza Interrupción en Escritura en la EEPROM.

BCL1IF: Bandera que señaliza Interrupción por colisión de Bus el SSP.

C4IF: Bandera que señaliza Interrupción por Comparador 4.

C3IF: Bandera que señaliza Interrupción por Comparador 3.

CCP2IF: Bandera que señaliza Interrupción del módulo CCP2.

Interrupciones

PIE4

Interrupciones PIE4 PSMC3TIE : Bandera de Habilitación por Disparo del módulo PSMC3. 0 : Deshabilita la

PSMC3TIE: Bandera de Habilitación por Disparo del módulo PSMC3. 0: Deshabilita la Interrupción por Disparo del módulo PSMC3. 1: Habilita la Interrupción por Disparo del módulo PSMC3.

PSMC2TIE: Bandera de Habilitación por Disparo del módulo PSMC2. 0: Deshabilita la Interrupción por Disparo del módulo PSMC2. 1: Habilita la Interrupción por Disparo del módulo PSMC2.

PSMC1TIE: Bandera de Habilitación por Disparo del módulo PSMC1. 0: Deshabilita la Interrupción por Disparo del módulo PSMC1. 1: Habilita la Interrupción por Disparo del módulo PSMC1.

Interrupciones

PIE4

Interrupciones PIE4 PSMC3SIE : Bandera de Habilitación por Auto Shutdown del módulo PSMC3. 0 : Deshabilita

PSMC3SIE: Bandera de Habilitación por Auto Shutdown del módulo PSMC3. 0: Deshabilita la Interrupción por Disparo del módulo PSMC3. 1: Habilita la Interrupción por Disparo del módulo PSMC3.

PSMC2SIE: Bandera de Habilitación por Auto Shutdown del módulo PSMC2. 0: Deshabilita la Interrupción por Auto Shutdown del módulo PSMC2. 1: Habilita la Interrupción por Auto Shutdown del módulo PSMC2.

PSMC1SIE: Bandera de Habilitación por Auto Shutdown del módulo PSMC1. 0: Deshabilita la Interrupción por Auto Shutdown del módulo PSMC1. 1: Habilita la Interrupción por Auto Shutdown del módulo PSMC1.

Interrupciones

PIR4

Interrupciones PIR4 PSMC3TIF : Bandera que señaliza INT por Disparo del módulo PSMC3. PSMC2TIF : Bandera

PSMC3TIF: Bandera que señaliza INT por Disparo del módulo PSMC3.

PSMC2TIF: Bandera que señaliza INT por Disparo del módulo PSMC2.

PSMC1TIF: Bandera

q ue señaliza INT

p

or Dis aro del módulo PSMC1

p

.

PSMC3SIF: Bandera que señaliza INT por Auto Shutdown del módulo PSMC3.

PSMC2SIF: Bandera que señaliza INT por Auto Shutdown del módulo PSMC2.

PSMC1SIF: Bandera que señaliza INT por Auto Shutdown del módulo PSMC1.

Interrupciones

Circuito que activa la Interrupción en el CPU

INTCON

PIE/PIR
PIE/PIR

Interrupciones

Interrupciones por cambio de nivel

IOCAP

IOCAN

IOCAF

Interrupciones por cambio de nivel IOC A P IOC A N IOC A F IOC B

IOCBP

IOCBN

IOCBF

IOCCP

IOCCN

IOCCF

Interrupciones

IOCXP

Interrupciones IOCXP IOCxP7 : Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0 :

IOCxP7: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Subida bit 7. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Subida bit 7.

IOCxP6: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Subida bit 6. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Subida bit 6.

IOCxP5: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Subida bit 5. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Subida bit 5.

IOCxP4: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Subida bit 4. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Subida bit 4.

Interrupciones

IOCXP

Interrupciones IOCXP IOCxP3 : Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0 :

IOCxP3: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Subida bit 3. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Subida bit 3.

IOCxP2: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Subida bit 2. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Subida bit 2.

IOCxP1: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Subida bit 1. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Subida bit 1.

IOCxP0: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Subida. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Subida bit 0. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Subida bit 0.

Interrupciones

IOCXN

Interrupciones IOCXN IOCxN7 : Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0 :

IOCxN7: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Bajada bit 7. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Bajada bit 7.

IOCxN6: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Bajada bit 6. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Bajada bit 6.

IOCxN5: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Bajada bit 5. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Bajada bit 5.

IOCxN4: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Bajada bit 4. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Bajada bit 4.

Interrupciones

IOCXN

Interrupciones IOCXN IOCxN3 : Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0 :

IOCxN3: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Bajada bit 3. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Bajada bit 3.

IOCxN2: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Bajada bit 2. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Bajada bit 2.

IOCxN1: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Bajada bit 1. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Bajada bit 1.

IOCxN0: Bandera de Habilitación Int. Por Cambio de Nivel Flanco Bajada. 0: Deshabilita Interrupción por Cambio de Nivel Flanco de Bajada bit 0. 1: Habilita la Interrupción por Cambio de Nivel Flanco de Bajada bit 0.

Interrupciones

IOCXF

Interrupciones IOCXF IOCxF7 : Señaliza Cambio de Nivel en el pin7. IOCxF6 : Señaliza Cambio de

IOCxF7:

Señaliza Cambio de Nivel en el pin7.

IOCxF6:

Señaliza Cambio de Nivel en el pin6.

IOCxF5:

Señaliza Cambio de Nivel en el pin5.

IOCxF4:

Señaliza Cambio de Nivel en el pin4 .

IOCxF3:

Señaliza Cambio de Nivel en el pin3.

IOCxF2:

Señaliza Cambio de Nivel en el pin2.

IOCxF1:

Señaliza Cambio de Nivel en el pin1.

IOCxF0:

Señaliza Cambio de Nivel en el pin0.

Interrupciones

Interrupciones por cambio de nivel

Interrupciones Interrupciones por cambio de nivel U N E X P O – P t o

Interrupciones

Interrupciones por cambio de nivel

Interrupciones Interrupciones por cambio de nivel U N E X P O – P t o

Interrupciones

Vector de Interrupción

Es la dirección donde debe colocarse la primera instrucción de la Sub-Rutina de atención de interrupción

El

t

d

vec or Dir.

I

t

e n errupc

0004

n para e

l PIC16F1787 es:

Interrupciones

Como se atiende una Interrupción con el PIC

PILA Dir_SUMA
PILA
Dir_SUMA

Dir_01

Dir_02

Dir_03

Dir_04

Dir_05

Dir_SUMA

Dir_07

Dir_08

Dir_09

Programa Sub-Rut Principal Interrupción BSF 03,5 0004 BCF 03,6 MOVF 3F,0 CALL SUMA GOTO 000h
Programa
Sub-Rut
Principal
Interrupción
BSF
03,5
0004
BCF
03,6
MOVF 3F,0
CALL SUMA
GOTO 000h
BCF
03,5
BSF
03,6
RETFIE
ADDWF 5A,1
RETURN

Interrupciones

Prioridades en la interrupciones

Ejemplo: Que pasa si se activan al mismo tiempo la Interrupción externa INT y la de cambio de nivel.

Interrupciones

1er Caso: se atiende primero INT

Dir 0004

SI INTF=1 NO SI IOCIF=1 NO
SI
INTF=1
NO
SI
IOCIF=1
NO

RETFIE

INTF 0

Dir 0004 SI INTF=1 NO SI IOCIF=1 NO RETFIE INTF 0 IOCXFx 0   ORG 0004

IOCXFx 0

 

ORG

0004

BTFSC INTCON,INTF

GOTO

Sub_Rut_INT

BTFSC INTCON,RBIF

GOTO

Sub_Rut_RB

RETFIE

Sub_Rut_INT

 

Sub_Rut_RB

Interrupciones

2do Caso: se atiende primero RBIF

Dir 0004

SI IOCIF=1 NO SI INTF=1 NO
SI
IOCIF=1
NO
SI
INTF=1
NO

RETFIE

IOCXFx 0

Dir 0004 SI IOCIF=1 NO SI INTF=1 NO RETFIE IOCXFx 0 INTF 0   ORG 0004

INTF 0

 

ORG

0004

BTFSC INTCON,RBIF

GOTO

Sub_Rut_RB

BTFSC INTCON,INTF

GOTO

Sub_Rut_INT

RETFIE

Sub_Rut_RB

 

Sub_Rut_INT

Interrupciones

Ejemplo

Interrupciones Ejemplo U N E X P O – P t o . O r d

Interrupciones

Ejemplo

Interrupciones Ejemplo U N E X P O – P t o . O r d