From e57e5a9bdbb335b81b412d93a2ba0306672c2be8 Mon Sep 17 00:00:00 2001 From: wonder Date: Sun, 28 Jun 2026 16:34:33 +0800 Subject: [PATCH] vault backup: 2026-06-28 16:34:33 --- .../重点复习/选择题专题/DMA控制器82C37A.md | 88 +++++++++++ .../重点复习/选择题专题/x86指令系统与寄存器.md | 131 ++++++++++++++++ .../重点复习/选择题专题/中断控制器82C59A.md | 92 ++++++++++++ .../重点复习/选择题专题/串行通信基础.md | 142 ++++++++++++++++++ .../重点复习/选择题专题/小端序与存储器组织.md | 115 ++++++++++++++ .../选择题专题/并行接口82C55A与定时器82C54A.md | 104 +++++++++++++ 6 files changed, 672 insertions(+) create mode 100644 接口与通讯技术/重点复习/选择题专题/DMA控制器82C37A.md create mode 100644 接口与通讯技术/重点复习/选择题专题/x86指令系统与寄存器.md create mode 100644 接口与通讯技术/重点复习/选择题专题/中断控制器82C59A.md create mode 100644 接口与通讯技术/重点复习/选择题专题/串行通信基础.md create mode 100644 接口与通讯技术/重点复习/选择题专题/小端序与存储器组织.md create mode 100644 接口与通讯技术/重点复习/选择题专题/并行接口82C55A与定时器82C54A.md diff --git a/接口与通讯技术/重点复习/选择题专题/DMA控制器82C37A.md b/接口与通讯技术/重点复习/选择题专题/DMA控制器82C37A.md new file mode 100644 index 0000000..684d21c --- /dev/null +++ b/接口与通讯技术/重点复习/选择题专题/DMA控制器82C37A.md @@ -0,0 +1,88 @@ +--- +tags: + - 接口与通讯技术 + - 82C37A + - DMA + - 选择题 + - 重点复习 +create time: 2026-06-28 16:30 +--- + +# DMA 控制器 82C37A 选择题考点 + +## 概述 + +82C37A 是选择题中出现频率最高的芯片(3套试卷共考9题)。核心考点围绕**状态周期、握手信号、传输方式、初始化方式字、字节计数器**五个维度展开。 + +## 正文 + +### 1. DMA 状态周期(S1~S4) + +```mermaid +graph LR + S1["S1
输出地址高8位
仅高8位变化时才插入"] --> S2["S2
输出地址低8位
读/写控制有效"] --> S3["S3
数据传输"] --> S4["S4
周期结束"] + style S1 fill:#ffd,stroke:#333,color:#000 +``` + +> [!important] 高频考点 +> **S1 状态只有在存储器地址的高 8 位发生变化时才会出现。** 地址高8位不变时可跳过 S1,提高传输效率。 + +### 2. DMA 握手信号(4个关键信号) + +| 信号 | 方向 | 含义 | 考试角度 | +|------|------|------|----------| +| **DREQ** | I/O → DMA | I/O 设备**请求** DMA 传输 | 请求源 | +| **HRQ** | DMA → CPU | DMA **请求**占用总线 | 尚未获得总线 | +| **HLDA** | CPU → DMA | CPU **确认**交出总线 | **标志 DMA 已获得总线控制权** ✅ | +| **DACK** | DMA → I/O | DMA **确认**选中该 I/O | **表示该 I/O 被选中** ✅ | + +> [!question] 思考题 +> HRQ 和 HLDA 有什么区别?为什么不能只靠 HRQ 判断 DMA 获得了总线? +> +> 答:HRQ 是 DMA 的"请求",HLDA 是 CPU 的"应答"。只有 CPU 发出 HLDA 后,DMA 才真正获得总线控制权。HRQ 有效只表示"我想要",HLDA 有效才表示"你得到了"。 + +### 3. DMA 四种传输方式 + +| 方式 | 释放总线条件 | 适用场景 | +|------|-------------|----------| +| **单字节方式** | 每传完 **1 个字节**立即释放 | CPU 需频繁介入 | +| **请求方式** | **DREQ 无效时释放**(DREQ 有效则连续传) | I/O 速度不确定 | +| **块方式** | 整个数据块传完才释放 | 大批量连续传输 | +| 级联方式 | 用于多片级联 | 扩展 DMA 通道 | + +> [!tip] 解题口诀 +> - 题干出现"每操作一个数据就释放"→ **单字节方式** +> - 题干出现"DREQ 是否维持有效决定是否释放"→ **请求方式** + +### 4. 初始化方式字:DMA 读 vs DMA 写 + +判断依据:**以存储器的视角**决定读/写。 + +```mermaid +graph TD + A["数据采集
外设→存储器"] --> B["对存储器是写操作
→ DMA 写"] + C["数据输出
存储器→外设"] --> D["对存储器是读操作
→ DMA 读"] + style B fill:#dfd,stroke:#333,color:#000 + style D fill:#dfd,stroke:#333,color:#000 +``` + +> [!example] 真题 +> 采用 DMA 方式进行数据采集(外设→存储器),对 82C37A 初始化时应按照 **DMA 写** 写入方式字。 + +### 5. 字节计数器 + +82C37A 的字节计数器为 **8 位**,范围 0~255: + +$$\text{实际传输字节数} = \text{装载值} + 1$$ + +- 传 256 个数据 → 装载值 = 256 − 1 = **0FFH** +- 传 1 个数据 → 装载值 = **00H** + +> [!warning] 易错点 +> 计数器是"减1计数器",从装载值递减到 0 时传输结束,共传输 N+1 个字节。不是装载 N 就传 N 个! + +## 关联笔记 + +- [[接口与通讯技术/复习文档/82C37A DMA控制器]] +- [[DMA控制器82C37A|填空题专题:82C37A DMA控制器]] +- [[中断控制器82C59A 选择题考点]] diff --git a/接口与通讯技术/重点复习/选择题专题/x86指令系统与寄存器.md b/接口与通讯技术/重点复习/选择题专题/x86指令系统与寄存器.md new file mode 100644 index 0000000..63d8e9b --- /dev/null +++ b/接口与通讯技术/重点复习/选择题专题/x86指令系统与寄存器.md @@ -0,0 +1,131 @@ +--- +tags: + - 接口与通讯技术 + - x86 + - 指令系统 + - 寄存器 + - 选择题 + - 重点复习 +create time: 2026-06-28 16:30 +--- + +# x86 指令系统与寄存器 选择题考点 + +## 概述 + +x86 指令系统与寄存器在 3 套试卷中共出现 7 题,是考点最分散但也最有规律的部分。核心围绕**段寄存器功能、寻址方式、隐含寄存器、标志位计算、位操作指令、堆栈操作**六个方向。 + +## 正文 + +### 1. 段寄存器功能分工 + +| 段寄存器 | 全称 | 用途 | 关联指令/操作 | +|----------|------|------|---------------| +| **CS** | Code Segment | 代码段 | 取指令 | +| **DS** | Data Segment | **数据段(默认数据段基址)** | 访问变量 | +| **SS** | Stack Segment | 堆栈段 | PUSH/POP/CALL | +| **ES** | Extra Segment | 附加段 | 串操作目的段 | + +> [!important] 高频考点 +> **DS(数据段寄存器)用于存放当前数据段段首址。** 访问内存变量时默认使用 DS 作为段基址。 + +### 2. 寻址方式辨析 + +| 寻址方式 | 示例 | 操作数来源 | +|----------|------|-----------| +| 寄存器 | `MOV AX, BX` | 寄存器中 | +| 寄存器间接 | `MOV AX, [BX]` | 内存,地址在寄存器 | +| 变址 | `MOV AX, [SI+10H]` | 内存,SI/DI + 偏移 | +| **立即数** | `MOV AX, 1234H` | **指令中直接编码的常数** | +| **I/O 间接** | `IN AL, DX` | **I/O 端口地址在 DX 中** | + +> [!question] 思考题 +> `MOV AX, 1234H` 中 1234H 是立即数,`MOV AX, [1234H]` 中 1234H 是什么? +> +> 答:后者是**直接寻址**,1234H 是内存地址,CPU 会去访问该内存单元取数据。方括号 `[]` 是关键区别。 + +### 3. 隐含寄存器 + +| 指令 | 隐含使用的寄存器 | 作用 | +|------|:---:|------| +| **LOOP** | **CX** | 循环计数器,每次减 1,为 0 时退出 | +| I/O 间接寻址 | **DX** | 存放 16 位 I/O 端口地址 | +| MUL/DIV | AX | 乘法被乘数/除法被除数 | +| XLAT | BX + AL | 查表基址 + 偏移 | + +> [!tip] 记忆规律 +> - **L**OOP → **C**X(都是"循环"相关) +> - I/O 间接 → **D**X(**D**ata e**X**change,数据交换端口) + +### 4. 标志位计算(ADD 指令) + +以 `ADD AL, BL` 为例: + +``` +AL = 58H = 0101 1000 +BL = 96H = 1001 0110 +──────────────────── + 1110 1110 = EEH +``` + +| 标志位 | 判断规则 | 本例结果 | +|--------|----------|----------| +| **SF**(符号标志) | 结果最高位 D7 | D7=1 → **SF=1** | +| **ZF**(零标志) | 结果是否为 0 | EEH≠0 → **ZF=0** | +| CF(进位标志) | 最高位是否有进位 | 无进位 → CF=0 | +| OF(溢出标志) | 两个同号数相加结果变号 | 58H正+96H负→不同号,OF=0 | + +### 5. 位操作指令 + +**通用规则:AND 清零,OR 置位,XOR 取反。** + +| 目标 | 指令模板 | 掩码构造规则 | +|------|----------|-------------| +| 某位清零 | `AND AL, mask` | 目标位=0,其余=1 | +| 某位置位 | `OR AL, mask` | 目标位=1,其余=0 | +| 某位取反 | `XOR AL, mask` | 目标位=1,其余=0 | + +> [!example] 真题 +> 将 AL 的 D1 位清零,其他位不变。D1 对应掩码 = `1111 1101` = **0FDH**。 +> 答案:**AND AL, 0FDH** + +```mermaid +graph TD + A["位操作需求"] --> B["清零某位"] + A --> C["置位某位"] + A --> D["取反某位"] + B --> B1["AND 指令
目标位掩码=0"] + C --> C1["OR 指令
目标位掩码=1"] + D --> D1["XOR 指令
目标位掩码=1"] + style B1 fill:#fdd,stroke:#333,color:#000 + style C1 fill:#dfd,stroke:#333,color:#000 + style D1 fill:#ffd,stroke:#333,color:#000 +``` + +### 6. 堆栈操作 POP + +POP 指令执行步骤(以 `POP AX` 为例): + +``` +栈顶物理地址 = SS × 10H + SP + +POP AX: + ① AL ← [SS:SP] (低地址 → 低字节) + SP ← SP + 1 + ② AH ← [SS:SP] (高地址 → 高字节) + SP ← SP + 1 +``` + +> [!example] 真题 +> (SS)=1000H, (SP)=1234H, (11234H)=12H, (11235H)=34H +> 栈顶地址 = 1000H × 10H + 1234H = **11234H** +> POP AX: AL=12H, AH=34H → **AX = 3412H** + +> [!warning] 易错点 +> POP 弹出顺序:**先弹低字节给低寄存器,再弹高字节给高寄存器**(小端序)。不要搞反 AH 和 AL 的取值! + +## 关联笔记 + +- [[IO端口编址方式|填空题专题:IO端口编址方式]] +- [[寄存器与指令系统|填空题专题:寄存器与指令系统]] +- [[小端序与存储器组织 选择题考点]] diff --git a/接口与通讯技术/重点复习/选择题专题/中断控制器82C59A.md b/接口与通讯技术/重点复习/选择题专题/中断控制器82C59A.md new file mode 100644 index 0000000..67e8e5a --- /dev/null +++ b/接口与通讯技术/重点复习/选择题专题/中断控制器82C59A.md @@ -0,0 +1,92 @@ +--- +tags: + - 接口与通讯技术 + - 82C59A + - 中断 + - 选择题 + - 重点复习 +create time: 2026-06-28 16:30 +--- + +# 中断控制器 82C59A 选择题考点 + +## 概述 + +82C59A 在 3 套试卷中共出现 4 题,核心考点集中在**初始化命令字功能区分**和**中断类型号计算**。记住"每个 ICW 管什么"即可覆盖全部考题。 + +## 正文 + +### 1. 四个初始化命令字功能速查 + +```mermaid +graph TD + A["82C59A
初始化命令字"] --> B["ICW1
基本模式
单片/级联、触发方式"] + A --> C["ICW2
中断类型号高5位"] + A --> D["ICW3
级联标识
仅级联时需要"] + A --> E["ICW4
工作方式
8086模式、EOI方式"] + style B fill:#eef,stroke:#333,color:#000 + style C fill:#ffd,stroke:#333,color:#000 + style D fill:#fdd,stroke:#333,color:#000 + style E fill:#dfd,stroke:#333,color:#000 +``` + +| 命令字 | 功能 | 是否级联必需 | 高频考法 | +|--------|------|:---:|----------| +| **ICW1** | 基本模式(单片/级联、边沿/电平触发) | 否 | 较少考 | +| **ICW2** | **中断类型号的高 5 位**(T7~T3) | 否 | ⭐⭐⭐ | +| **ICW3** | **级联标识**(主片/从片连接关系) | **是** | ⭐⭐ | +| **ICW4** | 工作方式(8086 模式、自动 EOI) | 视情况 | 较少考 | + +> [!important] 两条必背结论 +> 1. **ICW2 确定中断类型号的高五位**,低 3 位由 IR 编号(000~111)硬件自动填充。 +> 2. **ICW3 只有在级联系统中才需要写入**,单片系统中不需要。 + +### 2. ICW2 与中断类型号的关系 + +ICW2 的 8 位格式: + +``` +D7 D6 D5 D4 D3 │ D2 D1 D0 +──────────────────┬──────────── + 高 5 位(程序员设定) 低 3 位(IR 编号自动填入) +``` + +> [!example] 真题计算 +> 某中断系统中,82C59A 的 IR3 对应中断类型号为 63H,求 IR6 对应的类型号。 +> +> **解题步骤:** +> 1. IR3 → 63H,则基址 = 63H − 3 = **60H**(即 ICW2 高5位 = 01100) +> 2. IR6 → 60H + 6 = **66H** +> +> 公式:$\text{类型号} = \text{ICW2基址} + \text{IR编号}$ + +### 3. 中断允许标志 IF(关联考点) + +虽然 IF 不属于 82C59A 本身,但常与中断系统一起考: + +| IF 值 | 对可屏蔽中断的影响 | 对 NMI/软中断的影响 | +|-------|-------------------|---------------------| +| IF = 0 | CPU **不响应** | **不受影响**,仍可响应 | +| IF = 1 | CPU 可以响应 | **不受影响**,仍可响应 | + +> [!question] 思考题 +> 为什么 IF 只控制可屏蔽中断,不控制 NMI 和软中断? +> +> 答:NMI 用于处理紧急硬件事件(如掉电、内存校验错),必须保证 CPU 始终能响应;软中断(INT n)是程序主动调用的,不受外部标志控制。IF 只作为"总开关"控制外部可屏蔽中断(INTR)。 + +### 4. 真题回顾 + +> [!example] 【真题1】在对 82C59A 进行初始化时,命令字( )只有在级联系统中才需要写入。 +> **答案:C. ICW3** + +> [!example] 【真题2】在 82C59A 初始化序列中,哪个命令字用来确定中断类型号高五位? +> **答案:B. ICW2** + +> [!example] 【真题3】当中断允许标志 IF=0 时,CPU 对( )不予响应。 +> **答案:C. 可屏蔽中断** + +## 关联笔记 + +- [[接口与通讯技术/复习文档/8259A中断控制器]] +- [[82C59A中断管理基础|填空题专题:8259A中断管理基础]] +- [[DMA控制器82C37A 选择题考点]] diff --git a/接口与通讯技术/重点复习/选择题专题/串行通信基础.md b/接口与通讯技术/重点复习/选择题专题/串行通信基础.md new file mode 100644 index 0000000..c7b67d0 --- /dev/null +++ b/接口与通讯技术/重点复习/选择题专题/串行通信基础.md @@ -0,0 +1,142 @@ +--- +tags: + - 接口与通讯技术 + - 串行通信 + - RS-232C + - 8251A + - 波特率 + - 选择题 + - 重点复习 +create time: 2026-06-28 16:30 +--- + +# 串行通信基础 选择题考点 + +## 概述 + +串行通信在 3 套试卷中共出现 4 题,涵盖 **RS-232C 电平标准、波特率因子计算、差错检测位置、8251A 初始化顺序、多总线接口层次**。知识点分散但每个都独立且易记。 + +## 正文 + +### 1. RS-232C 逻辑电平定义 + +RS-232C 采用**负逻辑**,驱动器输出端与接收端的有效范围略有不同: + +| 逻辑值 | 名称 | 驱动器输出端 | 接收端有效范围 | +|--------|------|:---:|:---:| +| **0** | 传号(Mark) | **+5V ~ +15V** | +3V ~ +15V | +| **1** | 空号(Space) | **-5V ~ -15V** | -3V ~ -15V | + +```mermaid +graph LR + subgraph "驱动器输出端" + P["逻辑0: +5V~+15V
正电压"] + N["逻辑1: -5V~-15V
负电压"] + end + subgraph "接收端" + P2["逻辑0: +3V~+15V"] + N2["逻辑1: -3V~-15V"] + end + P --> P2 + N --> N2 + style P fill:#fdd,stroke:#333,color:#000 + style N fill:#dfd,stroke:#333,color:#000 +``` + +> [!important] 高频考点 +> RS-232C 的**逻辑 0 是正电压(+5V~+15V)**,逻辑 1 是负电压(-5V~-15V)。这与 TTL 电平(0=低,1=高)完全相反! + +> [!question] 思考题 +> 为什么 RS-232C 要采用负逻辑(正电压=0,负电压=1)? +> +> 答:RS-232C 设计于早期通信时代,使用较高的电压幅值(±5V~±15V)是为了在长距离传输中抵抗噪声干扰。负逻辑的设计使"空闲状态"(逻辑1)对应负电压,有助于检测线路断开等故障。 + +### 2. 波特率因子计算 + +$$\text{波特率因子} = \frac{\text{收/发时钟频率}}{\text{波特率}} = \frac{f_{\text{clock}}}{\text{Baud Rate}}$$ + +> [!example] 真题 +> 收/发时钟频率 TxC=RxC=19200Hz,传输波特率为 1200,波特率因子 = ? +> +> $$\frac{19200}{1200} = \boxed{16}$$ + +> [!tip] 常见波特率因子 +> 实际系统中最常用的波特率因子是 **16**(16 倍过采样),每个数据位用 16 个时钟周期采样,提高接收精度和抗干扰能力。其他常见值有 1、64。 + +### 3. 串行通信差错检测 + +差错检测发生在**接收端**: + +```mermaid +graph LR + A["发送端
计算校验位
附加到数据"] --> B["传输信道"] --> C["接收端
重新计算校验
与收到的校验位比较"] + C --> D{"一致?"} + D -->|是| E["数据正确"] + D -->|否| F["传输出错"] + style C fill:#ffd,stroke:#333,color:#000 +``` + +> [!important] 高频考点 +> 差错检测发生在**接收端**。发送端只负责计算并附加校验位,不做"检测";接收端收到数据后重新计算校验值,与收到的校验位对比来判断是否出错。 + +### 4. 8251A 初始化顺序 + +8251A 复位后必须按严格顺序写入命令字: + +```mermaid +graph TD + A["RESET 复位完成"] --> B["① 方式字 Mode Word
设置通信格式参数"] + B --> C["② 命令字 Command Word
设置收发使能等"] + C --> D["③ 正常通信工作"] + style B fill:#ffd,stroke:#333,color:#000 +``` + +| 步骤 | 写入内容 | 作用 | +|------|----------|------| +| **第1个** | **方式字** | 波特率因子、字符长度、停止位、奇偶校验 | +| 第2个 | 命令字 | 发送/接收使能、DTR/RTS、内部复位 | + +> [!important] 高频考点 +> 8251A 复位完成后,收到的**第一个命令字是方式字**。方式字定义通信的基本格式,必须在命令字之前写入。 + +### 5. 多总线系统接口层次 + +```mermaid +graph TD + A["多总线微机系统
接口分两个层次"] --> B["设备接口
Device Interface
外设↔I/O总线适配"] + A --> C["总线桥
Bus Bridge
不同总线间协议转换"] + style B fill:#dfd,stroke:#333,color:#000 + style C fill:#dfd,stroke:#333,color:#000 +``` + +| 层次 | 名称 | 作用 | +|------|------|------| +| 第一层 | **设备接口** | 将外设的信号电平、时序、数据格式适配到 I/O 总线 | +| 第二层 | **总线桥** | 连接两条不同特性的总线(如 PCI↔ISA),实现协议转换和速度匹配 | + +> [!question] 思考题 +> 总线桥和设备接口的区别是什么? +> +> 答:设备接口解决"外设怎么连到总线上"的问题(信号适配);总线桥解决"两条不同总线怎么互通"的问题(协议转换)。前者面向外设,后者面向总线。 + +### 6. 真题回顾 + +> [!example] 【真题1】RS-232C 接口标准对逻辑信号"0"在驱动器输出端的定义为? +> **答案:D. +5V~+15V** + +> [!example] 【真题2】波特率因子为?(时钟19200,波特率1200) +> **答案:A. 16** + +> [!example] 【真题3】串行通信的差错检测发生在? +> **答案:B. 接收端** + +> [!example] 【真题4】8251A 复位后收到的第一个命令字是? +> **答案:B. 方式字** + +> [!example] 【真题5】多总线系统中接口分为设备接口和? +> **答案:B. 总线桥** + +## 关联笔记 + +- [[接口与通讯技术/复习文档/8251A串行通信接口]] +- [[串行通信基础|填空题专题:串行通信基础]] diff --git a/接口与通讯技术/重点复习/选择题专题/小端序与存储器组织.md b/接口与通讯技术/重点复习/选择题专题/小端序与存储器组织.md new file mode 100644 index 0000000..a9a80ba --- /dev/null +++ b/接口与通讯技术/重点复习/选择题专题/小端序与存储器组织.md @@ -0,0 +1,115 @@ +--- +tags: + - 接口与通讯技术 + - 小端序 + - 存储器 + - 物理地址 + - 选择题 + - 重点复习 +create time: 2026-06-28 16:30 +--- + +# 小端序与存储器组织 选择题考点 + +## 概述 + +小端序(Little-Endian)和 8086 存储器组织在 3 套试卷中共出现 5 题,几乎每套必考。核心考点为**字单元内容计算、物理地址计算、堆栈中的小端序应用**。 + +## 正文 + +### 1. 小端序存储规则 + +x86 采用**小端序**:**低字节存低地址,高字节存高地址。** + +```mermaid +graph LR + subgraph "内存布局" + LO["低地址
存低字节"] --> HI["高地址
存高字节"] + end + subgraph "逻辑含义" + VAL["一个字 = 高字节×256 + 低字节"] + end + style LO fill:#dfd,stroke:#333,color:#000 + style HI fill:#fdd,stroke:#333,color:#000 +``` + +### 2. 字单元内容计算(通用方法) + +**三步法:** +1. 找到起始地址和下一个地址的内容 +2. 起始地址(低地址)→ **低字节**;下一个地址(高地址)→ **高字节** +3. 字内容 = 高字节 × 256 + 低字节 = 高字节拼接低字节 + +> [!example] 真题1 +> (22000H)=33H, (22001H)=44H,以 22000H 为地址的字单元内容 = ? +> - 低字节(22000H)= 33H,高字节(22001H)= 44H +> - 字内容 = **4433H** + +> [!example] 真题2 +> (12341H)=11H, (12342H)=22H, (12343H)=33H,以 12342H 为地址的字单元内容 = ? +> - 低字节(12342H)= 22H,高字节(12343H)= 33H +> - 字内容 = **3322H** + +> [!example] 真题3 +> (20000H)=12H, (20001H)=34H, (20002H)=56H,地址 20001H 的字单元内容 = ? +> - 低字节(20001H)= 34H,高字节(20002H)= 56H +> - 字内容 = **5634H** + +> [!tip] 速算技巧 +> 直接**高地址内容拼低地址内容**:看到 (addr)=34H, (addr+1)=56H → 答案就是 5634H。 + +### 3. 8086 物理地址计算 + +$$\text{物理地址} = \text{段基址} \times 10\text{H} + \text{偏移地址}$$ + +> [!example] 真题 +> (CS)=2000H, (IP)=3456H,下一条指令的物理地址 = ? +> +> $2000\text{H} \times 10\text{H} + 3456\text{H} = 20000\text{H} + 3456\text{H} = \textbf{23456H}$ + +```mermaid +graph TD + A["段基址: 2000H"] --> B["左移4位: 20000H"] + C["偏移地址: 3456H"] --> D["相加"] + B --> D + D --> E["物理地址: 23456H"] + style E fill:#ffd,stroke:#333,color:#000 +``` + +> [!question] 思考题 +> 为什么 8086 要采用"段基址×16+偏移"的方式,而不是直接用 32 位地址? +> +> 答:8086 内部寄存器是 16 位的,最大寻址 64KB。通过段基址左移 4 位(×16)再加上 16 位偏移,可以用两个 16 位值组合出 20 位物理地址,寻址 1MB 空间。这是 16 位架构下的巧妙设计。 + +### 4. 堆栈中的小端序(POP 操作) + +堆栈操作同样遵循小端序规则: + +``` +POP AX 时: + 低地址内容 → AL(低字节) + 高地址内容 → AH(高字节) +``` + +> [!example] 真题 +> (SS)=1000H, (SP)=1234H, (11234H)=12H, (11235H)=34H +> - 栈顶 = 1000H × 10H + 1234H = 11234H +> - AL ← [11234H] = 12H(先弹,低地址) +> - AH ← [11235H] = 34H(后弹,高地址) +> - **AX = 3412H** + +> [!warning] 易错点 +> POP 弹出的是**字(2字节)**,不是字节!答案不会是 12H 或 34H 单个字节,而是组合后的 3412H。 + +### 5. 三类题型速查 + +| 题型 | 关键公式/规则 | 常见陷阱 | +|------|---------------|----------| +| 字单元内容 | 高地址内容拼接低地址内容 | 搞反高低字节顺序 | +| 物理地址 | 段基址×10H + 偏移 | 忘记×10H(左移4位) | +| POP 堆栈 | 先弹低地址给低寄存器 | 把 AH/AL 取反 | + +## 关联笔记 + +- [[x86指令系统与寄存器 选择题考点]] +- [[IO端口编址方式|填空题专题:IO端口编址方式]] diff --git a/接口与通讯技术/重点复习/选择题专题/并行接口82C55A与定时器82C54A.md b/接口与通讯技术/重点复习/选择题专题/并行接口82C55A与定时器82C54A.md new file mode 100644 index 0000000..81f8950 --- /dev/null +++ b/接口与通讯技术/重点复习/选择题专题/并行接口82C55A与定时器82C54A.md @@ -0,0 +1,104 @@ +--- +tags: + - 接口与通讯技术 + - 82C55A + - 82C54A + - 定时器 + - 选择题 + - 重点复习 +create time: 2026-06-28 16:30 +--- + +# 并行接口 82C55A 与定时器 82C54A 选择题考点 + +## 概述 + +82C55A(并行接口)和 82C54A(定时/计数器)在 3 套试卷中共出现 4 题。82C55A 考**工作方式与端口能力**,82C54A 考**计数初值与自动重装**。 + +## 正文 + +### 1. 82C55A 三种工作方式与端口能力 + +| 方式 | 名称 | 端口 A | 端口 B | 端口 C | 联络信号 | +|------|------|--------|--------|--------|----------| +| 方式 0 | 基本 I/O | 可用 | 可用 | 可用 | 无 | +| 方式 1 | 选通 I/O | 可用(单向+握手) | 可用(单向+握手) | 部分作联络 | 有 | +| **方式 2** | **双向总线 I/O** | **可用(双向)** | **不可用此方式** | 5根作联络 | 有 | + +```mermaid +graph TD + A["82C55A
三种工作方式"] --> B["方式 0
基本 I/O
三端口均可用"] + A --> C["方式 1
选通 I/O
PA、PB 可用
单向+握手"] + A --> D["方式 2
双向 I/O
仅 PA 可用
双向传输"] + style D fill:#ffd,stroke:#333,color:#000 +``` + +> [!important] 高频考点 +> **方式 2(双向选通输入/输出方式)只有端口 A(PA)可以使用。** PB 和 PC 不支持方式 2。 + +> [!question] 思考题 +> 为什么方式 2 只有端口 A 能用? +> +> 答:方式 2 需要占用端口 C 的 5 根引脚(PC3~PC7)作为双向联络信号,端口资源有限。芯片设计时将方式 2 专属于 PA,PB 在 PA 为方式 2 时只能工作在方式 0 或方式 1。 + +### 2. 82C54A 计数初值计算 + +82C54A 是**减法计数器**,从初值 N 递减到 0 时产生输出。 + +**计数 N 个脉冲的初值 = N** + +#### BCD 码计数模式 + +BCD 模式下,每个数位用 4 位 BCD 表示,计数范围 0000~9999(十进制)。 + +> [!example] 真题 +> 采用 82C54A 对外部输入脉冲计数,BCD 码计数方式,需计 100 个脉冲,初值为? +> +> **答案:B. 256** +> +> 在 BCD 计数模式中,计数器的行为与二进制模式有所不同。计 100 个脉冲时,初值应为 **256**。 + +### 3. 82C54A 六种工作方式对比 + +| 方式 | 名称 | 自动重装初值 | 输出波形 | 触发方式 | +|------|------|:---:|----------|----------| +| 方式 0 | 计数结束中断 | ✗ | 单次低→高 | 软件 | +| 方式 1 | 可编程单稳态 | ✗ | 单次负脉冲 | 硬件 | +| 方式 2 | 速率发生器 | ✓ | 周期负脉冲 | 软件/硬件 | +| **方式 3** | **方波发生器** | **✓** | **连续方波** | 软件/硬件 | +| 方式 4 | 软件触发选通 | ✗ | 单次正脉冲 | 软件 | +| 方式 5 | 硬件触发选通 | ✗ | 单次正脉冲 | 硬件 | + +> [!important] 高频考点 +> **方式 2 和方式 3** 具有**自动重新装载计数初值**的功能。方式 3 在计数到 0 后自动重装初值,持续输出对称方波。 + +```mermaid +graph LR + subgraph "自动重装初值" + M2["方式 2
速率发生器"] + M3["方式 3
方波发生器"] + end + subgraph "不自动重装" + M0["方式 0"] + M1["方式 1"] + M4["方式 4"] + M5["方式 5"] + end + style M2 fill:#dfd,stroke:#333,color:#000 + style M3 fill:#dfd,stroke:#333,color:#000 +``` + +### 4. 真题回顾 + +> [!example] 【真题1】并行接口 82C55A 的 3 种工作方式中,( )可以实现双向传输。 +> **答案:C. 方式 2** + +> [!example] 【真题2】82C54A 的工作方式中,哪种具有自动重新装载计数初值的功能? +> **答案:C. 方式 3** + +## 关联笔记 + +- [[接口与通讯技术/复习文档/8255A可编程并行接口]] +- [[接口与通讯技术/复习文档/8254定时计数器]] +- [[82C55A工作方式|填空题专题:82C55A工作方式]] +- [[82C54A定时器工作方式|填空题专题:82C54A定时器工作方式]]