Вы находитесь на странице: 1из 5

UNIVERSIDADE PAULISTA UNIP

NOTA DE AULA

Prof. Ms. Marco Antonio Baptista de Sousa

INTERRUPÇÃO NO PIC 16F628A/648A

Prof. Ms. Marco Antonio Baptista de Sousa

Como o próprio nome diz, é um evento onde o programa é interrompido e forçado a executar a rotina que estiver a partir do endereço 0004h.

Este evento pode ser executado nas seguintes condições:

Interrupção por Temporizador (são 3 tipos)

Interrupção por um pino de E/S

Interrupção por mudança de estado de um pino de E/S

Interrupção por “Fim de Escrita na EEPROM”

Interrupção por comparador

Interrupção por porta serial (2 tipos)

Interrupção por C.C.P. (Capture, Compare e PWM)

Caso haja algum pedido de interrupção acima, o processador para o programa que está executando, guarda o endereço onde iria buscar a próxima instrução na pilha operacional e salta para o endereço 0004h.

REGISTRADORES UTILIZADOS NA INTERRUPÇÃO:

Na interrupção o PIC utiliza os registradores:

INTCON: Registrador de controle geral de interrupções.

PIE1: Registrador de habilitação de periféricos 1:

PIR1: Registrador de Interrupção de periféricos 1:

Para melhor entendimento, suas funções são descritas a seguir:

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

de Controle de Interrupção. Este registrador pode ser lido ou escrito onde cada bit possui o

UNIVERSIDADE PAULISTA UNIP

Onde:

NOTA DE AULA

bit 7 GIE: Global Interrupt Enable bit

1

= Habilita todas as interrupções

0

= Desabilita todas as interrupções

bit 6 PEIE: Peripheral Interrupt Enable bit

Prof. Ms. Marco Antonio Baptista de Sousa

1

= Habilita todas as interrupções não mascaradas.

0

= Desabilita todas as interrupções não mascaradas.

bit 5 T0IE: TMR0 Overflow Interrupt Enable bit

1

= Habilita interrupções do Timer 0 TMR0

0

= Desabilita Interrupções de TMR0.

bit 4 INTE: RB0/INT External Interrupt Enable bit

1

= Habilita interrupções externas por RB0/INT.

0

= Desabilita interrupções externas por RB0/INT.

bit 3 RBIE: RB Port Change Interrupt Enable bit

1

= Habilita interrupção por mudança de estado dos bits RB (0 p/ 1 ou 1 p/ 0)

0

= Desabilita interrupção por mudança de estado dos bits RB

bit 2 T0IF: TMR0 Overflow Interrupt Flag bit

1

= Interrupção foi pedido porque o Timer 0 (TMR0) estourou sua contagem (deve ser zerado por software)

0

= Sem interrupção por TMR0

bit 1 INTF: RB0/INT External Interrupt Flag bit

1

= Interrupção foi pedida pois Bit RB0/INT foi acionado (deve ser zerado por software)

0

= Sem interrupção por acionamento de RB0/INT.

bit 0 RBIF: RB Port Change Interrupt Flag bit

1

= Interrupção foi pedida pois algum pino de RB4 a RB7 mudou de estado. (deve ser zerado por software)

0

= Sem interrupção por mudança de estado dos pinos RB4 a RB7

UNIVERSIDADE PAULISTA UNIP

NOTA DE AULA

Prof. Ms. Marco Antonio Baptista de Sousa

PIE1: Registrador de habilitação de periféricos 1: É um registrador de Controle de Interrupção de periféricos internos do PIC. Este registrador pode ser lido ou escrito onde cada bit possui o seguinte formato:

ser lido ou escrito onde cada bit possui o seguinte formato: bit 7 EEIE: EE Write

bit 7 EEIE: EE Write Complete Interrupt Enable Bit

1

= Habilita interrupção quando uma operação de escrita na EEPROM é concluída

0

= Desabilita interrupção quando uma operação de escrita na EEPROM

bit 6 CMIE: Comparator Interrupt Enable bit

1

= Habilita interrupção dos comparadores

0

= Desabilita interrupção dos comparadores

bit 5 RCIE: USART Receive Interrupt Enable bit

1

= Habilita interrupção quando um dado é recebido pela porta serial (USART)

0

= Desabilita interrupção de recebimento da USART

bit 4 TXIE: USART Transmit Interrupt Enable bit

1

= Habilita interrupção quando um dado é completamente transmitido pela porta serial (USART)

