Microprocessor Final Ver1 Part4

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Microprocessor Final Ver1 Part4 as PDF for free.

More details

  • Words: 8,695
  • Pages: 155
1/Chapter4

© DHBK 2005

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ế

© DHBK 2005

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

© DHBK 2005

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

© DHBK 2005

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

© DHBK 2005

Các chân tín hiệu của 8086 M/IO (S2) AD0-AD15

DT/R(S1) Tín hiệu điều khiển hệ thống

RD WR (LOCK) DEN (S0) SS0 READY BHE/S7

Tín hiệu điều khiển CPU

đồng hồ và nguồn

NMI INTR RESET MN/MX TEST CLK Vcc GND GND

16 đường địa chỉ thấp/dữ liệu

A16/S3 A17/S4 A18/S5 A19/S6

4 đường bus C/ địa chỉ cao

8086 HOLD(RQ/GT0) HLDA(RQ/GT1) INTA(QS1) ALE(QS0)

Tín hiệu điều khiển bus

6/Chapter4

© DHBK 2005

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



READY: input pin,

S4 S3 0

0

ES

0

1

SS

1

0

CS or No

1

1

DS

 0 => vi xử lý vào trạng thái đợi  1: has no effect



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

© DHBK 2005

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

© DHBK 2005

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

© DHBK 2005

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 S2

S1

S0

0

0

0

chấp nhận yêu cầu ngắt

0

0

1

đọc thiết bị ngoại vi

0

1

0

Ghi thiết bị ngoại vi

0

1

1

Dừng

1

0

0

đọc mã lệnh

1

0

1

đọc bộ nhớ

1

1

0

ghi bộ nhớ

1

1

1

bus rỗi

chu kỳ điều khiển của bus

10/Chapter4

© DHBK 2005

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 QS1 QS0

Trạng thái hàng đợi lệnh

0

0

không hoạt động

0

1

đọc byte mã lệnh đầu tiên

1

0

hàng đợi rỗng

1

1

đọc byte tiếp theo

11/Chapter4

© DHBK 2005

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

© DHBK 2005

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

© DHBK 2005

Phân kênh và đệm cho các bus M/IO RD WR BHE/S7 A19/S6 A16/S3

M/IO RD WR BH A19

‘244 74LS373

A16 A15

G

A8

A7

8086

A0 ALE

G

74LS373

G

74LS373

D15

AD15

‘245 AD8 AD7

G DIR

D8 D7

‘245 AD0

DEN DT/R

G DIR

D0

14/Chapter4

© DHBK 2005

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

© DHBK 2005

15/Chapter4

Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288

16/Chapter4

© DHBK 2005

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

© DHBK 2005

Biểu đồ thời gian

18/Chapter4

© DHBK 2005

Biểu đồ thời gian • Các ký hiệu trong biểu đồ thời gian:

Min

CS

1

CS hold time

2

CS to data valid

3

Data hold time

max

60

Units

ns

1

Data 2

3

5

30

ns

10

ns

19/Chapter4

© DHBK 2005

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, ALE

 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

© DHBK 2005

Biểu đồ thời gian

21/Chapter4

© DHBK 2005

Biểu đồ thời gian

22/Chapter4

© DHBK 2005

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

© DHBK 2005

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

© DHBK 2005

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

© DHBK 2005

Các loại bộ nhớ bán dẫn

A0 Tín hiệu địa chỉ

WR

A1 A2

D0 D1 D2

Am

Dn

Dữ liệu

WE CS

OE WR: write

chọn chip

WE: Write enable RD

OE: Output enable CS: Chip Select RD: read

26/Chapter4

© DHBK 2005

EPROM Floating Gate

Isolator Gate

Source

n+

Drain

n+ p

27/Chapter4

© DHBK 2005

EPROM No charges on floating gate Infinite number of free electrons Vss

Vss

Vss

Many free electrons

Many free electrons n+

n+ p

D=Vss G=Vss

S=Vss

Hardly any free electrons: no conducting path between Source and Drain

28/Chapter4

© DHBK 2005

EPROM No charges on floating gate

Vcc

Vss

n+

Vss

n+ p

D=Vss G=Vcc

S=Vss

Many free electrons attracted by positive gate voltage: conducting channel between Source and Drain

29/Chapter4

© DHBK 2005

EPROM Many electrons trapped on floating gate

Vcc

Vss

n+

Vss

n+ p

