Você está na página 1de 52

Microprocess

ador 8085
Objectivos
 Entender a arquitectura de 8085.
 Compreender a arquitectura interna e
tamanho de barramento de 8085.
 Familiarizar-se com a capacidade de
interrupção do 8085.
 Entender o diagrama temporal e os ciclos
de máquinas.
Introdução
O 8085 é um microprocessador de oito
bits da Intel lançado nos meados dos
anos 70 e que constituiu um dos
microprocessadores de oito bits mais
usados nos primeiros computadores
pessoais.
 Este microprocessador constitui um
modelo ideal para o estudo de
microprocessadores porque os seus
princípios de funcionamento estão
presentes nas versões mais avançadas de
microprocessadores.
Microprocessador 8085
 8085 é um microprocessador de 8bits com 8 de
barramento de dados e 16 bits de barramento de
endereços.
 Os sinais em 8085 podem ser divididos em 6
grupos:
1. Sinais de dados
2. Sinais de endereços
3. Sinais de controle e indicação do estado
4. Sinais de clock e fonte de alimentação
5. Sinais originados externamente
6. Sinais seriais
Diagrama de Blocos do
Microprocessador 8085
Principais Características:
 Para a transferência de dados da CPU para a memória e vice-versa
o 8085 usa também um barramento de 8 bits.
 o 8085 pode endereçar até ao máximo de 216 locais de memória,
isto é , 64 Kbytes.
 Para este efeito o 8085 possui um barramento exclusivo para os 8
bits mais significativos ( A8-A15) – Endereços.
 Os restantes 8 bits (A0 – A7) passam por oito linhas que internamente
são multiplexadas com as linhas de dados e saem por um único
barramento para a memória – Dados e Endereços.
 Isto torna-se possível porque o envio do endereço para a memória nunca
ocorre em simultâneo com o processo de leitura ou escrita de dados na
memória.
 A razão que lovou a se optar por multiplexaçar oito bits de
endereços com os oito de dados é que o 8085 vem num circuito
integrado de 40 pinos que era o número máximo prático de pinos
que na época se podia conseguir num circuito integrado.
Arquitectura de hardware de
8085
 Os blocos básicos da arquitectura interna
de 8085 é composto por:
1. Unidade Logica e Aritmetica
2. Temporizacao e Controle
3. Conjunto de registos
4. Decodificador de instruções
5. Controle de interrupção
6. Controlo serial I/O
Registos Internos
 O 8085 apresenta seis registos de oito bits
para o uso geral nomeadamente Registo B,
C, D, E, H e L.
 Para além destes outros quatro registos de
uso específico nomeadamente o
acumulador de (A) e o registo de estado
(Flag Register) ambos de oito bits e o contator
de programas (PC) e o apontador de pilha
(SP) estas de 16 bits cada.
 Na programação é importante conhecer a
letra (em maiscula) usada como simblo de
cada um dos registos porque em assembly
esses simblos são usados para se referir os
registos a que elas representam.
Acumulador (A)
É um registo de 8 bits que que a ALU usa
em todas as operações artiméticas e
lógicas.
 Nas suas operações, a ALU usa quase
sempre o acumulador como fonte do
operando (ou um dos operandos) da
instrução.
 O resultado da operação levada a cabo
pela ALU é também quase sempre
guardado no acumulador.
Contador de programas
(Program Counter – PC)
É um registo de 16 bits que contém
o endereço da próxima instrução a
se buscar da memória para ser
executada.
 É incrementado pela unidade de
controle após a execução de uma
instrução.
Apontador da Pilha (Stack
Pointer - SP)
É um registo de 16 bits que guarda o
endereço do topo da pilha, uma área de
memória reservada a aplicações
especias durante a execussão de
programas.
 Os dados normalmente armazenados são
endereços de chamadas/retornos de
subrotina e endereços de retorno de
interrupções.
 (O assunto de uso de pilha será
considerado nos próximos capítulos).
Registrador "TEMP"
É um registrador auxiliar usado para a
entrada de dados da Unidade Lógico-
Aritmética.
 Os dados desse registrador são enviados
