Bài giảng Kỹ thuật Vi xử lý<br />
Ngành Điện tử-Viễn thông<br />
Đại học Bách khoa Đà Nẵng<br />
của Hồ Viết Việt, Khoa ĐTVT<br />
<br />
Tài liệu tham khảo<br />
[1] Kỹ thuật vi xử lý, Văn Thế Minh, NXB Giáo dục, 1997<br />
[2] Kỹ thuật vi xử lý và Lập trình Assembly cho hệ vi xử<br />
lý, Đỗ Xuân Tiến, NXB Khoa học & kỹ thuật, 2001<br />
<br />
Chương 5<br />
Thiết kế các cổng I/O<br />
5.1 I/O được phân vùng nhớ và I/O tách biệt<br />
- I/O được phân vùng nhớ (Memory Mapped I/O)<br />
- I/O tách biệt (Isolated I/O)<br />
<br />
5.2 Các chip MSI dùng làm cổng I/O<br />
- Cổng ra<br />
- Cổng vào<br />
<br />
5.3 Chip 8255<br />
- Sơ đồ chân, Sơ đồ khối chức năng<br />
- Các mode hoạt động<br />
- Giải mã địa chỉ<br />
- Lập trình cho 8255<br />
<br />
5.1 Cần phân biệt 2 kiểu thiết kế<br />
• I/O được phân vùng nhớ (Memory mapped I/O):<br />
- 1 cổng được xem như một ô nhớ<br />
- 1 cổng có địa chỉ 20-bit<br />
- được truy cập khi IO/M = 0<br />
- không cần mạch giải mã địa chỉ riêng<br />
• I/O tách biệt (isolated I/O)<br />
- 1 cổng được xem đúng là 1 cổng<br />
- 1 cổng có địa chỉ 16-bit, 12-bit, 8-bit<br />
- được truy cập khi IO/M = 1<br />
- cần mạch giải mã địa chỉ I/O riêng<br />
<br />
5.2 Các chip MSI thường dùng làm cổng I/O<br />
<br />
•<br />
•<br />
•<br />
•<br />
•<br />
•<br />
<br />
74LS373<br />
74LS374<br />
74LS244<br />
74LS245<br />
Khi số lượng cổng ít và cố định<br />
Cách mắc mạch sẽ quyết định cho chip là<br />
cổng ra hay cổng vào và địa chỉ của nó<br />
<br />
Sử dụng 74LS245 làm cổng ra<br />
A19<br />
A18<br />
:<br />
A0<br />
<br />
8088<br />
Minimum<br />
Mode<br />
<br />
D7<br />
D6<br />
D5<br />
D4<br />
D3<br />
D2<br />
D1<br />
D0<br />
<br />
A0<br />
B0<br />
A1<br />
B1<br />
A2<br />
B2<br />
A3<br />
B3<br />
A4<br />
B4<br />
74LS245 B5<br />
A5<br />
A6<br />
B6<br />
A7<br />
B7<br />
E<br />
<br />
IOR<br />
IOW<br />
<br />
A A A A A A A A A A A A A A A A IOW<br />
1111119876543210<br />
543210<br />
<br />
DIR<br />
<br />
5V<br />
<br />
:<br />
mov al, 55<br />
mov dx, F000<br />
out dx, al<br />
:<br />
<br />