Khi vi xử lý giao tiếp với 8255A theo kiểu I/O nó chỉ dùng được 8 đường địa chỉ từ A0 – A7 mà thôi còn khi giao tiếp kiểu bộ nhớ, nó dùng được cả 16 đường địa chỉ, vì vậy dung lượng giao
Trang 1Chương 16 : GIAO TIẾP GIỮA VI XỬ LÝ
VỚI 8255A
Vi mạch 8255A có thể giao tiếp với vi xử lý theo 2 kiểu: kiểu nhập/xuất (kiểu I/O) và kiểu bộ nhớ
Khi vi xử lý giao tiếp với 8255A theo kiểu I/O nó chỉ dùng được 8 đường địa chỉ từ A0 – A7 mà thôi còn khi giao tiếp kiểu bộ nhớ, nó dùng được cả 16 đường địa chỉ, vì vậy dung lượng giao tiếp kiểu I/O thấp hơn dung lượng giao tiếp kiểu bộ nhớ
1 Giao tiếp kiểu I/O.
Khi thiết kế vi xử lý giao tiếp với 8255A theo kiểu I/O thì
dữ liệu sẽ được truy xuất bằng 2 lệnh : IN addr-port và OUT addr-port Dữ liệu giao tiếp luôn chứa trong thanh ghi A Địa
chỉ cổng (addr-port) có độ dài là 8 bit
Cũng giống như bộ nhớ, vi xử lý có thể giao tiếp với nhiều
vi mạch 8255, với 8 đường địa chỉ thì có tất cả 256 địa chỉ, mà mỗi vi mạch chiếm 4 địa chỉ (3 cổng và thanh ghi điều khiển) nên số vi mạch 8255 tối đa có thể giao tiếp của vi xử lý là 256/4
= 64 vi mạch
Khi kết nối giữa vi xử lý với vi mạch 8255A thì đường địa chỉ A0 và A1 dùng để lựa chọn các cổng và thanh ghi điều khiển, còn các đường địa chỉ còn lại từ A2 – A7 dùng để lựa chọn vi mạch hoạt động, thông thường các đường địa chỉ này được đưa vào vi mạch giải mã rồi các ngõ ra của vi mạch giải mã sẽ đưa đến CS\ của các vi mạch 8255A
Một ví dụ khi thiết kế vi xử lý giao tiếp với 4 vi mạch 8255A:
Sơ đồ kết nối như hình vẽ : (vi mạch 74139)
DECODER
2 TO 4 LINE
đến CS\ của 8255A -1 đến CS\ của 8255A -2 đến CS\ của 8255A -3 đến CS\ của 8255A -4
A 2
A 3
Trang 2Hình 6.9: Sơ đồ kết nối vi xử lý với vi mạch 8255A
Trong đó, đường A0 và A1 được nối với 8255A như đã trình bày ở trên, đường A2, A3 được đưa vào vi mạch giải mã 2 đường thành 4 đường để lựa chọn vi mạch 8255A
Từ đó, ta có bảng địa chỉ của các vi mạch 8255A như sau :
IC A7 A6 A5 A4 A3 A2 A1 A0 Hex
8255A
-1
0 0
0 0
0 0
0 0
0 0
0 0
0 1
0 1
00 03 8255A
-2
0 0
0 0
0 0
0 0
0 0
1 1
0 1
0 1
04 07 8255A
-3
0 0
0 0
0 0
0 0
1 1
0 0
0 1
0 1
08 0B 8255A
-4
0 0
0 0
0 0
0 0
1 1
1 1
0 1
0 1
0C 0F
2 Giao tiếp kiểu bộ nhớ.
Khi thiết kế 8255A giao tiếp với vi xử lý theo kiểu bộ nhớ thì chức năng của 8255A không thay đổi, chỉ thay đổi kiểu truy xuất Với kiểu I/O thì địa chỉ của các cổng và thanh ghi điều khiển là 8 bit thì ở kiểu bộ nhớ, địa chỉ của các cổng và thanh
DECODER
2 TO 4 LINE
đến CS\ của 8255A -1 đến CS\ của 8255A -2 đến CS\ của 8255A -3 đến CS\ của 8255A -4
A 2
A 3
Trang 3ghi điều khiển là 16 bit, khi đó cách kết nối cũng tương tự như kết nối vi xử lý với bộ nhớ thông thường, và mỗi vi mạch 8255A cũng được coi như là bộ nhớ với 4 ô nhớ: 3 cổng và thanh ghi điều khiển, truy xuất dữ liệu bằng cách dùng các lệnh truy xuất dữ liệu của bộ nhớ
Cách kết nối tương tự như khi vi xử lý kết nối với bộ nhớ nên ở đây không cần trình bày lại
Trang 4KHỞI PHÁT: GHI TỪ CHẾ ĐỘ
GHI LỆNH : DTR, TxEN
ĐỌC TRẠNG THÁI:
DSR, TxRDy
GHI SỐ LIỆU RA THANH GHI ĐỆM SỐ LIỆU
GHI LỆNH PHÁT: RTS
END HÌNH 7.1
Kiểm tra sẵn sàng:
DSR = TxRDY =1
PHẦN CỨNG VÀ PHẦN MỀM GIAO TIẾP
I LƯU ĐỒ VÀ CHƯƠNG TRÌNH TRUYỀN DỮ LIỆU
1 LƯU ĐỒ TRUYỀN DỮ LIỆU:
Trang 5KHỞI PHÁT: GHI TỪ CHẾ ĐỘ
GHI LỆNH : DTR, A{RxEN,RTS
ĐỌC TRẠNG THÁI:
DSR, RxRDy
Kiểm tra sẵn sàng :DSR=
RxRDY=1
ĐỌC SỐ LIỆU TỪ THANH GHI ĐỆM SỐ LIỆU
END HÌNH 7.2
LIỆU: