Você está na página 1de 34

Interrupo no 8085

Prof. Henrique Figueira


IFPE Fonte : Apostila UFG-Microprocessador 8085 e 8088

Contedo
1.

Dispositivos de I/O
1.
2.

Modos de Mapeamento Modos de Comunicao por Software por Hardware

2.

Interrupo
1.
2.

Acesso aos Dispositivos de Entrada e Sada

Dispositivos de Entrada e Sada

Entrada : teclado, mouse, scanners, leitores ticos e magnticos(disco rgido), cameras de vdeo, microfone, sensores, placas de rede, etc. Sada : impressoras, monitores de vdeo, plotters, atuadores, placas de rede, placa de som, etc. A comunicao se d atravs de interfaces que compatibilizam diferenas eltricas, de velocidade, do formato da informao, etc.

Exemplo

Recepo dos dados do Teclado


Endereo Dado Serial Interface Dado Paralelo

CPU

Solicitao de acesso

Modos de Mapeamento dos Dispositivos de I/O no 8085

Standard I/O Modo de comunicao onde a CPU tem acesso direto aos perifricos atravs das instrues IN e OUT (2 bytes). Suporta at 256 dispositivos.

Memory-mapped I/O Neste Modo, os dispositivos de I/O so enxergados pela CPU como Memria. Parte do espao de endereamento dedicado aos perifricos. As instrues LDA addr e STA so utilizadas. Exige o uso de outros chips de suporte.
6

Modos de Comunicao do 8085 com os Dispositivos de I/O

Existem, essencialmente, 3 Modos de comunicao entre a CPU do 8085 e os perifricos: 1. Polling 2. Orientado s interrupes 3. Direct Memory Access (DMA)
Diminuio do grau de envolvimento do processador

Modos de Comunicao com os Dispositivos de I/O no 8085


I/O 01 CPU I/O N

1- Pooling

A CPU efetua uma varredura peridica nos dispositivos para verificar a necessidade de transmisso de dados para a CPU ou se o dispositivo est livre para receber. No envolve sinais de Hardware, podendo ser implementado por software, utilizando-se, por exemplo, a instruo IN. Desvantagem : baixa eficiencia, uma vez que a CPU dever interromper os seus processamentos, a todo instante, para executar esta varredura.
8

Modos de Comunicao com os Dispositivos de Entrada e Sada


2- DMA (Acesso Direto Memria)
HLDA

CPU

HOLD

CDMA

I/O

barramentos

Memria

Controlador de DMA (Intel 8257) compatvel 8085 e suporta at 4 dispositivos de I/O


9

Modos de Comunicao com os Dispositivos de Entrada e Sada


2- DMA (Exemplo)

10

Modos de Comunicao com os Dispositivos de Entrada e Sada


2- DMA (Acesso Direto Memria)

O Controlador de DMA solicita o acesso Memria atravs da entrada HOLD. A CPU interrompe o seu processamento e responde com a sada HLDA. So liberados os barramentos de Dados e de Endereo e as linhas de Controle (RD, WR, etc) e passam a ser assumidos pelo Controlador de DMA. A transmisso ocorre em alta velocidade, por hardware, entre a memria e o dispositivo de I/O. No final, o Controlador de DMA, interrompe a CPU e lhe devolve o controle dos barramentos. Aplicaes : transferencia de dados entre a Memria Principal e o disco rgido, CD-ROM,placas de video, etc.

Obs. : Na leitura do HD ou CD, no ocorre a transferencia de, apenas, 01 arquivo e, sim,de um bloco inteiro de arquivos para a rea de trabalho da CPU (Memria ). E que se tivesse que passar pelo Acumulador ficaria muito lento todo o processo.

11

Modos de Comunicao com os Dispositivos de Entrada e Sada


3- Interrupo

A CPU sofre uma Interrupo sempre que um dispositivo solicita uma transferencia de dados. O contexto atual (contedo dos Registradores em uso ) dever ser salvo na Pilha para este atendimento. A Interrupo pode ser por Hardware ou por Software.

12

Interrupo no 8085 . por Software


. por Hardware

Interrupo por Software


Sintaxe : RST N ( RST 0 ... RST 7 ). Podem substituir a chamadas de sub-rotinas mais frequentes. Equivalem a um CALL 8 x N.

Instruo RST 0 RST 1 RST 2 RST 3 RST 4 RST 5 RST 6 RST 7

