Files
final-exam/接口与通讯技术/试题册/试题D.md
T

253 lines
13 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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串行通信接口]]