D=Vss G=Vcc

S=Vss

No free electrons: positive gate voltage is shielded by negative floating gate: no conducting channel between Source and Drain

30/Chapter4

© DHBK 2005

EPROM: reading Vcc

Vcc

Vcc

Address

2-to-4 Decoder

2 MSB

4

2 LSB

2-to-4 Mux Data

Vcc

© DHBK 2005

Read(0x6) Vcc

31/Chapter4

EPROM: reading Vcc

Vcc

Vcc

0110

2-to-4 Decoder

01

4

10

2-to-4 Mux 0

© DHBK 2005

Read(0x8) Vcc

32/Chapter4

EPROM: reading Vcc

Vcc

Vcc

1000

2-to-4 Decoder

10

4

00

2-to-4 Mux 1

33/Chapter4

© DHBK 2005

EPROM: erasing Vcc

Vcc

Vcc

Address

2-to-4 Decoder

2 MSB

4

2 LSB

2-to-4 Mux Data

Vcc

UV light

© DHBK 2005

Write 1 at 0x2 Vcc

34/Chapter4

EPROM: writing Vcc

Vcc

Address 0010

2-to-4 Decoder

2 00 MSB

4

2 10 LSB

2-to-4 Mux Data

12V Vcc

35/Chapter4

© DHBK 2005

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

© DHBK 2005

EPROM • Ví dụ: 2716 EPROM U2

23 22 19 20 18 21

8 7 6 5 4 3 2 1

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 OE CE VPP 2716

O0 O1 O2 O3 O4 O5 O6 O7

9 10 11 13 14 15 16 17

Address CE

Output 120 450

100

37/Chapter4

© DHBK 2005

So sánh các loại ROM Loại ROM

Thời gian ghi

Thời gian đọc

số lần ghi

Kích thước

ROM

NA

35 ns

0

Mbits

PROM

1µs/bit

35 ns

1

128 Kbits

EPROM

1ms/bit

45 ns

3

16 Mbits

Flash

1µs/2 KB

35 ns

1 triệu

GBits

EEPROM

10 ms/page

200 ns

10000

Mbit

FeRAM

60 ns

50 ns

1000 tỉ

32 Mbits

MRAM

5ns

5ns

1015

4 Mbits

© DHBK 2005

38/Chapter4

SRAM

One row of cells is read out at once MUX selects one out of these cells

0110

2-to-4 Decoder

01

4

10

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

2-to-4 Mux

39/Chapter4

© DHBK 2005

SRAM bit cell Bit line inverse

Bit line Word Vcc

Acts as a resistor

40/Chapter4

© DHBK 2005

Storage

SRAM bit cell Bit line inverse

Bit line Word Vcc R 5V

0V

Current Assumption

Stable situation; stores a ‘1’ Dissipates continuously

41/Chapter4

© DHBK 2005

SRAM bit cell

Storage

Bit line inverse

Bit line Word Vcc R 0V

5V

Current Stable situation; stores a ‘0’ Dissipates continuously

Assumption

42/Chapter4

© DHBK 2005

Reading of a ‘1’

SRAM bit cell Bit line inverse

Bit line Word Vcc R 5V

0V

Current 1

0

43/Chapter4

© DHBK 2005

Reading of a ‘0’

SRAM bit cell Bit line inverse

Bit line Word Vcc R 0V

5V

Current 0

1

44/Chapter4

© DHBK 2005

Writing of a ‘1’

SRAM bit cell

Vcc

Vcc

Word Word Vcc R

Bit Bit line line 0V 5V

Bit line inverse

5V 0V

Current W.D’

Current

Current

W.D

45/Chapter4

© DHBK 2005

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 WE CS

46/Chapter4

© DHBK 2005

DRAM

Bit line

Word line

Address

2-to-4 Decoder

2 MSB

4

2 LSB

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

2-to-4 Mux Data

© DHBK 2005

47/Chapter4

DRAM One row of cells is read out at once MUX selects one out of these cells

0110

2-to-4 Decoder

01

4

10

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

1bit cell

2-to-4 Mux Data

DRAM bit cell

© DHBK 2005

Vcc/2

1 bit cell

Precharge Word line

Refresh

Vcc/2

48/Chapter4

Vcc/2

Vcc/2

Bit line Sense amplifier

MUX

© DHBK 2005

Storage

DRAM bit cell

49/Chapter4

Vcc/2 Precharge Word line

Refresh

