8255并行通信和并行接口芯片
并行通信
1.并行通信——就是把一个字符的全部n个数据位用
n条线同时进行传输。
特点:
传输速度快
效率高
用电缆多
适用场合:数据传输率要求较高,而传输距离较短的场合。
2.并行接口: 实现并行通信的接口
分为:
- 输入接口:负责输入信息
- 输出接口:负责输出信息
- 双向通信接口:既负责输入信息,又负责输出信息
典型的并行接口和外设连接的示意图 :

可编程并行通信接口芯片8255A的应用
8255A的内部结构
8255的内部结构分成两组控制:A组控制和B组控制
- A组控制:由端口A以及,端口C的上半部分组成
- B组控制:由端口B以及,端口C的下半部分组成

外设接口部分:
① 3个8 位数据端口A、B、C
端口A:输入输出均锁存,数据不易丢失
端口B:输入不锁存,输出锁存
端口C:输入不锁存,输出锁存
② 两组控制
A组控制电路
- 端口A PA7-PA0
- 端口C的高4位 PC7~PC4
B组控制电路
- 端口B PB7-PB0
- 端口C的低4位 PC3~PC0
CPU接口部分
① 读/写控制逻辑电路
功能:管理数据传输过程。
② 数据总线缓冲器(双向三态的8位数据缓冲器 )
功能:通过它与系统数据总线相连。
8255A的引脚及功能

1、与外设相连的引脚 24个
PA7~PA0——端口A数据线
PB7~PB0——端口B数据线
PC7~PC0——端口C数据线
2、与CPU相连的引脚 14个
1)RESET——复位信号
2)D7~D0——8255A的数据线
3)CS——片选信号
4)RD——读信号
5)WR——写信号
6)A1、A0——端口选择信号
A1 A0
0 0 端口A
0 1 端口B
1 0 端口C
1 1 控制端口
注意:
因为低8位和偶地址端口相连,所以在8086系统中,将8255A的A1、A0引脚分别接向系统总线A2、A1,并且CPU对8255A的端口进行访问时,应将其地址最低位A0设置为0。
8255A的控制字
根据D7位的状态来决定控制字分两类。
- 各端口的方式选择控制字
- C端口按位置1/置0控制字
1、方式选择控制字(记住)

方式选择控制字标志:为 1 表示工作方式、为 0 表示 C口 按位
8255A方式选择注意:
- 三种基本工作方式:
- 方式0:基本输入/输出方式
- 方式1:选通工作方式
- 方式2:双向传送方式
- 只有端口A能工作在方式2
- 端口A
- 方式0
- 方式1
- 方式2
- 端口B
- 方式0
- 方式1
- 端口C
- 方式0
- 端口A
- 同一组的两端口可分别工作在输入和输出方式
端口C置位/复位控制字(D7=0)

此控制字必须写入8255A的控制口
8255A的工作方式
1、方式0——基本输入/输出方式
特点 :
1)端口A、端口B、端口C上、下均可作为输入或输出口,且各端口均是独立的。
2)四个端口的输入或输出,可以有16种不同的组合。
3)各端口输入时无锁存,输出时锁存。
使用场合:
1)同步传送 (无条件传送方式)
2)查询式传送
2、方式1——选通的输入/输出方式
必须利用端口C提供的选通信号和应答信号等
特点:
1)端口A和B要在端口C 的配合下工作。
2)端口C中有三位用于端口A的I/O控制,另有三位用于端口B的I/0控制,并且提供中断逻辑。
3)若只有一个数据端口工作在方式1,则另一个数据端口及端口C余下的五位可工作于方式0;
若两个数据端口都工作于方式1,那么端口C余下的两位可作I/O位,也可进行置位/复位操作。
2、方式1 —— 输入

STB非:输入选通,低电平有效,由外设提供。将外设数据锁存于接口的输入端口中。
IBF(Input Buffer Full):输入缓冲器满,高电平有效。
INTR:中断请求,高电平有效。当外设将数据锁存于接口之中,且又允许中断请求发生时,就会产生中断请求。
INTE:中断允许。A口的INTEA由PC4来控制,B口的INTEB用PC2的按位操作来进行控制。(不影响引脚的电平状态)
方式一A口:
INTE = 0 关闭(开关中断)
INTE = 1 ——》 pc4送1 (指令),按位
mov al,0000 1001 b (打开) 0000 1000 (关闭)
out 控制口 al
方式1—B口:
INTE = 0 关闭(开关中断)
INTE = 1 ——》 pc2送1 (指令),按位
mov al,0000 0101 b (打开) 0000 0100 (关闭)
out 控制口 al
3、方式1 —— 输出

OBF非:(Output Buffer Full):输出缓冲器满,低电平有效。该信号通知外设,
ACK非:外设响应,低电平有效。该信号通知接口,外设已将数据接收并使OBF非=1。
INTR:中断请求,高电平有效。当外设接收到一个数据后,通过该信号告诉CPU,刚才输出的数据已经被接收,可以再输出下一个数据。
INTE:中断允许。A口和B口的INTR均受INTE的控制。A口的INTEA由PC6来控制,可用C口的按位操作对PC6置位或复位,以对中断INTRA进行控制。同理,B口的INTEB用PC2的按位操作来进行控制。(不影响引脚的电平状态)
8255A应用举例
(1)8255A工作方式0
某接口设计采用一片8255A实现。其端口A连接并行打印机, 端口B连接纸带读入机。8255A工作于方式0,以查询方式传送数据。对8255A初始化并编写相关的程序。

各控制信号的意义为:
DATA STROBE ──数据选通信号。打印机要有一个宽度为0.5μs的脉冲,作为数据选通信号。由PC4位输出。
BUSY──当其有效时为高电平,此时表示打印机“忙”,不能接收新的输出数据。这是打印机的状态信号。由PC2位读入。
DRIVE RIGHT──此信号驱动纸带前进一步,并读一个字符。它是8255A给外设的启动信号。由PC5位输出。
DATA READY──纸带读入器的状态信号。其为高电平表示纸带读入器已将数据准备好。由PC3位读入
⑵ 8255A工作于方式1应用举例
8255A工作于方式1,可以支持CPU以中断方式和外设进行通信。下图是一个使用8255A的接口电路,其中字符打印机以中断方式工作。
