272 lines
11 KiB
Markdown
272 lines
11 KiB
Markdown
|
|
---
|
|||
|
|
tags: [试题, 接口与通讯技术]
|
|||
|
|
create time: 2026-06-26 22:20
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 试题B
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
武汉科技大学期末考试试卷,考试科目:接口与通讯技术,试卷类型:B卷。本试卷包含填空题、单项选择题、简答题、应用分析题和程序设计题五大题型,满分100分,考试时间120分钟(含附加题)。
|
|||
|
|
|
|||
|
|
## 正文
|
|||
|
|
|
|||
|
|
### 一、填空题(每空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分)
|
|||
|
|
|
|||
|
|
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串行通信接口]]
|