1. 并行接口8255的特点

2. 结构 (A组:A端口,C口高4位 + B组:B端口,C口低4位 + …)

3.引脚
 
4. 工作方式(方式0、方式1、方式2)
- 基本输入/输出方式(方式0)
- 选通工作方式(方式1)
- 双向传送方式(方式2)
4.1 基本输入/输出方式(方式0)
- 相当于三个独立的8位简单接口,可输入或输出
- 各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出
- C端口可以是一个8位的简单接口,也可以分为两个独立的4位端口
- 常用于连接简单外设,适于
无条件或查询方式
方式0的应用: 
4.2 选通工作方式(方式1)
- 选通工作方式,适用于
中断控制方式 - A端口和B端口可以工作在方式1,此时C口多数用于选通控制信号传输
4.3 双向传送方式(方式2)
- 选通工作方式,适用于
中断控制方式 - 仅A端口可以工作在方式2。此时C口多数用于选通控制信号传输。
4.4 三种工作方式小结
- A、B、C三个端口都可以工作于
方式0 ,以查询 或 无条件传送方式 实现数据的输入/输出; - A、B端口可以工作于
方式1 ,以中断控制方式 实现数据的输入/输出; - A端口可以工作于
方式2 ,以中断控制方式 ,并通过时序 控制数据的输入/输出。
5. 方式控制字 及 位控制字
5.1 方式控制字
用于确定 3个端口 的 工作方式 及 数据传送方向 。 
5.2 位控制字
用于设置 C口 某位的初始状态(为高电平或低电平)。 
6. 应用
6.1 8255接口工作于 方式0 时的应用
利用8255作为打印机的连接接口(地址范围为FBC0H~FBC3H) 。 现通过该打印机接口打印字符串,字符串长度放在数据段的COUNT单元 中,要打印的字符存放在从DATA开始的数据区 中。 该打印机工作时序如下图所示:  strobe——>翻译为:选通
#STROBE :是输出信号 BUSY :BUSY=1代表打印机忙,BUSY=0代表打印机空闲 即当读入BUSY=0,才能输出 #STROBE=0
- 由时序图知:仅当BUST=0时可以发送数据,并在发送数据时要同时向打印机发送低电平有效的数据锁存信号#STROBE。
- 由于8255数据线宽度是8位,若通过查询方式输出字符串,每次BUSY=0时只能输出1字节数据。
地址范围:FBC0H~FBC3H 1111 1011 1100 0000 ~1111 1011 1100 0011
① 硬件线路设计
由时序图分析可以设计:
- 选择
A端口 为字符输出口; - 分别在
C口高位中 选择1位用于 输出#STROBE 信号; - 在
C口低位中 选择 1位读入BUSY信号。

方式控制字 :1 000 0 0X 1 1:功能控制(方式选择) 000:A组方式选择(方式0) + 控制A口8位(输出) 0:控制C口高4位(输出) 0X:B组方式选择(方式0) + 控制B口8位(输入/输出) 1:控制C口低4位(输入)
C口位控制字 :0000 110 1 0000:默认(因为无关) 110:选择PC6 1:将PC6置为1 (即一开始输出1)
② 软件设计

③ 控制程序

6.2 利用8255和8253可编程接口,设计一个简易的安全报警系统

① 硬件设计

② 8255初始化程序

③ 8253初始化程序

2000的由来 通道0的报警频率为500Hz方波信号,CLK0 =1 MHz 1 MHz / 500Hz =2000次 即2000次 * (1/1MHz) =1/500Hz
500的由来 
④ 控制程序
 
|