Files
final-exam/接口与通讯技术/重点复习/填空题专题/82C55A工作方式.md
T

4.1 KiB
Raw Blame History

tags, create time
tags create time
接口与通讯技术
8255A
工作方式
重点复习
2026-06-28 15:00

82C55A 工作方式

概述

82C55A(可编程并行接口芯片)有 3 种工作方式,其中方式 1 和方式 2 具有固定联络信号线、固定时序和确定的状态字。本专题聚焦填空题常考的三种工作方式对比,尤其是联络信号的有无。

正文

1. 三种工作方式总览

工作方式 名称 联络信号 固定时序 状态字 中断支持
方式 0 基本输入/输出 ✗ 无 ✗ 无 ✗ 无 ✗ 无
方式 1 选通输入/输出 ✓ 有 ✓ 有 ✓ 有 ✓ 有
方式 2 双向选通总线 I/O ✓ 有 ✓ 有 ✓ 有 ✓ 有

[!important] 考试关键点 方式 1 和方式 2 有固定联络信号线、固定时序和确定的状态字。方式 0 是最基本的、无握手信号的方式。

2. 三种方式详解

方式 0 — 基本 I/O(无联络信号)

最简单的方式,无需任何握手信号:

  • A、B、C 三个端口均可使用
  • 适用于无条件传送或简单外设(LED、开关)
  • 没有固定的联络信号线、时序和状态字

方式 1 — 选通 I/O(有固定联络信号)

利用端口 C 的部分引脚作为联络信号,实现同步数据传输:

方向 占用 C 口引脚数 联络信号
输入 3 根 STB、IBF、INTR
输出 3 根 OBF、ACK、INTR
graph LR
    subgraph "方式 1 输入联络信号"
        A1["STB<br/>选通信号"] --> B1["锁存数据"]
        B1 --> C1["IBF<br/>缓冲器满"]
        C1 --> D1["INTR<br/>中断请求"]
    end
    subgraph "方式 1 输出联络信号"
        A2["OBF<br/>输出缓冲满"] --> B2["等待外设取走"]
        B2 --> C2["ACK<br/>应答确认"]
        C2 --> D2["INTR<br/>可写下一个"]
    end

方式 2 — 双向总线 I/O(有固定联络信号 + 状态字)

仅端口 A 可用,同一端口既可输入又可输出:

  • 占用 C 口 5 根引脚(PC3~PC7)
  • 兼顾输入和输出的联络信号
  • 有确定的状态字反映当前传输方向

3. 方式对比速查图

graph TD
    A["82C55A<br/>三种工作方式"] --> B["方式 0<br/>基本 I/O<br/>无联络信号<br/>最灵活"]
    A --> C["方式 1<br/>选通 I/O<br/>有固定联络信号<br/>固定时序"]
    A --> D["方式 2<br/>双向 I/O<br/>有固定联络信号<br/>固定时序+状态字"]
    style B fill:#ffd,stroke:#333,color:#000
    style C fill:#dfd,stroke:#333,color:#000
    style D fill:#dfd,stroke:#333,color:#000

[!question] 思考题 为什么方式 0 没有固定联络信号?这在实际应用中意味着什么?

答:方式 0 是最基本的 I/O 方式,CPU 直接通过 IN/OUT 指令读写端口数据,不依赖任何握手协议。这意味着:

  1. 需要外设和 CPU 速度匹配(否则数据可能丢失)
  2. 适用于无条件传送场景(如 LED 显示、开关读取)
  3. 编程简单,但可靠性不如方式 1/2

4. 端口 C 引脚复用

方式 1/2 下,端口 C 的部分引脚被用作联络信号:

端口配置 占用的 C 口引脚 数量
A 口方式 1 输入/输出 PC3、PC4、PC5 或 PC3、PC6、PC7 3
A 口方式 2 PC3、PC4、PC5、PC6、PC7 5
B 口方式 1 输入/输出 PC0、PC1、PC2 3

[!tip] 规律记忆

  • 每个方式 1 端口固定占用 3 根 C 口引脚
  • 方式 2 额外增加 2 根 → 共 5 根
  • B 口的联络信号全部来自 C 口低 3 位(PC0~PC2)

5. 真题回顾

[!example] 【真题】82C55A 有 3 种工作方式——方式 0、方式 1 和方式 2,其中方式______有固定联络信号线,固定时序和确定的状态字。

答案:1 和 2

关联笔记