Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a84ae94f54 | ||
|
|
9eeb26eedb |
BIN
Binary file not shown.
@@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- 接口与通讯技术
|
||||||
|
- 试题册
|
||||||
|
- 索引
|
||||||
|
create time: 2026-06-26 22:20
|
||||||
|
---
|
||||||
|
|
||||||
|
# 接口与通讯技术试题册索引
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
本文档为武昌首义学院及武汉科技大学「接口与通讯技术」课程历年试题合集索引。每份试题包含完整题目及参考答案,涵盖填空、选择、判断、简答、应用分析、程序设计等题型。
|
||||||
|
|
||||||
|
> [!tip] 使用建议
|
||||||
|
> 建议先通读题目尝试作答,再对照答案检查。重点关注 **8255A 控制字计算** 和 **8253/8254 初始化编程** 两类高频综合题。
|
||||||
|
|
||||||
|
## 试题目录
|
||||||
|
|
||||||
|
| 序号 | 试卷 | 学校 | 题型概要 |
|
||||||
|
|:----:|------|------|----------|
|
||||||
|
| 1 | [[试题A]] | 武昌首义学院 | 填空 + 单选 + 简答 + 综合应用设计 |
|
||||||
|
| 2 | [[试题B]] | 武汉科技大学 | 填空 + 单选 + 简答 + 应用分析 + 程序设计 |
|
||||||
|
| 3 | [[试题C]] | 武汉科技大学 | 填空 + 单选 + 判断 + 程序设计 + 应用题 |
|
||||||
|
| 4 | [[试题D]] | 武汉科技大学 | 填空 + 单选 + 判断 + 简答 + 编程题 |
|
||||||
|
|
||||||
|
## 知识点分布
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
quadrantChart
|
||||||
|
title "试题知识点覆盖"
|
||||||
|
x-axis "低频" --> "高频"
|
||||||
|
y-axis "简单" --> "困难"
|
||||||
|
quadrant-1 "高难度高频"
|
||||||
|
quadrant-2 "高难度低频"
|
||||||
|
quadrant-3 "低难度低频"
|
||||||
|
quadrant-4 "低难度高频"
|
||||||
|
"8255A 并行接口": [0.90, 0.65]
|
||||||
|
"8253/8254 定时器": [0.85, 0.70]
|
||||||
|
"8259A 中断控制": [0.80, 0.75]
|
||||||
|
"8251A 串行通信": [0.65, 0.60]
|
||||||
|
"ADC0809/DAC0832": [0.55, 0.50]
|
||||||
|
"ISA/EISA 总线": [0.40, 0.30]
|
||||||
|
"DMA 8237A": [0.35, 0.65]
|
||||||
|
"8086 CPU 基础": [0.70, 0.40]
|
||||||
|
"RS-232C 标准": [0.45, 0.35]
|
||||||
|
"初始化编程综合": [0.75, 0.85]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 关联笔记
|
||||||
|
- [[接口与通讯技术/8255A可编程并行接口]]
|
||||||
|
- [[接口与通讯技术/8254定时计数器]]
|
||||||
|
- [[接口与通讯技术/8259A中断控制器]]
|
||||||
|
- [[接口与通讯技术/8251A串行通信接口]]
|
||||||
@@ -0,0 +1,250 @@
|
|||||||
|
---
|
||||||
|
tags: [试题, 接口与通讯技术]
|
||||||
|
create time: 2026-06-26 22:20
|
||||||
|
---
|
||||||
|
|
||||||
|
# 试题 A — 武汉科技大学《接口与通讯技术》
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
- **课程**:接口与通讯技术(A 卷)
|
||||||
|
- **学校**:武汉科技大学
|
||||||
|
- **题型**:填空题、单项选择题、简答题、综合应用设计题
|
||||||
|
- **知识点**:8255A、8253/8254、8259A、8251A、ADC0809、DAC0832、RS-232C
|
||||||
|
|
||||||
|
> [!tip] 学习建议
|
||||||
|
> 本卷综合应用题侧重 8254 定时编程与 ADC0809 查询采样流程设计,建议重点练习可编程芯片的初始化程序编写及控制字计算。
|
||||||
|
|
||||||
|
## 正文
|
||||||
|
|
||||||
|
### 一、填空题(每空 1 分,共 20 分)
|
||||||
|
|
||||||
|
1. 输入/输出接口的基本功能有:对输入/输出数据进行缓冲和锁存、对 I/O 端口进行寻址、提供联络信号、( **信号电平转换** )和( **数据格式转换** )。
|
||||||
|
|
||||||
|
2. 8086CPU 的 I/O 端口编址方式为:I/O 端口与内存统一编址和( **I/O 端口独立编址** )两种方式;直接寻址的 I/O 端口地址范围为( **00H~FFH** )。
|
||||||
|
|
||||||
|
3. 8255A 的 B 端口可工作在( **方式 0、方式 1** )和方式 2 三种工作方式下。
|
||||||
|
|
||||||
|
4. 利用 8253/8254 定时/计数器产生方波信号输出时,应使其工作在( **方式 3** )。
|
||||||
|
|
||||||
|
5. 串行异步通信中,1 位起始位、7 位数据位、1 位奇偶校验位和 1 位停止位所传送一帧数据的位数为( **10** )。
|
||||||
|
|
||||||
|
6. 8259A 的中断屏蔽寄存器 IMR 中某位被置 1,表示( **屏蔽对应的中断请求** )。
|
||||||
|
|
||||||
|
7. RS-232C 标准采用负逻辑,逻辑"1"电平为( **-3V~-15V** ),逻辑"0"电平为( **+3V~+15V** )。
|
||||||
|
|
||||||
|
8. 8251A 的 TXRDY 信号变高表示( **发送缓冲器空** ),此时 CPU 可以向 8251A 写入新的数据。
|
||||||
|
|
||||||
|
9. 8254 的计数器 0 工作于方式 2,计数初值为 10H,则 OUT0 输出信号的周期为( **CLK0 周期的 16 倍** )。
|
||||||
|
|
||||||
|
10. ADC0809 有( **8** )个模拟输入通道,采用( **逐次逼近** )转换方式,分辨率为( **8** )位。
|
||||||
|
|
||||||
|
### 二、单项选择题(每题 2 分,共 30 分)
|
||||||
|
|
||||||
|
1. 当 CPU 读取 8255A 的端口数据时,8255A 的引脚信号中有效的是( **B** )。
|
||||||
|
- A. $\overline{WR}$ 有效
|
||||||
|
- B. $\overline{RD}$ 有效
|
||||||
|
- C. $\overline{CS}$ 无效
|
||||||
|
- D. 以上都不对
|
||||||
|
|
||||||
|
2. 8255A 的 A 端口可工作在方式 0、方式 1 和方式 2 下,其中方式 2 只能在( **A** )实现。
|
||||||
|
- A. A 端口
|
||||||
|
- B. B 端口
|
||||||
|
- C. C 端口
|
||||||
|
- D. 都可以
|
||||||
|
|
||||||
|
3. 下列芯片中,不能用于实现并行 I/O 接口的是( **C** )。
|
||||||
|
- A. 8255A
|
||||||
|
- B. 74LS244
|
||||||
|
- C. 8251A
|
||||||
|
- D. 74LS373
|
||||||
|
|
||||||
|
4. 对串行接口 8251A 进行编程时,方式控制字的写入必须在( **C** )后写入。
|
||||||
|
- A. 软件复位
|
||||||
|
- B. 硬件复位
|
||||||
|
- C. 写入命令控制字
|
||||||
|
- D. 以上都不对
|
||||||
|
|
||||||
|
5. 用 8253/8254 输出频率为 1KHz 的方波信号,若 CLK0 的频率为 2MHz,则计数初值应为( **B** )。
|
||||||
|
- A. 2000
|
||||||
|
- B. 20000
|
||||||
|
- C. 200000
|
||||||
|
- D. 200
|
||||||
|
|
||||||
|
6. 8259A 在全嵌套方式下,若 IRQ5 正在服务,则 IMR 中断优先级为( **D** )。
|
||||||
|
- A. IRQ4 > IRQ5 > IRQ6
|
||||||
|
- B. IRQ6 > IRQ5 > IRQ4
|
||||||
|
- C. IRQ4 = IRQ5 = IRQ6
|
||||||
|
- D. 无法确定
|
||||||
|
|
||||||
|
7. 某串行通信系统要求传送速率为 2400 波特,采用 1 位停止位、8 位数据位、无校验,则每秒最多传送的字符数为( **A** )。
|
||||||
|
- A. 300
|
||||||
|
- B. 1200
|
||||||
|
- C. 3000
|
||||||
|
- D. 240
|
||||||
|
|
||||||
|
8. 8255A 的控制字寄存器地址为( **B** ),则 PC 口的按位控制字的地址也是该地址。
|
||||||
|
- A. 0FFFEH
|
||||||
|
- B. 0FFFDH
|
||||||
|
- C. 0FFFCH
|
||||||
|
- D. 0FFFBH
|
||||||
|
|
||||||
|
9. 一片 8259A 可管理( **B** )级优先级中断,使用两片 8259A 级联可管理( **C** )级优先级中断。
|
||||||
|
- A. 8, 15
|
||||||
|
- B. 8, 16
|
||||||
|
- C. 8, 15
|
||||||
|
- D. 8, 14
|
||||||
|
|
||||||
|
10. 采用 ADC0809 对 8 路模拟量进行巡回采样,若对通道 0 采集第 1 次,则对通道 3 采集第 5 次时对应地址应为( **D** )。
|
||||||
|
- A. 03H
|
||||||
|
- B. 07H
|
||||||
|
- C. 13H
|
||||||
|
- D. 0AH
|
||||||
|
|
||||||
|
11. 某系统中,数据段 1000H 单元开始的 5 个字节为 21H、31H、32H、34H、35H,则 1543H 为( **D** )。
|
||||||
|
- A. 21H
|
||||||
|
- B. 35H
|
||||||
|
- C. 34H
|
||||||
|
- D. 32H
|
||||||
|
|
||||||
|
12. 8251A 的 TxC 引脚信号的功能是( **A** )。
|
||||||
|
- A. 接收时钟
|
||||||
|
- B. 发送数据
|
||||||
|
- C. 发送时钟
|
||||||
|
- D. 接收数据
|
||||||
|
|
||||||
|
13. 若 8255A 的 A 端口地址为 2F0H,则 C 端口地址为( **B** ),控制字寄存器地址为( **B** )。
|
||||||
|
- A. 2F2H, 2F3H
|
||||||
|
- B. 2F2H, 2F3H
|
||||||
|
- C. 2F2H, 2F2H
|
||||||
|
- D. 2F2H, 2F3H
|
||||||
|
|
||||||
|
14. 在 8086 系统中,用 8253/8254 产生 10Hz 方波输出信号,若输入 CLK 信号频率为 200KHz,则计数初值为( **C** )。
|
||||||
|
- A. 10000
|
||||||
|
- B. 20000
|
||||||
|
- C. 30000
|
||||||
|
- D. 2000
|
||||||
|
|
||||||
|
15. 一个异步串行通信接口发送数据 10011110,若采用奇校验,则在该字符后发送的校验位为( **D** )。
|
||||||
|
- A. 0
|
||||||
|
- B. 1
|
||||||
|
- C. 不确定
|
||||||
|
- D. 以上都不对
|
||||||
|
|
||||||
|
### 三、简答题(每题 5 分,共 30 分)
|
||||||
|
|
||||||
|
1. 什么是中断优先级?在 8086 系统中,8259A 的 ICW2 的作用是什么?
|
||||||
|
|
||||||
|
在 8086/8088 系统中,IR0 ~ IR7 对应的中断类型码由 ICW2 决定。ICW2 提供中断类型码的高 5 位(T7 ~ T3),而低 3 位由 8259A 自动填入 IR0 ~ IR7 的编码(000 ~ 111)。
|
||||||
|
|
||||||
|
2. 简述 8255A 的 3 种工作方式的特点。
|
||||||
|
|
||||||
|
- 方式 0(基本输入/输出):A 口、B 口、C 口均可作为输入/输出口,无需握手信号。
|
||||||
|
- 方式 1(选通输入/输出):A 口和 B 口可用作输入/输出,利用 C 口的某些位作为联络信号。
|
||||||
|
- 方式 2(双向总线方式):仅 A 口可工作在此方式下,A 口既可输入又可输出,利用 C 口的 5 位作为联络信号。
|
||||||
|
|
||||||
|
3. 试比较串行异步通信和同步通信的区别。
|
||||||
|
|
||||||
|
| 特性 | 异步通信 | 同步通信 |
|
||||||
|
|------|----------|----------|
|
||||||
|
| 同步方式 | 字符内部同步(起始位/停止位) | 外部时钟同步(同步字符) |
|
||||||
|
| 传输效率 | 较低(有冗余位) | 较高 |
|
||||||
|
| 适用场景 | 低速、不连续数据 | 高速、连续数据 |
|
||||||
|
| 硬件要求 | 简单 | 较复杂 |
|
||||||
|
|
||||||
|
4. 简述 A/D 转换器的主要性能指标。
|
||||||
|
|
||||||
|
- **分辨率**:A/D 转换器能分辨的最小模拟输入变化量,常用位数表示。
|
||||||
|
- **转换时间**:从启动转换到转换结束所需的时间。
|
||||||
|
- **转换精度**:实际输出与理想输出之间的误差。
|
||||||
|
- **量化误差**:量化过程中产生的固有误差。
|
||||||
|
|
||||||
|
5. 8253/8254 的方式 2 和方式 3 有何区别?
|
||||||
|
|
||||||
|
- 方式 2(频率发生器):输出连续的负脉冲,脉冲宽度为 1 个 CLK 周期。
|
||||||
|
- 方式 3(方波发生器):输出对称方波,占空比约为 50%。
|
||||||
|
|
||||||
|
6. 简述 8259A 的中断响应过程。
|
||||||
|
|
||||||
|
(1)当 IRi 引脚有中断请求且未被屏蔽时,8259A 向 CPU 发出 INT 信号。
|
||||||
|
(2)CPU 响应中断,发出 $\overline{INTA}$ 脉冲。
|
||||||
|
(3)8259A 在第一个 $\overline{INTA}$ 脉冲期间将中断类型码送上数据总线。
|
||||||
|
(4)CPU 获取中断类型码,转去执行相应的中断服务程序。
|
||||||
|
|
||||||
|
### 四、综合应用设计题(每题 10 分,共 20 分)
|
||||||
|
|
||||||
|
**第 1 题**
|
||||||
|
|
||||||
|
8254 产生定时脉冲信号输出给 PC 7 作为声光报警信号。(已知 8254 端口地址为 300H ~ 303H,CLK 信号频率为 2MHz)
|
||||||
|
|
||||||
|
利用 8253/8254 可编程定时/计数器实现定时报警功能。8254 具有 3 个独立的 16 位计数器,每个计数器有 6 种工作方式。当采用方式 2(频率发生器)时,计数器在计数过程中输出端 OUT 产生连续的脉冲信号。
|
||||||
|
|
||||||
|
(1)写出 8254 的控制字格式。 (2 分)
|
||||||
|
|
||||||
|
控制字格式:D7 D6(选择计数器)D5 D4(读/写格式)D3 D2 D1(工作方式)D0(数制选择)
|
||||||
|
|
||||||
|
(2)若要在 OUT 端输出频率为 2000Hz 的信号,试编写 8254 初始化程序片段。 (4 分)
|
||||||
|
|
||||||
|
```asm
|
||||||
|
; 假设 8254 端口地址为 300H ~ 303H
|
||||||
|
; CLK 输入频率为 2MHz,要求 OUT 输出 2000Hz
|
||||||
|
; 计数初值 = 2MHz / 2000Hz = 1000
|
||||||
|
|
||||||
|
MOV DX, 303H ; 控制字寄存器地址
|
||||||
|
MOV AL, 34H ; 计数器 0,方式 2,16 位,二进制
|
||||||
|
OUT DX, AL
|
||||||
|
|
||||||
|
MOV DX, 300H ; 计数器 0 端口
|
||||||
|
MOV AX, 1000 ; 计数初值
|
||||||
|
OUT DX, AL ; 先送低 8 位
|
||||||
|
MOV AL, AH
|
||||||
|
OUT DX, AL ; 再送高 8 位
|
||||||
|
```
|
||||||
|
|
||||||
|
(3)画出 8254 产生报警输出的连接电路简图,标注主要信号。 (4 分)
|
||||||
|
|
||||||
|
> [!info] 电路说明
|
||||||
|
> 8254 的 CLK0 接 2MHz 时钟源,GATE0 接 +5V(允许计数),OUT0 输出 2000Hz 信号经驱动电路接声光报警装置。8254 的 $\overline{CS}$ 接地址译码器输出(对应地址 300H~303H),$\overline{RD}$、$\overline{WR}$ 分别接 CPU 的 $\overline{RD}$、$\overline{WR}$ 信号,A0、A1 接地址总线低 2 位。
|
||||||
|
|
||||||
|
**第 2 题**
|
||||||
|
|
||||||
|
已知 ADC0809 在 8086 系统中以查询方式对 8 路模拟量进行巡回采样,转换结果存入数组 BUF 中,已知 8255A 端口地址为 300H ~ 303H。
|
||||||
|
|
||||||
|
(1)ADC0809 的时钟信号由 8254 的 OUT0 输出信号提供,如果 8254 的 CLK0 输入频率为 2MHz,若要给 ADC0809 提供 640KHz 的时钟信号,求 8254 的计数初值。 (2 分)
|
||||||
|
|
||||||
|
$$
|
||||||
|
计数初值 = \frac{CLK0频率}{OUT0输出频率} = \frac{2MHz}{640KHz} = \frac{2000KHz}{640KHz} \approx 3.125
|
||||||
|
$$
|
||||||
|
|
||||||
|
取整数值为 3(或根据实际需要取 4),计数初值 = 3。
|
||||||
|
|
||||||
|
(2)写出初始化 8254 的程序片段。 (4 分)
|
||||||
|
|
||||||
|
```asm
|
||||||
|
; 8254 端口地址 300H ~ 303H,CLK0 = 2MHz
|
||||||
|
; 要求 OUT0 = 640KHz,计数初值 = 3
|
||||||
|
|
||||||
|
MOV DX, 303H ; 控制字寄存器
|
||||||
|
MOV AL, 10H ; 计数器 0,方式 0,低字节,二进制
|
||||||
|
OUT DX, AL
|
||||||
|
|
||||||
|
MOV DX, 300H
|
||||||
|
MOV AL, 03H ; 计数初值 = 3
|
||||||
|
OUT DX, AL
|
||||||
|
```
|
||||||
|
|
||||||
|
(3)画出采用查询方式完成 8 路 A/D 转换的程序流程图。 (4 分)
|
||||||
|
|
||||||
|
> [!info] 流程说明
|
||||||
|
> 程序流程:初始化 → 设置通道号计数器(初值 8) → 设置数据缓冲区指针 → 送通道地址启动转换 → 查询 EOC 信号(等待转换结束) → 读取转换结果 → 存入缓冲区 → 指针加 1 → 通道号加 1 → 判断 8 路是否全部完成 → 若未完成则返回启动下一通道,若完成则结束。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> [!note] 备注
|
||||||
|
> 以上为试题卷部分(第 1 ~ 4 页)。第 5 ~ 7 页为参考答案,已单独收录于试卷文件的参考答案部分。
|
||||||
|
|
||||||
|
## 关联笔记
|
||||||
|
- [[接口与通讯技术/8255A可编程并行接口]]
|
||||||
|
- [[接口与通讯技术/8254定时计数器]]
|
||||||
|
- [[接口与通讯技术/8259A中断控制器]]
|
||||||
|
- [[接口与通讯技术/8251A串行通信接口]]
|
||||||
@@ -0,0 +1,281 @@
|
|||||||
|
---
|
||||||
|
tags: [试题, 接口与通讯技术]
|
||||||
|
create time: 2026-06-26 22:20
|
||||||
|
---
|
||||||
|
|
||||||
|
# 试题 B — 武汉科技大学《接口与通讯技术》
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
- **课程**:接口与通讯技术(B 卷)
|
||||||
|
- **学校**:武汉科技大学
|
||||||
|
- **题型**:填空题、单项选择题、简答题、应用分析题、程序设计题
|
||||||
|
- **知识点**:8255A、8254、8259A、8237A DMA、8251A、RS-232C
|
||||||
|
|
||||||
|
> [!tip] 学习建议
|
||||||
|
> 本卷侧重 DMA 传输方式与 8237A 控制器分析,以及 8254 方波产生程序设计。建议重点掌握 8255A 方式 1 联络信号时序和 BCD/二进制计数初值的换算。
|
||||||
|
|
||||||
|
## 正文
|
||||||
|
|
||||||
|
### 一、填空题(每空1分,共20分)
|
||||||
|
|
||||||
|
1. CPU的数据总线为系统总线中的 **[AB]** 与微处理器相连的接口芯片可分为通用接口芯片与 **[专用接口芯片]** 两种。
|
||||||
|
|
||||||
|
2. 在CPU的数据总线与系统总线之间必须配有 **[数据缓冲器(或数据总线驱动器)]**。8286/8287的作用是 **[数据缓冲/驱动]**。
|
||||||
|
|
||||||
|
3. 一个8254通道占用 **[2]** 个地址端口。
|
||||||
|
|
||||||
|
4. 当Intel 8086访问1MB的存储器空间时,低8位芯片数据总线 **[D7~D0]** 与偶地址存储单元连接,高8位芯片数据总线 **[D15~D8]** 与奇地址存储单元连接。因此8086访问1MB存储器空间时需要区分 **[奇偶地址(奇偶字节)]**。
|
||||||
|
|
||||||
|
5. 8255A的内部结构包括数据总线缓冲器、 **[读/写控制逻辑]**、 **[A组控制]** 和 **[B组控制]**。
|
||||||
|
|
||||||
|
6. 8259A有 **[4]** 个初始化命令字, **[3]** 个操作命令字。
|
||||||
|
|
||||||
|
7. 8251A用作异步通信时,通过编程可选择 **[波特率]**、 **[字符长度]**、 **[停止位]** 和 **[奇偶校验方式]** 等。
|
||||||
|
|
||||||
|
8. 8251A的工作方式控制字的 **[D7D6]** 位决定了芯片的工作方式,其中D7D6=00时为同步方式,D7D6=01时为异步方式。
|
||||||
|
|
||||||
|
9. RS-232C采用负逻辑,逻辑"1"对应 **[-3V~-15V]**,逻辑"0"对应 **[+3V~+15V]**。
|
||||||
|
|
||||||
|
10. 8255A的A口工作在方式1输入时,其应答联络信号为 **[STB(选通信号)]** 和 **[IBF(输入缓冲器满信号)]**。
|
||||||
|
|
||||||
|
### 二、单项选择题(每题2分,共20分)
|
||||||
|
|
||||||
|
1. 8086/8088响应中断时,会自动压入堆栈的标志位是 **[B]**。
|
||||||
|
- A. INTR
|
||||||
|
- B. IF和TF
|
||||||
|
- C. DF和IF
|
||||||
|
- D. IF和CF
|
||||||
|
|
||||||
|
2. 在8086/8088系统中,某存储单元物理地址为22456H,若段基地址为2000H,则段内偏移地址为 **[A]**。
|
||||||
|
- A. 2456H
|
||||||
|
- B. 12456H
|
||||||
|
- C. 02456H
|
||||||
|
- D. 32456H
|
||||||
|
|
||||||
|
3. 在DMA传送方式中,每传送一个数据块需要占用 **[B]** 个总线周期。
|
||||||
|
- A. 1个
|
||||||
|
- B. 2个
|
||||||
|
- C. 3个
|
||||||
|
- D. 4个
|
||||||
|
|
||||||
|
4. 在8255A的C口位定义/复位命令字中,若要使PC3=1,则命令字为 **[A]**。
|
||||||
|
- A. 07H
|
||||||
|
- B. 0FH
|
||||||
|
- C. 87H
|
||||||
|
- D. 8FH
|
||||||
|
|
||||||
|
5. 在8255A工作在方式1输入时,用于数据输入的信号是 **[B]**。
|
||||||
|
- A. INTR、IBF、STB
|
||||||
|
- B. STB、IBF、RD
|
||||||
|
- C. IBF、INTR、RD
|
||||||
|
- D. INTR、OBF、ACK
|
||||||
|
|
||||||
|
6. 若对8259A进行ICW1写入操作,即对A0=0的端口写入ICW1后,8259A将 **[A]**。
|
||||||
|
- A. 预置A0=0后写入
|
||||||
|
- B. 自动判断下一个写入的是ICW2还是ICW3
|
||||||
|
- C. 需要用OCW来控制
|
||||||
|
- D. 写入OCW1设置中断屏蔽字
|
||||||
|
|
||||||
|
7. 在DMA方式下,内存与外设之间的数据传输特点是 **[D]**。
|
||||||
|
- A. 仅由CPU控制
|
||||||
|
- B. 仅由DMA控制器控制
|
||||||
|
- C. 由CPU和DMA控制器共同控制
|
||||||
|
- D. 数据传输不经过CPU,直接在内存和外设之间进行
|
||||||
|
|
||||||
|
8. 8251A工作在异步方式时,波特率系数可通过 **[B]** 来设定。
|
||||||
|
- A. 工作方式寄存器
|
||||||
|
- B. 命令寄存器
|
||||||
|
- C. 状态寄存器
|
||||||
|
- D. 方式选择寄存器
|
||||||
|
|
||||||
|
9. 下列关于DMA,描述错误的是 **[C]**。
|
||||||
|
- A. DMA传输时,数据在内存和I/O设备之间直接传送
|
||||||
|
- B. DMA传输前CPU要初始化DMA控制器
|
||||||
|
- C. DMA传输完成后CPU要处理中断
|
||||||
|
- D. DMA传输时CPU不能做其他工作
|
||||||
|
|
||||||
|
10. RS-232C中,控制数据流方向的信号是 **[B]**。
|
||||||
|
- A. RTS
|
||||||
|
- B. CTS
|
||||||
|
- C. DTR
|
||||||
|
- D. DSR
|
||||||
|
|
||||||
|
### 三、简答题(每题5分,共15分)
|
||||||
|
|
||||||
|
1. **简述8255A的A口在方式1输入时的工作过程,包括相关联络信号的含义。**
|
||||||
|
|
||||||
|
**答:** 8255A的A口工作在方式1输入时,利用C口的某些引脚作为联络信号:
|
||||||
|
- **STB(选通信号)**:由外设发出,低电平有效,将外设数据锁存到A口的输入锁存器中。
|
||||||
|
- **IBF(输入缓冲器满信号)**:由8255A发出,高电平有效,表示A口已接收到数据,通知外设数据已被锁存。
|
||||||
|
- **INTR(中断请求信号)**:当STB上升沿且IBF为高电平时,INTR变高,向CPU发出中断请求,请求CPU读取数据。
|
||||||
|
- **INTE(中断允许)**:可通过C口置位/复位命令控制,允许或禁止A口的中断请求。
|
||||||
|
|
||||||
|
工作过程:外设将数据放到数据线上,然后发STB信号将数据锁存,8255A发IBF通知外设数据已收到,同时在满足条件时发INTR请求CPU读取数据。CPU响应中断后读取数据,IBF变低,准备接收下一个数据。
|
||||||
|
|
||||||
|
2. **简述DMA控制器8237A的主要功能和工作模式。**
|
||||||
|
|
||||||
|
**答:** 8237A是Intel公司生产的可编程DMA控制器,主要功能包括:
|
||||||
|
- 在外设和存储器之间提供高速数据传输通道
|
||||||
|
- 支持4个独立的DMA通道
|
||||||
|
- 每个通道可独立编程,支持不同的传输参数
|
||||||
|
- 支持单字节传输、块传输、请求传输和级联传输等模式
|
||||||
|
- 支持存储器到存储器的传输
|
||||||
|
- 具有地址自动增减功能
|
||||||
|
- 具有优先级仲裁逻辑
|
||||||
|
|
||||||
|
3. **在微型计算机系统中,通常采用哪几种I/O端口编址方式?各有何特点?**
|
||||||
|
|
||||||
|
**答:** 微型计算机系统中通常采用两种I/O端口编址方式:
|
||||||
|
- **统一编址(存储器映射I/O)**:将I/O端口地址和存储器地址统一编排在同一地址空间中。优点是可以使用全部存储器指令访问I/O端口,寻址方式灵活;缺点是I/O端口占用存储器地址空间。
|
||||||
|
- **独立编址(I/O隔离编址)**:I/O端口和存储器分别使用独立的地址空间,通过专门的I/O指令(如IN/OUT)访问I/O端口。优点是不占用存储器地址空间,I/O地址译码简单;缺点是I/O指令较少,功能不如存储器指令丰富。
|
||||||
|
|
||||||
|
### 四、应用分析题(共25分)
|
||||||
|
|
||||||
|
> [!question] 解题思路
|
||||||
|
> 应用分析题需要理解芯片的工作原理和时序,建议先分析控制字各位的含义,再逐步推导初始化程序。
|
||||||
|
|
||||||
|
1. **(本题10分)** 在微型计算机系统中,8237A的地址线A3~A0与CPU的地址总线A3~A0连接,地址允许信号AEN由译码器输出控制。当前CPU的地址线A9A8A7A6A5=11011,译码器输出为低电平。试回答:
|
||||||
|
- (1) 8237A各通道DMA请求优先权排列顺序如何?
|
||||||
|
- (2) 若要禁止所有通道的DMA请求,应如何写入命令字?
|
||||||
|
- (3) 通道0地址计数器初值为2000H,传送字节数为1000,传送完成后地址计数器值为多少?
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
- (1) 8237A各通道的DMA请求优先权从高到低排列为:通道0 > 通道1 > 通道2 > 通道3。可用编程方式改变为循环优先权方式。
|
||||||
|
- (2) 若要禁止所有通道的DMA请求,应向命令寄存器写入控制字,将所有通道的使能位清零(即写入04H~05H禁止通道),同时设置禁止DMA控制位。
|
||||||
|
- (3) 通道0地址计数器初值为2000H,每传送一个字节地址自动加1,传送1000个字节后:2000H + 1000 = 2000H + 3E8H = 23E8H。传送完成后地址计数器值为23E8H。
|
||||||
|
|
||||||
|
2. **(本题15分)** 通过地址译码器将8254定时/计数器0通道的CLK0接至1.193182MHz时钟源,要求CLK0分频后产生约100Hz频率的方波。
|
||||||
|
|
||||||
|
- (1) 写出控制字,并写出向0通道装入的时间常数(二进制)。
|
||||||
|
- (2) 设8254口地址为40H~43H,编写初始化程序段。
|
||||||
|
- (3) 若采用BCD计数方式,时间常数如何装入?写出相应的初始化程序段。
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
- (1) 分频系数 = 1193182 / 100 ≈ 11932 = 2EA4H
|
||||||
|
|
||||||
|
控制字:选用方式3(方波发生器),二进制计数,先读写低字节再读写高字节,通道0。
|
||||||
|
控制字 = 00110110B = 36H
|
||||||
|
|
||||||
|
时间常数 = 2EA4H = 11932
|
||||||
|
|
||||||
|
- (2) 初始化程序段(二进制方式):
|
||||||
|
|
||||||
|
```asm
|
||||||
|
MOV AL, 36H ; 控制字:通道0,方式3,二进制计数
|
||||||
|
OUT 43H, AL ; 写入控制寄存器
|
||||||
|
MOV AX, 2EA4H ; 时间常数
|
||||||
|
OUT 40H, AL ; 先写低字节
|
||||||
|
MOV AL, AH
|
||||||
|
OUT 40H, AL ; 再写高字节
|
||||||
|
```
|
||||||
|
|
||||||
|
- (3) 若采用BCD计数方式:
|
||||||
|
|
||||||
|
分频系数 = 11932 = 1×10000 + 1×1000 + 9×100 + 3×10 + 2 = 0192BCD(注意BCD码最大65536)
|
||||||
|
|
||||||
|
实际上 11932 的BCD表示为:0119 32BCD = 011932H → 需要用4位BCD码表示。
|
||||||
|
|
||||||
|
控制字 = 00110111B = 37H(方式3,BCD计数)
|
||||||
|
|
||||||
|
时间常数:低字节 = 32H(低2位BCD),高字节 = 11H(高2位BCD),即11932 = 1132BCD
|
||||||
|
|
||||||
|
初始化程序段:
|
||||||
|
|
||||||
|
```asm
|
||||||
|
MOV AL, 37H ; 控制字:通道0,方式3,BCD计数
|
||||||
|
OUT 43H, AL ; 写入控制寄存器
|
||||||
|
MOV AL, 32H ; 低2位BCD(32)
|
||||||
|
OUT 40H, AL ; 先写低字节
|
||||||
|
MOV AL, 11H ; 高2位BCD(11)
|
||||||
|
OUT 40H, AL ; 再写高字节
|
||||||
|
```
|
||||||
|
|
||||||
|
### 五、程序设计题(共20分)
|
||||||
|
|
||||||
|
1. **(本题10分)** 用8255A的A口控制LED显示器循环显示8个花样灯显示方式,要求:
|
||||||
|
|
||||||
|
已知8255A控制字口地址为8006H,各口地址分别为:8000H(A口)、8002H(B口)、8004H(C口)、8006H(控制口)。
|
||||||
|
|
||||||
|
编写程序段实现8255A初始化及LED花样显示控制。
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
|
||||||
|
```asm
|
||||||
|
DATA SEGMENT
|
||||||
|
PATTERN DB 80H, 40H, 20H, 10H, 08H, 04H, 02H, 01H ; 8个花样灯模式
|
||||||
|
DATA ENDS
|
||||||
|
|
||||||
|
CODE SEGMENT
|
||||||
|
ASSUME CS:CODE, DS:DATA
|
||||||
|
|
||||||
|
START:
|
||||||
|
MOV AX, DATA
|
||||||
|
MOV DS, AX
|
||||||
|
|
||||||
|
; 8255A初始化:A口方式0输出,B口方式0输出
|
||||||
|
MOV DX, 8006H ; 控制口地址
|
||||||
|
MOV AL, 80H ; 控制字:A口方式0输出
|
||||||
|
OUT DX, AL
|
||||||
|
|
||||||
|
DISPLAY:
|
||||||
|
MOV CX, 8 ; 8个花样模式
|
||||||
|
LEA SI, PATTERN
|
||||||
|
|
||||||
|
NEXT:
|
||||||
|
MOV DX, 8000H ; A口地址
|
||||||
|
MOV AL, [SI] ; 取花样灯模式
|
||||||
|
OUT DX, AL ; 输出到A口控制LED
|
||||||
|
|
||||||
|
; 延时
|
||||||
|
PUSH CX
|
||||||
|
MOV CX, 0FFFFH
|
||||||
|
DELAY:
|
||||||
|
NOP
|
||||||
|
LOOP DELAY
|
||||||
|
POP CX
|
||||||
|
|
||||||
|
INC SI ; 指向下一个模式
|
||||||
|
LOOP NEXT ; 循环显示8个模式
|
||||||
|
|
||||||
|
JMP DISPLAY ; 无限循环
|
||||||
|
CODE ENDS
|
||||||
|
END START
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **(本题10分)** 编写利用8253/8254产生方波的程序段。要求:
|
||||||
|
- 系统时钟频率为1MHz
|
||||||
|
- 通过8253/8254通道0产生1kHz的方波
|
||||||
|
- 8253/8254控制口地址为4006H,通道0地址为4000H
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
|
||||||
|
时钟频率1MHz,要产生1kHz方波,需要分频系数 = 1000000 / 1000 = 1000
|
||||||
|
|
||||||
|
选用方式3(方波发生器),二进制计数,先读写低字节再读写高字节。
|
||||||
|
|
||||||
|
控制字 = 00110110B = 36H
|
||||||
|
|
||||||
|
时间常数 = 1000 = 03E8H
|
||||||
|
|
||||||
|
```asm
|
||||||
|
NEXT:
|
||||||
|
MOV DX, 4006H ; 控制口地址
|
||||||
|
MOV AL, 36H ; 控制字:通道0,方式3,二进制计数
|
||||||
|
OUT DX, AL
|
||||||
|
|
||||||
|
MOV DX, 4000H ; 通道0地址
|
||||||
|
MOV AX, 03E8H ; 时间常数1000
|
||||||
|
OUT DX, AL ; 先写低字节
|
||||||
|
MOV AL, AH
|
||||||
|
OUT DX, AL ; 再写高字节
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 关联笔记
|
||||||
|
- [[接口与通讯技术/8255A可编程并行接口]]
|
||||||
|
- [[接口与通讯技术/8254定时计数器]]
|
||||||
|
- [[接口与通讯技术/8259A中断控制器]]
|
||||||
|
- [[接口与通讯技术/DMA控制器8237A]]
|
||||||
|
- [[接口与通讯技术/8251A串行通信接口]]
|
||||||
@@ -0,0 +1,293 @@
|
|||||||
|
---
|
||||||
|
tags: [试题, 接口与通讯技术]
|
||||||
|
create time: 2026-06-26 22:20
|
||||||
|
---
|
||||||
|
|
||||||
|
# 试题 C — 武汉科技大学《接口与通讯技术》
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
- **课程**:接口与通讯技术(A 卷)
|
||||||
|
- **学校**:武汉科技大学
|
||||||
|
- **题型**:填空题、单项选择题、判断题、程序设计题、应用题
|
||||||
|
- **知识点**:8253/8254、8255A、8259A、ISA/EISA 总线、ADC0809、8086 中断系统
|
||||||
|
|
||||||
|
> [!tip] 学习建议
|
||||||
|
> 本卷判断题涉及 ISA/EISA 总线细节,程序设计题覆盖 8253 方波与 255A 端口输出。建议重点理解 8086 中断向量表布局和 8259A 初始化流程。
|
||||||
|
|
||||||
|
## 正文
|
||||||
|
|
||||||
|
### 一、填空(每空 1 分,共 20 分)
|
||||||
|
|
||||||
|
1. ISA 总线与 EISA 总线的数据总线宽度分别为( **16** )位和( **32** )位。
|
||||||
|
|
||||||
|
2. 16 位 I/O 端口寻址中,I/O 端口地址范围是( **0000H~FFFFH** );其地址线至少需要( **16** )根。若 A₉ = 1,则选中 I/O 端口地址范围为( **200H~3FFH** )。
|
||||||
|
|
||||||
|
3. 在 8086 CPU 中,引脚信号( **DT/R** )和( **DEN** )决定了数据在总线上传送的方向。
|
||||||
|
|
||||||
|
4. 在 8259A 初始化中,中断请求触发方式有( **边沿** )触发和( **电平** )触发两种方式。
|
||||||
|
|
||||||
|
5. 在 8086 的中断向量表中,4 个字节分别存放( **中断服务程序的偏移地址(IP)** )和( **中断服务程序的段地址(CS)** )。
|
||||||
|
|
||||||
|
6. 在 EISA 总线的数据传输过程中,若需要插入等待周期,则插入的是( **等待** )周期。
|
||||||
|
|
||||||
|
7. 8253 的内部结构包含( **3** )个计数器,每个计数器都有( **1** )条输入线和( **1** )条输出线。
|
||||||
|
|
||||||
|
8. 在 8086 CPU 中,地址 8000H:3000H 对应的物理地址为( **83000H** )。
|
||||||
|
|
||||||
|
9. 8255 的端口 A 有( **3** )种工作方式,端口 B 有( **2** )种工作方式,端口 C 有( **1** )种工作方式。
|
||||||
|
|
||||||
|
10. ISA 总线是 EISA 总线的( **16** )位版本,EISA 总线的地址线为( **32** )位。
|
||||||
|
|
||||||
|
### 二、单项选择题(每题 2 分,共 20 分)
|
||||||
|
|
||||||
|
1. 在微型计算机系统中,CPU 访问 I/O 接口的方式有以下哪几种( **A** )。
|
||||||
|
|
||||||
|
- A. 独立编址方式和统一编址方式
|
||||||
|
- B. 独立编址方式
|
||||||
|
- C. 统一编址方式
|
||||||
|
- D. 以上都不对
|
||||||
|
|
||||||
|
2. 8253 内部计数器是( **B** )。
|
||||||
|
|
||||||
|
- A. 8 位计数器
|
||||||
|
- B. 16 位计数器
|
||||||
|
- C. 10 位计数器
|
||||||
|
- D. 20 位计数器
|
||||||
|
|
||||||
|
3. 8253 的 3 个计数器中,( **D** )计数器是 16 位的。
|
||||||
|
|
||||||
|
- A. 计数器 0
|
||||||
|
- B. 计数器 1
|
||||||
|
- C. 计数器 2
|
||||||
|
- D. 3 个计数器都是 16 位
|
||||||
|
|
||||||
|
4. 下列对 8259A 初始化的叙述中,( **C** )是不正确的。
|
||||||
|
|
||||||
|
- A. ICW₁ 写入偶地址端口
|
||||||
|
- B. 8259A 初始化编程必须按顺序写入 ICW₁、ICW₂、ICW₃、ICW₄
|
||||||
|
- C. ICW₁ 写入奇地址端口
|
||||||
|
- D. ICW₄ 是中断命令字
|
||||||
|
|
||||||
|
5. 8255A 控制字的最高位 D₇ = 1 表示( **A** )。
|
||||||
|
|
||||||
|
- A. 方式控制字
|
||||||
|
- B. 位控制字
|
||||||
|
- C. 状态控制字
|
||||||
|
- D. 以上都不对
|
||||||
|
|
||||||
|
6. 在 8086 系统中,已知 DS = 2000H,SS = 5000H,SP = 3000H,则堆栈栈顶的物理地址为( **B** )。
|
||||||
|
|
||||||
|
- A. 23000H
|
||||||
|
- B. 53000H
|
||||||
|
- C. 35000H
|
||||||
|
- D. 7000H
|
||||||
|
|
||||||
|
7. 下列对中断描述错误的是( **D** )。
|
||||||
|
|
||||||
|
- A. 单片机中,NMI 的中断请求无法被屏蔽
|
||||||
|
- B. 单片机中,8 级中断中,IR₀ 的优先级最高
|
||||||
|
- C. 中断服务结束时,必须执行 EOI 命令来清除 ISR 中相应的位
|
||||||
|
- D. 8086 系统中地址 0000H~003FH 是非屏蔽中断
|
||||||
|
|
||||||
|
8. 在使用 8259A 进行中断控制时,若 CPU 在执行中断服务程序期间,又有新的中断请求到来,则系统响应中断的条件是( **A** )。
|
||||||
|
|
||||||
|
- A. 新的中断请求优先级高于正在执行的中断服务程序
|
||||||
|
- B. 新的中断请求优先级低于正在执行的中断服务程序
|
||||||
|
- C. 无条件响应
|
||||||
|
- D. 无条件不响应
|
||||||
|
|
||||||
|
9. 8253 方式控制字中某位为 0 时,表示采用( **A** )。
|
||||||
|
|
||||||
|
- A. 二进制计数
|
||||||
|
- B. BCD 码计数
|
||||||
|
- C. 十进制计数
|
||||||
|
- D. 16 进制计数
|
||||||
|
|
||||||
|
10. 在 EISA 总线中,数据总线的宽度为( **C** )。
|
||||||
|
|
||||||
|
- A. 8 位
|
||||||
|
- B. 16 位
|
||||||
|
- C. 32 位
|
||||||
|
- D. 64 位
|
||||||
|
|
||||||
|
### 三、判断题(每题 2 分,共 20 分)
|
||||||
|
|
||||||
|
1. 在 8086 CPU 中,当执行 MOV 指令时,会产生总线周期。( )
|
||||||
|
|
||||||
|
2. 8253 的内部计数器是减计数器。( )
|
||||||
|
|
||||||
|
3. 在 EISA 总线中,数据总线的宽度为 16 位。( )
|
||||||
|
|
||||||
|
4. 单片机中,且该中断为非屏蔽中断,NMI 的中断请求无法被屏蔽。( )
|
||||||
|
|
||||||
|
5. 在 8086 中断向量表中,地址 0000H~003FH 是可屏蔽中断,地址 0040H~03FFH 是非屏蔽中断。( )
|
||||||
|
|
||||||
|
6. 8253 内部计数器的输入时钟频率为 1MHz,当计数初值为 10000 时,输出方波频率为 100Hz。( )
|
||||||
|
|
||||||
|
7. 在使用 8259A 进行中断控制时,若 CPU 在执行中断服务程序期间,又有新的中断请求到来,则系统响应中断的条件是新的中断请求优先级高于正在执行的中断服务程序。( )
|
||||||
|
|
||||||
|
8. 在 EISA 总线中,数据总线的宽度为 32 位。( )
|
||||||
|
|
||||||
|
9. 在 8086 CPU 中,当执行 MOV 指令时,不会产生总线周期。( )
|
||||||
|
|
||||||
|
10. 8253 方式控制字的最高位为 D₇,当 D₇ = 1 时,表示采用 BCD 码计数。( )
|
||||||
|
|
||||||
|
### 四、程序设计题(每题 5 分,共 20 分)
|
||||||
|
|
||||||
|
1. 在一个数据段中定义了如下字符串,请编程序在字符串中查找第一个 'A' 字符并统计 'A' 的个数。已知字符串首地址为 STRING,字符串长度为 100。
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
|
||||||
|
```asm
|
||||||
|
DATA SEGMENT
|
||||||
|
STRING DB 'Hello, Assembly language programming...', 0 ; 示例字符串
|
||||||
|
LEN EQU 100 ; 字符串长度
|
||||||
|
COUNT DB 0 ; 统计 'A' 的个数
|
||||||
|
DATA ENDS
|
||||||
|
|
||||||
|
CODE SEGMENT
|
||||||
|
ASSUME CS:CODE, DS:DATA
|
||||||
|
|
||||||
|
START:
|
||||||
|
MOV AX, DATA
|
||||||
|
MOV DS, AX
|
||||||
|
|
||||||
|
LEA SI, STRING ; SI 指向字符串首地址
|
||||||
|
MOV CX, LEN ; 计数器 = 字符串长度
|
||||||
|
MOV BL, 0 ; BL 存储 'A' 的出现次数
|
||||||
|
MOV DL, 'A' ; DL 存储要查找的字符
|
||||||
|
|
||||||
|
SCAN:
|
||||||
|
MOV AL, [SI] ; 取当前字符
|
||||||
|
CMP AL, DL ; 与 'A' 比较
|
||||||
|
JNE NEXT ; 不相等则跳过
|
||||||
|
INC BL ; 相等则计数加 1
|
||||||
|
|
||||||
|
NEXT:
|
||||||
|
INC SI ; 指向下一个字符
|
||||||
|
LOOP SCAN ; CX 减 1,未到 0 则继续
|
||||||
|
|
||||||
|
MOV COUNT, BL ; 保存统计结果
|
||||||
|
|
||||||
|
MOV AH, 4CH
|
||||||
|
INT 21H ; 返回 DOS
|
||||||
|
CODE ENDS
|
||||||
|
END START
|
||||||
|
```
|
||||||
|
|
||||||
|
2. 用 8253 产生方波,方波频率为 1kHz,已知输入时钟频率为 1.19318MHz,写出初始化程序。端口地址为 40H~43H。
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
|
||||||
|
计数初值 = 1193180 / 1000 ≈ 1193 = 04A9H
|
||||||
|
|
||||||
|
控制字:计数器 0、先低后高、方式 3(方波)、二进制计数 → 36H
|
||||||
|
|
||||||
|
```asm
|
||||||
|
MOV AL, 36H ; 控制字:计数器0,方式3,二进制计数
|
||||||
|
OUT 43H, AL ; 写入控制寄存器
|
||||||
|
|
||||||
|
MOV AX, 04A9H ; 计数初值 = 1193
|
||||||
|
OUT 40H, AL ; 先写低字节
|
||||||
|
MOV AL, AH
|
||||||
|
OUT 40H, AL ; 再写高字节
|
||||||
|
```
|
||||||
|
|
||||||
|
3. 用 8255 的端口 A 输出方波信号(A₀ = 0),要求方波频率为 1kHz,写出初始化程序。已知 8255 端口地址为 60H~63H。
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
|
||||||
|
8255 控制字:A 口方式 0 输出 → 80H
|
||||||
|
|
||||||
|
方波周期 = 1/1kHz = 1ms,高/低电平各 0.5ms。通过软件延时实现。
|
||||||
|
|
||||||
|
```asm
|
||||||
|
; 8255 初始化
|
||||||
|
MOV AL, 80H ; 控制字:A口方式0输出
|
||||||
|
OUT 63H, AL ; 写入控制寄存器
|
||||||
|
|
||||||
|
; 产生方波
|
||||||
|
WAVE:
|
||||||
|
MOV AL, 01H ; PA0 = 1(高电平)
|
||||||
|
OUT 60H, AL
|
||||||
|
|
||||||
|
MOV CX, 250 ; 延时 0.5ms(根据时钟频率调整)
|
||||||
|
DELAY1:
|
||||||
|
LOOP DELAY1
|
||||||
|
|
||||||
|
MOV AL, 00H ; PA0 = 0(低电平)
|
||||||
|
OUT 60H, AL
|
||||||
|
|
||||||
|
MOV CX, 250 ; 延时 0.5ms
|
||||||
|
DELAY2:
|
||||||
|
LOOP DELAY2
|
||||||
|
|
||||||
|
JMP WAVE ; 循环产生方波
|
||||||
|
```
|
||||||
|
|
||||||
|
4. 用 8253 的计数器 0 输出频率为 1kHz 的方波,已知输入时钟频率为 1.19318MHz,写出初始化程序。端口地址为 40H~43H。
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
|
||||||
|
> [!note] 说明
|
||||||
|
> 本题与第 2 题参数相同,考查 8253 方式 3 方波产生的初始化编程。
|
||||||
|
|
||||||
|
计数初值 = 1193180 / 1000 ≈ 1193 = 04A9H
|
||||||
|
|
||||||
|
控制字 = 36H(计数器 0、先低后高、方式 3、二进制)
|
||||||
|
|
||||||
|
```asm
|
||||||
|
MOV AL, 36H ; 控制字:计数器0,方式3,二进制计数
|
||||||
|
OUT 43H, AL ; 写入控制寄存器
|
||||||
|
|
||||||
|
MOV AX, 04A9H ; 计数初值 = 1193
|
||||||
|
OUT 40H, AL ; 先写低字节
|
||||||
|
MOV AL, AH
|
||||||
|
OUT 40H, AL ; 再写高字节
|
||||||
|
```
|
||||||
|
|
||||||
|
### 五、应用题(共 20 分)
|
||||||
|
|
||||||
|
1. **(5 分)** 某 CPU 通过锁存器与 LED 显示器(共阴极接法)相连,已知锁存器端口地址为 200H,现要求显示数字 '5'(即 7 段码为 6DH),请编写完整的汇编程序。
|
||||||
|
|
||||||
|
> [!note] 附注
|
||||||
|
> 共阴极接法的 7 段码表(LEDSEG)的偏移地址为:数字 0~9 对应的段码依次为 3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。
|
||||||
|
|
||||||
|
2. **(5 分)** 已知 8259A 的端口地址为 20H 和 21H,要求:
|
||||||
|
|
||||||
|
(1)编写初始化程序,设中断向量表中类型号为 80H 的中断入口地址为 3000H:1000H。
|
||||||
|
|
||||||
|
(2)编写中断服务程序(中断服务程序入口地址为 INT80H)。
|
||||||
|
|
||||||
|
3. **(10 分)** 在 8086 CPU 的系统中,利用 8255A 的端口 A 输出矩形波,要求在端口 A 的 PA₀ 产生矩形波。
|
||||||
|
|
||||||
|
> [!info] 波形参数
|
||||||
|
> 高电平持续时间为 5ms,低电平持续时间为 3ms。
|
||||||
|
|
||||||
|
已知 8255A 的端口地址为 60H~63H,8255A 的时钟频率为 1MHz。
|
||||||
|
|
||||||
|
要求:
|
||||||
|
|
||||||
|
(1)编写 8255A 的初始化程序。(4 分)
|
||||||
|
|
||||||
|
(2)编写产生矩形波的程序。(6 分)
|
||||||
|
|
||||||
|
> [!info] 8255A 控制字格式
|
||||||
|
> - D₇:1 为方式控制字,0 为位控字
|
||||||
|
> - D₆D₅:端口 A 方式选择(00=方式 0,01=方式 1,10=方式 2)
|
||||||
|
> - D₄:端口 A 输入/输出(1=输入,0=输出)
|
||||||
|
> - D₃:端口 C 高 4 位输入/输出(1=输入,0=输出)
|
||||||
|
> - D₂:端口 B 方式选择(0=方式 0,1=方式 1)
|
||||||
|
> - D₁:端口 B 输入/输出(1=输入,0=输出)
|
||||||
|
> - D₀:端口 C 低 4 位输入/输出(1=输入,0=输出)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> [!note] 备注
|
||||||
|
> 以上为试题卷部分(第 1 ~ 3 页)。第 4 ~ 6 页为参考答案("接口与通讯技术"期末考试 A 卷参考答案),已单独收录于本试题册的参考答案文件中。
|
||||||
|
|
||||||
|
## 关联笔记
|
||||||
|
- [[接口与通讯技术/8255A可编程并行接口]]
|
||||||
|
- [[接口与通讯技术/8254定时计数器]]
|
||||||
|
- [[接口与通讯技术/8259A中断控制器]]
|
||||||
@@ -0,0 +1,252 @@
|
|||||||
|
---
|
||||||
|
tags: [试题, 接口与通讯技术]
|
||||||
|
create time: 2026-06-26 22:20
|
||||||
|
---
|
||||||
|
|
||||||
|
# 试题 D — 武汉科技大学《接口与通讯技术》
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
- **课程**:接口与通讯技术(B 卷)
|
||||||
|
- **学校**:武汉科技大学
|
||||||
|
- **题型**:填空题、单项选择题、判断题、简答题、编程题
|
||||||
|
- **知识点**:8255A、8253、8259A、8251A、ADC0809、DAC、串行通信
|
||||||
|
|
||||||
|
> [!tip] 学习建议
|
||||||
|
> 本卷填空和判断题覆盖面广,编程题涉及 8251A 异步通信初始化和 8253 方波产生。建议重点练习 8255A 控制字计算与 8251A 工作方式字编写。
|
||||||
|
|
||||||
|
## 正文
|
||||||
|
|
||||||
|
### 一、填空题(每空1分,共26分)
|
||||||
|
|
||||||
|
1. 已知 8255A 的 A 口地址为 20H,则命令口地址为( **23H** )。
|
||||||
|
|
||||||
|
2. ADC0809 由模/数转换部分和( **多路模拟开关(地址锁存与译码)** )两部分组成。启动转换的信号为( **START 上升沿** )。
|
||||||
|
|
||||||
|
3. 8253 有( **3** )个独立的计数器,每个计数器有( **6** )种工作方式。
|
||||||
|
|
||||||
|
4. 异步通信中一帧数据格式由起始位、数据位、( **奇偶校验位** )和停止位组成。
|
||||||
|
|
||||||
|
5. 8255A 的端口 A 可工作在( **方式 0、方式 1、方式 2** )方式,端口 B 可工作在( **方式 0、方式 1** )方式,端口 C 分为两个( **4** )位口。
|
||||||
|
|
||||||
|
6. 8251A 的工作方式控制字的 D<sub>7</sub>D<sub>6</sub> = 01 表示波特率因子为( **1** ),D<sub>1</sub>D<sub>0</sub> = 11 表示数据位为( **8** )位。
|
||||||
|
|
||||||
|
7. 已知 8255A 的命令口地址为 21H,则 A 口地址为( **20H** ),B 口地址为( **22H** ),C 口地址为( **23H** )。
|
||||||
|
|
||||||
|
8. 8251A 有两个控制字,分别是( **工作方式控制字** )和( **命令控制字** )。当 8251A 硬件复位后,CPU 需要先写入( **工作方式控制字** ),再写入( **命令控制字** )。
|
||||||
|
|
||||||
|
9. 当 8255A 的 A 口工作在方式 1 输入时,C 口的( **PC₃~PC₅** )线作为联络信号。
|
||||||
|
|
||||||
|
10. 8253 的计数器 0 工作在方式 3(方波发生器),若 CLK0 = 1MHz,要求输出频率为 1kHz 的方波,则计数初值为( **1000** )。
|
||||||
|
|
||||||
|
### 二、单项选择题(每小题2分,共26分)
|
||||||
|
|
||||||
|
1. 执行 8086 指令 MOV AL, [BX+SI+100H] 后,AL 的内容是( **C** )。
|
||||||
|
|
||||||
|
A. 100H B. 200H C. 300H D. 400H
|
||||||
|
|
||||||
|
2. 将累加器 AL 的内容乘以 2 的汇编语言指令是( **C** )。
|
||||||
|
|
||||||
|
A. AND AL, 10H B. MUL 2 C. SHL AL, 1 D. ROR AL, 1
|
||||||
|
|
||||||
|
3. 8259A 是一种( **A** )芯片。
|
||||||
|
|
||||||
|
A. 中断控制 B. DMA 控制 C. 定时/计数 D. 并行通信
|
||||||
|
|
||||||
|
4. 8253 某计数器的输入 CLK 频率为 1MHz,输出 OUT 频率为 100Hz,则计数初值为( **B** )。
|
||||||
|
|
||||||
|
A. 1000 B. 10000 C. 100 D. 10
|
||||||
|
|
||||||
|
5. 某串行异步通信的数据帧格式为 1 位起始位、8 位数据位、1 位校验位、2 位停止位,波特率为 2400bps,则每秒最多可传输( **A** )个字符。
|
||||||
|
|
||||||
|
A. 120 B. 200 C. 240 D. 300
|
||||||
|
|
||||||
|
6. 在 8253 的方式控制字中,若 B<sub>1</sub>B<sub>0</sub> = 10,表示选择( **C** )号计数器。
|
||||||
|
|
||||||
|
A. 0 B. 1 C. 2 D. 3
|
||||||
|
|
||||||
|
7. 8253 有 3 种计数脉冲信号输入方式,其中,( **D** )不是其工作方式。
|
||||||
|
|
||||||
|
A. 硬件启动 B. 软件启动 C. 脉冲启动 D. 级联启动
|
||||||
|
|
||||||
|
8. 执行 MOV AL, [2000H] 后,其操作数的寻址方式为( **B** )。
|
||||||
|
|
||||||
|
A. 立即寻址 B. 直接寻址 C. 寄存器间接寻址 D. 基址变址寻址
|
||||||
|
|
||||||
|
9. DAC 可以将( **C** )变为模拟量送至外部设备。
|
||||||
|
|
||||||
|
A. 程序 B. 指令 C. 数据 D. 声音
|
||||||
|
|
||||||
|
10. 8255A 的端口 A 工作在方式 1 输入时,中断允许触发器 INTE 是通过( **A** )来控制的。
|
||||||
|
|
||||||
|
A. PC<sub>4</sub> B. PC<sub>2</sub> C. PC<sub>6</sub> D. PC<sub>0</sub>
|
||||||
|
|
||||||
|
11. 按照串行数据的同步方式,串行通信可分为( **D** )和同步通信两类。
|
||||||
|
|
||||||
|
A. 单工通信 B. 双工通信 C. 半双工通信 D. 异步通信
|
||||||
|
|
||||||
|
12. 8086 CPU 响应中断后,自动将( **A** )压入堆栈。
|
||||||
|
|
||||||
|
A. 标志寄存器和 CS、IP B. CS C. IP D. 标志寄存器
|
||||||
|
|
||||||
|
> [!tip]- 单选题参考答案
|
||||||
|
> 1. **C**(300H,基址变址寻址 + 偏移量,具体取决于存储器内容)
|
||||||
|
> 2. **C**(SHL AL, 1 左移一位相当于乘以 2)
|
||||||
|
> 3. **A**(8259A 是可编程中断控制器)
|
||||||
|
> 4. **B**(计数初值 = 1MHz / 100Hz = 10000)
|
||||||
|
> 5. **A**(每帧 12 位,2400 / 12 = 200 字符/秒)
|
||||||
|
> 6. **C**(B₁B₀ = 10 选择 2 号计数器)
|
||||||
|
> 7. **D**(8253 支持软件启动和硬件启动,级联启动不是其工作方式)
|
||||||
|
> 8. **B**(直接寻址,地址以立即数形式出现在指令中)
|
||||||
|
> 9. **C**(DAC 将数字量变为模拟量)
|
||||||
|
> 10. **A**(INTE_A 由 PC₄ 置位/复位控制)
|
||||||
|
> 11. **D**(串行通信分为异步通信和同步通信)
|
||||||
|
> 12. **A**(8086 响应中断后自动压入标志寄存器、CS 和 IP)
|
||||||
|
|
||||||
|
### 三、判断题(每小题2分,共26分)(正确打√,错误打x)
|
||||||
|
|
||||||
|
1. 8255A 的三个端口都可以通过指令改变其工作方式。( **×** )
|
||||||
|
2. 8251A 通过引脚 RTS 输出低电平,请求外设准备发送数据。( **×** )
|
||||||
|
3. 在 8253 的方式控制字中,若 B<sub>1</sub>B<sub>0</sub> = 11,表示选择 3 号计数器。( **×** )
|
||||||
|
4. 在串行通信中,每个字符的传送都需要起始位和停止位。( **×** )
|
||||||
|
5. 8086 CPU 响应中断后,不需要保存标志寄存器内容。( **√** )
|
||||||
|
6. 8253 的计数器采用递减方式计数。( **√** )
|
||||||
|
7. DMA 方式的数据传送不需要 CPU 介入。( **×** )
|
||||||
|
8. 异步通信中,波特率只取决于发送端,与接收端无关。( **×** )
|
||||||
|
9. 8251A 收到 Break 信号后,向 CPU 发送 Break 中断。( **√** )
|
||||||
|
10. 8259A 在全嵌套方式中,优先级最低的中断源为 IRQ7。( **√** )
|
||||||
|
11. ADC0809 是一种数/模转换芯片。( **×** )
|
||||||
|
12. 8259A 的中断类型号由外设中断源通过数据总线送入。( **×** )
|
||||||
|
13. 8255A 工作在方式 0 时,基本输入/输出需要用联络信号。( **×** )
|
||||||
|
14. DMA 方式的数据传送需要 CPU 执行中断服务程序。( **×** )
|
||||||
|
|
||||||
|
> [!tip]- 判断题参考答案
|
||||||
|
> 1. **×**(只有通过写方式控制字才能改变,且 A 组和 B 组分别控制)
|
||||||
|
> 2. **×**(RTS 是请求发送,用于请求对方准备接收数据)
|
||||||
|
> 3. **×**(8253 只有 3 个计数器(0、1、2),B₁B₀ = 11 用于读回命令,不是选择 3 号计数器)
|
||||||
|
> 4. **×**(同步通信中不需要起始位和停止位)
|
||||||
|
> 5. **√**(8086 响应中断后自动将标志寄存器、CS、IP 压入堆栈,不需要程序保存)
|
||||||
|
> 6. **√**(8253 的计数器采用递减方式计数)
|
||||||
|
> 7. **×**(DMA 方式的数据传送不需要 CPU 逐字节介入,但初始化和结束处理仍需 CPU)
|
||||||
|
> 8. **×**(发送端和接收端必须使用相同的波特率)
|
||||||
|
> 9. **√**(8251A 收到 Break 信号后会产生中断请求)
|
||||||
|
> 10. **√**(8259A 全嵌套方式中 IR0 优先级最高,IRQ7 优先级最低)
|
||||||
|
> 11. **×**(ADC0809 是模/数转换芯片,不是数/模转换芯片)
|
||||||
|
> 12. **×**(8259A 的中断类型号由 ICW2 初始化时设定)
|
||||||
|
> 13. **×**(方式 0 是基本输入/输出,无需联络信号)
|
||||||
|
> 14. **×**(DMA 方式由 DMA 控制器直接控制数据传送,不需要 CPU 执行中断服务程序)
|
||||||
|
|
||||||
|
### 四、简答题(每小题5分,共20分)
|
||||||
|
|
||||||
|
1. 简述 8251A 芯片的主要功能及其在串行通信中的作用。
|
||||||
|
|
||||||
|
**答:** 8251A 是 Intel 公司生产的可编程串行通信接口芯片,主要功能包括:
|
||||||
|
- 支持异步和同步两种通信方式
|
||||||
|
- 实现数据的串/并转换和并/串转换
|
||||||
|
- 可编程选择波特率因子(1、16、64)、数据位长度(5~8 位)、停止位数和校验方式
|
||||||
|
- 具有独立的发送器和接收器,支持全双工通信
|
||||||
|
- 提供 TXRDY(发送准备好)、RXRDY(接收准备好)等状态信号供 CPU 查询或中断使用
|
||||||
|
|
||||||
|
在串行通信中,8251A 作为 CPU 与串行外设之间的桥梁,负责将 CPU 输出的并行数据转换为串行格式发送出去,同时将接收到的串行数据转换为并行格式送入 CPU。
|
||||||
|
|
||||||
|
2. 什么是中断向量表?8086 的中断向量表有什么特点?
|
||||||
|
|
||||||
|
**答:** 中断向量表是存放中断服务程序入口地址的一段连续内存区域。
|
||||||
|
|
||||||
|
8086 中断向量表的特点:
|
||||||
|
- 位于内存最低地址 00000H~003FFH,共 1KB 空间
|
||||||
|
- 可容纳 256 个中断类型(类型号 0~255),每个类型占 4 个字节
|
||||||
|
- 每个表项中低 2 字节存放中断服务程序的偏移地址(IP),高 2 字节存放段地址(CS)
|
||||||
|
- 中断类型号 × 4 = 该中断向量在表中的起始地址
|
||||||
|
- 8086 响应中断时,根据中断类型号自动从向量表中取出入口地址装入 CS:IP
|
||||||
|
|
||||||
|
3. 比较 8253 的 6 种工作方式,说明方式 2 和方式 5 的主要区别。
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
|
||||||
|
| 特性 | 方式 2(频率发生器) | 方式 5(硬件触发选通) |
|
||||||
|
|------|----------------------|------------------------|
|
||||||
|
| 触发方式 | 软件触发(写入初值后自动开始) | 硬件触发(GATE 上升沿启动) |
|
||||||
|
| 输出波形 | 每隔 N 个 CLK 输出 1 个 CLK 宽度的负脉冲 | 触发后输出 1 个 CLK 宽度的负脉冲 |
|
||||||
|
| 自动重装 | 是,计数到 0 后自动重装初值并继续 | 否,单次触发,需再次触发才重新输出 |
|
||||||
|
| 典型应用 | 产生固定频率的连续脉冲(分频器) | 产生单次延迟脉冲(单稳态触发器) |
|
||||||
|
| GATE 作用 | 低电平暂停计数,上升沿重新触发 | 上升沿触发计数 |
|
||||||
|
|
||||||
|
主要区别:方式 2 是连续工作的频率发生器,自动重复输出脉冲;方式 5 是硬件触发的单次脉冲发生器,每次需要 GATE 上升沿触发。
|
||||||
|
|
||||||
|
4. 在 8259A 中,什么是优先级判别?常用的优先级判别方法有哪几种?
|
||||||
|
|
||||||
|
**答:** 优先级判别是指当 8259A 同时收到多个中断请求时,通过内部的优先级判别器(PR)判断哪个中断请求的优先级最高,决定是否向 CPU 发出中断信号。
|
||||||
|
|
||||||
|
常用的优先级判别方法:
|
||||||
|
- **完全嵌套方式(固定优先级)**:IR0 优先级最高,IR7 优先级最低,优先级固定不变
|
||||||
|
- **轮换优先级方式**:又分为自动轮换和指定轮换两种,当前被服务的中断源在服务结束后其优先级自动降为最低,实现各中断源轮流获得服务
|
||||||
|
- **特殊全嵌套方式**:用于 8259A 级联的主片,允许同级中断请求再次中断当前服务程序
|
||||||
|
|
||||||
|
### 五、编程题(共22分)
|
||||||
|
|
||||||
|
1. (10 分)8086 系统中,将 8251A 初始化为异步通信方式,波特率因子为 16,每个字符 8 位数据位、1 位停止位、偶校验,波特率为 2400bps。已知 8251A 的端口地址为 04F0H~04F3H,写出完整的初始化程序。
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
|
||||||
|
工作方式控制字分析:
|
||||||
|
- D<sub>7</sub>D<sub>6</sub> = 01:波特率因子 ×16
|
||||||
|
- D<sub>5</sub>D<sub>4</sub> = 00:不使用同步字符
|
||||||
|
- D<sub>3</sub>D<sub>2</sub> = 11:偶校验
|
||||||
|
- D<sub>1</sub>D<sub>0</sub> = 11:8 位数据位,1 位停止位
|
||||||
|
|
||||||
|
工作方式控制字 = 0100 1111B = 4FH
|
||||||
|
|
||||||
|
命令控制字分析:允许发送和接收,清除出错标志
|
||||||
|
|
||||||
|
命令控制字 = 0001 0101B = 15H
|
||||||
|
|
||||||
|
```asm
|
||||||
|
; 8251A 初始化程序
|
||||||
|
; 端口地址:04F0H(数据口),04F2H(控制口/状态口)
|
||||||
|
|
||||||
|
MOV DX, 04F2H ; 控制口地址
|
||||||
|
MOV AL, 00H ; 先写入 00
|
||||||
|
OUT DX, AL
|
||||||
|
OUT DX, AL ; 连续写 3 次任意值,确保 8251A 复位
|
||||||
|
OUT DX, AL
|
||||||
|
MOV AL, 40H ; 内部复位命令
|
||||||
|
OUT DX, AL
|
||||||
|
|
||||||
|
MOV AL, 4FH ; 工作方式控制字:波特率×16,偶校验,8位数据,1位停止
|
||||||
|
OUT DX, AL
|
||||||
|
|
||||||
|
MOV AL, 15H ; 命令控制字:允许收发,清除错误标志
|
||||||
|
OUT DX, AL
|
||||||
|
```
|
||||||
|
|
||||||
|
2. (12 分)已知 8253 的时钟频率为 1MHz,要产生频率为 1kHz 的方波输出。8253 的端口地址为 20H~23H。
|
||||||
|
(1) 计算计数初值。
|
||||||
|
(2) 写出 8253 的初始化程序(计数器 0 工作在方式 3)。
|
||||||
|
|
||||||
|
**答:**
|
||||||
|
|
||||||
|
**(1)** 计数初值 = CLK 频率 / 输出频率 = 1MHz / 1kHz = 1000 = 03E8H
|
||||||
|
|
||||||
|
**(2)** 控制字分析:计数器 0、先读写低字节再读写高字节、方式 3、二进制计数
|
||||||
|
|
||||||
|
控制字 = 0011 0110B = 36H
|
||||||
|
|
||||||
|
```asm
|
||||||
|
; 8253 初始化程序
|
||||||
|
; 端口地址:20H(计数器 0)、23H(控制口)
|
||||||
|
|
||||||
|
MOV AL, 36H ; 控制字:计数器0,方式3,二进制计数
|
||||||
|
OUT 23H, AL ; 写入控制寄存器
|
||||||
|
|
||||||
|
MOV AX, 03E8H ; 计数初值 = 1000
|
||||||
|
OUT 20H, AL ; 先写低字节
|
||||||
|
MOV AL, AH
|
||||||
|
OUT 20H, AL ; 再写高字节
|
||||||
|
```
|
||||||
|
|
||||||
|
## 关联笔记
|
||||||
|
- [[接口与通讯技术/8255A可编程并行接口]]
|
||||||
|
- [[接口与通讯技术/8254定时计数器]]
|
||||||
|
- [[接口与通讯技术/8259A中断控制器]]
|
||||||
|
- [[接口与通讯技术/8251A串行通信接口]]
|
||||||
Reference in New Issue
Block a user