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

383 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
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
---
# 试题 B — 武汉科技大学《接口与通讯技术》
## 概述
- **课程**:接口与通讯技术(B 卷)
- **学校**:武汉科技大学
- **题型**:填空题、单项选择题、简答题、应用分析题、程序设计题
- **知识点**:8255A、8254、8259A、8237A DMA、8251A、RS-232C
> [!tip] 学习建议
> 本卷侧重 DMA 传输方式与 8237A 控制器分析,以及 8254 方波产生程序设计。建议重点掌握 8255A 方式 1 联络信号时序和 BCD/二进制计数初值的换算。
## 正文
### 一、填空题(每空1分,共20分)
1. CPU的数据总线为系统总线中的 与微处理器相连的接口芯片可分为通用接口芯片与 两种。
> [!success]- 答案与解析
> 答案:(1)AB(地址总线) (2)专用接口芯片
>
> 解析:系统总线包括数据总线(DB)、地址总线(AB)和控制总线(CB)。接口芯片按功能分为通用接口芯片(如 8255A)和专用接口芯片(如 8251A 串行接口)。
2. 在CPU的数据总线与系统总线之间必须配有。8286/8287的作用是。
> [!success]- 答案与解析
> 答案:(1)数据缓冲器(或数据总线驱动器) (2)数据缓冲/驱动
>
> 解析:8286/8287 是 Intel 公司生产的总线收发器(数据缓冲器),用于增强数据总线的驱动能力。8286 为同相输出,8287 为反相输出。
3. 一个8254通道占用 个地址端口。
> [!success]- 答案与解析
> 答案:(1)2
>
> 解析:8254 每个计数器通道占用 2 个端口地址(分别用于读/写计数初值的低字节和高字节),加上控制寄存器,3 个通道共需 4 个端口地址。
4. 当Intel 8086访问1MB的存储器空间时,低8位芯片数据总线 与偶地址存储单元连接,高8位芯片数据总线 与奇地址存储单元连接。因此8086访问1MB存储器空间时需要区分。
> [!success]- 答案与解析
> 答案:(1)D7~D0 (2)D15~D8 (3)奇偶地址(奇偶字节)
>
> 解析:8086 采用 16 位数据总线,低 8 位(D7~D0)连接偶地址存储体,高 8 位(D15~D8)连接奇地址存储体。通过 BHE(总线高字节允许)和 A0 信号区分访问奇地址字节、偶地址字节或字。
5. 8255A的内部结构包括数据总线缓冲器、 和。
> [!success]- 答案与解析
> 答案:(1)读/写控制逻辑 (2)A组控制 (3)B组控制
>
> 解析:8255A 内部由四部分组成:数据总线缓冲器(实现 CPU 与 8255A 之间的数据传输)、读/写控制逻辑(控制端口的读写操作)、A 组控制(控制 A 口和 C 口高 4 位)、B 组控制(控制 B 口和 C 口低 4 位)。
6. 8259A有 个初始化命令字, 个操作命令字。
> [!success]- 答案与解析
> 答案:(1)4 (2)3
>
> 解析:8259A 有 4 个初始化命令字(ICW1~ICW4)和 3 个操作命令字(OCW1~OCW3)。ICW 在初始化阶段写入,OCW 在工作过程中写入。
7. 8251A用作异步通信时,通过编程可选择 和 等。
> [!success]- 答案与解析
> 答案:(1)波特率 (2)字符长度 (3)停止位 (4)奇偶校验方式
>
> 解析:8251A 异步通信方式下,方式控制字可设定波特率系数(x1/x16/x64)、字符长度(5~8 位)、停止位(1/1.5/2 位)和奇偶校验方式(奇/偶/无校验)。
8. 8251A的工作方式控制字的 位决定了芯片的工作方式,其中D7D6=00时为同步方式,D7D6=01时为异步方式。
> [!success]- 答案与解析
> 答案:(1)D7D6
>
> 解析:8251A 的方式控制字中 D7D6 位用于选择工作方式:00 为同步方式,01 为异步方式(波特率系数 x1),10 为异步方式(波特率系数 x16),11 为异步方式(波特率系数 x64)。
9. RS-232C采用负逻辑,逻辑"1"对应,逻辑"0"对应。
> [!success]- 答案与解析
> 答案:(1)-3V~-15V (2)+3V~+15V
>
> 解析:RS-232C 标准采用负逻辑,与 TTL 电平相反。逻辑"1"(MARK)为 -3V ~ -15V,逻辑"0"(SPACE)为 +3V ~ +15V。
10. 8255A的A口工作在方式1输入时,其应答联络信号为 和。
> [!success]- 答案与解析
> 答案:(1)STB(选通信号) (2)IBF(输入缓冲器满信号)
>
> 解析:8255A A 口方式 1 输入时使用两个联络信号:STB(Strobe,选通信号)由外设发出,将数据锁存到 A 口输入锁存器;IBF(Input Buffer Full,输入缓冲器满)由 8255A 发出,通知外设数据已被接收。
### 二、单项选择题(每题2分,共20分)
1. 8086/8088响应中断时,会自动压入堆栈的标志位是。
- A. INTR
- B. IF和TF
- C. DF和IF
- D. IF和CF
> [!success]- 答案与解析
> 答案:B
>
> 解析:8086/8088 响应中断时,CPU 自动将 FLAGS、CS 和 IP 压入堆栈,然后清除 IF(中断允许标志)和 TF(单步标志),以禁止中断嵌套和单步执行。
2. 在8086/8088系统中,某存储单元物理地址为22456H,若段基地址为2000H,则段内偏移地址为。
- A. 2456H
- B. 12456H
- C. 02456H
- D. 32456H
> [!success]- 答案与解析
> 答案:A
>
> 解析:物理地址 = 段基地址 x 16 + 偏移地址。偏移地址 = 物理地址 - 段基地址 x 16 = 22456H - 20000H = 2456H。
3. 在DMA传送方式中,每传送一个数据块需要占用 个总线周期。
- A. 1个
- B. 2个
- C. 3个
- D. 4个
> [!success]- 答案与解析
> 答案:B
>
> 解析:DMA 传送一个数据块通常需要两个总线周期:第一个周期从内存读出数据,第二个周期将数据写入 I/O 设备(或反之)。
4. 在8255A的C口位定义/复位命令字中,若要使PC3=1,则命令字为。
- A. 07H
- B. 0FH
- C. 87H
- D. 8FH
> [!success]- 答案与解析
> 答案:A
>
> 解析:C 口按位置位/复位命令字格式为 D7=0, D6D5D4 无关, D3D2D1 选择位号, D0=1 置位/0 复位。PC3 的位号为 011,置 1 则 D0=1,命令字 = 00000111B = 07H。
5. 在8255A工作在方式1输入时,用于数据输入的信号是。
- A. INTR、IBF、STB
- B. STB、IBF、RD
- C. IBF、INTR、RD
- D. INTR、OBF、ACK
> [!success]- 答案与解析
> 答案:B
>
> 解析:8255A 方式 1 输入时,数据输入涉及 STB(外设发选通信号锁存数据)、IBF(8255A 发缓冲器满信号)和 RD(CPU 读信号读取数据)。INTR 用于中断请求,OBF 和 ACK 用于输出方式。
6. 若对8259A进行ICW1写入操作,即对A0=0的端口写入ICW1后,8259A将。
- A. 预置A0=0后写入
- B. 自动判断下一个写入的是ICW2还是ICW3
- C. 需要用OCW来控制
- D. 写入OCW1设置中断屏蔽字
> [!success]- 答案与解析
> 答案:A
>
> 解析:写入 ICW1 后,8259A 进入初始化序列,自动按顺序接收 ICW2、ICW3(若需要)、ICW4(若需要)。写入 ICW1 时 A0=0,后续 ICW2 的 A0=1。8259A 根据 ICW1 中的标志位自动判断是否需要 ICW3 和 ICW4。
7. 在DMA方式下,内存与外设之间的数据传输特点是。
- A. 仅由CPU控制
- B. 仅由DMA控制器控制
- C. 由CPU和DMA控制器共同控制
- D. 数据传输不经过CPU,直接在内存和外设之间进行
> [!success]- 答案与解析
> 答案:D
>
> 解析:DMA(Direct Memory Access)方式的核心特点是数据传输不经过 CPU,直接在内存和 I/O 设备之间进行。CPU 只在传输前初始化 DMA 控制器,传输过程中让出总线控制权,传输完成后由 DMA 控制器通知 CPU。
8. 8251A工作在异步方式时,波特率系数可通过 来设定。
- A. 工作方式寄存器
- B. 命令寄存器
- C. 状态寄存器
- D. 方式选择寄存器
> [!success]- 答案与解析
> 答案:B
>
> 解析:8251A 的波特率系数通过方式控制字(方式选择寄存器)的 D7D6 位设定:00 为同步方式,01 为 x1,10 为 x16,11 为 x64。选项 B(命令寄存器)的表述可能有误,正确应为方式选择寄存器。
9. 下列关于DMA,描述错误的是。
- A. DMA传输时,数据在内存和I/O设备之间直接传送
- B. DMA传输前CPU要初始化DMA控制器
- C. DMA传输完成后CPU要处理中断
- D. DMA传输时CPU不能做其他工作
> [!success]- 答案与解析
> 答案:C
>
> 解析:DMA 传输完成后,DMA 控制器通过中断通知 CPU,但 CPU 不一定需要处理中断(可以查询方式获知传输完成)。DMA 传输时 CPU 让出总线,确实不能做其他工作(在单总线结构中)。选项 D 的描述在某些系统中也不完全正确,因为现代系统可支持总线仲裁让 CPU 和 DMA 交替使用总线。
10. RS-232C中,控制数据流方向的信号是。
- A. RTS
- B. CTS
- C. DTR
- D. DSR
> [!success]- 答案与解析
> 答案:B
>
> 解析:RS-232C 中 RTS(Request To Send)和 CTS(Clear To Send)用于硬件流控制。RTS 由发送方发出请求发送,CTS 由接收方回应允许发送。CTS 信号控制发送方是否可以继续发送数据,从而实现数据流方向控制。DTR 和 DSR 用于设备就绪状态的握手。
### 三、简答题(每题5分,共15分)
1. **简述8255A的A口在方式1输入时的工作过程,包括相关联络信号的含义。**
> [!success]- 答案与解析
> 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的主要功能和工作模式。**
> [!success]- 答案与解析
> 8237A是Intel公司生产的可编程DMA控制器,主要功能包括:
> - 在外设和存储器之间提供高速数据传输通道
> - 支持4个独立的DMA通道
> - 每个通道可独立编程,支持不同的传输参数
> - 支持单字节传输、块传输、请求传输和级联传输等模式
> - 支持存储器到存储器的传输
> - 具有地址自动增减功能
> - 具有优先级仲裁逻辑
3. **在微型计算机系统中,通常采用哪几种I/O端口编址方式?各有何特点?**
> [!success]- 答案与解析
> 微型计算机系统中通常采用两种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分)
1. **(本题10分)** 在微型计算机系统中,8237A的地址线A3~A0与CPU的地址总线A3~A0连接,地址允许信号AEN由译码器输出控制。当前CPU的地址线A9A8A7A6A5=11011,译码器输出为低电平。试回答:
- (1) 8237A各通道DMA请求优先权排列顺序如何?
- (2) 若要禁止所有通道的DMA请求,应如何写入命令字?
- (3) 通道0地址计数器初值为2000H,传送字节数为1000,传送完成后地址计数器值为多少?
> [!success]- 答案与解析
> - (1) 8237A各通道的DMA请求优先权从高到低排列为:通道0 > 通道1 > 通道2 > 通道3。可用编程方式改变为循环优先权方式。
> - (2) 若要禁止所有通道的DMA请求,应向命令寄存器写入控制字,将所有通道的使能位清零(即写入04H~05H禁止通道),同时设置禁止DMA控制位。
> - (3) 通道0地址计数器初值为2000H,每传送一个字节地址自动加1,传送1000个字节后:2000H + 1000 = 2000H + 3E8H = 23E8H。传送完成后地址计数器值为23E8H。
> [!question] 解题思路
> 应用分析题需要理解芯片的工作原理和时序,建议先分析控制字各位的含义,再逐步推导初始化程序。
2. **(本题15分)** 通过地址译码器将8254定时/计数器0通道的CLK0接至1.193182MHz时钟源,要求CLK0分频后产生约100Hz频率的方波。
- (1) 写出控制字,并写出向0通道装入的时间常数(二进制)。
- (2) 设8254口地址为40H~43H,编写初始化程序段。
- (3) 若采用BCD计数方式,时间常数如何装入?写出相应的初始化程序段。
> [!success]- 答案与解析
> - (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 = 1x10000 + 1x1000 + 9x100 + 3x10 + 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花样显示控制。
> [!success]- 答案与解析
> ```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
> [!success]- 答案与解析
> 时钟频率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串行通信接口]]