Vcc/2

5V

0V

5V

0V

5V

5V

Vcc/2

Vcc/2

MUX

30 fF in .2 µm Stores .5 M e-

© DHBK 2005

Read

DRAM bit cell

50/Chapter4

Vcc/2 Precharge Word line 2.55V 2.5V 5V

Refresh

Vcc/2

2.55V 5V

2.45V 0V

2.55V 5V

0V

5V

5V

Vcc/2

Vcc/2

MUX

51/Chapter4

© DHBK 2005

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.

© DHBK 2005

Write

DRAM bit cell

52/Chapter4

Vcc/2 Precharge Word line

Refresh

Vcc/2

2.55V 5V

2.45V 0V 5V

2.55V 5V

0V

5V

5V

Vcc/2

Vcc/2

MUX

53/Chapter4

© DHBK 2005

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.

© DHBK 2005

Refresh

DRAM bit cell

54/Chapter4

Vcc/2 Precharge Word line

Refresh

Vcc/2

2.51V 5V 3V

2.49V 0V 2V

2.51V 5V 3V

2V 2.49V 0V

3V 2.51V 5V

3V 2.51V 5V

Vcc/2

Vcc/2

MUX

55/Chapter4

© DHBK 2005

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

© DHBK 2005

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 µs

 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

WE

CAS

RAS

CAS: cho phép chốt địa chỉ cột RAS: cho phép chốt địa chỉ hàng

57/Chapter4

© DHBK 2005

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 µs

 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

WE

CAS

RAS

CAS: cho phép chốt địa chỉ cột RAS: cho phép chốt địa chỉ hàng

58/Chapter4

© DHBK 2005

DRAM • Examples of DRAM:  SIMM (Single Inline Memory Module): 72 pins  DIMM (Dual Inline Memory Module): 168 pins

72-Pin SIMM

59/Chapter4

© DHBK 2005

SRAM - DRAM Cost

SRAM

DRAM

Refresh controller

Size

60/Chapter4

© DHBK 2005

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  Dùng  Dùng  Dùng

cổng NAND bộ giải mã 74LS138, 74LS139 PROM 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

© DHBK 2005

Giải mã địa chỉ bộ nhớ dùng cổng NAND

61/Chapter4

• 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 A19A18A17A16

• FF800: • FFFFF:

1111 1111

A15A14A13A12

1111 1111

A11A10A9A8

1000 1111

A7 A6 A5 A4

A3 A2 A1 A0

0000 0000 1111 1111

© DHBK 2005

• FF800: • FFFFF:

A19 A18 A17 A16 A15 A14 A13 A12 A11 IO/M

Giải mã địa chỉ bộ nhớ dùng cổng NAND A19A18A17A16

1111 1111

A15A14A13A12

1111 1111

8088 A Bus

A11A10A9A8

A7 A6 A5 A4

1000 1111

A0-A10 D0-D7

CS

OE

RD

62/Chapter4

A3 A2 A1 A0

0000 0000 1111 1111

8088 D Bus

Giải mã địa chỉ bộ nhớ dùng bộ giải mã

© DHBK 2005

• •

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

A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0

• •

F0000: F1FFF:

1111 1111

0000 0000 0001 1111

0000 1111

0000 1111

IC 1

• •

F2000: F3FFF:

1111 1111

0010 0000 0011 1111

0000 1111

0000 1111

IC 2

• •

F4000: F5FFF: ...

1111 1111

0100 0000 0101 1111

0000 1111

0000 1111

IC 3

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

IC 8

... • •

63/Chapter4

64/Chapter4

Giải mã địa chỉ bộ nhớ dùng bộ giải mã

© DHBK 2005

• Dùng bộ giải mã 3-8 74LS138 U1 1 2 3 6 4 5

A B C G1 G2A G2B

74LS138

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

15 14 13 12 11 10 9 7

C

B

A

G2 B

x x x 0 0 0 0 1 1 1 1

x x x 0 0 1 1 0 0 1 1

x x x 0 1 0 1 0 1 0 1

1 x x 0 0 0 0 0 0 0 0

G2 A

G1

y0

y1

y2

y3

y4

y5

y6

y7

x 1 x 0 0 0 0 0 0 0 0

x x 0 1 1 1 1 1 1 1 1

1 1 1 0 1 1 1 1 1 1 1

1 1 1 1 0 1 1 1 1 1 1

1 1 1 1 1 0 1 1 1 1 1

