Bài giảng Kỹ thuậtVi xử lý
Ngành Điện tử-Viễn thông
Đại học Bách khoa Đà Nẵng
của Hồ Viết Việt, Khoa ĐTVT
Tài liệu tham khảo
[1] Kỹ thuật vi xử lý, Văn Thế Minh, NXB Giáo dục, 1997
[2] Kỹ thuật vi xử lý và Lập trình Assembly cho hệ vi xử
lý, Đỗ Xuân Tiến, NXB Khoa học & kỹ thuật, 2001
Chương 6
Các kiểuI/O
6.1 Thăm dò (Polling)
6.2 I/O điều khiển bằng ngắt (Interrupt)
-
6.3 DMA (Direct Memory Access)
Thăm dò
mov dx, F000
L1: in al, dx
cmp al, FF
je L1
:
:
A
1
5
8088
Minimum
Mode
A18
A0
:
D7
4
A
1
3
A
1
2
A
1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
3
A
1
2
A
1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
A
1
2
A
1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
IOW
mov cx, FFFF
L2: dec cx
jnz L2
cmp ah, 00
jne L3
rol al, 1
cmp al, 01
jne L1
jmp L4
L3: ror al, 1
cmp al, 80
jne L1
L4: mov bl, al
in al, dx
cmp al, FF
je L6
test al, 01
jnz L5
xor ah, FF
jmp L6
L5: test al, 80
jz L7
L6: mov al, bl
jmp L1
L7:
Khuyết điểm của thăm dò
•Tốn nhiều thời gian
•NgườI sử dụng có thể nhả phím trước khi
lệnh in al, dx được thực hiện, do đó
bộ vi xi xử lý sẽ không biết rằng ngườI sử
L6: mov al, bl
jmp L1
L7:
Ngắt là gì?
Thăm dò
While studying, I’ll
check the bucket every 5
minutes to see if it is
already full so that I can
transfer the content of
the bucket to the drum.
Input
Device
Memory
µP
instruction
THĂM DÒ
Ngắt
I’ll just study. When the
speaker starts playing
music it means that the
bucket is full. I can then
transfer the content of
the bucket to the drum.
Input
Device
Memory
µP
instruction
INTERRUPT
•Làmộtsốđượcdùngđể phân biệtcác
yếucầungắt. Bởi vì có thể có nhiềuhơn
mộtthiếtbị phát yêu cầungắt đếnbộ vi xử
lý cho nên để cho bộ vi xử lý có thể nhận
biết được thiết bị thì mỗI thiết bị sẽ được
gán cho một số ngắt
•Tronghệ thống 8088, co thể có đến 256
số ngắt(từ 00h đếnFFh)
Interrupt Vector Table
Bảng các vector ngắt
• Là vùng nhớ được dành riêng để lưu trữ
các vector ngắt
•Có thể xem như là một mảng các vector
ngắt
–Mảng này có 256 phần tử
–Mỗi phần tử gồm 4 byte: 2 byte đầu lưu địa
chỉ offset, 2 byte sau lưu địa chỉ segment
– Các vector ngắt được lưu trữ theo trật tự tăng
dần của số ngắt
Bảng các vector ngắt
Phản ứng củavixử lý khi không có
ngắt
• Khi bật công tấc nguồnhoặcnhấn nút reset.
1. Bộ vi xử lý đượckhởi động:
– (IP) = 0000h
– (CS) = FFFFh
–IF = 0
2. Bộ vi xử lý tìm và lấy 1 byte lệnh.
3. IP tăng lên 1.
4. Bộ vi xử lý giải mã và thựchiệnlệnh nếutấtcả các byte lệnh
A18
A0
:
D7
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
A
1
4
A
1
3
A
1
2
A
1
1
A
1
0
A
D1
D2
D3
D4
D5
D6
D7
OELE
8088 và một thiết bị vào đơn giản
A
1
5
8088
Minimum
Mode
A18
A0
:
D7
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
74LS245
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
IOR
5V
8088 và thiết bị vào hoạt động theo cơ chế ngắt
INTR
A
1
5
8088
A2
A1
A0
E
DIR
A
1
4
A
1
3
A
1
2
A
1
1
A
1
0
A
9
A
8
A
7
A
6
A
5
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
74LS245
B0
B1
B2
B3
B4
B5
B6
B7
A7
A6
A5
A4
A3
A2
A1
A0
E
DIR
A
A
1
A
0
IOR
5V
5V
INTR
INTA
8088 và một thiết bị vào hoạt động theo cơ chế ngắt
A
1
5
8088
Minimum
Mode
A18
A0
:
D7
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
1
A
1
0
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
IOR
5V
INTR
DQset
Qclr
5V