Orcad-2

Chia sẻ bởi Vũ Bá Mừng | Ngày 18/03/2024 | 7

Chia sẻ tài liệu: orcad-2 thuộc Nghệ thuật

Nội dung tài liệu:

1/Chapter4
Nội dung môn học
Giới thiệu chung về hệ vi xử lý
Bộ vi xử lý Intel 8088/8086
Lập trình hợp ngữ cho 8086
Tổ chức vào ra dữ liệu
Ngắt và xử lý ngắt
Truy cập bộ nhớ trực tiếp DMA
Các bộ vi xử lý trên thực tế
2/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
3/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
4/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
5/Chapter4
Các chân tín hiệu của 8086
8086
AD0-AD15
A16/S3
A17/S4
A19/S6
A18/S5
BHE/S7
READY
HOLD(RQ/GT0)
INTA(QS1)
ALE(QS0)
HLDA(RQ/GT1)
HLDA(RQ/GT1)
M/IO (S2)
DT/R(S1)
WR (LOCK)
RD
DEN (S0)
SS0
NMI
INTR
MN/MX
RESET
TEST
CLK
Vcc
GND
GND
16 đường
địa chỉ thấp/dữ liệu
4 đường
bus C/ địa chỉ cao
Tín hiệu điều
khiển bus
Tín hiệu điều
khiển hệ thống
Tín hiệu điều khiển
CPU
đồng hồ
và nguồn
6/Chapter4
Các chân tín hiệu của 8086
AD0-AD15:
ALE =1: 16 chân địa chỉ cho bộ nhớ hoặc I/O
ALE=0: 16 đường dữ liệu
A19/S6-A16/S3
4 bit địa chỉ cao
4 bit trạng thái:
S6 luôn bằng 1
S5: trạng thái của IF
S4, S3: bit trạng thái về thanh ghi đoạn
đang truy cập

INTR: interrupt request
IF=1 và INTR=1=> cho phép ngắt
TEST
nếu =0, CPU ở trạng thái đợi và thực hiện lệnh NOP
=1, lệnh WAIT đợi đến khi TEST=0
7/Chapter4
Các chân tín hiệu của 8086
NMI (Non-maskable interrupt)
NMI=1 => thực hiện INT 2
RESET
1: khởi động lại hệ thống và thực hiện lệnh tại ô nhớ FFFF0H
MN/MX
1: chế độ min
0: chế độ max
BHE/S7:
0: cho phép truy cập byte cao dữ liệu
Trạng thái S7 luôn bằng 1
RD
0: CPU đọc dữ liệu từ bộ nhớ hoặc thiết bị ngoại vi
Các chân ở chế độ min
M/IO
1: truy cập bộ nhớ
0: truy cập thiết bị ngoại vi I/O
WR
0: dữ liệu hợp lệ tại bus dữ liệu để đưa ra bộ nhớ hoặc thiết bị ngoại vi


8/Chapter4
Các chân tín hiệu của 8086
Các chân ở chế độ min
INTA: interrupt acknowledge
0: khi INTR=1 và IF=1
ALE: address latch enable
DT/R: data transmit/receive
1: bus dữ liệu đang truyền dữ liệu đi
0: bus dữ liệu đang nhận dữ liệu
DEN: Data enable
0: kích hoạt đệm dữ liệu ngoài
HOLD
1: CPU tạm dừng hoạt động để nhường quyền điều khiển cho DMA, các bus được đặt ở trạng thái trở kháng cao
HLDA (Hold Acknowledge)
khi HOLD=1, HLDA=1



9/Chapter4
Các chân tín hiệu của 8086
Các chân ở chế độ Max
S2, S1, S0
ghép nối với điều khiển bus 8288
10/Chapter4
Các chân tín hiệu của 8086
Các chân ở chế độ Max
RQ/GT0 và RQ/GT1: Request/Grant
Tín hiệu yêu cầu dùng bus của các bộ vi xử lý khác/chấp nhận treo bus của CPU
GT0 có mức ưu tiên cao hơn GT1
LOCK
0: cấm các bộ vi xử lý khác dùng bus
QS0 và QS1:
trạng thái của hàng đợi lệnh

11/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
12/Chapter4
Phân kênh và đệm cho các bus
Vì sao phải phân kênh và khuyếch đại đệm:
Các bus địa chỉ và dữ liệu dùng chung chân
Nâng cao khả năng tải của bus
Các vi mạch phân kênh và đệm:
74LS373: phân kênh
74LS245: đệm dữ liệu 2 chiều
74LS244: đệm 3 trạng thái theo 1 chiều
13/Chapter4
Phân kênh và đệm cho các bus
74LS373
74LS373
74LS373
‘242
‘245
‘245
AD15
AD8
AD7
AD0
D15
D8
D7
D0
ALE
BHE/S7
A19/S6
A16/S3
A15
A 8
A 7
A 0
A19
A16
BHE
M/IO
RD
WR
M/IO
RD
WR
G
G
G
G
G
DIR
DIR
8086

