Você está na página 1de 10

FACULDADE DE ENGENHARIA

DEPARTAMENTO DE ENGENHARIA ELECTROTÉCNICA

Engenharia Electrónica (Laboral)

Disciplina: Electrónica Digital II

Trabalho laboratorial
(Z80/Micamaster MAT980)

Discente: Coimbra, Paulo Moreira Tomo

Docentes: Doutor, Engº GJ Doho

Engº F. Zile

Eng Irzelina Gune

Maputo, Abril de 2024


Índice
Introdução ......................................................................................................................... 2
Objectivos ......................................................................................................................... 2
Materiais Utilizados.......................................................................................................... 2
Resumo Teórico................................................................................................................ 3
Procedimento/Passos.........................................................................................................5
Trabalhos realizados ..................................................................................................... 6
Conclusão e Observações ................................................................................................. 8
Referências Bibliográficas ................................................................................................ 9

1
Introdução
O presente documento tem a pretensão de apresentar o relatório do trabalho laboratorial
reaizado sobre Z80/Micamater MAT980. Onde são apresentados resultados/observações
feitas durante o trabalho laboratorial.

Objectivos

 Apresentação e verificação do funcionamento do Z80;


 Passagem do projecto lógico ao programa;
 Compreensão e Interpretação do Micamaster MAT980;

Materiais Utilizados

 Fonte de Alimentação;
 Placa Micamaster MAT980.

2
Resumo Teórico
O Zilog Z80 é um microprocessador de 8 bits projectado, que foi amplamente usado,
tanto em microcomputadores desktop quanto em sistemas embarcados, centrais
telefónicas e para fins militares. O Z80, seus derivados e clones constituem uma das
famílias de UCPs mais usadas em todos os tempos e, juntamente com a família MOS
Technology 6502 dominou o mercado de microcomputadores de 8 bits de fins da
década de 1970 até meados dos anos 1980.
O Z80 conta com um conjunto de 178 tipos diferentes de instruções, divididas nas
seguintes categorias: Instruções de controle do Z80, entrada e saída, carga e de troca;,
aritméticas e lógicas, transferência e pesquisa de bloco, rotação e deslocamento de bits,
manipulação de bit, salto e sub-rotina.
O código de operação de uma instrução constitui-se de um ou mais bytes, podendo
incluir os operandos. Dentro de 8 bits é possível haver 256 instruções, entretanto 252
correspondem propriamente a instruções reais; as demais são usados como prefixos, que
obrigam o Z80 buscar no próximo byte qual instrução deve ser executada.

Arquitectura do Microprocessador Z80


A arquitectura do Z80 é frequentemente representada através do diagrama de blocos que
se ilustra na figura abaixo.

Figura 1: Arquitectura simplificada do microprocessador Z80.

Barramentos e configuração de pinos

Os 40 pinos do Z80, com a excepção dos 2 pinos de alimentação, distribuem-se


pelos três barramentos já conhecidos:
1. O barramento de endereços dispõe de 16 pinos de saída (A[0:15]), todos com
3
terceiro estado, de forma a permitir que outros dispositivos tomem conta deste
barramento (por exemplo, quando se pretende efectuar um acesso directo à
memória).
O microprocessador Z80
2. O barramento de dados inclui 8 pinos bidireccionais, também com terceiro
estado, através dos quais se processa toda a troca de informação com os
dispositivos de memória e periféricos.
3. O barramento de controlo é o que inclui o conjunto de sinais que são
específicos deste microprocessador, e que na figura 3.2 se encontram
agrupados nos sinais de controlo do sistema, de controlo do CPU e de controlo
do barramento do CPU.

Figura 2: Barramentos do microprocessador Z80.


A funcionalidade destes sinais que integram o barramento de controlo do Z80
pode ser sumariada da forma que se apresenta a seguir:

1. Sinais de controlo do sistema:


 /M1: saída que indica os ciclos de leitura da memória que extraem o código da
próxima instrução a executar.
 /MREQ: saída que indica que o barramento de endereços contem um endereço
válido para aceder à memória.
 /IORQ: saída que indica que a metade menos significativa do barramento de
endereços contem um endereço válido para aceder a dispositivos de entrada /
saída (o Z80 distingue entre acesso à memória e acesso a dispositivos de
entrada / saída, usando para este segundo caso um espaço de endereços com
256 posições). Este sinal também é usado durante os ciclos de atendimento a
um pedido de interrupção.
 /RD: saída que indica que o CPU pretende efectuar uma operação de leitura.
O microprocessador Z80
- /WR: saída que indica que o CPU pretende efectuar uma operação de escrita.
 /RFSH: saída que indica que os 7 bits menos significativos do barramento de
endereços contêm um endereço de refrescamento para memórias dinâmicas

4
(tem actualmente pouco interesse, dada a evolução tecnológica das memórias
dinâmicas).

2. Sinais de controlo do CPU (os sinais /INT e /NMI serão analisados em maior
detalhe quando adiante se considerar o processamento dos pedidos de
interrupção):

 /HALT: saída que indica que o CPU executou uma instrução de halt (que
suspende a execução do programa) e que aguarda um pedido de interrupção ou
uma ordem de reinicialização (reset) para retomar a actividade.
 /WAIT: entrada que permite estender a duração temporal dos ciclos de acesso
a memória ou a dispositivos de entrada / saída, quando estes não forem
suficientemente rápidos para acompanharem a rapidez de funcionamento do
CPU (actualmente também com pouco interesse, pelas mesmas razões de
evolução tecnológica).
 /INT: entrada que recebe pedidos de interrupção que podem ou não ser
atendidos, conforme o programa executado pelo CPU.
 /NMI: entrada que recebe pedidos de interrupção que são sempre atendidos
(non-maskable interrupt).
 /RESET: entrada que provoca a inicialização do CPU, forçando-o a executar a
rotina que se inicia no endereço 0000h.
3. Sinais de controlo do barramento do CPU:
 /BUSREQ: entrada para solicitar ao microprocessador que coloque em alta
impedância em todos os pinos que suportam esta facilidade, de modo a
possibilitar a outro dispositivo o controlo dos barramentos de endereços, dados
e controlo.
 /BUSACK: saída que indica quando o estado de alta impedância está já
presente nos pinos que suportam esta facilidade, em resposta a um pedido
para controlo externo dos barramentos.

Procedimento/Passos

Na realização da experiência após conectada a placa a fonte de alimentação, recebemos


no LCD uma mensagem “RAM OK” e de seguida com os seguintes comandos
procedemos cujo os objectivos são os seguintes:

Barramento de endereços (A0-A15): consiste em 16 linhas de saída para endereçamento


de memória ou de dispositivos de entrada e saída;

 HALT: saída ativa em nível baixo, indica que o Z80 está executando instrução
HALT, e só sairá deste estado quando aceitar uma interrupção;
 RESET: entrada ativa em nível baixo, reinicializa o Z80 zerando os
registradores PC, I e R e os IFF1 e IFF2, entrando no modo IM 0, deixando os
barramentos em alta impedância e tornando todos os sinais de controle de saída
em estado inativo;
 + para ir pra frente

5
 - para ir pra trás
 MEM: verifica os dados introduzidos na memória;
 FIL: tem como função introduzir bytes num certo bloco de memória;
 GO: somente clicamos esta tecla para executarmos o programa;
 Botão Vermelho para resetar(se o programa congelar).

Figura 3: Z80/Micamaster
Trabalhos realizados
Programa do Slide 25 – que serviu de base para o laboratório
Endereço Código Rótulos Menm+Oper Comentários
ORG 4200h ;codigo inicia no
4200 2A 00 50 Inicio: LD HL, (5000h) ender.4200h
4203 4C LD C, H
4204 26 00 LD H, 0 ;tb pode ser ED 6B 00 50
4206 44 LD B, H ;tb pode ser ED 63 02 50
4207 09 Fim: ADD HL, BC
22 02 50 LD (5002), HL
4208
76 HALT
420B

Realizou-se duas somas, com e sem transporte que pode ser visualizado nas tabelas
abaixo.

6
Sem transporte

2A
+
11
3B

Nota:
 5000h – onde guardou-se a primeira parcela a ser somada
(2A);
 5001h – onde guardou-se a segunda parcela a ser somada
(11)
 5002h – onde obteve-se o resultado

Com transporte
2C
+ vai 1
F2
1E

Nota:
 5000h – onde guardou-se a primeira parcela a ser somada
(2C);
 5001h – onde guardou-se a segunda parcela a ser somada (F2);
 5002h – onde obteve-se o resultado (1E);
 5003h – onde foi alocado o transporte.

7
Conclusão e Observações
Na realização do trabalho laboratorial verificou-se, como o Z80 funciona no quesito da
execução de instrução, mormente transmitiu-se o modo como os outros processadores
executam as suas instruções, uma vez que a ideia básica é a mesma para todos os
processadores. Ademais, ficou claro o porquê que todas linguagens de programação
precisam de compiladores e interpretadores, sendo que a razão é para poderem traduzir
a os mnemónicos para a linguagem máquina (língua das maquinas).

8
Referências Bibliográficas

1. J. M. Martins Ferreira. Z80 - Faculdade de Engenharia da UP (DEEC)


2. Doutor Eng. J.Doho. AT 06 - 07 : Z80 - Programação Básica em Assembly
(C/o microcomputador Micamaster MAT980)

Você também pode gostar