Você está na página 1de 5

UNIVERSIDADE PAULISTA UNIP

NOTA DE AULA

Prof. Ms. Marco Antonio Baptista de Sousa

INTERRUPO NO PIC 16F628A/648A


Prof. Ms. Marco Antonio Baptista de Sousa
Como o prprio nome diz, um evento onde o programa interrompido e forado a executar a rotina que
estiver a partir do endereo 0004h.
Este evento pode ser executado nas seguintes condies:

Interrupo por Temporizador (so 3 tipos)


Interrupo por um pino de E/S
Interrupo por mudana de estado de um pino de E/S
Interrupo por Fim de Escrita na EEPROM
Interrupo por comparador
Interrupo por porta serial (2 tipos)
Interrupo por C.C.P. (Capture, Compare e PWM)

Caso haja algum pedido de interrupo acima, o processador para o programa que est executando, guarda o
endereo onde iria buscar a prxima instruo na pilha operacional e salta para o endereo 0004h.
REGISTRADORES UTILIZADOS NA INTERRUPO:
Na interrupo o PIC utiliza os registradores:
INTCON: Registrador de controle geral de interrupes.
PIE1: Registrador de habilitao de perifricos 1:
PIR1: Registrador de Interrupo de perifricos 1:

Para melhor entendimento, suas funes so descritas a seguir:


INTCON: um registrador de Controle de Interrupo. Este registrador pode ser lido ou escrito onde cada bit
possui o seguinte formato:

UNIVERSIDADE PAULISTA UNIP


NOTA DE AULA

Prof. Ms. Marco Antonio Baptista de Sousa

Onde:
bit 7 GIE: Global Interrupt Enable bit
1 = Habilita todas as interrupes
0 = Desabilita todas as interrupes
bit 6 PEIE: Peripheral Interrupt Enable bit
1 = Habilita todas as interrupes no mascaradas.
0 = Desabilita todas as interrupes no mascaradas.
bit 5 T0IE: TMR0 Overflow Interrupt Enable bit
1 = Habilita interrupes do Timer 0 TMR0
0 = Desabilita Interrupes de TMR0.
bit 4 INTE: RB0/INT External Interrupt Enable bit
1 = Habilita interrupes externas por RB0/INT.
0 = Desabilita interrupes externas por RB0/INT.
bit 3 RBIE: RB Port Change Interrupt Enable bit
1 = Habilita interrupo por mudana de estado dos bits RB (0 p/ 1 ou 1 p/ 0)
0 = Desabilita interrupo por mudana de estado dos bits RB
bit 2 T0IF: TMR0 Overflow Interrupt Flag bit
1 = Interrupo foi pedido porque o Timer 0 (TMR0) estourou sua contagem (deve ser zerado por software)
0 = Sem interrupo por TMR0
bit 1 INTF: RB0/INT External Interrupt Flag bit
1 = Interrupo foi pedida pois Bit RB0/INT foi acionado (deve ser zerado por software)
0 = Sem interrupo por acionamento de RB0/INT.
bit 0 RBIF: RB Port Change Interrupt Flag bit
1 = Interrupo foi pedida pois algum pino de RB4 a RB7 mudou de estado. (deve ser zerado por software)
0 = Sem interrupo por mudana de estado dos pinos RB4 a RB7

UNIVERSIDADE PAULISTA UNIP


NOTA DE AULA

Prof. Ms. Marco Antonio Baptista de Sousa

PIE1: Registrador de habilitao de perifricos 1: um registrador de Controle de Interrupo de perifricos


internos do PIC. Este registrador pode ser lido ou escrito onde cada bit possui o seguinte formato:

bit 7 EEIE: EE Write Complete Interrupt Enable Bit


1 = Habilita interrupo quando uma operao de escrita na EEPROM concluda
0 = Desabilita interrupo quando uma operao de escrita na EEPROM
bit 6 CMIE: Comparator Interrupt Enable bit
1 = Habilita interrupo dos comparadores
0 = Desabilita interrupo dos comparadores
bit 5 RCIE: USART Receive Interrupt Enable bit
1 = Habilita interrupo quando um dado recebido pela porta serial (USART)
0 = Desabilita interrupo de recebimento da USART
bit 4 TXIE: USART Transmit Interrupt Enable bit
1 = Habilita interrupo quando um dado completamente transmitido pela porta serial (USART)
0 = Desabilita interrupo de transmisso da USART
bit 3 No Implementado. Est sempre em zero.
bit 2 CCP1IE: CCP1 Interrupt Enable bit
1 = Habilita interrupo do CCP1 (Capture, Compare e PWM 1)
0 = Desabilita interrupo por CCP1
bit 1 TMR2IE: TMR2 to PR2 Match Interrupt Enable bit
1 = Habilita interrupo quando o TMR2 chega ao valor de PR2 (Preset Register 2)
0 = Desabilita interrupo quando o TMR2 chega ao valor de PR2.
bit 0 TMR1IE: TMR1 Overflow Interrupt Enable bit
1 = Habilita interrupo quando Timer 1 TMR1 tiver em overflow.
0 = Desabilita interrupo de overflow de TMR1

