Você está na página 1de 49

Microprocessadores I

Aula 6
Arquitetura do Microprocessador 8085
- Pinagem e Diagrama de Temporização

1
• O 8085 contém em seu CI circuitos para executar
operações de cálculos e comunicação com periféricos.

• 8 vias (fios) do barramento são multiplexadas


(compartilhado no tempo);

• O byte menos significativo (endereço baixo) do


endereçamento de memória compartilha o mesmo
barramento com o byte de dados.

• São necessárias técnicas para demultiplexar o barramento


e gerar os sinais de controles necessários.

– Quais são os tempos (timing) dos sinais no barramento na


execução de uma instrução?
• Tempos nos barramentos na busca de uma instrução na memória;
• Como demultiplexar o barramento AD7 – AD0;
• Como são gerados os 4 sinais de controle (*MEMR, *MEMW, *IOR, *IOW);
2
2.1 - Diagrama de Bloco do Microprocessador 8085

3
6.2 – Pinagem do 8085

Os sinais são classificados em 6 grupos:

1. Barramento de endereço;
2. Barramento de dados;
3. Sinais de controle e status;
4. Sinais de freqüência e alimentação;
5. Sinais externos de inicialização;
6. Portos seriais de I/O.

4
6.2 – Pinagem do 8085

- Barramento de endereço
- Barramento de endereço/dados
- Sinais de Controle e Status

5
6.2 – Pinagem do 8085

6
6.3 - Barramentos de Endereço e Dados

- 16 linhas (pinos) de barramento de endereço.


- 8 linhas de barramento de dados

- Dividido em dois segmentos:


A15 – A8 (Byte mais significativo – high order address)
AD7 – AD0 (Byte menos significativo – low order address)

- Bits A15-A8 são unidirecionais e utilizados somente como byte de


endereçamento.

- Bits AD7-AD0 é usado como byte de endereçamento e byte de


dados.

7
6.3 - Barramentos de Endereço e Dados
O bits AD7-AD0 é bidirecional e serve para dois propósitos.

- Byte menos significativo do barramento de endereço;


- Barramento de dados.
• Isto é conhecido como barramento multiplexado
• São necessários latch e sinais de controle e de status

• ALE ( Address Latch Enable)


Sinal de controle gerado toda vez que 8085 inicia uma operação.
Ele indica que os bits AD7-AD0 são bits de endereçamento.
É usado para habilitar o latch do byte menos significativo do endereço
do barramento multiplexado.
Bits A7-A0 são armazenados, liberando o barramento para ser utilizado
como barramento de dados.
8
6.4 - Sinais de Controle e de Status

Esse grupo contém 6 sinais.

Dois sinais de controle:


• *RD
• *WR

Três sinais de Status:


• IO/*M
• S1
• S0

9
6.4 - Sinais de Controle – Leitura e Escrita

• *RD (Read)
- É o sinal de controle de leitura;
- Este sinal força o dispositivo selecionado (memória ou I/O) a colocar
os dados no barramento de dados para ser lido pelo processador.

• *WR (Write)
- É o sinal de controle de escrita;
- Este sinal força o dispositivo selecionado ( memória ou I/O) a
armazenar o dado presente no barramento que foi fornecido pelo
processador.

10
6.4 - Sinais de Controle – Leitura, Escrita e Status

• IO/*M
- Este sinal de status é utilizado para diferenciar os dispositivos I/O ou
memória nas operações de escrita e leitura
Quando em nível ALTO indica operação em dispositivo de I/O
Quando em nível BAIXO indica operação em memória
• Esse sinal é combinado com os sinais *RD e *WR para gerar sinais de
controle de I/O e memória.
*MEMR, *MEMW, *IOR, *IOW

11
6.4 - Sinais de Controle – Leitura, Escrita e Status

S1 e S0 - Esse sinal de status, similar ao IO/*M, pode identificar várias


operações, porém são raramente utilizados em pequenos sistemas.

12
6.6 – Diagramas de Temporização do 8085
Comunicação do 8085 com a memória e temporização nos barramentos

- Processo de comunicação entre o microprocessador e memória e os


tempos desses sinais em relação ao sinal de relógio.

- Primeiro Passo: leitura em memória. (Busca de instrução – Fetching an


instruction)

- Como o microprocessador busca o código de máquina na memória?

- Exemplo: Instrução MOV C, A


- Suponha que o código de máquina da instrução está armazenado no
endereço 2005H da memória. O opcode é 4FH.

13
6.6.a – Exemplo de Busca de Instrução
- Busca do byte 4FH: CPU coloca o endereço 2005H no barramento e, posteriomente,
habilitar o fluxo de dados da memória.
( Esta operação é chamada de Ciclo de Busca – Fetch Cycle )

14
6.6.a – Exemplo de Busca de Instrução

O Ciclo de busca (Opcode Fetch) é executado em 4 passos:


Passo 1: CPU coloca os 16 bits do conteúdo do PC no barramento de endereço. O
barramento A15-A8 recebe o byte 20H e o barramento AD7-AD0 recebe o byte
05H.

15
6.6.a – Exemplo de Busca de Instrução

Passo 2: A unidade de controle envia o sinal *RD = 0 para habilitar a leitura no


chip de memória. Este sinal permanece habilitado durante dois ciclos de relógio.

16
6.6.a – Exemplo de Busca de Instrução

Passo 3: O byte da localização da memória especificada (2005H) é colocado no


barramento de dados (AD7-AD0) e transferido para a CPU.
A seguir, *RD = ‘1’ e o barramento de dados fica em alta impedância.

17
6.6.a – Exemplo de Busca de Instrução
Passo 4: O byte é colocado no registrador de instruções (IR) e decodificado no
decodificação de instruções. O código de máquina ( 4FH) é decodificado e o
conteúdo do acumulador é copiado para o registrador C.

18
6.7 - Ciclo de Instrução / Ciclo de Máquina / Estados T

Ciclo de Instrução: Tempo necessário para completar a execução de


uma instrução. Para o 8085 o ciclo de instrução consiste de 1 a 6
ciclos de máquinas;

Ciclo de Máquina: Tempo necessário para completar uma operação de


acesso a memória, I/O ou reconhecer uma solicitação externa. Este
ciclo pode consistir de 3 a 6 Estados T;

Estados T: É a sub-divisão da operação executada em um período de


clock. Essa sub-divisão são estados internos sincronizados com o
sistema de clock e cada Estado T é igual a um período de clock.

O termo Estado T e período de clock (relógio) são muitas vezes


usados como sinônimos.
T = 1/fclk; Se f = 5 MHz -> T = 200 ns
19
6.8 - Temporização do Ciclo de Leitura (MR, IOR)
Dois ciclos de leitura:
3 Ciclos: T1, T2 e T3
4 Ciclos: T1, T2, Twait e T3

20
6.8 - Temporização do Ciclo de Leitura (MR, IOR)
Sinais: CLK: sistema síncrono
IO/*M: tipo de dispositivo acionado
A8-A15: byte superior do barramento de endereços;
AD7-AD0: byte inferior do barramento de endereços / dados

21
6.8 - Temporização do Ciclo de Leitura (MR, IOR)
Sinais: ALE: demultiplexação endereços e dados;
*RD: tipo de operação: leitura (pelo microprocessador);
READY: inserção de estado de espera ( Twait);

22
6.8 - Temporização do Ciclo de Leitura (MR, IOR)
Duração: 3 ciclos: Tt = 3 / Fclk; Se Fclk = 5 MHz, Tt = 600 ns
4 ciclos: Tt = 4 / Fclk ... Tt = 800 ns
Conclusão: tempo extra de 200 ns ...

23
6.9 - Temporização do Ciclo de Escrita (MW, IOW):
Sinais: CLK: sistema síncrono
IO/*M: tipo de dispositivo acionado
A8-A15: byte superior do barramento de endereços;
AD7-AD0: byte inferior do barramento de endereços / dados

24
6.9 - Temporização do Ciclo de Escrita (MW, IOW):
Sinais: ALE: demultiplexação endereços e dados;
*WR: tipo de operação: escrita – dados fornecido pela CPU;
READY: inserção de estado de espera (Twait);

25
6.9 - Temporização do Ciclo de Escrita (MW, IOW):
Sinais: ALE: demultiplexação endereços e dados;
*WR: tipo de operação: escrita – dados fornecido pela CPU;
READY: inserção de estado de espera (Twait);

26
6.9 - Temporização do Ciclo de Escrita (MW, IOW):
Duração: 3 ciclos: Tt = 3 / Fclk; Se Fclk = 5 MHz, Tt = 600 ns
4 ciclos: Tt = 4 / Fclk ... Tt = 800 ns
Conclusão: tempo extra de 200 ns ...

27
6.10 – Diagrama de Temporização - Exemplo
- Leitura do byte 4F H armazenado no endereço 2005H;

28
Demultiplexação do barramento AD7-AD0

29
Demultiplexação do barramento AD7-AD0
O barramento AD7-AD0 recebeu os bytes menos significativos do endereçamento
e também recebeu os bytes de dados armazenados em memória.

O byte mais significativo do endereçamento (20H) permaneceu no barramento


A15-A8 durante três períodos de clock, porém o byte menos significativo (05H)
no barramento AD7-AD0 é perdido após o primeiro período de clock.

O barramento AD7-AD0, que é usado para identificar o endereço da memória, é


alterado para 4FH após o primeiro período de clock.

Para reter o byte 05H presente no barramento AD7-AD0 durante o primeiro


período de clock utiliza-se o CI 74LS373 (Latch) e o sinal ALE conectado no
pino G (enable) do latch.

Como o sinal ALE permanece Alto durante T1, o latch é transparente, ou seja
qualquer sinal presente na entrada do latch é transferido para a saída. Quando
o sinal ALE torna-se Baixo, no tempo T2, o byte 05H permanece no latch até o
próximo sinal ALE Alto. Dessa forma a saída do latch armazena o byte menos
significativo do endereçamento, ou seja, representa o byte A7-A0. 30
Demultiplexação do barramento AD7-AD0

31
Instrução STA

32
33
Gerando os sinais de Controle
O Sinal *RD (Read) é utilizado como sinal para ler memória e ler
dispositivos I/O. Dessa forma são necessários dois sinais *RD.
- Um para memória;
- Outro para entrada.

Da mesma forma são necessários dois sinais *WR.


- Um para memória;
- Outro para saída.

A combinação dos sinais *RD, *WR e IO/*M podem gerar os quatros sinais
descrito.
- *MEMR (Memory Read);
- *MEMW (Memory Write);
- *IOR (I/O Read);
- *IOW (I/O Write)
34
Esquema para gerar os sinais de Controle Read/Write para Memória e I/O

35
A CPU necessita de um Latch e portas lógicas para gerar a interface para
qualquer memória ou dispositivo de I/O e demultiplexar barramento AD7-AD0

36
A CPU necessita de um Latch e portas lógicas para gerar a interface
para qualquer memória ou dispositivo de I/O e demultiplexar
barramento AD7-AD0

37
Diagrama de Blocos Funcional do 8085

38
Qual o tempo necessário para executar a seguinte instrução:

MVI A, 32H => Carregar o byte 32H no Acumulador.

Suponha que o código de máquina 3EH (MVI A) e 32H estão


armazenados nas posições 2000H e 2001H respectivamente.

A freqüência de clock é de 2 MHz.

39
Qual o tempo necessário para executar a seguinte instrução:

MVI A, 32H => Carregar o byte 32H no Acumulador.

Suponha que o código de máquina 3EH (MVI A) e 32H estão


armazenados nas posições 2000H e 2001H respectivamente.

A freqüência de clock é de 2 MHz.

Essa instrução consiste de dois bytes: Opcode e byte de dados.

A CPU precisa ler esses dois bytes na memória necessitando de dois


ciclos de máquinas. No primeiro ciclo de máquina é a busca do Opcode
e no segundo ciclo de máquina e a Leitura do dado na Memória.

40
Qual o tempo necessário para executar a seguinte instrução:

MVI A, 32H => Carregar o byte 32H no Acumulador.

41
Qual o tempo necessário para executar a seguinte instrução:

MVI A, 32H => Carregar o byte 32H no Acumulador.

A instrução requer 7 T para os dois Ciclos de Máquinas.

- Freqüência de Clock = 2 MHz;


- T-Estado = Período de Clock (1 / f) = 0,5 µs;
- Tempo de execução para a busca do Opcode = 4 T * 0,5 = 2 µs;
- Tempo de execução para leitura de memória = 3 T * 0,5 = 1,5 µs;
- Tempo de execução para a instrução = 7 T * 0,5 = 3,5 µs.

42
Quantidade de Ciclos de Máquina e quantidade de T-Estados

43
Quantidade de Ciclos de Máquina e quantidade de T-Estados

44
Quantidade de Ciclos de Máquina e quantidade de T-Estados

45
Lógica do Circuito de Clock do 8085A

cristal piezoelétrico: é um cristal de quartzo que, quando submetido a uma


pressão, gera um campo elétrico
que pode ser coletado como tensão. O cristal é utilizado em circuitos eletrônicos
para se gerar o clock de Trigger

Fcristal

CLK = Fcristal / 2 46
Exercícios:
1. Qual a função dos sinais ALE e IO/*M do 8085?

2. Qual a necessidade de demultiplexar o barramento AD7-AD0?

3. Especifique a saída do latch 74LS373 quando o 8085 coloca o endereço


2005H quando o sinal ALE está em nível alto.

4. Escreva as instruções em assembly e em linguagem de máquina para


executar as seguintes operações:
A - Carregar o registrador B com 20H;
B - Carregar o registrador D com o decimal 100;
C - Mover o conteúdo do registrador D para o registrador H;
D – Carregar o número 44H nos registradores C e E, usando
somente 3 bytes de códigos em linguagem de máquina.
E – Carregar o par de registrador D e E com a valor 3800H

47
Exercícios:
5. Determine o conteúdo dos registadores B e C após a execução dos
seguintes programas:

A – LXI B, 24FFH
INX B

B - LXI B, 46FFH
INR C

C - LXI B, 4F88H
DCR B

D - MVI B, C7H
MVI C, 00H
DCX B
48
Exercícios:
6. O que executa o seguinte programa? Qual seu tempo de execução se o
cristal do sistema é de 4.00 MHz?

2000 21 LXI H, 20B0H


2001 B0
2002 20
2003 56 MOV D, M
2004 21 LXI H, 20C0H
2005 C0
2006 20
2007 72 MOV M, D

7. Determine o conteúdo do Acumulador e (F) após executar o programa:


LXI H, 20C0H
MVI M, 20H
MVI A, 2AH
49
ADD M

Você também pode gostar