--- tags: [试题, 接口与通讯技术] create time: 2026-06-26 22:20 --- # 试题 C — 武汉科技大学《接口与通讯技术》 ## 概述 - **课程**:接口与通讯技术(A 卷) - **学校**:武汉科技大学 - **题型**:填空题、单项选择题、判断题、程序设计题、应用题 - **知识点**:8253/8254、8255A、8259A、ISA/EISA 总线、ADC0809、8086 中断系统 > [!tip] 学习建议 > 本卷判断题涉及 ISA/EISA 总线细节,程序设计题覆盖 8253 方波与 255A 端口输出。建议重点理解 8086 中断向量表布局和 8259A 初始化流程。 ## 正文 ### 一、填空(每空 1 分,共 20 分) 1. ISA 总线与 EISA 总线的数据总线宽度分别为( **16** )位和( **32** )位。 2. 16 位 I/O 端口寻址中,I/O 端口地址范围是( **0000H~FFFFH** );其地址线至少需要( **16** )根。若 A₉ = 1,则选中 I/O 端口地址范围为( **200H~3FFH** )。 3. 在 8086 CPU 中,引脚信号( **DT/R** )和( **DEN** )决定了数据在总线上传送的方向。 4. 在 8259A 初始化中,中断请求触发方式有( **边沿** )触发和( **电平** )触发两种方式。 5. 在 8086 的中断向量表中,4 个字节分别存放( **中断服务程序的偏移地址(IP)** )和( **中断服务程序的段地址(CS)** )。 6. 在 EISA 总线的数据传输过程中,若需要插入等待周期,则插入的是( **等待** )周期。 7. 8253 的内部结构包含( **3** )个计数器,每个计数器都有( **1** )条输入线和( **1** )条输出线。 8. 在 8086 CPU 中,地址 8000H:3000H 对应的物理地址为( **83000H** )。 9. 8255 的端口 A 有( **3** )种工作方式,端口 B 有( **2** )种工作方式,端口 C 有( **1** )种工作方式。 10. ISA 总线是 EISA 总线的( **16** )位版本,EISA 总线的地址线为( **32** )位。 ### 二、单项选择题(每题 2 分,共 20 分) 1. 在微型计算机系统中,CPU 访问 I/O 接口的方式有以下哪几种( **A** )。 - A. 独立编址方式和统一编址方式 - B. 独立编址方式 - C. 统一编址方式 - D. 以上都不对 2. 8253 内部计数器是( **B** )。 - A. 8 位计数器 - B. 16 位计数器 - C. 10 位计数器 - D. 20 位计数器 3. 8253 的 3 个计数器中,( **D** )计数器是 16 位的。 - A. 计数器 0 - B. 计数器 1 - C. 计数器 2 - D. 3 个计数器都是 16 位 4. 下列对 8259A 初始化的叙述中,( **C** )是不正确的。 - A. ICW₁ 写入偶地址端口 - B. 8259A 初始化编程必须按顺序写入 ICW₁、ICW₂、ICW₃、ICW₄ - C. ICW₁ 写入奇地址端口 - D. ICW₄ 是中断命令字 5. 8255A 控制字的最高位 D₇ = 1 表示( **A** )。 - A. 方式控制字 - B. 位控制字 - C. 状态控制字 - D. 以上都不对 6. 在 8086 系统中,已知 DS = 2000H,SS = 5000H,SP = 3000H,则堆栈栈顶的物理地址为( **B** )。 - A. 23000H - B. 53000H - C. 35000H - D. 7000H 7. 下列对中断描述错误的是( **D** )。 - A. 单片机中,NMI 的中断请求无法被屏蔽 - B. 单片机中,8 级中断中,IR₀ 的优先级最高 - C. 中断服务结束时,必须执行 EOI 命令来清除 ISR 中相应的位 - D. 8086 系统中地址 0000H~003FH 是非屏蔽中断 8. 在使用 8259A 进行中断控制时,若 CPU 在执行中断服务程序期间,又有新的中断请求到来,则系统响应中断的条件是( **A** )。 - A. 新的中断请求优先级高于正在执行的中断服务程序 - B. 新的中断请求优先级低于正在执行的中断服务程序 - C. 无条件响应 - D. 无条件不响应 9. 8253 方式控制字中某位为 0 时,表示采用( **A** )。 - A. 二进制计数 - B. BCD 码计数 - C. 十进制计数 - D. 16 进制计数 10. 在 EISA 总线中,数据总线的宽度为( **C** )。 - A. 8 位 - B. 16 位 - C. 32 位 - D. 64 位 ### 三、判断题(每题 2 分,共 20 分) 1. 在 8086 CPU 中,当执行 MOV 指令时,会产生总线周期。( ) 2. 8253 的内部计数器是减计数器。( ) 3. 在 EISA 总线中,数据总线的宽度为 16 位。( ) 4. 单片机中,且该中断为非屏蔽中断,NMI 的中断请求无法被屏蔽。( ) 5. 在 8086 中断向量表中,地址 0000H~003FH 是可屏蔽中断,地址 0040H~03FFH 是非屏蔽中断。( ) 6. 8253 内部计数器的输入时钟频率为 1MHz,当计数初值为 10000 时,输出方波频率为 100Hz。( ) 7. 在使用 8259A 进行中断控制时,若 CPU 在执行中断服务程序期间,又有新的中断请求到来,则系统响应中断的条件是新的中断请求优先级高于正在执行的中断服务程序。( ) 8. 在 EISA 总线中,数据总线的宽度为 32 位。( ) 9. 在 8086 CPU 中,当执行 MOV 指令时,不会产生总线周期。( ) 10. 8253 方式控制字的最高位为 D₇,当 D₇ = 1 时,表示采用 BCD 码计数。( ) ### 四、程序设计题(每题 5 分,共 20 分) 1. 在一个数据段中定义了如下字符串,请编程序在字符串中查找第一个 'A' 字符并统计 'A' 的个数。已知字符串首地址为 STRING,字符串长度为 100。 **答:** ```asm DATA SEGMENT STRING DB 'Hello, Assembly language programming...', 0 ; 示例字符串 LEN EQU 100 ; 字符串长度 COUNT DB 0 ; 统计 'A' 的个数 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX LEA SI, STRING ; SI 指向字符串首地址 MOV CX, LEN ; 计数器 = 字符串长度 MOV BL, 0 ; BL 存储 'A' 的出现次数 MOV DL, 'A' ; DL 存储要查找的字符 SCAN: MOV AL, [SI] ; 取当前字符 CMP AL, DL ; 与 'A' 比较 JNE NEXT ; 不相等则跳过 INC BL ; 相等则计数加 1 NEXT: INC SI ; 指向下一个字符 LOOP SCAN ; CX 减 1,未到 0 则继续 MOV COUNT, BL ; 保存统计结果 MOV AH, 4CH INT 21H ; 返回 DOS CODE ENDS END START ``` 2. 用 8253 产生方波,方波频率为 1kHz,已知输入时钟频率为 1.19318MHz,写出初始化程序。端口地址为 40H~43H。 **答:** 计数初值 = 1193180 / 1000 ≈ 1193 = 04A9H 控制字:计数器 0、先低后高、方式 3(方波)、二进制计数 → 36H ```asm MOV AL, 36H ; 控制字:计数器0,方式3,二进制计数 OUT 43H, AL ; 写入控制寄存器 MOV AX, 04A9H ; 计数初值 = 1193 OUT 40H, AL ; 先写低字节 MOV AL, AH OUT 40H, AL ; 再写高字节 ``` 3. 用 8255 的端口 A 输出方波信号(A₀ = 0),要求方波频率为 1kHz,写出初始化程序。已知 8255 端口地址为 60H~63H。 **答:** 8255 控制字:A 口方式 0 输出 → 80H 方波周期 = 1/1kHz = 1ms,高/低电平各 0.5ms。通过软件延时实现。 ```asm ; 8255 初始化 MOV AL, 80H ; 控制字:A口方式0输出 OUT 63H, AL ; 写入控制寄存器 ; 产生方波 WAVE: MOV AL, 01H ; PA0 = 1(高电平) OUT 60H, AL MOV CX, 250 ; 延时 0.5ms(根据时钟频率调整) DELAY1: LOOP DELAY1 MOV AL, 00H ; PA0 = 0(低电平) OUT 60H, AL MOV CX, 250 ; 延时 0.5ms DELAY2: LOOP DELAY2 JMP WAVE ; 循环产生方波 ``` 4. 用 8253 的计数器 0 输出频率为 1kHz 的方波,已知输入时钟频率为 1.19318MHz,写出初始化程序。端口地址为 40H~43H。 **答:** > [!note] 说明 > 本题与第 2 题参数相同,考查 8253 方式 3 方波产生的初始化编程。 计数初值 = 1193180 / 1000 ≈ 1193 = 04A9H 控制字 = 36H(计数器 0、先低后高、方式 3、二进制) ```asm MOV AL, 36H ; 控制字:计数器0,方式3,二进制计数 OUT 43H, AL ; 写入控制寄存器 MOV AX, 04A9H ; 计数初值 = 1193 OUT 40H, AL ; 先写低字节 MOV AL, AH OUT 40H, AL ; 再写高字节 ``` ### 五、应用题(共 20 分) 1. **(5 分)** 某 CPU 通过锁存器与 LED 显示器(共阴极接法)相连,已知锁存器端口地址为 200H,现要求显示数字 '5'(即 7 段码为 6DH),请编写完整的汇编程序。 > [!note] 附注 > 共阴极接法的 7 段码表(LEDSEG)的偏移地址为:数字 0~9 对应的段码依次为 3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。 2. **(5 分)** 已知 8259A 的端口地址为 20H 和 21H,要求: (1)编写初始化程序,设中断向量表中类型号为 80H 的中断入口地址为 3000H:1000H。 (2)编写中断服务程序(中断服务程序入口地址为 INT80H)。 3. **(10 分)** 在 8086 CPU 的系统中,利用 8255A 的端口 A 输出矩形波,要求在端口 A 的 PA₀ 产生矩形波。 > [!info] 波形参数 > 高电平持续时间为 5ms,低电平持续时间为 3ms。 已知 8255A 的端口地址为 60H~63H,8255A 的时钟频率为 1MHz。 要求: (1)编写 8255A 的初始化程序。(4 分) (2)编写产生矩形波的程序。(6 分) > [!info] 8255A 控制字格式 > - D₇:1 为方式控制字,0 为位控字 > - D₆D₅:端口 A 方式选择(00=方式 0,01=方式 1,10=方式 2) > - D₄:端口 A 输入/输出(1=输入,0=输出) > - D₃:端口 C 高 4 位输入/输出(1=输入,0=输出) > - D₂:端口 B 方式选择(0=方式 0,1=方式 1) > - D₁:端口 B 输入/输出(1=输入,0=输出) > - D₀:端口 C 低 4 位输入/输出(1=输入,0=输出) --- > [!note] 备注 > 以上为试题卷部分(第 1 ~ 3 页)。第 4 ~ 6 页为参考答案("接口与通讯技术"期末考试 A 卷参考答案),已单独收录于本试题册的参考答案文件中。 ## 关联笔记 - [[接口与通讯技术/8255A可编程并行接口]] - [[接口与通讯技术/8254定时计数器]] - [[接口与通讯技术/8259A中断控制器]]