第 8 章 8255 并行传输接口
2. 可编程并行接口 8255
2.1. 问题提出
并行接口的定义
- 并行接口是指数据的各位同时进行传送的数据通信接口。
并行接口的特点
- 传输速度快;
- 适应传输距离短;
- 抗干扰性差
- 电路复杂、成本高,不适用于长距离传输
2.2. 8255 内部结构
端口 | PA | PB | PC |
---|---|---|---|
输入 | 锁存 | 缓冲 | 缓冲 |
输出 | 缓冲/锁存 | 缓冲/锁存 | 缓冲/锁存 |
- 数据端口 A B C
- 3 个 8 位(共 24 条)输入输出通道口,每个通道是独立的,具有输入缓冲/输入锁存,输出锁存
- 具有三种工作方式
- 简单输入输出
- 单向可选择的输入输出
- 双向输入输出
- 8255A 单电源 +5V
- 端口 A==(面向外设连接)==
- 引脚:PA0~PA7
- 8 位数据输出锁存和缓冲器
- 8 位数据输入锁存器
- 端口 B==(面向外设连接)==
- 引脚:PB0~PB7
- 8 位数据输出锁存/缓冲器
- 8 位数据输入缓冲器
- 端口C==(面向外设连接)==
- 引脚:PC0~PC7
- 8 位数据输出锁存/缓冲器
- 8 位数据输入缓冲器
- 既可以作为端口使用也可以分为两个四位的端口使用
- PA、PB和PC都可由程序设定为各种不同的工作方式
- PA 口与 PB 口用作输入/输出的数据端口
- PC 口用作控制或状态信息的端口
- A组控制
- 控制端口A和端口C的上半部 PC7~PC4
- 接收CPU输出的命令字,决定A组的工作方式
- 根据CPU的命令字对端口C的每一位实现按位“复位”或置位操作
- B组控制:
- 控制端口B和端口C的下半部 PC3~PC0
- 接收CPU输出的命令字,决定B组的工作方式
- 根据CPU的命令字对端口C的每一位实现按位“复位”或置位操作
- 数据总线缓冲器
- 双向、三态、8位
- 输入输出数据
- CPU发出的控制字和外设送来的状态信息
- 读/写控制逻辑==(面向系统总线连接)==
- 、 读写逻辑控制;
- 和 内部端口选择
- 片选控制
- RESET 复位信号
A1 | A0 | 端口 |
---|---|---|
0 | 0 | 端口 A |
0 | 1 | 端口 B |
1 | 0 | 端口 C |
1 | 1 | 控制字寄存器 |
2.3. 8255 的工作方式
控制字
8255A 的工作方式,可由 CPU 用 I/O 指令输出一个控制字到 8255A 的控制字寄存器来选择
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
置位方式 1 | A 组 | 方式 | 端口 A | 端口 C 上 | B 方式 | 端口 B | 端口 C 下 |
0 | 0 A 组方式 0 | 1=输入 | 1=输入 | 0=方式 0 | 1=输入 | 1=输入 | |
0 | 1 A 组方式 1 | 0=输出 | 0=输出 | 1=方式 1 | 0=输出 | 0=输出 | |
1 | X A 组方式 2 |
C 端口按位置位/复位命令:指定 C 端口 8 个引脚中的任意一个引脚,1 次只能指定 1 个引脚输出高电平或者低电平
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
置位方式 0 | X | X | X | 引脚 | 3-8 | 译码 | 电平 |
方式 0:基本输入输出
- 两个 8 位端口 (A, B) 和两个 4 位端口 (C),任一个端口可以作为输入或输出。
- 输出是锁存的:锁存输出数据,最大并行输出数据 24 位。
- 输入是不锁存的:缓冲外设输入数据,最大并行输入数据 24 位。
- 初始化时
- 定义PA,PB和PC并行口的输入输出方向;
- PC 口上半部分与下半部分可以定义不同方向。
- CPU 可采用无条件读写方式与 8255A 交换数据。
- 可通过对 PC 口的读写实现 PA 口与 PB 口的查询方式工作:把 PC 口的两个部分的某些位作为 PA 口和 PB 口的控制和状态信息,与外设的控制和状态端相连
Example
A组、B组方式0,设置PA口和PC口输入,PB口输出;设8255接口的地址50H-53H
Example
PA为开关输入口,PB为LED显示输出口,端口 0E0H~0E3H
方式 1:选通输入输出
端口A或端口B仍作为数据的输入/输出,但同时规定端口C的某些位作为控制或状态信息(挂钩信息)。
工作特点
- 需要设置专用的联络信号线或应答信号线,以便对外设和CPU进行联络。此时CPU与外设之间的数据传送可以为查询传送或中断传送。
- 数据的输入输出都有锁存功能。
- 任一个端口都可作为输入或输出。若端口A和端口B都工作于方式1,端口C的大部分引脚分配用来作专用(固定)的联络信号。
- 每个端口包括:8位数据口,3条挂钩线,提供查询和中断逻辑。
- PC端口还留下两位,这两位可以由程序指定作为输入或输出,也具有置位/复位功能。
- 若只有一个端口工作于方式1,余下的 13 位 (),可以工作在方式0(由控制字决定)。
方式 2:双向选通输入输出
- 通过8位数据线与外设进行双向通信的方式,既能发送数据,也能接收数据。工作时可以用程序查询方式,也可以用中断方式与CPU联系。方式2只限于A组使用。
- 一个8位的双向总线端口(端口A)和一个5位控制端口(端口C)。
- 输入和输出是锁存的。
- 5位控制端口用作端口A的控制和状态信息。