From a84ae94f54372549527f92043b6a0600d6ce60fe Mon Sep 17 00:00:00 2001 From: wonder Date: Fri, 26 Jun 2026 22:45:54 +0800 Subject: [PATCH] vault backup: 2026-06-26 22:45:54 --- 接口与通讯技术/试题册/index.md | 54 +++++++++ 接口与通讯技术/试题册/试题A.md | 21 +++- 接口与通讯技术/试题册/试题B.md | 14 ++- 接口与通讯技术/试题册/试题C.md | 120 +++++++++++++++++- 接口与通讯技术/试题册/试题D.md | 214 ++++++++++++++++++++++++++------- 5 files changed, 373 insertions(+), 50 deletions(-) create mode 100644 接口与通讯技术/试题册/index.md diff --git a/接口与通讯技术/试题册/index.md b/接口与通讯技术/试题册/index.md new file mode 100644 index 0000000..59a33ab --- /dev/null +++ b/接口与通讯技术/试题册/index.md @@ -0,0 +1,54 @@ +--- +tags: + - 接口与通讯技术 + - 试题册 + - 索引 +create time: 2026-06-26 22:20 +--- + +# 接口与通讯技术试题册索引 + +## 概述 + +本文档为武昌首义学院及武汉科技大学「接口与通讯技术」课程历年试题合集索引。每份试题包含完整题目及参考答案,涵盖填空、选择、判断、简答、应用分析、程序设计等题型。 + +> [!tip] 使用建议 +> 建议先通读题目尝试作答,再对照答案检查。重点关注 **8255A 控制字计算** 和 **8253/8254 初始化编程** 两类高频综合题。 + +## 试题目录 + +| 序号 | 试卷 | 学校 | 题型概要 | +|:----:|------|------|----------| +| 1 | [[试题A]] | 武昌首义学院 | 填空 + 单选 + 简答 + 综合应用设计 | +| 2 | [[试题B]] | 武汉科技大学 | 填空 + 单选 + 简答 + 应用分析 + 程序设计 | +| 3 | [[试题C]] | 武汉科技大学 | 填空 + 单选 + 判断 + 程序设计 + 应用题 | +| 4 | [[试题D]] | 武汉科技大学 | 填空 + 单选 + 判断 + 简答 + 编程题 | + +## 知识点分布 + +```mermaid +quadrantChart + title "试题知识点覆盖" + x-axis "低频" --> "高频" + y-axis "简单" --> "困难" + quadrant-1 "高难度高频" + quadrant-2 "高难度低频" + quadrant-3 "低难度低频" + quadrant-4 "低难度高频" + "8255A 并行接口": [0.90, 0.65] + "8253/8254 定时器": [0.85, 0.70] + "8259A 中断控制": [0.80, 0.75] + "8251A 串行通信": [0.65, 0.60] + "ADC0809/DAC0832": [0.55, 0.50] + "ISA/EISA 总线": [0.40, 0.30] + "DMA 8237A": [0.35, 0.65] + "8086 CPU 基础": [0.70, 0.40] + "RS-232C 标准": [0.45, 0.35] + "初始化编程综合": [0.75, 0.85] +``` + +## 关联笔记 +- [[接口与通讯技术/8255A可编程并行接口]] +- [[接口与通讯技术/8254定时计数器]] +- [[接口与通讯技术/8259A中断控制器]] +- [[接口与通讯技术/8251A串行通信接口]] diff --git a/接口与通讯技术/试题册/试题A.md b/接口与通讯技术/试题册/试题A.md index 5a01a4a..04954a0 100644 --- a/接口与通讯技术/试题册/试题A.md +++ b/接口与通讯技术/试题册/试题A.md @@ -3,10 +3,17 @@ tags: [试题, 接口与通讯技术] create time: 2026-06-26 22:20 --- -# 试题A +# 试题 A — 武汉科技大学《接口与通讯技术》 ## 概述 -武昌首义学院 "接口与通讯技术" 期末考试试卷 A。本试卷包含填空题、单项选择题、简答题和综合应用设计题四大题型,涵盖 8255、8253/8254、8259A、8251 等可编程接口芯片以及 ADC0809、DAC0832 等 A/D 与 D/A 转换器的相关知识。 + +- **课程**:接口与通讯技术(A 卷) +- **学校**:武汉科技大学 +- **题型**:填空题、单项选择题、简答题、综合应用设计题 +- **知识点**:8255A、8253/8254、8259A、8251A、ADC0809、DAC0832、RS-232C + +> [!tip] 学习建议 +> 本卷综合应用题侧重 8254 定时编程与 ADC0809 查询采样流程设计,建议重点练习可编程芯片的初始化程序编写及控制字计算。 ## 正文 @@ -178,7 +185,7 @@ create time: 2026-06-26 22:20 (2)若要在 OUT 端输出频率为 2000Hz 的信号,试编写 8254 初始化程序片段。 (4 分) -``` +```asm ; 假设 8254 端口地址为 300H ~ 303H ; CLK 输入频率为 2MHz,要求 OUT 输出 2000Hz ; 计数初值 = 2MHz / 2000Hz = 1000 @@ -213,7 +220,7 @@ $$ (2)写出初始化 8254 的程序片段。 (4 分) -``` +```asm ; 8254 端口地址 300H ~ 303H,CLK0 = 2MHz ; 要求 OUT0 = 640KHz,计数初值 = 3 @@ -235,3 +242,9 @@ OUT DX, AL > [!note] 备注 > 以上为试题卷部分(第 1 ~ 4 页)。第 5 ~ 7 页为参考答案,已单独收录于试卷文件的参考答案部分。 + +## 关联笔记 +- [[接口与通讯技术/8255A可编程并行接口]] +- [[接口与通讯技术/8254定时计数器]] +- [[接口与通讯技术/8259A中断控制器]] +- [[接口与通讯技术/8251A串行通信接口]] diff --git a/接口与通讯技术/试题册/试题B.md b/接口与通讯技术/试题册/试题B.md index 3224a4a..48ca2eb 100644 --- a/接口与通讯技术/试题册/试题B.md +++ b/接口与通讯技术/试题册/试题B.md @@ -3,10 +3,17 @@ tags: [试题, 接口与通讯技术] create time: 2026-06-26 22:20 --- -# 试题B +# 试题 B — 武汉科技大学《接口与通讯技术》 ## 概述 -武汉科技大学期末考试试卷,考试科目:接口与通讯技术,试卷类型:B卷。本试卷包含填空题、单项选择题、简答题、应用分析题和程序设计题五大题型,满分100分,考试时间120分钟(含附加题)。 + +- **课程**:接口与通讯技术(B 卷) +- **学校**:武汉科技大学 +- **题型**:填空题、单项选择题、简答题、应用分析题、程序设计题 +- **知识点**:8255A、8254、8259A、8237A DMA、8251A、RS-232C + +> [!tip] 学习建议 +> 本卷侧重 DMA 传输方式与 8237A 控制器分析,以及 8254 方波产生程序设计。建议重点掌握 8255A 方式 1 联络信号时序和 BCD/二进制计数初值的换算。 ## 正文 @@ -125,6 +132,9 @@ create time: 2026-06-26 22:20 ### 四、应用分析题(共25分) +> [!question] 解题思路 +> 应用分析题需要理解芯片的工作原理和时序,建议先分析控制字各位的含义,再逐步推导初始化程序。 + 1. **(本题10分)** 在微型计算机系统中,8237A的地址线A3~A0与CPU的地址总线A3~A0连接,地址允许信号AEN由译码器输出控制。当前CPU的地址线A9A8A7A6A5=11011,译码器输出为低电平。试回答: - (1) 8237A各通道DMA请求优先权排列顺序如何? - (2) 若要禁止所有通道的DMA请求,应如何写入命令字? diff --git a/接口与通讯技术/试题册/试题C.md b/接口与通讯技术/试题册/试题C.md index 096d760..e5ea0c2 100644 --- a/接口与通讯技术/试题册/试题C.md +++ b/接口与通讯技术/试题册/试题C.md @@ -3,10 +3,17 @@ tags: [试题, 接口与通讯技术] create time: 2026-06-26 22:20 --- -# 试题C +# 试题 C — 武汉科技大学《接口与通讯技术》 ## 概述 -武汉科技大学 "接口与通讯技术" 期末考试试卷(试卷类型 A)。本试卷包含填空题、单项选择题、判断题、程序设计题和应用题五大题型,涵盖 8253/8254、8255、8259A 等可编程接口芯片、8086 CPU 基础知识以及 A/D 转换(ADC0809)等内容。 + +- **课程**:接口与通讯技术(A 卷) +- **学校**:武汉科技大学 +- **题型**:填空题、单项选择题、判断题、程序设计题、应用题 +- **知识点**:8253/8254、8255A、8259A、ISA/EISA 总线、ADC0809、8086 中断系统 + +> [!tip] 学习建议 +> 本卷判断题涉及 ISA/EISA 总线细节,程序设计题覆盖 8253 方波与 255A 端口输出。建议重点理解 8086 中断向量表布局和 8259A 初始化流程。 ## 正文 @@ -130,12 +137,116 @@ create time: 2026-06-26 22: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),请编写完整的汇编程序。 @@ -175,3 +286,8 @@ create time: 2026-06-26 22:20 > [!note] 备注 > 以上为试题卷部分(第 1 ~ 3 页)。第 4 ~ 6 页为参考答案("接口与通讯技术"期末考试 A 卷参考答案),已单独收录于本试题册的参考答案文件中。 + +## 关联笔记 +- [[接口与通讯技术/8255A可编程并行接口]] +- [[接口与通讯技术/8254定时计数器]] +- [[接口与通讯技术/8259A中断控制器]] diff --git a/接口与通讯技术/试题册/试题D.md b/接口与通讯技术/试题册/试题D.md index 397fcec..df07f2e 100644 --- a/接口与通讯技术/试题册/试题D.md +++ b/接口与通讯技术/试题册/试题D.md @@ -3,120 +3,250 @@ tags: [试题, 接口与通讯技术] create time: 2026-06-26 22:20 --- -# 试题D +# 试题 D — 武汉科技大学《接口与通讯技术》 ## 概述 -"接口与通讯技术"期末考试试卷(B卷),适用于计算机及相关专业,考试形式为闭卷笔试。 + +- **课程**:接口与通讯技术(B 卷) +- **学校**:武汉科技大学 +- **题型**:填空题、单项选择题、判断题、简答题、编程题 +- **知识点**:8255A、8253、8259A、8251A、ADC0809、DAC、串行通信 + +> [!tip] 学习建议 +> 本卷填空和判断题覆盖面广,编程题涉及 8251A 异步通信初始化和 8253 方波产生。建议重点练习 8255A 控制字计算与 8251A 工作方式字编写。 ## 正文 -课程名称:接口与通讯技术  专业年级: -学号:          姓名: -试卷类型:A 卷( )B 卷(√)C 卷( )考试时间:120 分钟 - ### 一、填空题(每空1分,共26分) -1. 已知 8255A 的 A 口地址为 20H,则命令口地址为( )。 +1. 已知 8255A 的 A 口地址为 20H,则命令口地址为( **23H** )。 -2. ADC0809 由模/数转换部分和( )两部分组成。启动转换的信号为( )。 +2. ADC0809 由模/数转换部分和( **多路模拟开关(地址锁存与译码)** )两部分组成。启动转换的信号为( **START 上升沿** )。 -3. 8253 有( )个独立的计数器,每个计数器有( )种工作方式。 +3. 8253 有( **3** )个独立的计数器,每个计数器有( **6** )种工作方式。 -4. 异步通信中一帧数据格式由起始位、数据位、( )和停止位组成。 +4. 异步通信中一帧数据格式由起始位、数据位、( **奇偶校验位** )和停止位组成。 -5. 8255A 的端口 A 可工作在( )方式,端口 B 可工作在( )方式,端口 C 分为两个( )位口。 +5. 8255A 的端口 A 可工作在( **方式 0、方式 1、方式 2** )方式,端口 B 可工作在( **方式 0、方式 1** )方式,端口 C 分为两个( **4** )位口。 -6. 8251A 的工作方式控制字的 D7D6 = 01 表示波特率因子为( ),D1D0 = 11 表示数据位为( )位。 +6. 8251A 的工作方式控制字的 D7D6 = 01 表示波特率因子为( **1** ),D1D0 = 11 表示数据位为( **8** )位。 -7. 已知 8255A 的命令口地址为 21H,则 A 口地址为( ),B 口地址为( ),C 口地址为( )。 +7. 已知 8255A 的命令口地址为 21H,则 A 口地址为( **20H** ),B 口地址为( **22H** ),C 口地址为( **23H** )。 -8. 8251A 有两个控制字,分别是( )和( )。当 8251A 硬件复位后,CPU 需要先写入( ),再写入( )。 +8. 8251A 有两个控制字,分别是( **工作方式控制字** )和( **命令控制字** )。当 8251A 硬件复位后,CPU 需要先写入( **工作方式控制字** ),再写入( **命令控制字** )。 -9. 当 8255A 的 A 口工作在方式 1 输入时,C 口的( )线作为联络信号。 +9. 当 8255A 的 A 口工作在方式 1 输入时,C 口的( **PC₃~PC₅** )线作为联络信号。 -10. 8253 的计数器 0 工作在方式 3(方波发生器),若 CLK0 = 1MHz,要求输出频率为 1kHz 的方波,则计数初值为( )。 +10. 8253 的计数器 0 工作在方式 3(方波发生器),若 CLK0 = 1MHz,要求输出频率为 1kHz 的方波,则计数初值为( **1000** )。 ### 二、单项选择题(每小题2分,共26分) -1. 执行 8086 指令 MOV AL, [BX+SI+100H] 后,AL 的内容是( )。 +1. 执行 8086 指令 MOV AL, [BX+SI+100H] 后,AL 的内容是( **C** )。 A. 100H  B. 200H  C. 300H  D. 400H -2. 将累加器 AL 的内容乘以 2 的汇编语言指令是( )。 +2. 将累加器 AL 的内容乘以 2 的汇编语言指令是( **C** )。 A. AND AL, 10H  B. MUL 2  C. SHL AL, 1  D. ROR AL, 1 -3. 8259A 是一种( )芯片。 +3. 8259A 是一种( **A** )芯片。 A. 中断控制  B. DMA 控制  C. 定时/计数  D. 并行通信 -4. 8253 某计数器的输入 CLK 频率为 1MHz,输出 OUT 频率为 100Hz,则计数初值为( )。 +4. 8253 某计数器的输入 CLK 频率为 1MHz,输出 OUT 频率为 100Hz,则计数初值为( **B** )。 A. 1000  B. 10000  C. 100  D. 10 -5. 某串行异步通信的数据帧格式为 1 位起始位、8 位数据位、1 位校验位、2 位停止位,波特率为 2400bps,则每秒最多可传输( )个字符。 +5. 某串行异步通信的数据帧格式为 1 位起始位、8 位数据位、1 位校验位、2 位停止位,波特率为 2400bps,则每秒最多可传输( **A** )个字符。 A. 120  B. 200  C. 240  D. 300 -6. 在 8253 的方式控制字中,若 B1B0 = 10,表示选择( )号计数器。 +6. 在 8253 的方式控制字中,若 B1B0 = 10,表示选择( **C** )号计数器。 A. 0  B. 1  C. 2  D. 3 -7. 8253 有 3 种计数脉冲信号输入方式,其中,( )不是其工作方式。 +7. 8253 有 3 种计数脉冲信号输入方式,其中,( **D** )不是其工作方式。 A. 硬件启动  B. 软件启动  C. 脉冲启动  D. 级联启动 -8. 执行 MOV AL, [2000H] 后,其操作数的寻址方式为( )。 +8. 执行 MOV AL, [2000H] 后,其操作数的寻址方式为( **B** )。 A. 立即寻址  B. 直接寻址  C. 寄存器间接寻址  D. 基址变址寻址 -9. DAC 可以将( )变为模拟量送至外部设备。 +9. DAC 可以将( **C** )变为模拟量送至外部设备。 A. 程序  B. 指令  C. 数据  D. 声音 -10. 8255A 的端口 A 工作在方式 1 输入时,中断允许触发器 INTE 是通过( )来控制的。 +10. 8255A 的端口 A 工作在方式 1 输入时,中断允许触发器 INTE 是通过( **A** )来控制的。 A. PC4  B. PC2  C. PC6  D. PC0 -11. 按照串行数据的同步方式,串行通信可分为( )和同步通信两类。 +11. 按照串行数据的同步方式,串行通信可分为( **D** )和同步通信两类。 A. 单工通信  B. 双工通信  C. 半双工通信  D. 异步通信 -12. 8086 CPU 响应中断后,自动将( )压入堆栈。 +12. 8086 CPU 响应中断后,自动将( **A** )压入堆栈。 A. 标志寄存器和 CS、IP  B. CS  C. IP  D. 标志寄存器 +> [!tip]- 单选题参考答案 +> 1. **C**(300H,基址变址寻址 + 偏移量,具体取决于存储器内容) +> 2. **C**(SHL AL, 1 左移一位相当于乘以 2) +> 3. **A**(8259A 是可编程中断控制器) +> 4. **B**(计数初值 = 1MHz / 100Hz = 10000) +> 5. **A**(每帧 12 位,2400 / 12 = 200 字符/秒) +> 6. **C**(B₁B₀ = 10 选择 2 号计数器) +> 7. **D**(8253 支持软件启动和硬件启动,级联启动不是其工作方式) +> 8. **B**(直接寻址,地址以立即数形式出现在指令中) +> 9. **C**(DAC 将数字量变为模拟量) +> 10. **A**(INTE_A 由 PC₄ 置位/复位控制) +> 11. **D**(串行通信分为异步通信和同步通信) +> 12. **A**(8086 响应中断后自动压入标志寄存器、CS 和 IP) + ### 三、判断题(每小题2分,共26分)(正确打√,错误打x) -1. 8255A 的三个端口都可以通过指令改变其工作方式。( ) -2. 8251A 通过引脚 RTS 输出低电平,请求外设准备发送数据。( ) -3. 在 8253 的方式控制字中,若 B1B0 = 11,表示选择 3 号计数器。( ) -4. 在串行通信中,每个字符的传送都需要起始位和停止位。( ) -5. 8086 CPU 响应中断后,不需要保存标志寄存器内容。( ) -6. 8253 的计数器采用递减方式计数。( ) -7. DMA 方式的数据传送不需要 CPU 介入。( ) -8. 异步通信中,波特率只取决于发送端,与接收端无关。( ) -9. 8251A 收到 Break 信号后,向 CPU 发送 Break 中断。( ) -10. 8259A 在全嵌套方式中,优先级最低的中断源为 IRQ7。( ) -11. ADC0809 是一种数/模转换芯片。( ) -12. 8259A 的中断类型号由外设中断源通过数据总线送入。( ) -13. 8255A 工作在方式 0 时,基本输入/输出需要用联络信号。( ) -14. DMA 方式的数据传送需要 CPU 执行中断服务程序。( ) +1. 8255A 的三个端口都可以通过指令改变其工作方式。( **×** ) +2. 8251A 通过引脚 RTS 输出低电平,请求外设准备发送数据。( **×** ) +3. 在 8253 的方式控制字中,若 B1B0 = 11,表示选择 3 号计数器。( **×** ) +4. 在串行通信中,每个字符的传送都需要起始位和停止位。( **×** ) +5. 8086 CPU 响应中断后,不需要保存标志寄存器内容。( **√** ) +6. 8253 的计数器采用递减方式计数。( **√** ) +7. DMA 方式的数据传送不需要 CPU 介入。( **×** ) +8. 异步通信中,波特率只取决于发送端,与接收端无关。( **×** ) +9. 8251A 收到 Break 信号后,向 CPU 发送 Break 中断。( **√** ) +10. 8259A 在全嵌套方式中,优先级最低的中断源为 IRQ7。( **√** ) +11. ADC0809 是一种数/模转换芯片。( **×** ) +12. 8259A 的中断类型号由外设中断源通过数据总线送入。( **×** ) +13. 8255A 工作在方式 0 时,基本输入/输出需要用联络信号。( **×** ) +14. DMA 方式的数据传送需要 CPU 执行中断服务程序。( **×** ) + +> [!tip]- 判断题参考答案 +> 1. **×**(只有通过写方式控制字才能改变,且 A 组和 B 组分别控制) +> 2. **×**(RTS 是请求发送,用于请求对方准备接收数据) +> 3. **×**(8253 只有 3 个计数器(0、1、2),B₁B₀ = 11 用于读回命令,不是选择 3 号计数器) +> 4. **×**(同步通信中不需要起始位和停止位) +> 5. **√**(8086 响应中断后自动将标志寄存器、CS、IP 压入堆栈,不需要程序保存) +> 6. **√**(8253 的计数器采用递减方式计数) +> 7. **×**(DMA 方式的数据传送不需要 CPU 逐字节介入,但初始化和结束处理仍需 CPU) +> 8. **×**(发送端和接收端必须使用相同的波特率) +> 9. **√**(8251A 收到 Break 信号后会产生中断请求) +> 10. **√**(8259A 全嵌套方式中 IR0 优先级最高,IRQ7 优先级最低) +> 11. **×**(ADC0809 是模/数转换芯片,不是数/模转换芯片) +> 12. **×**(8259A 的中断类型号由 ICW2 初始化时设定) +> 13. **×**(方式 0 是基本输入/输出,无需联络信号) +> 14. **×**(DMA 方式由 DMA 控制器直接控制数据传送,不需要 CPU 执行中断服务程序) ### 四、简答题(每小题5分,共20分) 1. 简述 8251A 芯片的主要功能及其在串行通信中的作用。 + **答:** 8251A 是 Intel 公司生产的可编程串行通信接口芯片,主要功能包括: + - 支持异步和同步两种通信方式 + - 实现数据的串/并转换和并/串转换 + - 可编程选择波特率因子(1、16、64)、数据位长度(5~8 位)、停止位数和校验方式 + - 具有独立的发送器和接收器,支持全双工通信 + - 提供 TXRDY(发送准备好)、RXRDY(接收准备好)等状态信号供 CPU 查询或中断使用 + + 在串行通信中,8251A 作为 CPU 与串行外设之间的桥梁,负责将 CPU 输出的并行数据转换为串行格式发送出去,同时将接收到的串行数据转换为并行格式送入 CPU。 + 2. 什么是中断向量表?8086 的中断向量表有什么特点? + **答:** 中断向量表是存放中断服务程序入口地址的一段连续内存区域。 + + 8086 中断向量表的特点: + - 位于内存最低地址 00000H~003FFH,共 1KB 空间 + - 可容纳 256 个中断类型(类型号 0~255),每个类型占 4 个字节 + - 每个表项中低 2 字节存放中断服务程序的偏移地址(IP),高 2 字节存放段地址(CS) + - 中断类型号 × 4 = 该中断向量在表中的起始地址 + - 8086 响应中断时,根据中断类型号自动从向量表中取出入口地址装入 CS:IP + 3. 比较 8253 的 6 种工作方式,说明方式 2 和方式 5 的主要区别。 + **答:** + + | 特性 | 方式 2(频率发生器) | 方式 5(硬件触发选通) | + |------|----------------------|------------------------| + | 触发方式 | 软件触发(写入初值后自动开始) | 硬件触发(GATE 上升沿启动) | + | 输出波形 | 每隔 N 个 CLK 输出 1 个 CLK 宽度的负脉冲 | 触发后输出 1 个 CLK 宽度的负脉冲 | + | 自动重装 | 是,计数到 0 后自动重装初值并继续 | 否,单次触发,需再次触发才重新输出 | + | 典型应用 | 产生固定频率的连续脉冲(分频器) | 产生单次延迟脉冲(单稳态触发器) | + | GATE 作用 | 低电平暂停计数,上升沿重新触发 | 上升沿触发计数 | + + 主要区别:方式 2 是连续工作的频率发生器,自动重复输出脉冲;方式 5 是硬件触发的单次脉冲发生器,每次需要 GATE 上升沿触发。 + 4. 在 8259A 中,什么是优先级判别?常用的优先级判别方法有哪几种? + **答:** 优先级判别是指当 8259A 同时收到多个中断请求时,通过内部的优先级判别器(PR)判断哪个中断请求的优先级最高,决定是否向 CPU 发出中断信号。 + + 常用的优先级判别方法: + - **完全嵌套方式(固定优先级)**:IR0 优先级最高,IR7 优先级最低,优先级固定不变 + - **轮换优先级方式**:又分为自动轮换和指定轮换两种,当前被服务的中断源在服务结束后其优先级自动降为最低,实现各中断源轮流获得服务 + - **特殊全嵌套方式**:用于 8259A 级联的主片,允许同级中断请求再次中断当前服务程序 + ### 五、编程题(共22分) 1. (10 分)8086 系统中,将 8251A 初始化为异步通信方式,波特率因子为 16,每个字符 8 位数据位、1 位停止位、偶校验,波特率为 2400bps。已知 8251A 的端口地址为 04F0H~04F3H,写出完整的初始化程序。 + **答:** + + 工作方式控制字分析: + - D7D6 = 01:波特率因子 ×16 + - D5D4 = 00:不使用同步字符 + - D3D2 = 11:偶校验 + - D1D0 = 11:8 位数据位,1 位停止位 + + 工作方式控制字 = 0100 1111B = 4FH + + 命令控制字分析:允许发送和接收,清除出错标志 + + 命令控制字 = 0001 0101B = 15H + + ```asm + ; 8251A 初始化程序 + ; 端口地址:04F0H(数据口),04F2H(控制口/状态口) + + MOV DX, 04F2H ; 控制口地址 + MOV AL, 00H ; 先写入 00 + OUT DX, AL + OUT DX, AL ; 连续写 3 次任意值,确保 8251A 复位 + OUT DX, AL + MOV AL, 40H ; 内部复位命令 + OUT DX, AL + + MOV AL, 4FH ; 工作方式控制字:波特率×16,偶校验,8位数据,1位停止 + OUT DX, AL + + MOV AL, 15H ; 命令控制字:允许收发,清除错误标志 + OUT DX, AL + ``` + 2. (12 分)已知 8253 的时钟频率为 1MHz,要产生频率为 1kHz 的方波输出。8253 的端口地址为 20H~23H。 (1) 计算计数初值。 (2) 写出 8253 的初始化程序(计数器 0 工作在方式 3)。 + + **答:** + + **(1)** 计数初值 = CLK 频率 / 输出频率 = 1MHz / 1kHz = 1000 = 03E8H + + **(2)** 控制字分析:计数器 0、先读写低字节再读写高字节、方式 3、二进制计数 + + 控制字 = 0011 0110B = 36H + + ```asm + ; 8253 初始化程序 + ; 端口地址:20H(计数器 0)、23H(控制口) + + MOV AL, 36H ; 控制字:计数器0,方式3,二进制计数 + OUT 23H, AL ; 写入控制寄存器 + + MOV AX, 03E8H ; 计数初值 = 1000 + OUT 20H, AL ; 先写低字节 + MOV AL, AH + OUT 20H, AL ; 再写高字节 + ``` + +## 关联笔记 +- [[接口与通讯技术/8255A可编程并行接口]] +- [[接口与通讯技术/8254定时计数器]] +- [[接口与通讯技术/8259A中断控制器]] +- [[接口与通讯技术/8251A串行通信接口]]