Efeito CALL 0000h CALL 0008h CALL 0010h CALL 0018h CALL 0020h CALL 0028h CALL 0030h CALL 0038h

Cdigo C7 CF D7 DF E7 EF F7 FF

A instruo RST N s possui opcode (apenas 1 byte). Da, ocupa menos espao e sua execuo mais rpida que o Call. Usam a Pilha p/ salvar o contexto atual (PC, PSW, etc.) Com a instruo RET, retorna-se ao programa principal. H, apenas, 8 bytes disponveis para cada instruo.Da, uma instruo incondicional JMP utilizada.
14

Exemplo
;************************************************ ;Programa de multiplicao de 2 nmeros ;utilizando RST com sub-rotina de soma ; ;************************************************ .org 1000h inicio: LXI MVI MVI MVI RST HLT multi: ADD B DCR C JNZ multi RET .org 0000h jmp multi ;Adiciona B ao acumulador. A = A + B ;Decrementa o contador. C = C - 1. ;Desvia para "soma" se o resultado de DCR C no for zero (Se Z = 0) ;Retorna para programa principal

SP, 2000h A,00h B,05h C,03h 0

;Pilha na posio 2000 h ;Zera acumulador. ;Carrega o registrador B com N1 e ;o Registrador C com N2,que ser usado como contador ;Equivale a CALL 0000h.Chama subrotina que adiciona B ao acumulador. ;Encerra processamento

;Desvia para a sub-rotina de multiplicao

;****************************************************

15

Interrupo por Hardware


No 8085 existem 5 Interrupes por Hardware. So solicitadas externamente. So Vetoradas.Ou seja,qdo ativada,a CPU interrompe o processamento e executa uma chamada de sub-rotina num endereo especfico
Interrupo TRAP RST 5.5 RST 6.5 RST 7.5 Efeito CALL 0024h CALL 002Ch CALL 0034h CALL 003Ch Pino 6 9 8 7

Os dispositivos de I/O utilizam a Interrupo por Hardware,quando o perifrico est pronto para enviar/ receber algum dado. A transferencia ocorre de forma mais eficiente; pois, a CPU s acionada no momento devido.
16

Interrupo por Hardware Exemplo

Recepo dos dados do Teclado


Endereo

Interface(*)

Dado

Sada serial (Cdigo ASCII)

CPU

Entrada de Interrupo RST n

(*) CI 16550 (UART) com taxa de transmisso de 115.200 bps e capacidade de armazenamento de 16 Bytes em memria FIFO. Converte dados seriais em paralelo.

17

Interrupo por Hardware


As Interrupes por Hardware possuem ordem de prioridade. Durante o atendimento a uma interrupo, as demais ficam indisponveis e, se ocorrerem, ficaro pendentes.
Interrupo TRAP RST 7.5 RST 6.5 RST 5.5 INTR Prioridade 1 2 3 4 5 Vetor 0024h 003Ch 0034h 002C nenhum

A entrada INTR permite a expanso da capacidade de Interrupo utilizando um Controlador de Interrupes (CI8259),o qual recebe at 8 dispositivos e gera os endereos do Vetor (ou Call N ).
18

Interrupo por Hardware


Modos de Acionamento

Ativado por nvel e por borda Ativado, apenas, por borda Ativado por nvel Ativado por nvel

Ativado por nvel

19

;*****************************************************************

Interrupo por Hardware


; com dados gerados a partir do Teclado no Simulador.
;****************************************************************** .DEFINE BUFFER PILHA 2000H 2100H ;****************************************************************** ; Inicializao dos Ponteiros .ORG 1000H LXI SP,PILHA LXI H, BUFFER ; Programa Principal EI Loop: JMP Loop HLT ; SUB-ROTINA : L Teclado Leitura : IN 00H MOV M,A INX H MOV A,L CPI 10H ; L teclado. ; Habilita interrupo ; Loop infinito ; Fim do programa ; Inicializa ponteiro para pilha

; Programa de Leitura do Teclado com Interrupo no Simulador de 8085 ; Objetivo: Preencher 16 posies de Memria ( Buffer Circular de Memria )

Exemplo : Armazenamento de dados do teclado


;Endereo inicial do Buffer do teclado ;Endereo do topo da Pilha

; Inicializa endereo de incio de buffer

; Guarda cdigo de tecla no buffer. ; Incrementa endereo do buffer. ; Implementa buffer circular, com 16 bytes. ; Verifica se o buffer circular est cheio.

