--- 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串行通信接口]]