253 lines
13 KiB
Markdown
253 lines
13 KiB
Markdown
---
|
||
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串行通信接口]]
|