Skip to content
Notes
GitHub

第 8 章 8255 并行传输接口

2. 可编程并行接口 8255

2.1. 问题提出

并行接口的定义

  • 并行接口是指数据的各位同时进行传送的数据通信接口。

并行接口的特点

  • 传输速度快;
  • 适应传输距离短;
  • 抗干扰性差
  • 电路复杂、成本高,不适用于长距离传输

2.2. 8255 内部结构

端口PAPBPC
输入锁存缓冲缓冲
输出缓冲/锁存缓冲/锁存缓冲/锁存
  • 数据端口 A B C
    • 3 个 8 位(共 24 条)输入输出通道口,每个通道是独立的,具有输入缓冲/输入锁存,输出锁存
  • 具有三种工作方式
    • 简单输入输出
    • 单向可选择的输入输出
    • 双向输入输出
  • 8255A 单电源 +5V

public/wj8086/08/wj0808.png

  • 端口 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发出的控制字和外设送来的状态信息
  • 读/写控制逻辑==(面向系统总线连接)==
    • RD\overline{RD}WR\overline{WR} 读写逻辑控制;
    • A1\displaystyle{ A _{ 1 } }A0\displaystyle{ A _{ 0 } } 内部端口选择
    • CS\overline{CS} 片选控制
    • RESET 复位信号
A1A0端口
00端口 A
01端口 B
10端口 C
11控制字寄存器

2.3. 8255 的工作方式

控制字

8255A 的工作方式,可由 CPU 用 I/O 指令输出一个控制字到 8255A 的控制字寄存器来选择

D7D6D5D4D3D2D1D0
置位方式 1A 组方式端口 A端口 C 上B 方式端口 B端口 C 下
00 A 组方式 01=输入1=输入0=方式 01=输入1=输入
01 A 组方式 10=输出0=输出1=方式 10=输出0=输出
1X A 组方式 2

C 端口按位置位/复位命令:指定 C 端口 8 个引脚中的任意一个引脚,1 次只能指定 1 个引脚输出高电平或者低电平

D7D6D5D4D3D2D1D0
置位方式 0XXX引脚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

MOV AL, 99H ; 1 00 1 1 0 0 1
OUT 53H, AL
MOV AL, 99H ; 1 00 1 1 0 0 1
OUT 53H, AL
Example

PA为开关输入口,PB为LED显示输出口,端口 0E0H~0E3H

MOV AL, 99H ; 1 00 1 1 0 0 1
OUT 0E3H, AL
L: IN AL, 0E0H ; 读取 A 端口
OUT 0E1H, AL ; 写到 B 端口
JMP L
MOV AL, 99H ; 1 00 1 1 0 0 1
OUT 0E3H, AL
L: IN AL, 0E0H ; 读取 A 端口
OUT 0E1H, AL ; 写到 B 端口
JMP L

方式 1:选通输入输出

端口A或端口B仍作为数据的输入/输出,但同时规定端口C的某些位作为控制或状态信息(挂钩信息)

工作特点
  • 需要设置专用的联络信号线或应答信号线,以便对外设和CPU进行联络。此时CPU与外设之间的数据传送可以为查询传送或中断传送。
  • 数据的输入输出都有锁存功能
  • 任一个端口都可作为输入或输出。若端口A和端口B都工作于方式1,端口C的大部分引脚分配用来作专用(固定)的联络信号。
  • 每个端口包括:8位数据口,3条挂钩线,提供查询和中断逻辑。
  • PC端口还留下两位,这两位可以由程序指定作为输入或输出,也具有置位/复位功能。
  • 若只有一个端口工作于方式1,余下的 13 位 (2483=13\displaystyle{ 24 - 8 - 3 = 13 }),可以工作在方式0(由控制字决定)。

public/wj8086/08/wj0809.png

public/wj8086/08/wj0810.png

方式 2:双向选通输入输出

  • 通过8位数据线与外设进行双向通信的方式,既能发送数据,也能接收数据。工作时可以用程序查询方式,也可以用中断方式与CPU联系。方式2只限于A组使用
  • 一个8位的双向总线端口(端口A)和一个5位控制端口(端口C)。
  • 输入和输出是锁存的。
  • 5位控制端口用作端口A的控制和状态信息。