para a ULA juntamente com os dados do
Acumulador.
"Registrador de Instrução" (IR -
Instruction Register)
É um registrador de 8 bits que armazena
o primeiro byte da instrução (OPCODE),
ou seja, O conteúdo da memória
apontado (endereçado) pelo registrado
PC.
Registrador "Decodificador de
Instrução e Codificador de
Ciclo de Máquina“
É o registrador responsável pela
decodificação de cada instrução e de
definição dos ciclos de máquina que
serão controlados pela unidade de
controle.
Registradores B, C, D, E, H e L
 São registradores de propósito geral de 8
bits e que podem ser combinados aos
pares para formar registradores par (rp:
register pair) para armazenar endereços
(16 bits).
 Os pares formados são: BC, DE e HL.
 O primeiro registrador de cada par
armazena o byte mais significativo, isto é,
B, D e H.
Registo de estado (Flag
Register)
É um registo de 8 bits (mas somente 5 bits
são utilizados) que contém informação
sobre o estado do acumulador resultante
da última operação lógica ou artimética
executada na ALU.
informação dos “Flags”
 S = Flag de Sinal - assume o valor 1 quando o
resultado de uma operação é negativo.
 Z = Flag de Zero - assume o valor 1 quando o
resultado de uma operação é zero.
 AC = Auxiliar de Carry = flag usada como
auxiliar de transporte. Assume valor 1 quando
há transporte do bit 3 para o bit 4. Este
“Flag” é usado internamente nas operações
de conversão para BCD, não sendo
disponível para o uso do programador.
 P = Flag de Paridade = assume valor 1
quando há um número de par de algarismos
1 no acumulador
 CY = Flag de Carry (transporte) = assume
valor 1 quando há transporte do bit 7.
Observação
 Na programação os “Flag” S, Z, P e CY
são normalmente usados em operações
de saltos (desvios) condicionais,
chamadas a subrotinas e retorno de
subrotinas ou ainda na tomada de
decisões em operações lógicas e
artiméticas.
Exemplos de operação e os Flags
resultantes
Pinagem e função das linhas
de entrada/saida do 8085
 Para usar o microprocessador em
sistemas baseados em computadores ou
microcontroladores torna-se importante
conhecer o modo como este deve ser
interligado tanto com a memória como
com os circuitos de entrada e saida
 Assim, o conhecimento de todos os pinos
do circuito integrado e a função de cada
um deles constitue parte integrante e
indispensável para concepção de
qualquer sistema baseado em
microprocessador.
Alimentação e Sinal de Relógio
 Pinos 1 e 2 Entradas de conneção do circuito
ressonante (cristal, ou qualquer outro circuito
ressonante) gerador da frequência para a
operação do microprocessador. Os restantes
componentes do oscilador estão incorporados
dentro do 8085. A freqência do clock do
microprocessador deve ser metade da frequência
do cristal (ou outro circuito ressonante). Assim, para
que o microprocessdor opere a 3MHz o circuito
ressonante deve gerar 6 MHz.
 Pinos 20 e 40 – Estes são pinos de entrada da
limentação do microprocessador, +5 Volts no pino
40 e no pino 20 a terra (ground).
Alimentação e Sinal de
Relógio
 Pino 37 – Saida do sinal de clock do
microprocessador.
 Este sinal pode ser usado para
sincronização do clock do
microprocessador com o clock de
dispositivos externos a ele conectados,
como por exemplo, a memória ou
unidades de I/O.
Linhas de Endereços
 Pinos 12 a 19 e 21 a 28 -
Estes são os pinos de saida
das 16 linhas de endereços
do 8085. Com estas 16 linhas
o 8085 pode endereçar até
ao maximo de 64 Kbytes de
memória.
 As 8 linhas mais significativas
(A8 …A15) são linhas de
saida unidirecional enquanto
que as restantes 8 linhas (AD0
… AD7) são unidirecionais
apenas quando usadas
como parte de barramento
de endereços.
Linhas de Dados
 As 8 linhas do barramento de dados
comparilham a saida (são multiplexadas)
com as oito linhas menos significativas
(AD0 … AD7) do barramento de
endereços.
 Portanto, a entrada ou saida de dados é
feita através dos pinos 12 a 19. Assim,
estes pinos são bi-direcionais quando
usados como linha de dados.
Linhas de Sinais de controle e indicação do
estado do microprocessador
 Pinos 31 e 32 – são sinais de