1 1 1 1 1 1 0 1 1 1 1

1 1 1 1 1 1 1 0 1 1 1

1 1 1 1 1 1 1 1 0 1 1

1 1 1 1 1 1 1 1 1 0 1

1 1 1 1 1 1 1 1 1 1 0

Giải mã địa chỉ bộ nhớ dùng bộ giải mã

© DHBK 2005

65/Chapter4

• Dùng bộ giải mã 3-8 74LS138 A0-A12 D0-D7 RD

U1

A13 A14 A15 A16 IO/M A17 A18 A19

1 2 3 6 4 5

A B C G1 G2A G2B

74LS138

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

15 14 13 12 11 10 9 7

A0-A12 A0-A10 D0-D7 A0-A10 2764 D0-D7 A0-A10 2764 OE D0-D7 A0-A10 2764 OE D0-D7 A0-A10 2764 CS OE D0-D7 A0-A10 CS OE D0-D7 2764 A0-A10 CS OE D0-D7 2764 CS OE D0-D7 2764 CS OE 2764 CS OE CS CS

© DHBK 2005

Giải mã địa chỉ bộ nhớ dùng bộ giải mã

66/Chapter4

• Dùng bộ giải mã kép 2-4 74LS139 1A 1B 1G 2A 2B 2G

1Y0 1Y1 1Y2 1Y3 2Y0 2Y1 2Y2 2Y3

• 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

Giải mã địa chỉ bộ nhớ dùng PROM

© DHBK 2005

67/Chapter4

• Dùng PROM TPB28L42 (512*8) A0-A12 D0-D7 RD A13 A14 A15 A16 A17 A18 A19

A0 A1 A2 A3 A4 TPB28L42 A5 A6 A7 A8 G

IO/M

O0 O1 O2 O3 O4 O5 O6 O7

A0-A12 A0-A10 D0-D7 A0-A10 2764 D0-D7 A0-A10 2764 OE D0-D7 A0-A10 2764 OE D0-D7 A0-A10 2764 CS OE D0-D7 A0-A10 CS OE D0-D7 2764 A0-A10 CS OE D0-D7 2764 CS OE D0-D7 2764 CS OE 2764 CS OE CS CS

© DHBK 2005

Giải mã địa chỉ bộ nhớ dùng PAL

68/Chapter4

69/Chapter4

© DHBK 2005

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

70/Chapter4

© DHBK 2005

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ớ 420 ns

71/Chapter4

© DHBK 2005

Ghép nối 8088 với ROM • Ví dụ: ghép nối 8088 với EPROM 2732-450 ns

A0-A11 D0-D7 RD

U1

A12 A13 A14

A16 A17 A18 A19

A15 IO/M

1 2 3 6 4 5

A B C G1 G2A G2B

74LS138

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

15 14 13 12 11 10 9 7

F8000-F8FFF F9000-F9FFF

FF000-FFFFF

A0-A11 A0-A10 D0-D7 A0-A10 2732 D0-D7 A0-A10 2764 OE D0-D7 A0-A10 2764 OE D0-D7 A0-A10 2764 CS OE D0-D7 A0-A10 CS OE D0-D7 2764 A0-A10 CS OE D0-D7 2764 CS OE D0-D7 2764 CS OE 2764 CS OE CS CS

Bộ tạo Tw

Tới chân RDY1 của 8284

72/Chapter4

© DHBK 2005

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 A0-A14 D0-D7 U1

A15 A16 A17 A18 IO/M

1 2 3 6 4 5

A B C G1 G2A G2B

A19 74LS138

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

15 14 13 12 11 10 9 7

RD WR

00000-07FFF 08000-0FFFF 10000-17FFF

38000-3FFFF

A0-A14 A0-A10 D0-D7 A0-A10 62256 D0-D7 A0-A10 2764 OE D0-D7 A0-A10 2764 OE D0-D7 WE A0-A10 2764 CS OE D0-D7 A0-A10 CS OE D0-D7 2764 A0-A10 CS OE D0-D7 2764 CS OE D0-D7 2764 CS OE 2764 CS OE CS CS

73/Chapter4

© DHBK 2005

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

74/Chapter4

© DHBK 2005

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 A0-A7

A8-A15 ALE A16 RD WR

RA0-RA7 CA0-CA7 ALE REN1 ACR TMS ACW

MA0-MA7

A0-A7

2x4464 RAS0