0

= Desabilita interrupção de transmissão da USART

bit 3 Não Implementado. Está sempre em zero.

bit 2 CCP1IE: CCP1 Interrupt Enable bit

1

= Habilita interrupção do CCP1 (Capture, Compare e PWM 1)

0

= Desabilita interrupção por CCP1

bit 1 TMR2IE: TMR2 to PR2 Match Interrupt Enable bit

1

= Habilita interrupção quando o TMR2 chega ao valor de PR2 (Preset Register 2)

0

= Desabilita interrupção quando o TMR2 chega ao valor de PR2.

bit 0 TMR1IE: TMR1 Overflow Interrupt Enable bit

1

= Habilita interrupção quando Timer 1 TMR1 tiver em overflow.

0

= Desabilita interrupção de overflow de TMR1

UNIVERSIDADE PAULISTA UNIP

NOTA DE AULA

Prof. Ms. Marco Antonio Baptista de Sousa

PIR1: Registrador de Interrupção de periféricos 1: É um registrador que indica qual periférico pediu interrupção de periféricos internos do PIC. Este registrador pode ser lido ou escrito onde cada bit possui o seguinte formato:

ser lido ou escrito onde cada bit possui o seguinte formato: bit 7 EEIF: EEPROM Write

bit 7 EEIF: EEPROM Write Operation Interrupt Flag bit

1

= Pede interrupção quando um dado foi totalmente escrito na EEPROM (Deve ser zerado por software)

0

= Indica que ainda não se completou a escrita na EEPROM

bit 6 CMIF: Comparator Interrupt Flag bit

1

= Pede interrupção quando a saida do comparador muda de estado (Deve ser zerado por software)

0

= Indica que a saida do comparador ainda não mudou de estado.

bit 5 RCIF: USART Receive Interrupt Flag bit

1

= Pede interrupção quando um dado é recebido pela porta serial (USART) (Deve ser zerado por software)

0

= Indica que ainda não houve recebimento da USART

bit 4 TXIF: USART Transmit Interrupt Flag bit

1 = Pede interrupção quando um dado é completamente transmitido pela porta serial (USART) (Deve ser zerado por software)

0 = Indica que ainda não houve transmissão da USART

bit 3 Não 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 interrupção quando houve captura no valor do Timer 1 (TMR1) (Deve ser zerado por software)

0

= Não houve captura de TMR1

Se tiver no modo “Compare Mode”:

1 = Pede interrupção quando o valor do Timer 1 (TMR1) coincide com valor do registrador de preset TMR1H e TMR1L (Deve ser zerado por software)

0 = Não houve coincidencia entre TMR1 e o registrador de comparação

Se tiver no modo “PWM Mode”:

Não é usado neste modo.

bit 1 TMR2IF: TMR2 to PR2 Match Interrupt Flag bit

1 = Pede interrupção quando o TMR2 chega ao valor de PR2 (Preset Register 2) (Deve ser zerado por software)

UNIVERSIDADE PAULISTA UNIP

NOTA DE AULA

bit 0 TMR1IF: TMR1 Overflow Interrupt Flag bit

Prof. Ms. Marco Antonio Baptista de Sousa

1

= Pede interrupção quando Timer 1 TMR1 tiver em overflow. (Deve ser zerado por software)

0

= Indica que não houve overflow de TMR1

PRIORIDADE DAS INTERRUPÇÔES:

A prioridade dos pedidos de interrupções deve ser estabelecido por software. Será considerado conforme a sequência de verificação dos bits de indicação de pedido de interrupção:

Quando o programa é desviado para o endereço 0004h, o programa do usuário 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 interrupção são desabilitados pois o bit GIE é zerado até que seja zerado o bit que ocasionou o pedido de interrupção e seja aplicado a instrução RETFIE

Obs: (RETFIE coloca “1” em GIE reabilitando novos pedidos de interrupção.

IMPORTANTE: Cada interrupção deve ser previamente habilitada antes da execução de qualquer rotina no programa através dos bits:GIE; PEIE; T0IE; INTE; RBIE; EEIE; CMIE; RCIE; TXIE; CCP1IE;TMR2IE e

TMR1IE;

LÓGICA DO SISTEMA DE INTERRUPÇÃO DO PIC:

GIE; PEIE; T0IE; INTE; RBIE; EEIE; CMIE; RCIE; TXIE; CCP1IE;TMR2IE e TMR1IE; LÓGICA DO SISTEMA DE