JNZ CONT
MVI L,00 CONT: EI RET ; SUB-ROTINA : Interrupo RST 7.5 .ORG 003CH JMP Leitura ; Habilita interrupo

IFPE-2009.1-Teclado com Interrupo.asm

20

Interrupo por Hardware


Circuitos de Interrupo

TRAP
TRAP

Pino 6 TRAP Pino 36 RESET IN Reconhecimento de TRAP

D CP

CALL 0024h
Q _ Q

A transio do relgio de 0 para 1 transfere a entrada D para a sada Q ( Q=1) e o sinal alto de relgio habilita a porta AND na sada do Flip-Flop. A sada do circuito de interrupo TRAP assume valor 1, desviando o processamento para o endereo 0024H. Um sinal baixo no pino RESET IN ou um sinal alto de Reconhecimento de TRAP limpa o pedido de interrupo.
21

Circuito de Interrupo RST 7.5, RST 6.5 e RST 5.5


Pino 7 RST 7.5 R 7.5
Reconhecimento de RST 7.5

D CP

Q _ Q

I 7.5

M 7.5 Pino 8 RST 6.5 M 6.5 Pino 9 RST 5.5 M 5.5 MSE DI RESET IN
Qualquer Reconhecimento de Interrupo

S S QQ D _ R CP Q M 7.5
R

CALL 003Ch

I 6.5
CALL 0034h Q Q _ Q

SD
CP R

M 6.5 I 5.5
CALL 002Ch

S S QQ D R CP
R _ Q

M 5.5

EI

S D
CP R

Q Q _ Q

IE
Explicao no slide a seguir => 22

Interrupo por Hardware


Circuito de Interrupo RST 7.5, RST 6.5 e RST 5.5
Ver figura anterior.

No incio, ou aps um Reset, a sada IE est baixa e as interrupes desabilitadas. Aps a execuo da instruo EI, o sinal EI vai para 1. Se a interrupes no estiverem mascaradas ( MSE = 0), todas estaro habilitadas Se o pino 7 for ativado(RST 7.5)I7.5=1 CALL 003Ch Se o pino 8 for ativado(RST 6.5)I6.5=1 CALL 0034h Se o pino 9 for ativado(RST 5.5)I5.5=1 CALL 002Ch Aps o acionamento de uma interrupo, a CPU manda o sinal QUALQUER RECONH... para 1, desabilitando as demais. Se ocorrer,ento, outra solicitao de interrupo, a sada respectiva (I7.5...I5.5) ir para 1, sinalizando-a como pendente. Ao trmino da sub-rotina, dever ser inserida uma instruo EI para re-habilitar todas as interrupes.

23

Interrupo por Hardware


Expanso da capacidade de Interrupo.
INTR

CPU 8085

INTA

dados

Controlador de Interrupo 8259

At 8 pedidos de Interrupo

O Controlador 8259 possui o endereo inicial de 8 sub-rotinas. No incio da solicitao, gerada uma transio de 0 p/ 1 em INTR. A CPU reconhece com um 0 por INTA\. O 8259 envia o cdigo da instruo CALL. A CPU responde com um 0 em INTA\. O 8259 envia a parte inferior do endereo da sub-rotina. A CPU responde com um 0 em INTA\. O 8259 envia a parte superior do endereo da sub-rotina. A CPU salva o contexto atual e executa a sub-rotina.
24

Controlador de Interrupo 8259

Nvel de prioridade de IR0 at IR7

25

Interrupo por Hardware


Bloqueio das Interrupes
Instruo DI. Um sinal baixo na entrada RESET IN. Um sinal em QUALQUER RECONHECIMENTO DE INTERRUPO. Por Mascaramento.

26

Interrupo por Hardware


Setagem e Bloqueio da Mscara de Interrupes :

A Mscara de Interrupo permite o uso seletivo das Interrupes. Bloqueando as Interrupes indesejadas. A instruo SIM usa o contedo do Acumulador para definir a Mscara de Interrupo. A Mscara de Interrupo s reconhecida aps o uso da instruo SIM.

Passo 1 : O Acumulador carregado com os dados da Mscara, cujos bits, acionaro as linhas do circuito de controle das Interrupes. Passo 2 : A instruo SIM executada para que possibilite a transferencia dos bits para o circuito de controle.
27

Acumulador SOD

Dado de Sada Serial Habilitao de Sada Serial Irrelevante Zera Flip-flop RST 7.5 Habilitao Setagem Mscara

