A0 A1 Chọn cửa
0 0 Cửa A
0 1 Cửa B
1 0 Cửa C
1 1 Cửa điều khiển
RESET: =1 xóa các thanh ghi bên trong gồm thanh ghi điều khiển và các
cửa A, B, C ở mode nhận.
3 – Điều khiển nhóm A và B:
Cấu hình hoạt động của mỗi nhóm được lập trình bởi phần mềm, chủ yếu là
CPU xuất phát từ điều khiển đến 8255. Từ điều khiển gồm các thông tin như chế
độ (mode), bit set, bit reset, v.v … sẽ khởi động cấu hình hoạt động của 8255. Thanh
ghi từ điều khiển chỉ có thể viết vào mà không đọc ra.
4 – Các cửa A, B, C:
8255 gồm 3 cửa A, B và C. Mỗi cửa gồm 8 bits. Các cửa này có thể được lập
trình bởi phần mềm để có thể hoạt động ở chế độ thích hợp.
Cửa A: gồm bộ đệm, cài ngõ ra 8 bits và cài ngõ vào 8 bits.
Cửa B: gồm bộ đệm, cài ngõ ra 8 bits và cài ngõ vào 8 bits.
Cửa C: đệm và cài ngõ ra 8 bits và đệm 8 bits ngõ vào (không cài).
Cửa C có thể chia làm 2 phần, mỗi phần 4 bits cho điều khiển mode.
Mỗi phần được dùng kết hợp với cửa A hay B tạo nên các tín hiệu điều
khiển.
II – MÔ TẢ CHI TIẾT:
1 – Chọn chế độ (Mode):
Có 3 chế độ hoạt động cơ bản thích hợp cho phần mềm:
Mode 0 : Vào/ra cơ bản
Mode 1 : Vào/ra “bắt tay” (chỉ cho phép 1 trong chiều)
Mode 2 : Truyền dữ kiện hai chiều
Khi RESET, tất cả các cửa được thiết lập ở chế độ nhập (input), tức là cả 24
đường đều ở 3 trạng thái. Sau khi RESET 8255 có thể duy trì ở chế độ nhập mà
Chọn chế độ 0:mode 0
1: mode 1
NhómA
Cửa C 1:in
(phần cao) 0:out
Cửa A 1: in
0: out
00: mode 0
Chọn mode 01: mode 1
1X: mode 2
Hình 3.2
Khi chọn mode cho port A, các bit D3, D4, D5 không còn ý nghóa nữa. Lúc
đó cửa A là hai chiều, còn phần cao cửa C sẽ làm tín hiệu điều khiển và trạng thái
cho cửa A. (Bitset và reset flag), phần còn lại của điều khiển có ý nghóa như sau:
D7
D6
D5
D4
D3
D2
D1
Bất kỳ cửa nào cũng có thể là ra hay vào
Ngõ ra được cài
Ngõ vào không cài
Cho phép 16 dạng vào / ra ở mode
Ví dụ : Từ điều khiển 83h xáx đònh cửa A ra, B vào.
Phần cao của C : ra, phần thấp của C : vào.
2 – Mode 1 (Vào/ra có bắt tay):
Ở mode 1, cửa A và B dùng những đường ở cửa C để phát hay nhận các tín
hiệu bắt tay.
Đònh nghóa các tín hiệu bắt tay cho phần nhập:
STB (Strobe Input): mức thấp ở ngõ vào này nạp dữ liệu vào 8255.
IBF (Input Buffer Full): ngõ ra =1 để thông báo dữ kiện đã được nạp vào mạch
cài nhập
Nói cách khác, mức thấp của STB sẽ thiết lập IBF = 1, và IBF bò xóa bởi
cạnh lên RD.
* INTR (Interput Request): ngõ ra = 1 để yêu cầu ngắt khoảng CPU, INTR
được set bởi STB = 1 và IBF = 1, INTR = 1.
INTR bò reset bởi cạnh xuống RD
INTR A kiểm soát bởi bit set / reset PC 4
INTR B kiểm soát bởi bit set / reset PC 2 Hình 3.4
Đònh nghóa tín hiệu điều khiển phần xuất:
OBF (Output Buffer Full FF)
Ngã ra xuống 0 để báo là CPU đã ghi thông tin ra cửa xác đònh. OBF FF được
set bởi cạnh lên của xung WR từ CPU và bò reset bởi ACK = 0 do ngoại vi (tức
là ở mức không tích cực).
*ACK (Acknowledge Input)
* Chỉ dùng cho nhóm A
* 1 cửa 2 chiều 8 bits (A) và một cửa điều khiển 5 bits (C) cho cửa A
* Cả ra / vào đều có cài
Đònh nghóa các tín hiệu điều khiển xuất nhập 2 chiều:
* INTR (Interput Request):
Mức 1 ở ngõ ra này báo cho CPU biết yêu cầu ngắt khoảng cho phép nhập hay
xuất (chung).
* Phép xuất :
OBF (Output Buffer Full FF) output
OBF xuống 0 để báo cho ngoại vi biết CPU đã ghi dữ kiện ra cửa ACK
(Acknowledge) Input
Mức 0 từ ngoại vi cho phép bộ đệm ra 3 trạng thái của cửa A mở để phát ra dữ
kiện, bộ đệm ra ở 3 trạng thái.
INTE 1 (INTE FF liên quan với OBF)
Kiểm soát bởi bit set / reset PC 6
* Phép nhập:
STB: Mức thấp ở ngõ vào này cài data vào mạch cài ngõ nhập.
IBF: (Input Buffer Full FF) output
Mức 1 thông báo cho CPU biết dữ kiện đã nhập vào mạch cài nhập
INTE 2 (liên quan với IBF)
Kiểm soát bởi bit set/reset PC 4
Hình 3.7
Kết hợp mode 2 và các mode khác:
Mode 2 và mode 0 (in) : từ điều khiển : 11 XXX 01 1/0
Mode 2 và mode 1 (out) : từ điều khiển : 11 XXX 01 1/0
Mode 2 và mode 1 (in) : từ điều khiển : 11 XXX 00 X
Mode 2 và mode 0 (in) : từ điều khiển : 11 XXX 10 X
Sự kết hợp các mode đặc biệt:
INTE
B
IBF
B
INTR
B NHÓM A NHÓM B
MODE 1 (Input) OBF
A
INTE
A
I/O
I/O
INTR
A
IOB1
B
OBI
B