Académique Documents
Professionnel Documents
Culture Documents
Existem interrupes por software e por hardware, embora as que nos interessem mais neste contexto sejam as interrupes por hardware As interrupes por software so instrues que causam a chamada respectiva rotina de atendimento (e.g. RST 0038hH no Z80)
As interrupes por software so eventos sncronos Na famlia 51 no existem interrupes deste tipo
EEC2104 Microprocessadores - FEUP / DEEC / JMF - 1
Segmentos crticos
Neste exemplo, a sequncia de instrues 1 a 4 no pode ser interrompida sem corrermos o risco de funcionamento incorrecto
Interrupes no vectorizadas
Quando o endereo da rotina de atendimento comum a mais do que uma fonte de interrupo, necessrio determinar a sua origem Esta situao frequente nas interrupes geradas pelos perifricos de comunicao srie (nas interrupes por envio ou recepo)
As interrupes na famlia 51
/INT0 0 1 TF0 IT0 IE0
/INT1
0 1 IT1 IE1
Fontes de interrupo IE0 e IE1 so flags de interrupo que pertencem ao registo TCON (SFR com endereo 88H)
TF1 TI RI
/INT0
0 1 IT0 IE0
Interrupes externas
TF0
/INT1
0 1 IT1 IE1
TF1 TI RI
/INT0 e /INT1 podem ser activos ao nvel (0) ou transio (), de acordo com o contedo do registo TCON (SFR com endereo 88H) Se as interrupes forem activas transio, as flags que as geram so limpas pelo hardware quando a respectiva rotina executada (caso contrrio, ter que ser o cdigo do utilizador a faz-lo)
/INT0
0 1 IT0 IE0
TF0
/INT1
0 1 IT1 IE1
TF1 TI RI
As interrupes pedidas pelos temporizadores / contadores so geradas por TF0 e TF1 e activadas por rollover nos respectivos registos (excepto T/C 0 em modo 3, como se ver mais tarde) Quando gerada uma interrupo proveniente dos T/C, a flag que a gerou limpa pelo hardware quando a rotina de atendimento executada
/INT0
0 1 IT0 IE0
TF0
/INT1
0 1 IT1 IE1
TF1 TI RI
Os pedidos de interrupo do perifrico de comunicao srie resultam do OR entre as flags RI (recepo) e TI (transmisso) Nenhuma destas flags limpa pelo hardware quando a respectiva rotina executada (o cdigo da rotina tem primeiro que identificar a causa da interrupo e depois limpar a flag)
EA inibe todas as interrupes se estiver em 0; se estiver em 1, estaro habilitadas as que tiverem o bit IE.x em 1 ES: perifrico srie; ET1 e ET0: T/C 1 e 0; EX1 e EX0: externas (pinos /INT1 e /INT0)
EEC2104 Microprocessadores - FEUP / DEEC / JMF - 17
Uma fonte de interrupo ter prioridade alta quando o bit IP.x estiver em 1 e baixa quando estiver em 0 PS: perifrico srie; PT1 e PT0: T/C 1 e 0; PX1 e PX0: externas (pinos /INT1 e /INT0)
IEx: O hardware activa (set) esta flag transio descendente em /INTx e limpa-a (clear) quando a respectiva rotina de atendimento executada ITx: Se estiver em 1 a interrupo em /INTx activa transio descendente; se no, activa ao nvel 0.
EEC2104 Microprocessadores - FEUP / DEEC / JMF - 19
at