DEN

DT/R
14/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
15/Chapter4
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
16/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
17/Chapter4
Biểu đồ thời gian
18/Chapter4
Biểu đồ thời gian
Các ký hiệu trong biểu đồ thời gian:
1
2
3
CS
Data
19/Chapter4
Biểu đồ thời gian
Một chu kỳ ghi/đọc của CPU (chu kỳ bus): 4 chu kỳ xung nhịp T
5 MHz: 4*200 ns=800 ns
T1:
CPU đưa ra địa chỉ của bộ nhớ hoặc I/O, DT/R, M/IO
T2:
CPU đưa ra RD hoặc WR, DEN và dữ liệu trên D0-D15 nếu là lệnh ghi
CPU đọc tín hiệu READY tại cuối chu kỳ của T2 để xử lý trong chu kỳ tiếp theo khi nó làm việc với bộ nhớ hay I/O chậm
T3:
Nếu READY=0 => T3 trở thành chu kỳ đợi: Tw=n*T
Tại cuối T3, CPU sẽ đọc dữ liệu nếu là lệnh đọc dữ liệu
T4:
Các tín hiệu trên bus được giải phóng
WR chuyển từ 0 lên 1 kích hoạt quá trình ghi của bộ nhớ
20/Chapter4
Biểu đồ thời gian
21/Chapter4
Biểu đồ thời gian
22/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Các loại bộ nhớ bán dẫn
Giải mã địa chỉ cho bộ nhớ
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
23/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Các loại bộ nhớ bán dẫn
Giải mã địa chỉ cho bộ nhớ
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
24/Chapter4
Các loại bộ nhớ bán dẫn
Bộ nhớ không bị mất dữ liệu (non-volatile)
ROM (Read Only Memory)
PROM (Programmable ROM)
EPROM (Electrically programmable ROM)
Flash
EEPROM (Electrically Erasable Programmable ROM)
FeRAM (Ferroelectric Random Access Memory)
MRAM (Magnetoelectronic Random Access Memory)
Bộ nhớ bị mất dữ liệu (volatile)
SRAM (Static RAM)
SBSRAM (Synchronous Burst RAM)
DRAM (Dynamic RAM)
FPDRAM (Fast Page mode Dynamic RAM)
EDO DRAM (Extended Data Out Dynamic RAM)
SDRAM (Synchronous Dynamic RAM)
DDR-SDRAM (Double Data Rate SDRAM)
RDRAM (Rambus Dynamic RAM)
25/Chapter4
Các loại bộ nhớ bán dẫn
A0
A1
A2
Am
WE
CS
OE
Dn
D2
D1
D0
RD
WR
Tín hiệu
địa chỉ
Dữ liệu
chọn chip
WR: write
WE: Write enable
OE: Output enable
CS: Chip Select
RD: read
26/Chapter4
EPROM
p
n+
n+
Gate
Source
Drain
Floating
Gate
27/Chapter4
EPROM
p
n+
n+
Vss
Vss
Vss
No charges on floating gate
Infinite number
of free electrons
Hardly any
free electrons:
no conducting path
between Source
and Drain
28/Chapter4
EPROM
p
n+
n+
Vcc
Vss
Vss
No charges on floating gate
Many free electrons
attracted by positive
gate voltage:
conducting channel
between Source
and Drain
29/Chapter4
EPROM
p
n+
n+
Vcc
Vss
Vss
Many electrons trapped on floating gate
No free electrons:
positive gate voltage
is shielded by
negative floating
gate: no conducting
channel between
Source and Drain
30/Chapter4
EPROM: reading
4
Address
31/Chapter4
EPROM: reading
4
2-to-4 Decoder
01
0110
2-to-4 Mux
10
Vcc
Vcc
Vcc
Vcc
0
Read(0x6)
32/Chapter4
EPROM: reading
4
2-to-4 Decoder
10
1000
2-to-4 Mux
00
Vcc
Vcc
Vcc
Vcc
1
Read(0x8)
33/Chapter4
EPROM: erasing
34/Chapter4
EPROM: writing
Write 1 at 0x2
12V
35/Chapter4
EPROM
Ghi vào EPROM
Dùng mạch nạp với điện áp 12 V
1 ms một bit
Xoá EPROM
20 phút dưới tia tử ngoại
Số lần ghi 3 lần
Đọc EPROM
100 ns
EPROM họ 27xxx
2708 (1K*8), 2716 (2K*8), 2732 (4K*8), 2764 (8K*8)
27128 (16K*8), 27256 (32K*8), 27512 (64K*8)
36/Chapter4
EPROM
Ví dụ: 2716 EPROM
120
100
CE
Output
450
Address
37/Chapter4
So sánh các loại ROM
38/Chapter4
SRAM
One row of cells is read out at once
MUX selects one out of these cells
39/Chapter4
SRAM bit cell
Vcc
Bit line
Bit line inverse
Word
40/Chapter4
SRAM bit cell
Bit line
Bit line inverse
Word
Storage
Assumption
Stable situation; stores a ‘1’
Dissipates continuously
41/Chapter4
SRAM bit cell
Bit line
Bit line inverse
Word
Storage
Assumption
Stable situation; stores a ‘0’
Dissipates continuously
42/Chapter4
SRAM bit cell
Bit line
Bit line inverse
Word
Reading of a ‘1’
43/Chapter4
SRAM bit cell
Bit line
Bit line inverse
Word
Reading of a ‘0’
44/Chapter4
SRAM bit cell
Writing of a ‘1’
45/Chapter4
SRAM
Đặc điểm:
6 transistors 1 bit: đắt!
Bị mất dữ liệu khi mất nguồn
nhanh: thời gian đọc và ghi 5 ns
Liên tục tiêu thụ năng lượng
Kích thước: 16 Mbit
ứng dụng:
Bộ nhớ nhỏ và nhanh (cache)
Không dùng cho các thiết bị chạy pin
Ví dụ: 4016 (2K*8), 250 ns
A0-A10
D0-D7
OE
CS
WE
46/Chapter4
DRAM
4
Address
Word
line
Bit
line
47/Chapter4
DRAM
4
One row of cells is read out at once
MUX selects one out of these cells
48/Chapter4
DRAM bit cell
Sense
amplifier
Bit line
49/Chapter4
DRAM bit cell
Storage
5V
5V
5V
5V
0V
0V
30 fF in
.2 mm
Stores
.5 M e-
50/Chapter4
DRAM bit cell
Read
51/Chapter4
DRAM bit cell
Chu kỳ đọc
1. Precharge
2. RAS (Row Address Select): đọc tất cả các bit trong hàng được chọn. Việc đọc này làm giá trị điện áp trên tụ điện bị thay đổi
3. Khuếch đại tín hiệu trên các cột tương ứng
4.a CAS (Column Address Select): chọn 1 cột và đưa dữ liệu ra ngoài
4.b Refresh: khôi phục lại dữ liệu ban đầu của hàng đã được chọn ở bước 2.
52/Chapter4
DRAM bit cell
Write
53/Chapter4
DRAM bit cell
Chu kỳ ghi
1. Precharge
2. RAS (Row Address Select): đọc tất cả các bit trong hàng được chọn. Việc đọc này làm giá trị điện áp trên tụ điện bị thay đổi
3. Khuếch đại tín hiệu trên các cột tương ứng
4.a CAS (Column Address Select): chọn 1 cột và đưa giá trị cần ghi vào cột đó
4.b Refresh: khôi phục lại dữ liệu ban đầu của hàng đã được chọn ở bước 2 trừ bit vừa mới được ghi vào.
54/Chapter4
DRAM bit cell
Refresh
55/Chapter4
DRAM bit cell
Chu kỳ làm tươi
1. Precharge
2. RAS (Row Address Select): đọc tất cả các bit trong hàng được chọn. Việc đọc này làm giá trị điện áp trên tụ điện bị thay đổi
3. Khuếch đại tín hiệu trên các cột tương ứng
4. Refresh: khôi phục lại dữ liệu ban đầu của hàng đã được chọn ở bước 2.
56/Chapter4
DRAM
Đặc điểm:
1 transistor 1 bit: rẻ, tuy nhiên việc điều khiển quá trình làm tươi làm tăng giá thành của DRAM
Chỉ tiêu thụ năng lượng trong quá trình làm tươi và truy nhập
Tương đối nhanh: thời gian đọc và ghi 50 ns
Mỗi một hàng phải được làm tươi sau 4 ms
Nếu có 1024 hàng, chu kỳ làm tươi sẽ là 4 ms
Kích thước: 4 Gbits
Được dùng làm bộ nhớ chính trong các hệ vi xử lý
Ví dụ: TMS 4464 (64K*4)
A0-A7
D0-D3
OE
CAS
WE
RAS
CAS: cho phép chốt địa chỉ cột
RAS: cho phép chốt địa chỉ hàng
57/Chapter4
SRAM - DRAM
Cost
Size
58/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Các loại bộ nhớ bán dẫn
Giải mã địa chỉ cho bộ nhớ
Dùng cổng NAND
Dùng bộ giải mã 74LS138, 74LS139
Dùng PROM
Dùng PAL (Programmable Array Logic)
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
59/Chapter4
Giải mã địa chỉ bộ nhớ
dùng cổng NAND
Ví dụ: Ghép EPROM 2716 (2K * 8) với 8088
Phân tích:
2716: 11 đường địa chỉ A10-A0
8088: 20 đường địa chỉ A20-A0
Chọn vùng nhớ 2K trong 1M?
EPROM: 00000H-003FFH: không được phép
chọn: FF800H-FFFFFH: chứa đoạn khởi động FFFF0H-FFFFFH