RAS

CAS

CAS

4500A A0-A7

A17 A18 A19 IO/M

RDY

RDY

CLK

CLK CS

RAS1

2x4464 RAS CAS

© DHBK 2005

75/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

76/Chapter4

© DHBK 2005

Ghép nối 8086 với bộ nhớ FFFFF

FFFFE

FFFFD

FFFFC

FFFFB

FFFFA

00005

00004

00003

00002

00001

00000 Bank cao (bank lẻ)

8088

8086

8 bit IO/M

16 bit M/IO BHE

BHE A0 Bank thấp (Bank chẵn)

Chức năng

0

0

chọn cả 2 bank

0

1

chọn bank cao

1

0

chọn bank thấp

1

1

không chọn bank nào

77/Chapter4

© DHBK 2005

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

A19A18A17A16

A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0

• •

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

Bank thấp

• •

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

78/Chapter4

© DHBK 2005

Ghép nối 8086 với bộ nhớ A19 A18 A17 A16 A15 A14

A1-A11

D0-D7

2716

CS

A13 A12 M/IO A0

A0-A10 D0-D7

OE

RD A19 A18 A17 A16 A15 A14 A13 A12 M/IO BHE

A1-A11

A0-A10 D0-D7

2716

CS

OE

RD

D8-D15

79/Chapter4

© DHBK 2005

Ghép nối 8086 với bộ nhớ BHE

HRD A1-A11

RD LRD

A0

A0-A10 D0-D7

D0-D7

2716

CS

OE

LRD A19 A18 A17 A16 A15 A14 A13 A12 M/IO

A1-A11

A0-A10 D0-D7

2716

CS

OE

HRD

D8-D15

80/Chapter4

© DHBK 2005

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 BHE

HWR

WR A0

LWR

81/Chapter4

© DHBK 2005

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)

© DHBK 2005

82/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 giao tiếp giữa vi xử lý và 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

© DHBK 2005

83/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 giao tiếp giữa vi xử lý và 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

© DHBK 2005

84/Chapter4

Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi Memory bus CPU

Memory

Bus Adapter I/O Bus

I/O Controller

I/O Controller

I/O Controller

I/O Device

I/O Device

I/O Device

© DHBK 2005

Các kiểu giao tiếp giữa vi xử lý và thiết bị ngoại vi



Giao tiếp kiểu thăm dò, móc nối (handshaking)



Giao tiếp bằng ngắt (Interrupt)



85/Chapter4

1. CPU kiểm tra trạng thái của thiết bị ngoại vi 2. Nếu thiết bị ngoại vi sẵn sàng trao đối dữ liệu việc trao đối sẽ được thực hiện bởi tín hiệu móc nối 3. Nếu thiết bị ngoại vi chưa sẵn sàng, CPU sẽ thực hiện công việc khác và quay lại bước 1 1. Thiết bị ngoại vi muốn trao đổi dữ liệu với CPU, nó sẽ gửi tín hiệu yêu cầu ngắt tới chân INTR của CPU 2. CPU chấp nhận yêu cầu ngắt bằng cách gửi tín hiệu INTA tới thiết bị ngoại vi 3. CPU thực hiện chương trình con phục vụ ngắt

Giao tiếp bằng truy cập bộ nhớ trực tiếp (DMA)

1. Thiết bị ngoại vi muốn truy cập trực tiếp bộ nhớ không thông qua CPU, nó đưa tín hiệu yêu cầu tới chân HOLD của CPU thông qua khối điều khiển DMA 2. CPU chấp nhận và gửi tín hiệu HLDA tới khối điều khiển DMA và treo các bus 3. Khối điều khiển DMA sẽ điều khiển việc trao đổi dữ liệu giữa thiết bị ngoại vi và bộ nhớ

© DHBK 2005

86/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

87/Chapter4

© DHBK 2005

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: FFFF Vùng mở rộng 03FF 03F8 03F0 03D0 0378 0320 02F8 0060 0040 0020 0000

COM1 Điều khiển đĩa mềm CGA adapter LPT1 Điều khiển ổ cứng COM2 8255 Định thời (8253) Điều khiển ngắt Điều khiển DMA

Đị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

88/Chapter4

© DHBK 2005

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:

89/Chapter4

© DHBK 2005

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ộ FFFFF nhớ M/IO=1

I/O

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ụ:

00000

Memory + I/O

MOV AX, [0FF3H]

90/Chapter4

