Bài giảng Kỹ thuật Vi xử lý - Chương 6: Các kiểu I/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

 Chương trình tạo ra hiệu ứng “LED chạy”:

- Ban đầu LED chạy từ trên xuống

- Khi nhấn phím thấp nhất thì LED thay đổi

hướng chạy

- Khi nhấn phím cao nhất thì chương trình

kết thúc

 

pdf11 trang | Chuyên mục: Vi Xử Lý – Vi Điều Khiển | Chia sẻ: tuando | Lượt xem: 291 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng Kỹ thuật Vi xử lý - Chương 6: Các kiểu I/O, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Bài giảng Kỹ thuật Vi 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ểu I/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
D6
IOR
IOW
A19
D5
D4
D3
D2
D1
D0
74LS245
B0
B1
B2
B3
B4
B5
B6
B7
A0
A1
A2
A3
A4
A5
A6
A7
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
A
4
A
3
A
2
A
1
A
0
IOR
5V
The Circuit
A
1
5
8088
Minimum
Mode
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
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
IOR
5V
74LS245
B0
B1
B2
B3
B4
B5
B6
B7
A0
A1
A2
A3
A4
A5
A6
A7
E DIR
A
1
5
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
A
4
A
3
A
2
A
1
A
0
IOW
74LS373
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
D0
D1
D2
D3
D4
D5
D6
D7
OELE
Bài toán
• Chương trình tạo ra hiệu ứng “LED chạy”:
- Ban đầu LED chạy từ trên xuống
- Khi nhấn phím thấp nhất thì LED thay đổi 
hướng chạy
- Khi nhấn phím cao nhất thì chương trình 
kết thúc
Chương trình
mov dx, F000
mov ah, 00
mov al, 01
L1: out dx, al
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:
What’s the problem with polling 
in the sample program?
• Running LED takes time
• User might remove his/her finger from the 
switch 
• before the in al, dx instruction is 
executed
• the microprocessor will not know that the 
user has pressed the button
Problem with Polling
mov dx, F000
mov ah, 00
mov al, 01
L1: out dx, al
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:
Interrupt
• The microprocessor does not check if data 
is available.
• The peripheral will interrupt the processor 
when data is available
Polling vs. Interrupt
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
POLLING
Polling vs. Interrupt
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
Interrupt
request

File đính kèm:

  • pdfbai_giang_ky_thuat_vi_xu_ly_chuong_6_cac_kieu_io.pdf