FF800: 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 x x x x x x x x x x x
FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0
60/Chapter4
Giải mã địa chỉ bộ nhớ
dùng cổng NAND

FF800: 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 x x x x x x x x x x x
FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0
A0-A10
D0-D7
CS
OE
8088 A
Bus
8088 D
Bus
A19
A18
A17
A16
A15
A14
A13
A12
A11
IO/M
RD
61/Chapter4
Giải mã địa chỉ bộ nhớ
dùng bộ giải mã
Ví dụ: Dùng EPROM 2764 (8K*8) để ghép thành bộ nhớ 64 K cho 8088 bắt đầu từ địa chỉ F0000H
Phân tích:
Địa chỉ bắt đầu F0000H => địa chỉ kết thúc: FFFFFH
Cần ghép 8 EPROM 2764 vì 64=8*8K


F0000: 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F1FFF: 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1

F2000: 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
F3FFF: 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

F4000: 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F5FFF: 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1



FE000: 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0
...
...
IC 1
IC 2
IC 3
IC 8
62/Chapter4
Giải mã địa chỉ bộ nhớ
dùng bộ giải mã
Dùng bộ giải mã 3-8 74LS138
63/Chapter4
Giải mã địa chỉ bộ nhớ
dùng bộ giải mã
Dùng bộ giải mã 3-8 74LS138
2764
A0-A12
D0-D7
CS
OE
RD
A13
A14
A15
A16
IO/M
A17
A18
A19
A0-A12
D0-D7
64/Chapter4
Giải mã địa chỉ bộ nhớ
dùng bộ giải mã
Dùng bộ giải mã kép 2-4 74LS139









