Professional Documents
Culture Documents
microprocessador de 8 bits
Arquitectura do Z80
Barramento de dados (8 bit)
Descod.
e
controlo
Registos
do CPU
Sinais de controlo
(internos)
ALU
Controlo
de endereos
/M1
Controlo /MREQ
/IORQ
do
/RD
sistema
/WR
/RFSH
/HALT
Controlo /WAIT
do
/INT
CPU
/NMI
/RESET
Sinais de
controlo
do CPU e
sistema
Controlo
barr. dados
Reg. de
instruo
Barramento
de dados (8)
Controlo do
/BUSRQ
barramento
/BUSAK
do CPU
Clock
Vcc
Barramento de
endereos (16)
Z80
CPU
Gnd
3
A11
A12
A13
A14
A15
CLK
D4
D3
D5
D6
+5 V (Vcc)
D2
D7
D0
D1
/INT
/NMI
/HALT
/MREQ
/IORQ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
0 V (Gnd)
/RFSH
/M1
/RESET
/BUSRQ
/WAIT
/BUSAK
/WR
/RD
Leitura de um cdigo de
instruo
T1
T2
T3
Leitura de um operando
T1
T4
T2
T3
T4
250 ns
250 ns
CLOCK
CLOCK
Endereo vlido
A[0:15]
Endereo vlido
A[0:15]
/MREQ
/MREQ
/RD
/RD
mn. 50 ns
/M1
D[0:7]
mn. 35 ns
D[0:7]
250 ns
Dados
vlidos
mn. 30 ns
T2
T3
Dados
vlidos
mx. 75 ns
T4
T2
T3
T4
250 ns
250 ns
CLOCK
CLOCK
Endereo vlido
A[0:7]
Endereo vlido
A[0:15]
/IORQ
/RD
/MREQ
mn. 50 ns
mn. 220 ns
/WR
mn. 80 ns
D[0:7]
D[0:7]
mn. 60 ns
mx. 80 ns
/WR
mn. 30 ns
Dados no barramento
D[0:7]
Dados
vlidos
mn. 60 ns
Dados no barramento
Interrupes no Z80
(Antes)
Endereos
decrescentes
PCH
PCL
Indefinido
Ao concluir-se o
atendimento da
interrupo retoma-se
a execuo do
programa principal
(continuao
do
programa)
Execuo do programa
principal
Ao ser aceite um pedido
de interrupo
suspende-se a execuo
do programa principal,
que temporariamente
substitudo pela rotina
de atendimento da
interrupo
Cd. instruo
Operando
reti
Rotina de atendimento
da interrupo (termina
com a instruo de retorno)
10
Pedidos de interrupo em
/NMI
O pedido de interrupo em /NMI (activo
transio descendente) fora a execuo
da rotina de atendimento, que ter que
comear no endereo 0066H
Esta rotina dever terminar com a instruo
RETN, que garante a manuteno do
estado imediatamente anterior ao pedido
ser aceite
(SP)
Indefinido
Indefinido
Indefinido
Cd. instruo
Operando
Cd. instruo
Operando
(SP)
(Depois)
11
12
Pedidos de interrupo em
/INT
13
14
Modelo de programao do
Z80
RETN e RETI
Durante o atendimento a /NMI deve suspenderse o atendimento a /INT, para evitar que uma
interrupo de baixa prioridade possa sobreporse a uma de alta prioridade
O processo de atendimento a /NMI copia IFF1
para IFF2 e coloca IFF1 em 0, pelo que o valor
de IFF1 deve ser reposto no fim (e por isso o
retorno de /NMI difere do de /INT)
FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira
15
16
Modelo de programao do
Z80
8 bit
8 bit
A
B
D
H
F
C
E
L
8 bit
A
B
D
H
8 bit
8 bit
8 bit
F
C
E
L
A
B
D
H
F
C
E
L
16 bit
Stack pointer
Program counter
IY index register
IX index register
I
R
Alternate
Apontador para a pilha
register set
Apontador de programa
(conjunto
IX e IY so usados com
alternativo
endereamento indexado
de registos)
17
Modos de endereamento
S Z
P/ N C
V
Y
18
Modos de endereamento
19
20
Tipos de instrues
Tipos de instrues
21
22
Apresentao de um pequeno
sistema de apoio laboratorial
Tipos de instrues
Rotao / deslocamento (rotate / shift)- RLA / 17
Manipulao ao bit (bit set, reset and test) - BIT
5,A / CB 6F
Salto (jump) - JP 20FFH / C3 FF 20
Chamada de subrotinas e retorno (call and return)
- CALL 1000H / CD 00 10
Entrada e sada (input and output) IN A,(7FH) / DB 7F
FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira
23
24
U1
27
MREQ
IORQ
WR
RD
VCC
28
2K2
2
R2 2K2
2
R3 2K2
2 /INT
2 /NMI
R4 2K2
/RESET
R5 2K2
2
REFSH
R1
1
1
1
1
VCC
18
HALT
24
WAIT
16
17
INT
NMI
26
RESET
25
23
D0
D1
D2
D3
D4
D5
D6
D7
BUSRQ
BUSAK
CLK
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
M1
19
20
22
21
/MREQ
/IOREQ
/WR
/RD
CLK
1
C1
100n
30
31
32
33
34
35
36
37
38
39
40
1
2
3
4
5
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
14
15
12
8
7
9
10
13
D0
D1
D2
D3
D4
D5
D6
D7
U2
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
10
9
8
7
6
5
4
3
25
24
21
23
2
26
1
/M_CS
/WR
/RD
20
27
22
U3
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
11
12
13
15
16
17
18
19
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
D0
D1
D2
D3
D4
D5
D6
D7
1
2
3
4
5
6
7
8
9
10
11
13
CLK
/MREQ
/IOREQ
A15
A7
A6
KEY0
KEY1
KEY2
KEY3
/WR
/RD
VCC
I1/CLK
I2
I3
I4
I5
I6
I7
I8
I9
I10
I11
I12
23
22
21
20
19
18
17
16
15
14
O1
O2
O3
O4
O5
O6
O7
O8
O9
O10
D3
D2
D1
D0
OUT3
OUT2
OUT1
OUT0
DA_CS
/M_CS
VCC
1
2
JP1
22V10
1
2
CE
WE
OE
GND
VCC
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
C2
100n
DS1230Y
VCC
R10
1
1
2
1
3
5
7
9
11
13
15
17
19
2K49
C5
100n
Z80
C3
100n
OUT0
OUT1
OUT2
OUT3
KEY0
KEY1
KEY2
KEY3
/NMI
/INT
2
4
6
8
10
12
14
16
18
20
CONECTOR
VEE
Y1
1
U4A
U4F
2
13
12
CLK
1
C8
2 100p
74HCT14
R13
2
1K
74HCT14
R14
2
D0
D1
D2
D3
D4
D5
D6
D7
3
4
7
8
13
14
17
18
DA_CS
1
11
1K
VCC
1
3
U5
4MHz
D0
D1
D2
D3
D4
D5
D6
D7
2
5
6
9
12
15
16
19
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
B8
B7
B6
B5
B4
B3
B2
B1
14
OC
G
VCC
12
11
10
9
8
7
6
5
15
D1
1N4148
S1
U4E
6
11
10
V
-
VLC
74HCT14
1
2
VCC
U4B
U4D
VCC
VCC
VCC
VCC
R18
2
R19
2K2
R20
2K2
2
2
74HCT14
KEY0
KEY1
R21
2K2
R25
1
D2
LED_0
2
VCC
VCC
VDD
VEE
1
2
ALIMENTACAO
C4
100n
S2
KEY0
S3
KEY1
S4
KEY2
A15
A7
A6
Acesso seleccionado
0 (1)
1 (0)
Memria
Sada analgica
Sadas digitais
Entradas digitais
D5
LED_3
Q1
BC547
2
1
R27
390R
1
R23
390R
2
S5
KEY3
R24
390R
22
OUT3 1
2
OUT0
2
1
R26
Q2
BC547
3
10K
OUT1
1
Document Number
A
Date:
REV
JMF / HCM
1.0
Sheet
of
26
PAL de descodificao:
Equaes
Descodificao do sistema
MREQ
22
10K
Size
OUT2 1
D3
LED_1
R22
2K2
KEY3
VCC
JP2
2
1
2
KEY2
VCC
2
2K2
74HCT14
+5V
+12V
-12V
GND
VCC
R28
390R
2K2
WR
D4
LED_2
2
1
74HCT14
C9
4u7
R17
RD
R9
10K
VCC
25
2
10K
C6
100n
VCC
VCC
1
1
VCC
VEE
1
2
3
4
C7
100n
VCC
R15
1K
R8
VDD
/RESET
RESET
TL082
VEE
5
7
6
16
COMP
J1
SAIDA
TL082
DAC0800
R12
4K99
1
3
2
IOUT
1
U4C
U7B
U7A
V IOUT
+
VR-
1
R11
2K49
2
R16
10K
VR+
74LS373
1
U6
27
+L 64
C 1
IAW
123k
*d:\palasm\examples\z80jmf.pds
+
EQUATIONS
/MEM_CS = /MREQ*IORQ*/A15
DA_CS = MREQ*/IORQ*/WR*RD*/A7*A6
D0.TRST = MREQ*/IORQ*WR*/RD*A7*A6
D1.TRST = MREQ*/IORQ*WR*/RD*A7*A6
0
D
1
D2.TRST = MREQ*/IORQ*WR*/RD*A7*A6
D3.TRST = MREQ*/IORQ*WR*/RD*A7*A6
D0 = KEY0
D1 = KEY1
D2 = KEY2
D3 = KEY3
+------------------------------------------------------------------------------+
FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira
28
Exemplo de aplicao
inicio
.org
0h
saida
.equ
40h
inicio
ciclo
ld
out
inc
jp
a,$00
(saida),a
a
ciclo
;
;
;
;
.end
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0000
0000
0000
0000
0000
0000
0002
0004
0005
0008
0008
0008
3E 00
D3 40
3C
C3 02 00
inicio
.org
0h
saida
.equ
40h
inicio
ciclo
ld
out
inc
jp
a,$00
(saida),a
a
ciclo
.end
29
Execuo do cdigo
A execuo do cdigo objecto gerado
produz a seguinte forma de onda:
31
30