indicação por parte do
microprocessador aos circuitos
de memória ou despositivos de
I/O da operação de leitura e
escrita respectivamente.
 Pino 34 – Este é um sinal de
“status” que o
microprocessador emite para
indicar que se encontra a
aceder a memória (IO/M no
nível lógico Low) ou a aceder
a um dispositivo de I/O (IO/M
no nível High)
Linhas de Sinais de controle e indicação do
estado do microprocessador
 Pinos 29 e 33 – Estes são sinais
de indicação do estado do
microprocessador, como por
exemplo, se o
microprocessador está na
operação de busca de
instrução, leitura de dado da
memória, escrita de dado na
memória, etc.
 Pino 30 - ALE (Adress Latch
Anable) é o sinal que o
microprocessador usa para
indicar ao periférico ou a
memória que o barramento de
endereços já contém um
endereço válido, isto é, o
endereço já está estável.
Sinais originados externamente
 Pino 6 - Trap: Entrada de interrupção
não mascarável. Esta é a entrada de
interrupção da mais alta perioridade
de todas as cinco. A interrupção
aplicada a esta entrada não pode ser
bloqueada pelo programa tal como
acontece com as outras entradas.
 Pino 7 , 8 e 9 – RST 7.5, RST 6.5, RST 5.5 -
Restart Interrupts: Estas são entradas
de interrupção vectorizadas que,
quando activadas a sequência do
programa é transferida para um local
específico da memória designada por
local de vector de interrupção
(Interrupt Vector Location). RST 7.5 tem
maior prioridade que RST 6.5 e esta
tem, por sua vez, maior prioridade que
RST 5.5.
Sinais originados externamente
 Pino 10 – INTR – Interrupt request: Esta é
a entrada de pedido de interrupção
da mais baixa prioridade. É usada
como entrada de pedido de
interrupção genérico.
Sinais originados externamente
 Pino 35 – READY: Este é o pino de
entrada de sinal vindo de despositivos
periféricos que normalmente operam
a velocidades mais lentas que o
microprocessador , para informar que
já está pronto para receber ou enviar
um dado para o microprocessador.
 Pino 39 – HOLD: Esta é a entrada de
um sinal vindo de um periférico tal
como o controlador de DMA quando
precisa de usar os barramentos de
dados ou endereços.
Pino 36 – RESETIN: Quando esta
entrada é levada ao nível lógio ‘Low”
o contador de programas é zerado, os
barramentos são levados ao estado
de “Alta impedância” e o
microprocesador é também zerado.
Sinais originados externamente
 Pino 11 – INTA (Interrupt
Acknoledgement): Este é um sinal
de saida emitido pelo
microprocessador para indicar o
reconhecimento de um pedido de
interrução.
 Pino 38 – HLDA (Hold Acknowledge)
É um sinal de saida emitido pelo
microprocessador para indicar o
reconhecimento do pedido de
HOLD.
 Pino 3 – Reset Out : É um sinal de
saida que indica que o
microprocessador está sendo
reinicializado. Este sinal pode ser
usado para re-inicializar outros
dispositivos.
Linhas de Entrada/Saida Serial
 Pino 5 e 4 – SID (serial
data input) e SOD
(serial data output)
 Estas corresponde a
entrada serial e a
saida serial
respectivamente.
Existem instruções
especias do 8085
que permitem
aceder a estas
entradas.
TEMPORIZAÇÃO
E CICLOS DE
MAQUINA DO
8085
Temporização e ciclos de
maquina do 8085
O microprocessador 8085 foi concebido
para executar 74 instruções. Cada
instrução é dividida em duas partes:
 o codico da operação (opcode) e o
operando.
 Cada instrução é subdividida em ciclos
de máquina – acessos a memória e cada
ciclo de máquina é subdividida em ciclos
de “clock”.
Ciclos de máquina
 Osciclos de máquina são subdivididos
nos seguintes tipos:
 Busca de Opcode
 Leitura de memória
 Escrita na memória
 Leitura de I/O
 Escrita na I/O
 Reconhecimento de um pedido de
interrupção
O ciclo de busca de instrução -
Opcode fetch
 Como se pode verificar da figura acima,
