11 KiB
tags, create time
| 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分)
-
CPU的数据总线为系统总线中的 [AB] 与微处理器相连的接口芯片可分为通用接口芯片与 [专用接口芯片] 两种。
-
在CPU的数据总线与系统总线之间必须配有 [数据缓冲器(或数据总线驱动器)]。8286/8287的作用是 [数据缓冲/驱动]。
-
一个8254通道占用 [2] 个地址端口。
-
当Intel 8086访问1MB的存储器空间时,低8位芯片数据总线 [D7~D0] 与偶地址存储单元连接,高8位芯片数据总线 [D15~D8] 与奇地址存储单元连接。因此8086访问1MB存储器空间时需要区分 [奇偶地址(奇偶字节)]。
-
8255A的内部结构包括数据总线缓冲器、 [读/写控制逻辑]、 [A组控制] 和 [B组控制]。
-
8259A有 [4] 个初始化命令字, [3] 个操作命令字。
-
8251A用作异步通信时,通过编程可选择 [波特率]、 [字符长度]、 [停止位] 和 [奇偶校验方式] 等。
-
8251A的工作方式控制字的 [D7D6] 位决定了芯片的工作方式,其中D7D6=00时为同步方式,D7D6=01时为异步方式。
-
RS-232C采用负逻辑,逻辑"1"对应 [-3V~-15V],逻辑"0"对应 [+3V~+15V]。
-
8255A的A口工作在方式1输入时,其应答联络信号为 [STB(选通信号)] 和 [IBF(输入缓冲器满信号)]。
二、单项选择题(每题2分,共20分)
-
8086/8088响应中断时,会自动压入堆栈的标志位是 [B]。
- A. INTR
- B. IF和TF
- C. DF和IF
- D. IF和CF
-
在8086/8088系统中,某存储单元物理地址为22456H,若段基地址为2000H,则段内偏移地址为 [A]。
- A. 2456H
- B. 12456H
- C. 02456H
- D. 32456H
-
在DMA传送方式中,每传送一个数据块需要占用 [B] 个总线周期。
- A. 1个
- B. 2个
- C. 3个
- D. 4个
-
在8255A的C口位定义/复位命令字中,若要使PC3=1,则命令字为 [A]。
- A. 07H
- B. 0FH
- C. 87H
- D. 8FH
-
在8255A工作在方式1输入时,用于数据输入的信号是 [B]。
- A. INTR、IBF、STB
- B. STB、IBF、RD
- C. IBF、INTR、RD
- D. INTR、OBF、ACK
-
若对8259A进行ICW1写入操作,即对A0=0的端口写入ICW1后,8259A将 [A]。
- A. 预置A0=0后写入
- B. 自动判断下一个写入的是ICW2还是ICW3
- C. 需要用OCW来控制
- D. 写入OCW1设置中断屏蔽字
-
在DMA方式下,内存与外设之间的数据传输特点是 [D]。
- A. 仅由CPU控制
- B. 仅由DMA控制器控制
- C. 由CPU和DMA控制器共同控制
- D. 数据传输不经过CPU,直接在内存和外设之间进行
-
8251A工作在异步方式时,波特率系数可通过 [B] 来设定。
- A. 工作方式寄存器
- B. 命令寄存器
- C. 状态寄存器
- D. 方式选择寄存器
-
下列关于DMA,描述错误的是 [C]。
- A. DMA传输时,数据在内存和I/O设备之间直接传送
- B. DMA传输前CPU要初始化DMA控制器
- C. DMA传输完成后CPU要处理中断
- D. DMA传输时CPU不能做其他工作
-
RS-232C中,控制数据流方向的信号是 [B]。
- A. RTS
- B. CTS
- C. DTR
- D. DSR
三、简答题(每题5分,共15分)
-
简述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变低,准备接收下一个数据。
-
简述DMA控制器8237A的主要功能和工作模式。
答: 8237A是Intel公司生产的可编程DMA控制器,主要功能包括:
- 在外设和存储器之间提供高速数据传输通道
- 支持4个独立的DMA通道
- 每个通道可独立编程,支持不同的传输参数
- 支持单字节传输、块传输、请求传输和级联传输等模式
- 支持存储器到存储器的传输
- 具有地址自动增减功能
- 具有优先级仲裁逻辑
-
在微型计算机系统中,通常采用哪几种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] 解题思路 应用分析题需要理解芯片的工作原理和时序,建议先分析控制字各位的含义,再逐步推导初始化程序。
-
(本题10分) 在微型计算机系统中,8237A的地址线A3
A0与CPU的地址总线A3A0连接,地址允许信号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。
-
(本题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) 初始化程序段(二进制方式):
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
初始化程序段:
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分)
-
(本题10分) 用8255A的A口控制LED显示器循环显示8个花样灯显示方式,要求:
已知8255A控制字口地址为8006H,各口地址分别为:8000H(A口)、8002H(B口)、8004H(C口)、8006H(控制口)。
编写程序段实现8255A初始化及LED花样显示控制。
答:
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 -
(本题10分) 编写利用8253/8254产生方波的程序段。要求:
- 系统时钟频率为1MHz
- 通过8253/8254通道0产生1kHz的方波
- 8253/8254控制口地址为4006H,通道0地址为4000H
答:
时钟频率1MHz,要产生1kHz方波,需要分频系数 = 1000000 / 1000 = 1000
选用方式3(方波发生器),二进制计数,先读写低字节再读写高字节。
控制字 = 00110110B = 36H
时间常数 = 1000 = 03E8H
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 ; 再写高字节