Você está na página 1de 52

Microprocessad

or 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