nos três primeiros ciclos de clock (T1 – T3)
o endereço da instrução a se buscar
(2000H) é colocado no barramento de
endereços e o opcode da instrução
(06H) é levado,via barramento de dados
para o microprocessaddor.
 No quarto pulso do clock (T4) o opcode é
descodificado e executado.
MVI B, 42H

voltar
O Ciclo de Leitura da Memória
 Repre-se que para além do ciclo de busca
do Opcode (M1) , esta instrução possui mais
três extra ciclos de leitura nomeadamente
M2, M3 e M4.
 Os ciclos M2 e M3 são de busca do endereço
(um byte de cada vez) enquanto que no
ciclo M4 busca-se o dado propriamente dito.
 Supoe-se neste exemplo que a instrução está
localizada no endereço 2000H. Isto significa
que o primeiro byte da instrução, o opcode,
localiza-se no endereço 2000H, e o operando
(de tipo endereço) que é constituido de dois
bytes nas duas posições seguintes, isto é,
2001H e 2002H.
LDA 2020H

voltar
O Ciclo de Escrita na Memória
 De novo, supoe-se que a instrução se
encontra no enderço 2000H da memória
principal. Note-se que esta instrução é
composta de um byte apenas (o
opcode) e o código da instrução é 7 7H.
 No ciclo M2 o enderço que se encontra
no par HL é colocado no barramento de
endereços e o dado armazenado no
acumulador é levado para a memória.
MOV M, A

voltar
O Ciclo de Leitura em
dispositivos de I/O
 O ciclo de leitura de I/O ocorre quando o
microprocessador emite a instrução IN para
ler um dado vindo de um dispositivo de
entrada.
 Esta instrução possui três ciclos de máquina,
nomeadamente, M1 para a leitura do
Opcode, M2 para a leitura do endereço do
dispositivo donde se pretende buscar o dado
e M3 para a leitura do dado propriamente
dito no disposivo de I/O.
 IN 80H , onde 80H é o endereço do porto
onde se pretende ler. Note-se que nas
operações de I/O o endereço é codificado
em oito bits.
IN 80H

voltar
O Ciclo de Escrita do
dispositivos de I/O
O ciclo de escrita de I/O consiste no
envio de um dado do acumulador para
um dispositivo I/O especificado pelo
endereço do port.
 A instrução OUT port tem três ciclos de
máquina de máquina nomeadamente o
de busca do opcode (8 bits) , o de
busca do endereço do port (8 bits) e o
de envio do dado do acumulador para o
despositivo externo.
OUT 84H

voltar
Reconhecimento de
Interrupção
 O ciclo de máquina de reconhecimento de
um pedido de interrupção é um ciclo
especial que é usado no lugar de ciclo de
busca de opcode para a instrução RST
(restart).
 Esta ciclo apresenta-se do modo similar ao
ciclo de busca de opcode com a excepção
de que neste ciclo envia-se o sinal INTA no
lugar do sinal RD e os sinais de estado IO/M,
S0 e S1 estão em 1 1 1 ao inves de 0 1 1. Por
outro lado este ciclo tem 6 pulsos de clock e
não 4 como acontece com o ciclo de busca
de opcode. voltar
Questionario
1. Porque que o 8085 é considerado um
microprocessador de 8 bit.
2. O que é multiplexação de barramento?
3. Qual a capacidade de memoria que o
microprocessador pode endereçar e
porque?
4. Diga o nome de 6 grupos de sinais em 8085.
5. Qual o barramento em 8085 que é
unilateral?
6. Qual a linha de controle que indica
quando o microprocessador esta em
operação com I/O ou com memoria?
7. O que faz o sinal de ALE?
8. Qual interrupção mascarável é de alta
prioridade?
9. Enumera os 6 blocos básicos da
arquitectura interna de 8085.
10. Enumera os bits do registro flag e
descreve o que cada um indica.
11. Porque o apontador de pilha (SP) e
contador de programa (PC) são de
16bits?
12. Quais são as duas partes principais de
qualquer instrução?
13. Como o ciclo de clock é chamado?
14. Quais são os 6 tipos de ciclo de
maquina?
15. O que faz o ciclo de maquina de busca
de op-code?
16. O que faz o 8085 quando quer enviar 8
bit para I/O?

Você também pode gostar