You are on page 1of 16

Mdulo 3 : Interrupo

MicroControlador AT89S8252

Laboratrio

de

Sistemas

Digitais

Interrupo
Evento interno/externo que obriga o processador a suspender a execuo da sequencia atual de instrues e desviar para a sequencia de instrues que atende (servio) ao evento. Aps a execuo da sequencia de instrues do servio de interrupo o processador deve retornar exatamente ao mesmo ponto da sequencia interrompida. Para cada interrupo deve haver um endereo ou apontador de endereo da primeira instruo da Rotina de Servio de Interrupo (ISR).
2

Definies
Origem: Interna quando gerada, de forma programada, por uma das interfaces (UART, SPI, TIMERs) j integradas ao prprio processador. Externa quando geradas pelas entradas externas. Tipo de Acionamento: Interna acionamento programado via Registrador. Externa acionamento por nvel lgico ( 0 ou 1) ou por transio que pode ser de subida ou de descida. Mascaramento: Propriedade do processador de, permitir via software que um dispositivo, temporariamente, interrompa ou no
3

Definies (cont.)
Prioridade: Em processadores com mltiplas interrupes possvel, via software, definir a prioridade de cada uma delas. No-Vetorada: Quando o processador possui um endereo fixo para a rotina de servio de cada interrupo como no 8051. Vetorada: O processador permite que o dispositivo que interrompeu envie o endereo da rotina de servio.

Temporizao da Interrupo
Amostragem Reconhecimento - Atendimento

Temporizao da Interrupo
Amostragem Reconhecimento - Atendimento
interrupo na espera

Programa em execuo

1 ciclo

2 ciclo

3 ciclo

4 ciclo

5 ciclo

S5P2
amostragem da interrupo salva contedo do PC e carrega com endereo da rotina de servio

Rotina de Servio de Interrupo

Incio da rotina de servio

Interrupes no AT89S8252
Interrupo RESET INT0 INT1 Timer/Counter0 Timer/Counter1 SPI e UART Timer/Counter2 Tipo Externa pino RST Externa pino P3.2 Externa pino P3.3 Interna ET0 Interna ET1 Interna RI/ TI/ SPIF Interna TF2 / EXF2 Endereos 0x0000 0x0003 0x0013 0x000B 0x001B 0x0023 0x002B
7

Ordem de Prioridade Natural


1 2 3 4 5 6 INT0 (PX0) TIMER/COUNTER0 (PT0) INT1 (PX1) TIMER/COUNTER1 (PT1) SERIAL (PS) TIMER/COUNTER2 (PT2)
8

Sistema de Interrupo
IE
INT0
0

IP
PX0

Prioridade Alta 1 0 Baixa


1
EX1

AXO

ET0 PT0


PX1

TIMER0 INT1
0 1

TIMER1 RI TI SPIF TF2 EXF2


EX0 ET0 ET1 ES

EX1

PX1

ET1 PT1

ES

PS

ET2 PT2

IP
PT1 PS PT2
9

ET2

EA

PX0

PT0

IE

Programao do Sistema de Interrupo


Consiste na definio dos valores adequados dos bits dos registradores: Habilitao de Interrupo - IE Prioridade de Interrupo - IP Registrador - TCON Os bits do registrador IP chaveiam as interrupes para o Grupo de Alta ou de Baixa Prioridade Em cada grupo obedecida a Ordem de Prioridade Natural estabelecida durante o projeto do hardware do processador
10

Registrador de Habilitao de Interrupo IE


(0xA8)
7 EA 6 5 ET2 4 ES 3 ET1 2 EX1 1 ET0 0 EX0

Set Habilita IRQ TIMER2 Set Habilita IRQ UART e SPI Set Habilita IRQ TIMER1 Set Habilita IRQ externa.1 Set Habilita IRQ TIMER0

EA=0 bloqueia todas interrupes EA=1 desbloqueia as interrupes

Set Habilita IRQ externa.0

Bit em Reset desabilita a IRQ


11

Registrador de Prioridade de Interrupo IP


(0xA8)
7 6
-

5 PT2
IRQ TIMER2

4 PS

3 PT1

2 PX1

1 PT0

0 PX0

IRQ UART e SPI IRQ TIMER1 IRQ externa.1

Escrevendo 0 no bit liga a interrupo no grupo de baixa prioridade Escrevendo 1 no bit liga a interrupo no grupo de alta prioridade Sempre obedecida a ordem de prioridade natural

IRQ TIMER0 IRQ externa.0

12

Registrador de Controle de Interrupo - TCON


(0X88)
7 TF1 6 TR1 5 TF0 4 TR0 3 IE1 2 IT1 1 IE0 0 IT0

TF1= Flag Overflow TIMER1 TF0= Flag Overflow TIMER0 Flag Interrupo Externa.1 IE1= 1 IRQ ativada Flag Interrupo Externa.0 IE0= 1 IRQ ativada

Bit de Controle TIMER1 on/off TR1= 1 ativado Bit de Controle TIMER0 on/off TR0= 1 ativado Bit de seleo IRQ Externa.1 IT1= 1 borda ou IT1=0 nvel Bit de seleo IRQ Externa.0 IT0= 1 borda ou IT0=0 nvel

13

Estrutura Bsica de um programa com Interrupo - 8051 org ljmp org nop reti org nop reti org nop reti org nop reti org nop reti ... ... ... end 0x0000 inicio 0x0003 0x000B 0x0013 0x001B 0x0023 ; onde o programa inicia aps reset ; salta IRQs e desvia para programa principal ; endereo da interrupo externa INT0 ; endereo da interrupo TIMER0 ; endereo da interrupo externa INT1 ; endereo da interrupo TIMER1 ;endereo das interrupes UART e SPI

Inicio

14

Aplicao
Programar o sistema de interrupo de modo que: INT1 seja habilitada na prioridade mxima, acionada por nvel TIMER/COUNTER1 habilitada em segunda prioridade INT0 habilitada na terceira prioridade, acionada por transio SERIAL , TIMER/COUNTER0 e TIMER/COUNTER2 desativadas

Programao dos registradores: IE, IP e TCON A ordem de prioridade natural fixa e obedecida em cada grupo. S possvel alguma alterao pela adequada distribuio das IRQs entre os grupos de alta e baixa prioridade. INT1 e TIMER/COUNTER1 podem assumir maior prioridade de forem ativadas no grupo de alta e INT0 no de baixa

Aplicao (cont.)
Programao de IE IRQs desbloqueadas: IE.EA=1 INT0, INT1 e TIMER1 ativadas: IE.EX0=1; IE.EX1=1; IE.ET1=1 TIMER0, TIMER2 e SERIAL desativadas: IE.ET0=0;IE.ES=0;IE.ET2=0 IE = 10001101 Programao de IP INT1 e TIMER1 ativadas no grupo de Alta: IP.PX1=IP.PT1=1 INT0 ativada no grupo de Baixa: IP.PX0=0 Programao de TCON INT0 acionada por borda: TCON.ITO=1 INT1 acionada em nvel: TCON.IT1=0

16