Ví dụ: Dùng EPROM 27128 (16K*8) để ghép thành bộ nhớ 64 K cho 8088 bắt đầu từ địa chỉ F0000H

1A
1B
2A
2B
65/Chapter4
Giải mã địa chỉ bộ nhớ
dùng PROM
Dùng PROM TPB28L42 (512*8)
2764
A0-A12
D0-D7
CS
OE
RD
A13
A14
A15
A16
IO/M
A17
A18
A19
TPB28L42
A0
A1
A2
A3
A4
A5
A6
A7
G
A8
A0-A12
D0-D7
66/Chapter4
Giải mã địa chỉ bộ nhớ
dùng PAL
67/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Các loại bộ nhớ bán dẫn
Giải mã địa chỉ cho bộ nhớ
Ghép nối 8088 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
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
68/Chapter4
Ghép nối 8088 với bộ nhớ
Nguyên tắc:
Ghép trực tiếp:
Thời gian truy cập bộ nhớ của CPU > thời gian truy cập của bộ nhớ + thời gian giải mã địa chỉ
Ghép có chèn thêm thời gian đợi của CPU
Thời gian truy cập bộ nhớ của CPU < thời gian truy cập của bộ nhớ + thời gian giải mã địa chỉ
8088 hoạt động ở 5 MHz có thời gian truy cập bộ nhớ 460 ns
69/Chapter4
Ghép nối 8088 với ROM
Ví dụ: ghép nối 8088 với EPROM 2732-450 ns
2732
A0-A11
D0-D7
CS
OE
RD
A12
A13
A14
A15
IO/M
A16
A17
A18
A0-A11
D0-D7
A19
F8000-F8FFF
F9000-F9FFF
FF000-FFFFF
Bộ tạo Tw
Tới chân RDY1 của 8284
70/Chapter4
Ghép nối 8088 với SRAM
Ví dụ: ghép nối 8088 với SRAM 62256 (32K*8) để được bộ nhớ 256 KB, bắt đầu từ địa chỉ 00000H
62256
A0-A14
D0-D7
CS
OE
RD
A15
A16
A17
A18
IO/M
A0-A14
D0-D7
A19
00000-07FFF
08000-0FFFF
38000-3FFFF
WE
WR
10000-17FFF
71/Chapter4
Ghép nối 8088 với 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
72/Chapter4
Ghép nối 8088 với DRAM
Ví dụ: ghép 8088 với TMS 4464 (64K*4) DRAM để được bộ nhớ 128 KB, bắt đầu tại địa chỉ 00000H
73/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
74/Chapter4
Ghép nối 8086 với bộ nhớ
00001
00003
FFFFD
FFFFF
FFFFB
00005
00000
00002
FFFFC
FFFFE
FFFFA
00004
Bank cao
(bank lẻ)
Bank thấp
(Bank chẵn)
75/Chapter4
Ghép nối 8086 với bộ nhớ
Ví dụ: Ghép EPROM 2716 (2K * 8) với 8086 để được vùng bộ nhớ FF000H-FFFFFH
Cần 2 IC vì 4KB=2*2KB



FF000: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
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
A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0
Bank thấp
Bank cao
76/Chapter4
Ghép nối 8086 với bộ nhớ
2716
A0-A10
D0-D7
CS
OE
A1-A11
D0-D7
A19
A18
A17
A16
A15
A14
A13
A12
M/IO
RD
A0
2716
A0-A10
D0-D7
CS
OE
A1-A11
D8-D15
A19
A18
A17
A16
A15
A14
A13
A12
M/IO
RD
BHE
77/Chapter4
Ghép nối 8086 với bộ nhớ
2716
A0-A10
D0-D7
CS
OE
A1-A11
D0-D7
LRD
2716
A0-A10
D0-D7
CS
OE
A1-A11
D8-D15
A19
A18
A17
A16
A15
A14
A13
A12
M/IO
HRD
78/Chapter4
Ghép nối 8086 với bộ nhớ
Ví dụ: ghép nối 8086 với SRAM 62256 (32K*8) để được bộ nhớ 256 KB, bắt đầu từ địa chỉ 00000H
79/Chapter4
Ghép nối 8086 với bộ nhớ
Ví dụ: thiết kế hệ thống nhớ cho 8086 với 64 KB EPROM và 128 KB SRAM sử dụng SRAM 62256 (32K*8) và EPROM 27128 (16K*8)
80/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
Các kiểu ghép nối vào/ra
Giải mã địa chỉ cho các thiết bị vào/ra
Mạch ghép nối vào ra song song lập trình được 8255A
Mạch điều khiển bàn phím/màn hình lập trình được 8279
Bộ định thời lập trình được 8254
Giao tiếp truyền thông lập trình được 16550
Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
81/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
Các kiểu ghép nối vào/ra
Giải mã địa chỉ cho các thiết bị vào/ra
Mạch ghép nối vào ra song song lập trình được 8255A
Mạch điều khiển bàn phím/màn hình lập trình được 8279
Bộ định thời lập trình được 8254
Giao tiếp truyền thông lập trình được 16550
Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
82/Chapter4
Các kiểu ghép nối vào ra
Thiết bị vào ra có không gian địa chỉ cách biệt:
0320
Điều khiển DMA
0020
0040
0060
02F8
0378
FFFF
Điều khiển ngắt
Định thời (8253)
8255
COM2
Điều khiển ổ cứng
LPT1
03D0
Vùng mở rộng
03F0
03F8
CGA adapter
Điều khiển đĩa mềm
COM1
0000
03FF
Địa chỉ: 0000H-FFFFH
M/IO=0
Vào ra dữ liệu bằng lệnh IN, OUT

Ví dụ:
IN AX, 00H
IN AL, F0H
IN AX, DX

OUT 00H, AX
OUT F0H, AL
OUT DX, AX

83/Chapter4
Các kiểu ghép nối vào ra
Thiết bị vào ra có không gian địa chỉ cách biệt:
84/Chapter4
Các kiểu ghép nối vào ra
Thiết bị vào/ra có cùng không gian địa chỉ với bộ nhớ
FFFFF
00000

M/IO=1
Vào ra dữ liệu bằng bất kỳ lệnh
di chuyển dữ liệu nào giữa
CPU và bộ nhớ

Ví dụ:
MOV AX, [0FF3H]
I/O
Memory + I/O
85/Chapter4
Các kiểu ghép nối vào ra
Ví dụ cổng vào đơn giản:
Tới bus dữ liệu
của CPU
Từ giải mã địa chỉ cổng
86/Chapter4
Các kiểu ghép nối vào ra
Ví dụ cổng ra đơn giản:
Từ bus dữ liệu
của CPU
Từ giải mã địa chỉ cổng
87/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
Các kiểu ghép nối vào/ra
Giải mã địa chỉ cho các thiết bị vào/ra
Mạch ghép nối vào ra song song lập trình được 8255A
Mạch điều khiển bàn phím/màn hình lập trình được 8279
Bộ định thời lập trình được 8254
Giao tiếp truyền thông lập trình được 16550
Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
88/Chapter4
Giải mã địa chỉ cho các thiết bị vào/ra
8 bit địa chỉ hay 16 bit?
Tổng số thiết bị < 256: 8 bit A0-A7: 00H-FFH
Tổng số thiết bị >256: 16 bit A0-A15: 0000H-FFFFH
8 bit dữ liệu hay 16 bit?
Nếu cổng là 8 bit: chọn 1 trong 2 bank
Nếu cổng là 16 bit: chọn cả 2 bank










BHE
A0
D8-D15
D0-D7
89/Chapter4
Giải mã địa chỉ cho các thiết bị vào/ra
Ví dụ: Giải mã địa chỉ cho thiết bị ra 8 bit với địa chỉ 07H
07H= 0000 0111









D0-D7
CS
WE
D8-D15
A0
A1
A2
A3
A4
A5
A6
M/IO
WR
A7
BHE
8088
8086
90/Chapter4
Giải mã địa chỉ cho các thiết bị vào/ra
Ví dụ: Giải mã địa chỉ cho thiết bị ra 16 bit với địa chỉ cổng 64H và 65H
64H= 0110 0100
65H= 0110 0101









D8-D15
CS
WE
D8-D15
A1
A2
A3
A4
A5
A6
M/IO
WR
A7
D0-D7
CS
WE
D7-D0
91/Chapter4
Giải mã địa chỉ cho các thiết bị vào/ra
Ví dụ: Giải mã địa chỉ cho các cổng vào ra 8 bit ở bank thấp với các địa chỉ 10H, 12H, 14H, 16H, 18H, 1AH, 1CH, 1EH
10H=0001 0000
12H=0001 0010
....
1EH=0001 1110









A1
A2
A3
A0
M/IO
A4
A5
A7
A6
92/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
Các kiểu ghép nối vào/ra
Giải mã địa chỉ cho các thiết bị vào/ra
Mạch ghép nối vào ra song song lập trình được 8255A
Cấu trúc của 8255A
Các chế độ làm việc của 8255A
Lập trình cho 8255A
Mạch điều khiển bàn phím/màn hình lập trình được 8279
Bộ định thời lập trình được 8254
Giao tiếp truyền thông lập trình được 16550
Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
93/Chapter4
Cấu trúc của 8255A
Giao tiếp các thiết bị tương thích TTL với vi xử lý
Thường được dùng để giao tiếp bàn phím và máy in trong các may tính PC (dưới dạng là một khối trong chíp tích hợp)
Cần chèn trạng thái đợi khi làm việc với vi xử lý >8 Mhz
Có 24 đường vào ra và có 3 chế độ làm việc
Trong các máy PC, địa chỉ cổng của 8255 là 60H-63H
94/Chapter4
Cấu trúc của 8255A
95/Chapter4
Cấu trúc của 8255A
96/Chapter4
Cấu trúc của 8255A
97/Chapter4
Các chế độ làm việc của 8255A
98/Chapter4
Các chế độ làm việc của 8255A
Chế độ 0: Chế độ vào ra đơn giản: các cổng có thể làm việc như là cổng vào có đệm hoặc cổng ra có chốt đệm.
Chế độ 1: Chế độ này cho phép cổng A và B làm việc như các thiết bị vào hoặc ra có tín hiệu móc nối (handshaking) do các bit tương ứng của cổng C trong cùng nhóm đảm nhiệm
Chế độ 2: chế độ này cho phép cổng A làm việc 2 chiều với các tín hiệu móc nối do cổng PCH đảm nhiệm. Cổng B có thể làm việc ở chế độ 1 hoặc 0
99/Chapter4
Chế độ 0
100/Chapter4
Chế độ 0
Giả thiết địa chỉ của các cổng của 8255 là 0700H-0703H
; Lập trình cho 8255
MOV AL, 10000000B ; Port A, Port B mode 0, output
MOV DX, 703H
OUT DX, AL
; Thủ tục hiển thị LED từ dữ liệu chứa trong bộ nhớ
DISP PROC NEAR
PUSHF ; cất các thanh ghi vào ngăn xếp
PUSH AX
PUSH BX
PUSH DX
PUSH SI
; Thiết lập các thanh ghi để hiển thị
MOV BX, 8 ;số LED
MOV AH, 7FH ;chọn LED đầu tiên 0111 1111
MOV SI, OFFSET MEM-1 ; địa chỉ chứa dữ liệu
MOV DX,701H ; địa chỉ cổng B
;Hiển thị 8 số
DISP1: MOV AL, AH ;chọn 1 số
OUT DX, AL
DEC DX ; địa chỉ cổng A
MOV AL, [BX+SI] ; dữ liệu của 7 đoạn led
OUT DX, AL
CALL Delay ; trễ 1 ms
ROR AH, 1 ;số tiếp theo
INC DX ; địa chỉ cổng B
DEC BX ;giảm chỉ số
JNZ DISP1 ; lặp lại 8 lần
;khôi phục lại các thanh ghi
POP SI
POP DX
POP BX
POP AX
POPF
RET
DISP ENDP
101/Chapter4
Chế độ 0
102/Chapter4
Chế độ 0
103/Chapter4
Chế độ 0
ROWS EQU 4 ; 4 hàng
COLS EQU 4 ; 4 cột
PORTA EQU 50H
PORTB EQU 51H
KEY PROC NEAR USES CX
CALL SCAN ;test all keys
JNZ KEY ; if key closed
CALL DELAY ; đợi 10 ms
CALL SCAN
JNZ KEY
KEY1:
CALL SCAN
JZ KEY1 ; if no key closed
CALL DELAY
CALL SCAN
JZ KEY1
PUSH AX ;cất mã hàng
MOV AL, COLS ;cal starting row key
SUB AL, CL
MOV CH, ROWS
MUL CH
MOV CL, AL
DEC CL
POP AX
KEY2:
ROR AL,1 ;find row position
INC CL
JC KEY2
MOV AL,CL ;move code to AL
RET
KEY ENDP
SCAN PROC NEAR USES BX
MOV CL, ROWS ;form row mask
MOV BH, OFFH
SHL BH, CL
MOV CX, COLS ;load column count
MOV BL, OFEH ;get selection mode
SCAN1:
MOV AL, BL ;select column
OUT PORTB, AL
ROL BL, 1
IN AL, PORTA; read rows
OR AL,BH
CMP AL, 0FFH ;test for a key
JNZ SCAN2
LOOP SCAN1

SCAN2:
RET
SCAN ENDP

DELAY PROC NEAR USES CX
MOV CX, 5000 ;10ms (8MHZ)
DELAY1:
LOOP DELAY1
RET
DELAY ENDP
104/Chapter4
Chế độ 1
Port A và B làm việc ở chế độ cổng vào có chốt:
dữ liệu sẽ được giữ tại cổng A, B cho đến khi CPU sẵn sàng
cổng C làm cổng điều khiển và cấp tín hiệu móc nối
105/Chapter4
Chế độ 1
106/Chapter4
Chế độ 1
PA0-PA7
D0-D7
DAV
PC4
STB
82C55
Keyboard
ASCII
107/Chapter4
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
108/Chapter4
Chế độ 1
109/Chapter4
Chế độ 1
PB0-PB7
D0-D7
ACK
PC2
ACK
82C55
Printer
ASCII
DS
PC4
110/Chapter4
Chế độ 1
BIT1 EQU 2
PORTC EQU 62H
PORTB EQU 61H
CMD EQU 63H

PRINT PROC NEAR
;check printer ready
IN AL,PORTC ;get OBF
TEST AL, BIT1 ;test OBF
JZ PRINT ;if OBF=0

;send character to printer
MOV AL, AH ;get data
OUT PORTB, AL ;print data
;send data strobe to printer

MOV AL, 8 ;clear DS
OUT CMD,AL
MOV AL, 9 ;set DS
OUT CMD, AL
RET
PRINT ENDP
111/Chapter4
Chế độ 2
Chỉ cho phép đối với cổng A
Cổng A là cổng 2 chiều, dùng để giao tiếp giữa 2 máy tính hoặc dùng trong chuẩn giao tiếp IEEE-488 GPIB...
112/Chapter4
Chế độ 2
113/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
Các kiểu ghép nối vào/ra
Giải mã địa chỉ cho các thiết bị vào/ra
Mạch ghép nối vào ra song song lập trình được 8255A
Mạch điều khiển bàn phím/màn hình lập trình được 8279
Bộ định thời lập trình được 8254
Giao tiếp truyền thông lập trình được 16550
Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
114/Chapter4
Mạch điều khiển 8279
Điều khiển bàn phím và màn hiển thị 8279:
quét và mã hoá cho bàn phím tới 64 phím
bộ đệm FIFO có thể chứa 8 ký tự
Điều khiển màn hiển thị tới 16 số
16*8 RAM để chứa thông tin về 16 số hiển thị
Các tín hiệu chính:
A0: chọn giữa chế độ dữ liệu hoặc điều khiển
BD: xoá trắng màn hiển thị
CLK: tín hiệu xung nhịp vào
CN/ST (control/Strobe): cổng vào nối với
phím điều khiển của bàn phím
CS : chip select
DB7-DB0: bus dữ liệu 2 chiều
IRQ: =1 khi có phím bấm
OUTA3-OUTA0: dữ liệu tới màn hiển thị (bit cao)
OUTB3-OUTB0: dữ liệu tới màn hiển thị (bit thấp)
RD: cho phép đọc dữ liệu từ thanh ghi điều khiển hoặc trạng thái
RL7-RL0: xác định phím được nhấn
SHIFT: nối với phím shift của bàn phím
SL3-SL0: tín hiệu quét màn hình và màn hiển thị
WR: viết dữ liệu vào thanh ghi điều khiển hoặc thanh ghi dữ liệu
115/Chapter4
Ghép nối 8279 với 8088
116/Chapter4
Ghép nối 8279 với bàn phím
117/Chapter4
Ghép nối 8279 với màn hiển thị
118/Chapter4
Lập trình cho 8279
Từ điều khiển: D7D6D5D4D3D2D1D0
119/Chapter4
Lập trình cho 8279
120/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
Các kiểu ghép nối vào/ra
Giải mã địa chỉ cho các thiết bị vào/ra
Mạch ghép nối vào ra song song lập trình được 8255A
Mạch điều khiển bàn phím/màn hình lập trình được 8279
Bộ định thời lập trình được 8254
Giao tiếp truyền thông lập trình được 16550
Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
121/Chapter4
Bộ định thời lập trình được 8254
122/Chapter4
Bộ định thời lập trình được 8254
123/Chapter4
Bộ định thời lập trình được 8254
124/Chapter4
Bộ định thời lập trình được 8254
125/Chapter4
Bộ định thời lập trình được 8254
126/Chapter4
Bộ định thời lập trình được 8254
127/Chapter4
Bộ định thời lập trình được 8254
128/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
Các kiểu ghép nối vào/ra
Giải mã địa chỉ cho các thiết bị vào/ra
Mạch ghép nối vào ra song song lập trình được 8255A
Mạch điều khiển bàn phím/màn hình lập trình được 8279
Bộ định thời lập trình được 8254
Giao tiếp truyền thông lập trình được 16550
Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
129/Chapter4
Giao tiếp truyền thông lập trình được 16550
130/Chapter4
Giao tiếp truyền thông lập trình được 16550
131/Chapter4
Giao tiếp truyền thông lập trình được 16550
132/Chapter4
Giao tiếp truyền thông lập trình được 16550
133/Chapter4
Giao tiếp truyền thông lập trình được 16550
134/Chapter4
Giao tiếp truyền thông lập trình được 16550
135/Chapter4
Giao tiếp truyền thông lập trình được 16550
136/Chapter4
Giao tiếp truyền thông lập trình được 16550
137/Chapter4
Giao tiếp truyền thông lập trình được 16550
138/Chapter4
Giao tiếp truyền thông lập trình được 16550
139/Chapter4
Giao tiếp truyền thông lập trình được 16550
140/Chapter4
Giao tiếp truyền thông lập trình được 16550
141/Chapter4
Giao tiếp truyền thông lập trình được 16550
142/Chapter4
Giao tiếp truyền thông lập trình được 16550
143/Chapter4
Giao tiếp truyền thông lập trình được 16550
144/Chapter4
Giao tiếp truyền thông lập trình được 16550
145/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
Các kiểu ghép nối vào/ra
Giải mã địa chỉ cho các thiết bị vào/ra
Mạch ghép nối vào ra song song lập trình được 8255A
Mạch điều khiển bàn phím/màn hình lập trình được 8279
Bộ định thời lập trình được 8254
Giao tiếp truyền thông lập trình được 16550
Bộ biến đổi số tương tự DAC0830 và bộ biến đổi tương tự số ADC0804
146/Chapter4
Bộ biến đổi số tương tự DAC
147/Chapter4
Bộ biến đổi số tương tự DAC
148/Chapter4
Bộ biến đổi tương tự số ADC
149/Chapter4
Bộ biến đổi tương tự số ADC
150/Chapter4
Bộ biến đổi tương tự số ADC
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Vũ Bá Mừng
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)