© DHBK 2005

Các kiểu ghép nối vào ra • Ví dụ cổng vào đơn giản:

8 7 6 5 4 3 2 1

VCC

9 10 11 12 13 14 15 16

10K

U1

11 13 15 17 19

SEL

2 4 6 8

1

A1 A2 A3 A4 A5 A6 A7 A8

Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8

1OE 2OE 74ALS244

Từ giải mã địa chỉ cổng

18 16 14 12 9 7 5 3

Tới bus dữ liệu của CPU

91/Chapter4

© DHBK 2005

Các kiểu ghép nối vào ra • Ví dụ cổng ra đơn giản: VCC

330

U2 3 4 7 8

Từ bus dữ liệu của CPU

13 14 17 18 11

Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7

CLK 1

SEL

D0 D1 D2 D3 D4 D5 D6 D7

OE 74ALS374

Từ giải mã địa chỉ cổng

2 5 6 9 12 15 16 19

© DHBK 2005

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  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

© DHBK 2005

93/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 FFFF FFFD FFFB

A0 FFFE FFFC FFFA

D8-D15 0005 0003 0001

Bank cao (bank lẻ)

D0-D7 0004 0002 0000

Bank thấp (Bank chẵn)

© DHBK 2005

94/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

A0 A1 A2 A3 A4

D0-D7 D0-D7 CS

A5 A6 A7

WE

WR

IO/M

8088

A0 A1 A2 A3 A4

D8-D15 D0-D7 CS

A5 A6 A7

WE

WR

M/IO BHE 8086

© DHBK 2005

95/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

D8-D15 CS

A1 A2 A3 A4 A5 A6 A7 M/IO

WE

WR

D7-D0

D0-D7 CS

WE

96/Chapter4

Giải mã địa chỉ cho các thiết bị vào/ra

© DHBK 2005

• 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

U1

A1 A2 A3 A0 A4 A5 A6 A7

M/IO

1 2 3 6 4 5

A B C G1 G2A G2B

74LS138

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

15 14 13 12 11 10 9 7

10H 12H 14H 16H 18H 1AH 1CH 1EH

97/Chapter4

© DHBK 2005

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

98/Chapter4

© DHBK 2005

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à 60H63H

99/Chapter4

© DHBK 2005

Cấu trúc của 8255A

100/Chapter4

© DHBK 2005

Cấu trúc của 8255A

101/Chapter4

© DHBK 2005

Cấu trúc của 8255A

RD WR

© DHBK 2005

102/Chapter4

Các chế độ làm việc của 8255A

© DHBK 2005

103/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

104/Chapter4

© DHBK 2005

Chế độ 0

RD WR

© DHBK 2005

; Lập trình cho 8255 MOV AL, 10000000B 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

105/Chapter4

; Port A, Port B mode 0, output

Chế độ 0

; cất các ngăn xếp • Giả thiết địaPUSHF chỉ của các cổng cthanh ủaghi vào 8255 là 0700HPUSH AX PUSH BX 0703H PUSH DX PUSH

SI

; Thiết lập các thanh ghi để hiển thị MOV BX, 8 MOV AH, 7FH MOV SI, OFFSET MEM-1 MOV DX,701H ;Hiển thị 8 số DISP1: MOV AL, AH OUT DX, AL DEC DX MOV AL, [BX+SI] OUT DX, AL CALL Delay ROR AH, 1 INC DX DEC BX JNZ DISP1 ;khôi phục lại các thanh ghi POP POP POP POP POPF RET

DISP

ENDP

SI DX BX AX

;số LED ;chọn LED đầu tiên 0111 1111 ; địa chỉ chứa dữ liệu ; địa chỉ cổng B ;chọn 1 số ; địa chỉ cổng A ; dữ liệu của 7 đoạn led ; trễ 1 ms ;số tiếp theo ; địa chỉ cổng B ;giảm chỉ số ; lặp lại 8 lần

106/Chapter4

© DHBK 2005

Chế độ 0

107/Chapter4

© DHBK 2005

Chế độ 0

© DHBK 2005ROWS

KEY

4 ; 4 hàng 4 ; 4 cột 50H 51H USES CX ;test all keys ; if key closed ; đợi 10 ms

108/Chapter4

COLS PORTA PORTB PROC CALL JNZ CALL CALL JNZ

EQU EQU EQU EQU NEAR SCAN KEY DELAY SCAN KEY

