Académique Documents
Professionnel Documents
Culture Documents
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
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
Sistema de Interrupo
IE
INT0
0
IP
PX0
1
EX1
AXO
ET0 PT0
PX1
TIMER0 INT1
0 1
EX1
PX1
ET1 PT1
ES
PS
ET2 PT2
IP
PT1 PS PT2
9
ET2
EA
PX0
PT0
IE
Set Habilita IRQ TIMER2 Set Habilita IRQ UART e SPI Set Habilita IRQ TIMER1 Set Habilita IRQ externa.1 Set Habilita IRQ TIMER0
5 PT2
IRQ TIMER2
4 PS
3 PT1
2 PX1
1 PT0
0 PX0
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
12
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