UNIVERSIDADE PAULISTA UNIP


NOTA DE AULA

Prof. Ms. Marco Antonio Baptista de Sousa

PIR1: Registrador de Interrupo de perifricos 1: um registrador que indica qual perifrico pediu
interrupo de perifricos internos do PIC. Este registrador pode ser lido ou escrito onde cada bit possui o
seguinte formato:

bit 7 EEIF: EEPROM Write Operation Interrupt Flag bit


1 = Pede interrupo quando um dado foi totalmente escrito na EEPROM (Deve ser zerado por software)
0 = Indica que ainda no se completou a escrita na EEPROM
bit 6 CMIF: Comparator Interrupt Flag bit
1 = Pede interrupo quando a saida do comparador muda de estado (Deve ser zerado por software)
0 = Indica que a saida do comparador ainda no mudou de estado.
bit 5 RCIF: USART Receive Interrupt Flag bit
1 = Pede interrupo quando um dado recebido pela porta serial (USART) (Deve ser zerado por software)
0 = Indica que ainda no houve recebimento da USART
bit 4 TXIF: USART Transmit Interrupt Flag bit
1 = Pede interrupo quando um dado completamente transmitido pela porta serial (USART) (Deve ser
zerado por software)
0 = Indica que ainda no houve transmisso da USART
bit 3 No Implementado. Est sempre em zero.

bit 2 CCP1IF: CCP1 Interrupt Flag bit . Pode funcionar de 3 formas:


Se tiver no modo Capture Mode:
1 = Pede interrupo quando houve captura no valor do Timer 1 (TMR1) (Deve ser zerado por software)
0 = No houve captura de TMR1
Se tiver no modo Compare Mode:
1 = Pede interrupo quando o valor do Timer 1 (TMR1) coincide com valor do registrador de preset TMR1H e
TMR1L (Deve ser zerado por software)
0 = No houve coincidencia entre TMR1 e o registrador de comparao
Se tiver no modo PWM Mode:
No usado neste modo.
bit 1 TMR2IF: TMR2 to PR2 Match Interrupt Flag bit
1 = Pede interrupo quando o TMR2 chega ao valor de PR2 (Preset Register 2) (Deve ser zerado por
software)
0 = Indica que valor de TMR2 no chegou ao valor de PR2.

UNIVERSIDADE PAULISTA UNIP


NOTA DE AULA

Prof. Ms. Marco Antonio Baptista de Sousa

bit 0 TMR1IF: TMR1 Overflow Interrupt Flag bit


1 = Pede interrupo quando Timer 1 TMR1 tiver em overflow. (Deve ser zerado por software)
0 = Indica que no houve overflow de TMR1
PRIORIDADE DAS INTERRUPES:
A prioridade dos pedidos de interrupes deve ser estabelecido por software. Ser considerado conforme a
sequncia de verificao dos bits de indicao de pedido de interrupo:
Quando o programa desviado para o endereo 0004h, o programa do usurio deve analisar qual bit est
setado: T0IF; INTF; RBIF; EEIF; CMIF; RCIF; TXIF; CCP1IF; TMR1IF; TMR2IF; Conforme o bit que estiver
acionado, desvia o programa para uma sub-rotina diferente. Uma vez em cada rotina, outros pedidos de
interrupo so desabilitados pois o bit GIE zerado at que seja zerado o bit que ocasionou o pedido de
interrupo e seja aplicado a instruo RETFIE
Obs: (RETFIE coloca 1 em GIE reabilitando novos pedidos de interrupo.
IMPORTANTE: Cada interrupo deve ser previamente habilitada antes da execuo de qualquer rotina no
programa atravs dos bits:GIE; PEIE; T0IE; INTE; RBIE; EEIE; CMIE; RCIE; TXIE; CCP1IE;TMR2IE e
TMR1IE;
LGICA DO SISTEMA DE INTERRUPO DO PIC: