Para isso, lançaremos mão de um pequeno programa BASIC, além de um contador como o da figura abaixo:
A função deste circuito é identificar se as saídas dos decodificadores estão recebendo pulsos quando os endereços corretos estão sendo acessados.
O Programa Basic é o seguinte:
10 a=inp(&h0C)
20 for a=1 to 100:next
30 goto 10
Teste do ponto TP1:
Se analisarmos o circuito, veremos que o decodificador de endereços IC4 recebe em suas entradas os seguintes sinais:
Pino: [ G1 ][/G2A ][/G2B ][ C ][ B ][ A ]
Sinal:[ A2 ][/IORQ][ /RD ][ A3 ][ A4 ][ A5 ]
Desse modo, a saída Y4 deste CI, conectada a TP1, vai a nível baixo somente quando:
Sinal:[ A2 ][/IORQ][ /RD ][ A3 ][ A4 ][ A5 ]
Nivel:[ 1 ][ 0 ][ 0 ][ 1 ][ 0 ][ 0 ]
Ou seja, quando se acessa um endereços I/O do Z80 igual a:
Sinal:[A7][A6][A5][A4][A3][A2][A1][A0]
Nivel:[x ][x ][0 ][0 ][1 ][1 ][x ][x ]
O pino TP1 deve ser acionado, o que corresponde a acessar os endereços nas seguintes faixas:
0Ch~0Fh, 4Ch~4Fh, 8Ch~8Fh, CCh~CFh
Então para testar se o circuito está funcionando, mude o valor da linha 10 para qualquer um destes valores e execute o programa. Deverá ser possivel ver os LEDs piscando, e a contagem aumentando. O FOR-NEXT na linha 20 é necessário, pois se a contagem ocorrer rapido demais os olhos humanos percebem como se todos estivessem acesos, em vez de piscar.
Teste do ponto TP2 e TP3:
Se olharmos agora para IC8, vemos que este recebe em suas entradas os seguintes sinais:
Pino: [ G1 ][/G2A ][/G2B ][ C ][ B ][ A ]
Sinal:[ /M1 ][ Y4 ][ A6 ][ A7 ][ A1 ][ A0 ]
Desse modo, a saída Y0 deste CI, conectada a TP2, vai a nível baixo somente quando:
Sinal:[ /M1 ][ Y4 ][ A6 ][ A7 ][ A1 ][ A0 ]
Nivel:[ 1 ][ 0 ][ 0 ][ 0 ][ 0 ][ 0 ]
E a saída Y1 deste CI , conectada a TP3, vai a nível baixo somente quando:
Sinal:[ /M1 ][ Y4 ][ A6 ][ A7 ][ A1 ][ A0 ]
Nivel:[ 1 ][ 0 ][ 0 ][ 0 ][ 0 ][ 1 ]
Compondo estes endereços com os endereços anteriores, vemos que os pontos TP2 e TP3 serão acionaos nos seguintes endereços:
TP2
Sinal:[A7][A6][A5][A4][A3][A2][A1][A0]
Nivel:[0 ][0 ][0 ][0 ][1 ][1 ][0 ][0 ]
TP3
Sinal:[A7][A6][A5][A4][A3][A2][A1][A0]
Nivel:[0 ][0 ][0 ][0 ][1 ][1 ][0 ][1 ]
Ou seja, um acesso de leitura ao endereço de I/O &H0C (12 em decimal) deve levar a zero o pino TP2 e uma leitura no endereço de I/O &H0D (12 em decimal) deve levar a zero o pino TP3
Para testar o ponto TP2, rode novamente o programa acima. Verifique que enquanto o endereçco 12 é acessado, apenas a saída Y0 de IC8, e mais nenhuma outra deve mudar de estado.
Para testar o ponto TP3, mude o valor da linha 10 para &H0D (13 em decimal) e igualmente verifique que enquanto o endereçco 13 é acessado, apenas a saída Y1 de IC8, e mais nenhuma outra deve mudar de estado.
Neste Link há um pequeno filme com a imagem de como se comportam os LEDs durante a contagem.
Nenhum comentário:
Postar um comentário