CALL JZ CALL CALL JZ PUSH MOV SUB MOV MUL MOV DEC POP

SCAN KEY1 ; if no key closed DELAY SCAN KEY1 AX ;cất mã hàng AL, COLS ;cal starting row key AL, CL CH, ROWS CH CL, AL CL AX

SCAN1:

ROR INC JC MOV RET ENDP

AL,1 CL KEY2 AL,CL

DELAY

Chế độ 0

KEY1:

KEY2:

KEY

;find row position

SCAN

PROC MOV MOV SHL MOV MOV

NEAR USES BX CL, ROWS ;form row mask BH, OFFH BH, CL CX, COLS ;load column count BL, OFEH ;get selection mode

MOV OUT ROL IN OR CMP JNZ LOOP

AL, BL ;select column PORTB, AL BL, 1 AL, PORTA; read rows AL,BH AL, 0FFH ;test for a key SCAN2 SCAN1

SCAN2: SCAN

RET ENDP PROC MOV

NEAR CX, 5000

LOOP RET ENDP

DELAY1

DELAY1: ;move code to AL DELAY

USES CX ;10ms (8MHZ)

109/Chapter4

© DHBK 2005

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

110/Chapter4

© DHBK 2005

Chế độ 1

111/Chapter4

© DHBK 2005

Chế độ 1 PA0-PA7

PC4

ASCII STB

D0-D7

DAV Keyboard

82C55 Bit5 PortC PortA

EQU EQU EQU

20H 22H 20H

Read

PROC

NEAR

IN AL, PortC Test AL, Bit5 JZ READ IN AL, PortA RET Read Endp

; ; ; ;

read PortC test IBF if IBF=0 read data

112/Chapter4

© DHBK 2005

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

113/Chapter4

© DHBK 2005

Chế độ 1

114/Chapter4

© DHBK 2005

Chế độ 1

PB0-PB7

PC2

ASCII ACK

PC4 82C55

D0-D7

ACK DS Printer

DS: data strobe

115/Chapter4

© DHBK 2005

Chế độ 1 BIT1 PORTC PORTB CMD

EQU EQU EQU EQU

2 62H 61H 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 OUT PORTB, AL ;send data strobe to printer MOV OUT MOV OUT RET PRINT ENDP

AL, 8 CMD,AL AL, 9 CMD, AL

;get data ;print data ;clear DS ;set DS

116/Chapter4

© DHBK 2005

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...

117/Chapter4

© DHBK 2005

Chế độ 2

© DHBK 2005

118/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

119/Chapter4

© DHBK 2005

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

120/Chapter4

© DHBK 2005

Ghép nối 8279 với 8088

121/Chapter4

© DHBK 2005

Ghép nối 8279 với bàn phím

© DHBK 2005

122/Chapter4

Ghép nối 8279 với màn hiển thị

123/Chapter4

© DHBK 2005

Lập trình cho 8279 • Từ điều khiển: D7D6D5D4D3D2D1D0

124/Chapter4

© DHBK 2005

Lập trình cho 8279

© DHBK 2005

125/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

© DHBK 2005

126/Chapter4

Bộ định thời lập trình được 8254

© DHBK 2005

127/Chapter4

Bộ định thời lập trình được 8254

© DHBK 2005

128/Chapter4

Bộ định thời lập trình được 8254

© DHBK 2005

129/Chapter4

Bộ định thời lập trình được 8254

© DHBK 2005

130/Chapter4

Bộ định thời lập trình được 8254

© DHBK 2005

131/Chapter4

Bộ định thời lập trình được 8254

© DHBK 2005

132/Chapter4

Bộ định thời lập trình được 8254

© DHBK 2005

133/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

© DHBK 2005

134/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

135/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

136/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

137/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

138/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

139/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

140/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

141/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

142/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

143/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

144/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

145/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

146/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

147/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

148/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

149/Chapter4

Giao tiếp truyền thông lập trình được 16550

© DHBK 2005

150/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

151/Chapter4

© DHBK 2005

Bộ biến đổi số tương tự DAC

152/Chapter4

© DHBK 2005

Bộ biến đổi số tương tự DAC

153/Chapter4

© DHBK 2005

Bộ biến đổi tương tự số ADC

154/Chapter4

© DHBK 2005

Bộ biến đổi tương tự số ADC

155/Chapter4

© DHBK 2005

Bộ biến đổi tương tự số ADC

Related Documents