不同的方式的区别,主要是C口的控制信号不同
方式 0 - 基本输入输出方式
- 控制字
D 7 D_7 D7 | D 6 D 5 D_6D_5 D6D5 | D 4 D 3 D_4D_3 D4D3 | D 2 D_2 D2 | D 1 D 0 D_1D_0 D1D0 |
---|---|---|---|---|
1 | 0 0 | x x | 0 | x x |
- 特点
CPU可以直接向8255A的端口写入数据再传给外设;
CPU也可以直接接受外设传到端口的数据。
方式 1 - 选通输入/输出方式
(1) 选通输入方式
控制字
D 7 D_7 D7 | D 6 D_6 D6 D 5 D_5 D5 | D 4 D_4 D4 | D 3 D_3 D3 | D 2 D_2 D2 | D 1 D_1 D1 | D 0 D_0 D0 |
---|---|---|---|---|---|---|
1 | 0 1 | 1 | x | 1 | 1 | x |
A口和B口都工作在输入方式
C口状态字
D 7 D_7 D7 | D 6 D_6 D6 | D 5 D_5 D5 | D 4 D_4 D4 | D 3 D_3 D3 | D 2 D_2 D2 | D 1 D_1 D1 | D 0 D_0 D0 |
---|---|---|---|---|---|---|---|
I / O I/O I/O | I / O I/O I/O | K B F A KBF_A KBFA | I N T E A INTE~A INTE A | I N T R A INTR_A INTRA | I N T E B INTE~B INTE B | I B F B IBF_B IBFB | I N T R B INTR_B INTRB |
- D 7 ∼ D 3 D_7 \sim D_3 D7∼D3 A组状态字
- D 2 ∼ D 0 D_2 \sim D_0 D2∼D0 B组状态字
(2) 选通输出方式
控制字
D 7 D_7 D7 | D 6 D_6 D6 D 5 D_5 D5 | D 4 D_4 D4 | D 3 D_3 D3 | D 2 D_2 D2 | D 1 D_1 D1 | D 0 D_0 D0 |
---|---|---|---|---|---|---|
1 | 1 x | 1 | x | 1 | 0 | x |
D 7 D_7 D7 | D 6 D_6 D6 | D 5 D_5 D5 | D 4 D_4 D4 | D 3 D_3 D3 | D 2 D_2 D2 | D 1 D_1 D1 | D 0 D_0 D0 |
---|---|---|---|---|---|---|---|
O B F ‾ A \overline{OBF}_A OBFA | I N T E A INTE~A INTE A | I / O I/O I/O | I / O I/O I/O | I N T R A INTR_A INTRA | I N T E B INTE~B INTE B | O B F B OBF_B OBFB | I N T R B INTR_B INTRB |
- D 7 ∼ D 3 D_7 \sim D_3 D7∼D3 A组状态字
- D 2 ∼ D 0 D_2 \sim D_0 D2∼D0 B组状态字
① 对于端口A
A口工作于输出, P C 3 , P C 6 , P C 7 PC_3,PC_6,PC_7 PC3,PC6,PC7做A口联络控制信号
-
P C 3 PC_3 PC3 - I N T R A INTR_A INTRA,中断请求信号
外设收到数据后,向CPU发出中断请求,要求CPU再输出一个数据给自己。 -
P C 6 PC_6 PC6 - A C K ‾ A \overline{ACK}_A ACKA,外设的回答信号
外设通过 P C 6 PC_6 PC6告诉8255A,自己已接收到A口的数据 -
P C 7 PC_7 PC7 - O B F ‾ A \overline{OBF}_A OBFA,输出缓冲器满信号
8255A通过 P C 7 PC_7 PC7发信号给外设,告诉外设CPU已将数据写到8255A的端口A
② 对于端口B
B口工作与输出, P C 0 , P C 1 , P C 2 PC_0,PC_1,PC_2 PC0,PC1,PC2做B口联络控制信号
P C 4 , P C 5 PC_4,PC_5 PC4,PC5即可输入也可输出
-
P C 1 PC_1 PC1 - O B F ‾ \overline{OBF} OBF,输出缓冲器满信号
8255A发给外设的额信号,表示CPU已将数据写到8255A的端口A,端B -
P C 2 PC_2 PC2 - A C K ‾ \overline{ACK} ACK,外设的回答信号
低电平表示CPU输出到8255A的A口或B口的数据已经被外设接受 -
I N T E INTE INTE,中断允许信号
-
P C 0 PC_0 PC0 - I N T R INTR INTR,中断请求信号
(3) 选通输入/输出方式组合
方式 2 - 双向总线方式
控制字
D 7 D_7 D7 | D 6 D_6 D6 D 5 D_5 D5 | D 4 D_4 D4 | D 3 D_3 D3 | D 2 D_2 D2 | D 1 D_1 D1 | D 0 D_0 D0 |
---|---|---|---|---|---|---|
1 | 1 x | x | x | x | x | x |
A口:与外设双向交换数据,输入输出不能同时进行。
C口: P C 3 , P C 4 , P C 5 , P C 6 , P C 7 PC_3,PC_4,PC_5,PC_6,PC_7 PC3,PC4,PC5,PC6,PC7作为联络控制信号
- P C 3 PC_3 PC3 - I N T R INTR INTR
- P C 4 PC_4 PC4 - S T B ‾ \overline{STB} STB
-
P
C
5
PC_5
PC5 -
I
B
F
IBF
IBF
有效时,8255A接受外设的数据置入输入锁存器 - P C 6 PC_6 PC6 - A C K ACK ACK
- P C 7 PC_7 PC7 - O B F OBF OBF
INTE 1 和 INTE 2
工作过程
C口状态字
D 7 D_7 D7 | D 6 D_6 D6 | D 5 D_5 D5 | D 4 D_4 D4 | D 3 D_3 D3 | D 2 D_2 D2 | D 1 D_1 D1 | D 0 D_0 D0 |
---|---|---|---|---|---|---|---|
O B F ‾ A \overline{OBF}_A OBFA | I N T E 1 INTE~1 INTE 1 | I B F A IBF_A IBFA | I N T E 2 INTE~2 INTE 2 | I N T R A INTR_A INTRA | × \times × | × \times × | × \times × |