Professional Documents
Culture Documents
Chương 4
Chương 4
© DHBK 2005
Dạng 1: Ghép nối 8086/8088
với vi mạch nhớ
A19
A18 8088 A
A17 A0-A10 8088 D
Bus
A16 D0-D7 Bus
A15
A14
CS OE
A13
A12
A11
RD
IO/M
4/Chapter4
© DHBK 2005
Dạng 1: Ghép nối 8086/8088
với vi mạch nhớ
IC 1
IC 2
IC 3
...
...
IC 8
5/Chapter4
© DHBK 2005
Dạng 1: Ghép nối 8086/8088
với vi mạch nhớ
• Dùng
U1 bộ giải mã 3-8 74LS138
1 15 C B A G2B G2A G1 y0 y1 y2 y3 y4 y5 y6 y7
2 A Y0 14 x x x 1 x x 1 1 1 1 1 1 1 1
3 B Y1 13 x x x x 1 x 1 1 1 1 1 1 1 1
C Y2 12
Y3 x x x x x 0 1 1 1 1 1 1 1 1
6 11
4 G1 Y4 10 0 0 0 0 0 1 0 1 1 1 1 1 1 1
5 G2A Y5 9 0 0 1 0 0 1 1 0 1 1 1 1 1 1
G2B Y6 7 0 1 0 0 0 1 1 1 0 1 1 1 1 1
Y7
0 1 1 0 0 1 1 1 1 0 1 1 1 1
1 0 0 0 0 1 1 1 1 1 0 1 1 1
74LS138
1 0 1 0 0 1 1 1 1 1 1 0 1 1
1 1 0 0 0 1 1 1 1 1 1 1 0 1
1 1 1 0 0 1 1 1 1 1 1 1 1 0
6/Chapter4
© DHBK 2005
Dạng 1: Ghép nối 8086/8088
với vi mạch nhớ
• Dùng bộ giải mã 3-8 74LS138
A0-A12 A0-A12
A0-A10
D0-D7 D0-D7
A0-A10
2764
D0-D7
A0-A10
U1 RD 2764
OE D0-D7
2764
A0-A10
OE D0-D7
A13 1 15 2764
A0-A10
CS OE D0-D7
2 A Y0 14 A0-A10
A14 B Y1 2764
CS OE D0-D7
A0-A10
3 13 2764
CS OE D0-D7
A15 C Y2 12 2764
CS OE D0-D7
Y3
A16
6
G1 Y4
11 CS OE 2764
4 10 CS OE
IO/M 5 G2A Y5 9 CS
G2B Y6 7
A17 CS
Y7
A18
A19 74LS138
7/Chapter4
© DHBK 2005
Dạng 1: Ghép nối 8086/8088
với vi mạch nhớ
• Dùng bộ giải mã kép 2-4 74LS139
1A 1Y0
1B 1Y1
1Y2
1G 1Y3
2A 2Y0
2B 2Y1
2Y2
2G 2Y3
IC 1
IC 2
IC 3
IC 4
9/Chapter4
© DHBK 2005
Dạng 1: Ghép nối 8086/8088
với vi mạch nhớ
Dùng bộ giải mã 2-4 74LS13
A0-A13 A0-A13
D0-D7 A0-A12
D0-D7
IC1
A0-A12
D0-D7
RD OE
27128
A0-A12
D0-D7
A14 OE
CS 27128
D0-D7
A15 OE
CS 27128
OE
CS
CS
A16
A17
A18
A19
IO/M
10/Chapter4
© DHBK 2005
Dạng 1: Ghép nối 8086/8088
với vi mạch nhớ
Ghép nối 8088/8086 với bộ nhớ
Ghép nối 8088 với ROM
Ghép nối 8088 với SRAM
Ghép nối 8088 với DRAM
11/Chapter4
© DHBK 2005
A0-A11 A0-A11
A0-A10
D0-D7 D0-D7
A0-A10
2732
D0-D7
A0-A10
U1 RD 2764
OE D0-D7
2764
A0-A10
OE D0-D7
A12 1 15 F8000-F8FFF 2764
A0-A10
CS OE D0-D7
2 A Y0 14 F9000- A0-A10
A13 B Y1 F9FFF 2764
CS OE D0-D7
A0-A10
3 13 2764
CS OE D0-D7
A14 C Y2 12 2764
CS OE D0-D7
6 Y3 11
A15 G1 Y4 CS OE 2764
4 10 CS OE
IO/M 5 G2A Y5 9
G2B Y6 CS
A16 7 FF000-FFFFF
Y7 CS
A17
A18 Bộ tạo Tw
74LS138
A19
Tới chân RDY1 của 8284
13/Chapter4
© DHBK 2005
Ghép nối 8088 với bộ nhớ
SRAM
• Ví dụ 5: ghép nối 8088 với SRAM 62256 (32K*8) để được bộ
nhớ 256 KB, bắt đầu từ địa chỉ 00000H
• Số ô nhớ = cuối – đầu +1
A0-A14 A0-A14
A0-A10
D0-D7 D0-D7
A0-A10
62256
D0-D7
A0-A10
U1 RD 2764
OE D0-D7
WR WE 2764
A0-A10
OE D0-D7
A15 1 15 00000-07FFF 2764
A0-A10
CS OE D0-D7
2 A Y0 14 A0-A10
A16 B Y1
08000-0FFFF 2764
CS OE D0-D7
A0-A10
3 13 10000-17FFF 2764
CS OE D0-D7
A17 C Y2 12 2764
CS OE D0-D7
Y3
A18 6
G1 Y4
11 CS OE 2764
4 10 CS OE
IO/M 5 G2A Y5 9
G2B Y6 CS
7 38000-3FFFF CS
Y7
A19
74LS138
14/Chapter4
© DHBK 2005
Ghép nối 8088 với bộ nhớ
DRAM
• Cần có DRAM controller:
Dồn kênh 2 loại tín hiệu địa chỉ cho mỗi mạch nhớ và cung cấp
xung cho phép chốt địa chỉ RAS và CAS
Cung cấp tín hiệu việc ghi đọc bộ nhớ
Làm tươi bộ nhớ trong thời gian thích hợp
Đảm bảo không có xung đột trong hoạt động ghi đọc với công việc
làm tươi
15/Chapter4
© DHBK 2005
Ghép nối 8088 với bộ nhớ
DRAM
• Ví dụ 6: ghép 8088 với TMS 4464 (64K*4) DRAM để được
bộ nhớ 128 KB, bắt đầu tại địa chỉ 00000H
A0-A7
RA0-RA7
MA0-MA7 A0-A7
00005 00004
00003 00002
BHE A0 Chức năng
00001 00000
Bank cao Bank thấp
(bank lẻ) (Bank chẵn)
0 0 chọn cả 2 bank
• FF000: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
Bank thấp
• FFFFE: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
• FF001: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1
• FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Bank cao
18/Chapter4
© DHBK 2005
CS OE
LRD
A19
A18
A17 A1-A11 A0-A10
D0-D7 D8-D15
A16
A15 2716
A14
CS OE
A13
A12
M/IO HRD
20/Chapter4
© DHBK 2005
...
•30000 : 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IC 2
•3FFFE: 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
•30001 : 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 IC 8
•3FFFF: 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
22/Chapter4
© DHBK 2005
BHE BHE
HWR HRD
WR RD
A0 LWR A0 LRD
23/Chapter4
© DHBK 2005
A1-A15 A0-A14
D0-D7 A0-A12
D0-D7
LRD IC1
A0-A12
OE D0-D7
LWR WE 27128 A0-A12
D0-D7
OE
CS 27128
D0-D7
A16 CS
OE
27128
A17 CS
OE
CS
Ví dụ 9:
Giải mã địa chỉ
SRAM 82256: 00000H- 1FFFFH
A19A18 A17 A16 A15 A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0
•00000 : IC 1
00 0 0 0000 0000 0000 000 0
•0FFFE: 00 0 0 1111 1111 1111 111 0
•10000 : 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
IC 2
•1FFFE: 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
•10001 : 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 IC 4
•1FFFF: 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
26/Chapter4
© DHBK 2005
Ví dụ 9:
Giải mã địa chỉ
EPROM 27128 :F0000H - FFFFFH
A19A18 A17 A16 A15 A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0
•F0000 : IC 5
11 1 10 000 0000 0000 000 0
•F7FFE: 11 1 10 111 1111 1111 111 0
A1-A15 A0-A14
D8-D15 A0-A12
D0-D7
LRD IC3
A16 A0-A12
OED0-D7
LWR
2712
WE D0-D7
A17 CS OE
CS OE
A18
A19 A1-A14 A0-A13
M/IO = 1 (8086)
IO/M = 0 (8088)
Vào ra dữ liệu bằng bất kỳ lệnh
di chuyển dữ liệu nào giữa
I/O CPU và bộ nhớ
Ví dụ:
MOV AX, [0FF3H]
00000
Memory + I/O
33/Chapter4
© DHBK 2005
8
7
6
5
4
3
2
1
10K
11
10
12
13
14
15
16
9
U1
2 18
4 A1 Y1 16
6 A2 Y2 14
8 A3
A4
Y3
Y4
12 Tới bus dữ liệu
11 9
13 A5
A6
Y5
Y6
7 của CPU
15 5
17 A7 Y7 3
A8 Y8
1
19 1OE
2OE
74ALS244
SEL
330
U2
3 2
4 D0 Q0 5
7 D1 Q1 6
Từ bus dữ liệu 8 D2
D3
Q2
Q3
9
13 12
của CPU 14 D4 Q4 15
17 D5 Q5 16
18 D6 Q6 19
D7 Q7
11
CLK
1
OE
74ALS374
SEL
Từ giải mã địa chỉ cổng
35/Chapter4
© DHBK 2005
BHE A0
FFFF FFFE
FFFD FFFC
FFFB FFFA
D8-D15 D0-D7
0005 0004
0003 0002
0001 0000
Bank cao Bank thấp
(bank lẻ) (Bank chẵn)
37/Chapter4
© DHBK 2005
A0 A0
A1 D0-D7 D8-D15
A1
A2 D0-D7 A2 D0-D7
A3 A3
A4 A4
CS WE CS WE
A5 A5
A6 A6
A7 A7
WR WR
IO/M M/IO
BHE
8088 8086
38/Chapter4
© DHBK 2005
CS WE
A1
A2
A3 WR
A4
A5
A6 D7-D0 D0-D7
A7
M/IO CS WE
39/Chapter4
© DHBK 2005
A1 1 15 10H
2 A Y0 14 12H
A2 3 B Y1 13 14H
A3 C Y2 12 16H
6 Y3 11 18H
A0 G1 Y4 1AH
4 10
M/IO 5 G2A Y5 9 1CH
A4 G2B Y6 7 1EH
A5 Y7
A6
A7 74LS138
40/Chapter4
© DHBK 2005
RD
WR
45/Chapter4
© DHBK 2005
RD
WR
48/Chapter4
© DHBK 2005 ; Lập trình cho 8255
MOV AL, 10000000B ; Port A, Port B mode 0, output
MOV
OUT
DX, 703H
DX, AL
Chế độ 0
; Thủ tục hiển thị LED từ dữ liệu chứa trong bộ nhớ
DISP PROC NEAR
Giả thiết PUSHF ; cất các thanh ghi vào ngăn xếp
STB
PC4 DAV
82C55 Keyboard
55/Chapter4
© DHBK 2005
4.4.3.2 Các chế độ làm việc của 8255A
Chế độ 1
56/Chapter4
© DHBK 2005
4.4.3.2 Các chế độ làm việc của 8255A
Chế độ 1
• Port A và B làm việc ở chế độ cổng ra có chốt:
tương tự như cổng ra ở chế độ 0
cổng C làm cổng điều khiển và cấp tín hiệu móc nối
1
57/Chapter4
© DHBK 2005
4.4.3.2 Các chế độ làm việc của 8255A
Chế độ 1
ACK
PC2 ACK
PC4 DS
82C55 Printer
58/Chapter4
© DHBK 2005
4.4.3.2 Các chế độ làm việc của 8255A
Chế độ 1
BIT1 EQU 2
PORTC EQU 62H
PORTB EQU 61H
CMD EQU 63H
• Truyền các kí tự từ 5 tới 8 bit trong chế độ đồng bộ. Đồng bộ có thể
thực hiê ̣n bên trong hoă ̣c bên ngoài. Các kí tự đồng bộ được tự
động chèn vào chuỗi dữ liê ̣u.
• Truyền các kí tự từ 5 tới 8 bit trong chế độ câ ̣n đồng bộ. Tốc độ
clock cung cấp có thể bằng 1, 16 hoă ̣c 64 lần tốc độ Baud truyền
nhâ ̣n dữ liê ̣u. Có thể thực hiê ̣n viê ̣c phát kí tự ngắt truyền. Stop bit
có thể 1, 1.5, hoă ̣c 2 bit. Có thể phát hiê ̣n các lỗi Start bit. Phát hiê ̣n
và xử lý ngưng (break) tự động.
• Tốc độ truyền cực đại trong chế độ đồng bộ là 64K baud, trong chế
độ câ ̣n đồng bộ là 19,2 K baud.
• Hoạt động truyền nhâ ̣n dữ liê ̣u đồng thời (song công), với hai bộ
đê ̣m truyền và nhâ ̣n riêng biê ̣t.
• Phát hiê ̣n các lỗi truyền như : chẵn lẻ, sai khung, overrun.
77/Chapter4
© DHBK 2005
• DSR (data set ready): ngõ vào thông báo modem đã
sẵn sàng.
• DTR (data set ready): là ngõ ra thông báo 8251 đã sẵn
sàng.
• RTS(request to send): là ngõ ra yêu cầu modem truyền
dữ liê ̣u.
• CTS (clear to send): là ngõ vào nhâ ̣n thông báo sẵn
sàng nhâ ̣n dữ liê ̣u của modem.
81/Chapter4
© DHBK 2005
• TxD (transmit data): ngõ ra truyền dữ liê ̣u tới thiết bị.
• TxRDY (transmitter ready): là ngõ ra thông báo bộ
đê ̣m truyền đã sẵn sàng.
• TxEmpty: ngõ ra thông báo bộ đê ̣m truyền rỗng,
hoă ̣c bộ truyền không được cho phép.
• TxC (transmitter clock): ngõ vào cấp clock truyền dữ
liê ̣u.
82/Chapter4
© DHBK 2005
• RxD (receive data): ngõ ra truyền dữ liê ̣u tới thiết bị.
• RxRDY (receiver ready): là ngõ ra thông báo bộ đê ̣m
nhâ ̣n đã nhâ ̣n xong một dữ liê ̣u.
• RxC (receiver clock): ngõ vào cấp clock nhâ ̣n dữ
liê ̣u.
83/Chapter4
© DHBK 2005