Interrupo por Hardware


SOE X R 7.5 MSE M7.5 M6.5 M5.5

Setagem e Bloqueio da Mscara de Interrupes

Seta Mscara RST 7.5 Seta Mscara RST 6.5 Seta Mscara RST 5.5

28

Interrupo por Hardware


Exemplo de uso da Mscara de Interrupes :
Acumulador SOD

SOE 0

X 0

R 7.5 0

MSE 1

M7.5 1

M6.5 1

M5.5 0

0 Programa 1

Na configurao acima, somente a interrupo RST 5.5 estar habilitada. As demais estaro desabilitadas.

EI
MVI A, 0E SIM Programa 2 EI MVI A, 08 SIM

; Habilita interrupes
; Carrega o padro de bits para habilitar somente RST5.5 ; Habilita RST 5.5 ; Habilita interrupes ; Carrega no Acumulador o padro de bits para habilitar as 3 ;interrupes ; Habilita as interrupes RST 7.5, 6.5, 5.5
29

Interrupo por Hardware


Setagem e Bloqueio da Mscara de Interrupes

Uso da instruo RIM :

Carrega no Acumulador os dados atuais referentes s Interrupes e Entrada Serial.

30

Acumulador SID

Dado da Entrada Serial Interrupo R7.5 pendente Interrupo R6.5 pendente Interrupo R5.5 pendente Habilitao de Interrupo Mscara da Interrupo RST 7.5 Mscara da Interrupo RST 6.5

Mscara de Interrupes Uso da Instruo RIM


I7.5 I6.5 I5.5 IE M7.5 M6.5 M5.5

Interrupo por Hardware

Mscara da Interrupo RST 5.5

31

Interrupo por Hardware


Mscara de Interrupes Exemplo: aps o uso da instruo RIM
Acumulador SID

I7.5 I6.5 I5.5 1 0 0

IE 1

M7.5 1

M6.5 0

M5.5 0

Leitura da Mscara :

H uma Interrupo RST 7.5 pendente ( I7.5)

As Interrupes esto habilitadas ( IE = 1 )


A mscara de Interrupo RST 7.5 est setada;logo,ela no ser atendida. Trecho de Programa que verifica interrupes pendentes. RIM MOV B, A ANI 20H JNZ addr_1 ; L a mscara de interrupo ; Salva a informao da mscara ; Verifica se RST 6.5 estpendente ; Desvia para addr no caso de pendncia
32

Abrir :
Prg-08(Interrup.....).asm

etce tal ; Se no houver pendncia segue o fluxo.

Controle de Processo Industrial


( ver enunciado no prximo slide )

33

Controle de Processo Industrial


Descrio
Considere que, no esquema anterior, tenhamos um determinado processo de produo, o qual funciona da seguinte forma : a) Inicialmente, as 2 eletrovlvulas A e B devero abrir, simultaneamente, para permitir a entradas dos insumos A e B na Caldeira. Esta etapa dura 10 segundos. b) Em seguida, as eletro-vlvulas fecham e o motor acionado por 30 segundos. c) Em seguida, com o motor, ainda, girando por mais 5 segundos, apenas, o insumo A dever ser inserido. d) Na sequencia, as eletro-vlvula A e B fecham, o motor desligado e, apenas, a eletro-vlvula C dever ser aberta, durante 20 segundos, para que o produto final que se encontra na Caldeira seja escoado. Em seguida, um novo ciclo de produo dever ser iniciado. O Sensor de Temperatura (ST) do Motor, em caso de superaquecimento do mesmo, muda o seu bit nico de sada de 0 para 1. a) Defina de que forma este Sensor ser conectado ao 8085, para que seja verificada a ocorrncia de superaquecimento do Motor. Se atravs das Portas de Entrada e, neste caso, utilizando-se a instruo IN, teramos que efetuar uma verificao peridica desta entrada (Modo Pooling ). Ou se atravs de uma das entradas de Interrupo. b) Em caso de superaquecimento, deveremos ter : 1- A paralisao do atual processo de produo, com o imediato desligamento do Motor e fechamento das eletrovlvulas A e B. 2- O escoamento total da produto atual que se encontra na Caldeira, com a abertura da eletro-vlvula C por um perodo de 20 segundos. 3- Assim que o sensor ST voltar para 0, significando que o Motor no mais se encontra superaquecido, o processo de produo dever, imediatamente, re-iniciado.

34

Você também pode gostar