vault backup: 2026-06-26 22:45:54
This commit is contained in:
+118
-2
@@ -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中断控制器]]
|
||||
|
||||
Reference in New Issue
Block a user