微机原理答案.pdf_第1页
微机原理答案.pdf_第2页
微机原理答案.pdf_第3页
微机原理答案.pdf_第4页
微机原理答案.pdf_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 现代微机原理与接口技术 部分习题答案 现代微机原理与接口技术 部分习题答案 第第 1 章章 5 在 8088 8086 中 逻辑地址 FFFF 0001 00A2 37F 和 B800 173F 的物理地址分别 是多少 答 物理地址 段地址 10H 偏移地址 所以 FFFF 0001 的物理地址是 FFFFH 10H 0001H FFFF1H 00A2 37F 的物理地址是 00A2 10H 037FH 00D9FH B800 173F 的物理地址是 B800 10H 173F B973FH 6 在 8088 8086 中 从物理地址 388H 开始顺序存放下列三个双字节的数据 651AH D761H 和 007BH 请问物理地址 388H 389H 38AH 38BH 38CH 和 38DH 6 个单元中分别 是什么数据 答 地址 内容 388H 1AH 389H 65H 38AH 61H 38BH D7H 38CH 7BH 38DH 00H 13 PC XT 机中的各种系统支持芯片的功能在 815EP 为处理器支持核心的 PC 机中分别 由什么部件完成 答 对照 PC XT 的基本结构图和 815EP 芯片组 我们可以看到 数学协处理器已经集成到 了奔腾级的 CPU 中 8237DMA 控制器 8253 定时 计数器 8259 中断控制器等都被集成到 了 82801BA 芯片中 串口 并口 键盘 鼠标等功能集成到 SIO LPC48B27X 芯片中 2 第第 2 章章 6 请简述 I O 保护的实现原理 答 首先要明确一点 在在 DOS 环境 实地址模式 下 环境 实地址模式 下 I O 是没有保护的 只有在保 护模式下才有 是没有保护的 只有在保 护模式下才有 I O 的保护功能 的保护功能 I O 保护有两种机构 I O 特权级 IOPL I O Privilege Level 和 I O 允许位映像 I O Permission Bit Map EFLAG 标志寄存器中 IOPL 字段定义使用 I O 相关指令的权限 任务 状态段 TSS Task State Segment 的 I O 允许位映像用来修正 IOPL 对 I O 敏感指令的影响 允许较低特权级的程序或任务访问某些 I O 端口 在保护方式下 当处理器遇到一条 I O 指令 IN INS OUT 和 OUTS 时 它首先检查 CPL IOPL 是否成立 其中 CPL 是当前任务的特权级 若成立 则可以处理 I O 操作 若不 成立 则处理器检查 I O 允许映像 在虚拟 8086 方式下 处理器只查看这个映像而不考虑 IOPL I O 允许位映像是一个位向量 每一位都表示一个端口地址 每个字节都可以表示 8 个端口 若任何一个被测试的位置位 则处理器发出一般保护异常信号 若所有被测试位都 是 0 则 I O 操作可以继续进行 7 设计一个外设端口译码器 使 CPU 能寻址四个地址范围 0280 0287H 0288 028FH 0290 0297H 0298 029FH 答 本题可以用一个 2 4 译码器 考虑到大家对 74LS138 比较熟悉 所以我们用 74LS138 这个 3 8 译码器来做这到题 分析 从四段地址的低位来看 显然地址的低 3 位作为地址低位 不参与到译码电路中 而四段地址范围为 1010000XXX 1010001XXX 1010010XXX 1010011XXX 显然我们可 以将 A5A4A3作为 74LS138 的输入 这样得到的电路是 8 已知 PC 机系统中某接口板的板地址译码电路如图 2 8 所示 现希望该板的地址范围为 0240 0247H 请确定 DIP 开关各位的状态 打开或闭合 3 图 2 8 习题 8 答 应该关闭的开关有 Q0 Q1 Q2 Q4 Q5 9 以查询输出方式编程 从内存中首地址为 BUFFER 的缓冲区向 CRT 终端输出 128 个 字节 CRT 终端数据口地址为 0008H 状态口地址为 0020H D7为状态位 0 表示输出缓存 空闲 MOV SI OFFSET BUFFER MOV CX 128 WAIT IN AL 20H TEST AL 80H JNZ WAIT 输出缓冲不空 MOV AL SI OUT 08H AL DEC CX JNZ WAIT 4 第第 6 章章 3 如果 8254 2 某计数器的计数初值为 400H 信号频率为 10MHz 求时间片 微秒 答 所谓时间片是指输出脉冲的周期 由题可知 fOUT fCLK 计数初值 10M 1K 10K 时间片 周期 1 fOUT 100 微秒 如果是 BCD 码计数 则 fOUT fCLK 计数初值 10M 400 25000 时间片 周期 1 fOUT 40 微秒 4 用 8254 作为某数据采集系统的定时器 每隔 10ms 用中断方式采集一次数据 已知 输入时钟频率为 10kHz 8259 端口地址为 20 21H 中断类型号为 13H 8254 端口地址为 40 43H 请为 8259 和 8254 编制初始化程序 分析 8254 的中断请求的中断类型号为 13H 则显然初始化 8259 的 ICW2 的值为 10H 中断类型号的高 5 位 而中断引脚显然用的是 IR3 8254 的输入时钟频率为 10kHz 需 要输出 10ms 周期 频率 100 的方波 作为中断请求信号 可以考虑用方式 2 或 3 初始 值为 10K 100 100 答 对 8259 初始化 MOV AL 00010011B 边沿触发 单片使用 要 ICW4 OUT 20H AL ICW1 JMP SHORT 2 MOV AL 10H 中断类型号高位 OUT 21H AL ICW2 JMP SHORT 2 MOV AL 00000001B 非总线缓冲方式 全嵌套 正常的中断结束 OUT 21H AL ICW4 JMP SHORT 2 对 8254 的初始化 MOV AL 00010100B 计数器 0 方式 3 低 8 位二进制计数 OUT 43H AL JMP SHORT 2 MOV AL 100 计数初始值 OUT 40H AL JMP SHORT 2 7 某系统中 8254 芯片的通道 0 通道 2 和控制字端口号分别为 FFF0H FFF3H 定义通 道 0 工作在方式 2 CLK0 5MHz 要求输出 OUT0 1kHz 方波 定义通道 l 工作在方式 4 用 OUT0 作计数脉冲 计数值为 1000 计数器计到 0 向 CPU 发中断请求 CPU 响应这一中 断后继续写入计数值 1000 重新开始计数 保持每 1 秒钟向 CPU 发出一次中断请求 请画 出硬件连接图 并编写初始化程序 8254 初始化程序如下 MOV AL 00110100B MOV DX FFF3H OUT DX AL MOV AX 5000 MOV DX FFF0H OUT DX AL 5 MOV AL AH OUT DX AL MOV DX FFF3H MOV AL 01111000B OUT DX AL DEC DX DEC DX MOV AX 1000 OUT DX AL MOV AL AH OUT DX AL 电路图如下 9 试编写一程序 使 PC AT 系统板上的发声电路发出 200Hz 至 900Hz 频率连续变化的 报警声 分析 PC AT 机是使用 8254 的计数器 2 输入工作时钟频率 1 1931816MHz 工作在方 式 3 产生一定频率的方波来驱动喇叭发声的 当然 8255PB 口 D1 位要置 1 这个我们假 设都是打开的 题目要求的发声频率从 200Hz 到 900Hz 按照书上 P185 上的公式 初始 值 输入时钟频率 输出频率 初始值范围为 5966 1326 可以编程 初始值给 5966 然后 每隔一定延迟 如 20ms 将初始值减 1 直到 1326 为止 答 MOV AL 10110110B OUT 43H AL MOV AX 5966 P1 PUSH AX OUT 42H AL MOV AL AH D0 8 OUT0 10 D1 7 GATE0 11 D2 6 CLK0 9 D3 5 D4 4 D5 3 D6 2 OUT1 13 D7 1 GATE1 14 CLK1 15 CS 21 RD 22 WR 23 OUT2 17 A0 19 GATE2 16 A1 20 CLK2 18 U 8253 VCC D0 11 D1 10 D2 9 D3 8 D4 7 D5 6 D6 5 D7 4 A0 27 CS 1 RD 3 WR 2 SP EN 16 INT 17 INTA 26 IR0 18 IR1 19 IR2 20 IR3 21 IR4 22 IR5 23 IR6 24 IR7 25 CAS0 12 CAS1 13 CAS2 15 U 8259A A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U 74ALS138 1 2 3 U AND 1 2 3 U AND 1 2 3 U AND U NOT A2 A3 A4 AD5 A6 A7 A8 A9 A0 A1 IOR IOW IRQ0 IRQ0AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A0 IOR IOW 5MHz 6 OUT 42H AL CALL WAIT20ms 延迟 20 秒 POP AX DEC AX CMP AX 1325 JNZ P1 10 在 8086 系统中 用 8254 构成一个定时 计数与脉冲发生器系统 利用通道 0 完成 对外部事件计数功能 计满 100 次向 CPU 发中断请求 利用通道 1 产生频率为 1kHz 的方 波 利用通道2产生1秒标准时钟 8254的计数频率为2 5MHz 8254的端口地址为41H 47H 试完成硬件连接和初始化编程 分析 8254 从 CLK0输入时钟频率为 2 5MHz 通道 0 计数 100 次后输出的中断频率是 25KHz 因为是做中断源 所以通道 0 可以工作在方式 3 或 2 另外 OUT0输出的这个脉冲 还要作为通道 1 的输入时钟 从 CLK1中输入 利用通道 1 计数 25 次 方式 3 获得从 OUT1 输出的 1KHz 的方波 该输出同时作为通道 2 的时钟输入 通道 2 工作在方式 3 下 对 CLK2 中输入的 1KHz 时钟计数 1000 次 既进行 1000 分频 输出 1 秒的标准时钟 频率 1Hz 再来看 8254 的译码问题 题目中端口地址为 41H 47H 显然通道 0 1 2 和控制字的 地址分别为 41H 43H 45H 和 47H 也就是说 A0 这根地址线始终为 1 根据这些分析 我们得到如下电路 初始化 8254 程序 MOV AL 00010110B OUT 47H AL MOV AL 01010110B MOV 47H AL MOV AL 10110110B MOV 47H AL MOV AL 100 OUT 41H AL MOV AL 25 OUT 43H AL MOV AX 1000 OUT 45H AL MOV AL AH OUT 45H AL 74LS138 8254 A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U D0 8 OUT0 10 D1 7 GATE0 11 D2 6 CLK0 9 D3 5 D4 4 D5 3 D6 2 OUT1 13 D7 1 GATE1 14 CLK1 15 CS 21 RD 22 WR 23 OUT2 17 A0 19 GATE2 16 A1 20 CLK2 18 U VCC A5 A6 A7 A8 A9 A0 IRQ0 2 5MHz 1sTimer A1 A2 AD0 AD1 AD2 AD3 AD4 AD7 AD5 AD6 IOR IOW 7 第第 7 章章 6 试使用 8255 实现对 74LS138 的检测 分析 本题是要用 8255 芯片来检测一个 74LS138 芯片的输入输出是否满足真值表 可 以采用 8255 的 PA 口的 PA0PA1PA2作为 74LS138 的 ABC 三个输入 将 74LS138 的 Y0 Y78 个输出接到 8255 的 PB 口 PB 口作为输入口来获取这些信息 C 口作为按位输出口输出到 74LS138 的控制信号 使能信号 然后按下图的真值表来进行验证 答 假设 8255A 的端口地址为 60H 63H 检测程序如下 MOV AL 10000010B A 口为输出 B 口为输入 OUT 63H AL C 口上下半全输出 全为方式 0 MOV AL 0 OUT 60H AL MOV AL 00000000B 将 PC0 G1 清 0 不使能 138 OUT 62H AL IN AL 61H CMP AL FFH JZ TEST1 JMP ERROR TEST1 MOV AL 00000011B 将 PC1 G2A 置 1 不使能 138 8 OUT 62H AL IN AL 61H CMP AL FFH JZ TEST2 JMP ERROR TEST2 MOV AL 00000101B 将 PC2 G2B 置 1 不使能 138 OUT 62H AL IN AL 61H CMP AL FFH JZ TEST3 JMP ERROR TEST3 MOV AL 00000001B 使能 138 OUT 62H AL MOV CX 7 从 CBA 为 111 检测到 CBA 为 000 MOV BX FF7FH 所以第一个输出 0 的是 Y7 也就是 PB7 应该为 0 TEST4 MOV AL CL OUT 60H AL JMP 2 IN AL 61H CMP AL BL JZ TEST5 如果相等则这一个 CBA 组合通过验证 继续检验 JMP ERROR 否则转出错 TEST5 CMP CX 0 JZ SUCCESS 如已检查到 CBA 输入组合为 000 检验成功结束 SAR BX 1 检测 138 输出的 0 右移一位 DEC CX 将 138 的 CBA 组合减 1 JMP TEST4 ERROR SUCCESS 7 一8255芯片的A口和B口分别与8个LED灯和8个开关连接好 通过开关控制LED 等的开和闭 8255 的端口地址为 40 42 44 和 46H 画出译码电路图 编写初始化程序和控 制程序 答 初始化程序如下 MOV AL 10000010B OUT 46H AL 控制程序如下 开关闭合 LED 亮 否则 LED 灭 IN AL 42H NOT AL 按位取反 OUT 40H AL 电路连接图如下 9 8 试把例 7 5 改成中断方式 并加软件去抖动 给出硬件连接图和有关程序段 答 键盘扫描程序放到中断处理程序中即可 程序略 9 试用两个 8255A 设计一个并行接口电路 把两个 CPU 为 80486 的 ISA 总线系统 主 从 连接在一起 实现主机和从机的单向通信 假设用中断驱动式实现传送同步 试画出 硬件连接图 并编写主机和从机的工作程序 答 请大家参见总复习的例 5 进行相应的修改 10 有个 1 s 的脉冲信号源送 8253 的计数器 1 利用软件方式扩大定时 1 秒 每秒钟从 8255 的 PA 口读入一组开关数并送 PB 口的 LED 管显示 设 8253 8255 的端口地址分别为 40H 43H 和 60H 63H 且只用 10 条地址线 A0 A9 用于端口译码 请完成 硬件连接 编写对 8253 计数器 1 初始化程序段 仅 50ms 编写对 8255 的初始化程序以及 1 秒到后从 PA 口读入一个字节开关数并送 PB 口显 示的程序段 分析 题目中要求用软件方式将 1 s 1MHz 的脉冲扩大定时到 1 秒 题目第二问又明确 A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U 74ALS138 A5 A6 A7 A8 A9 A0 AD0 AD1 AD2 AD3 AD4 AD7 AD5 AD6 IOR IOW U NOT D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27 PA0 4 PA1 3 PA2 2 PA3 1 PA4 40 PA5 39 PA6 38 PA7 37 PB0 18 PB1 19 PB2 20 PB3 21 PB4 22 PB5 23 PB6 24 PB7 25 PC0 14 PC1 15 PC2 16 PC3 17 PC4 13 PC5 12 PC6 11 PC7 10 RD 5 WR 36 A0 9 A1 8 RESET 35 CS 6 U A1 A2 VCC 8255 10 8253 的计数器 1 输出脉冲周期是 50ms 20Hz 显然 向系统提出的中断频率是每秒 20 次 在中断处理程序中 用软件的方法使用变量计数到 20 次后读 PA 口开关状态 并同时向 PB 口输出 答 1 电路图如下 注意在上图中的译码电路将 A0 A910 根线全部使用 使得各个芯片的地址范围被严格限制 2 8253 的初始化程序 MOV AL 01110110B 计数器 1 方式 3 二进制 OUT 43H AL MOV AX 50000 OUT 41H AL MOV AL AH OUT 41H AL 3 8255 初始化 MOV AL 10011000B A 口方式 0 输入 B 口方式 0 输出 OUT 63H AL 中断处理程序如下 TIMES DB 0 SERVICE PROC PUSHA MOV AL TIMES INC AL MOV TIMES AL CMP AL 20 JNZ EXIT 没有计数到 20 次 说明 1 秒没到 退出中断处理程序 IN AL 60H A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U 74ALS138 A5 A6 A7 A8 A9 A4 AD0 AD1 AD2 AD3 AD4 AD7 AD5 AD6 IOR IOW U NOT D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27 PA0 4 PA1 3 PA2 2 PA3 1 PA4 40 PA5 39 PA6 38 PA7 37 PB0 18 PB1 19 PB2 20 PB3 21 PB4 22 PB5 23 PB6 24 PB7 25 PC0 14 PC1 15 PC2 16 PC3 17 PC4 13 PC5 12 PC6 11 PC7 10 RD 5 WR 36 A0 9 A1 8 RESET 35 CS 6 U A0 A1 VCC D0 8 OUT0 10 D1 7 GATE0 11 D2 6 CLK0 9 D3 5 D4 4 D5 3 D6 2 OUT1 13 D7 1 GATE1 14 CLK1 15 CS 21 RD 22 WR 23 OUT2 17 A0 19 GATE2 16 A1 20 CLK2 18 U 8254 AD0 AD1 AD2 AD3 AD4 AD7 AD5 AD6 IOR IOW A0 A1 OR U OR OR A2A3 1MHz 20Hz VCC IRQ 8255 11 NOT AL OUT 61H AL EXIT POPA IRET SERVICE ENDP 11 用 8086 8255 8259 和 8254 构造系统实现对指示灯控制 8255 的 PA0 PA1 PA2 接 三位 DIP 开关 通过 DIP 开关的闭合状态决定接在 PB 口上的八个指示灯之一闪烁 如 PA2 PA1 PA0 为 000 时 PB0 上所接指示灯闪烁 其余灯熄灭 要求闪烁频率为每秒 10 次 设 8259 地址为 20H 和 21H 8255 地址为 60H 63H 8254 地址为 40H 43H 时钟频率为 50kHz 8259A 中断向量号为 70H 和 71H 试设计硬件连接电路 填写中断向量表 编写全部初始 化程序 完成控制程序编写 分析 1 指示灯闪烁可以有两种方法 一种是利用 8254 出来的方波信号和 PB 口出来的指示 灯信号通过组合电路来实现灯的闪烁 硬件控制法 如同 PC 机的扬声器控制那样 另一 种方法是利用中断 用中断处理程序来控制闪烁 软件控制法 本题提供有两个中断向量 类型 号 说明希望大家使用两个中断 一个自然是 PA 上的开关动作的时候产生中断 如 同小键盘那样 而另一个中断显然是出题者希望大家用软件控制法去闪烁指示灯 2 如果闪烁频率每秒 10 次 显然中断频率就要是每秒 20 次 一半时间熄灯一半时间亮 灯 该中断又可以有两种方法产生 一种是从 8254 的 OUT 脚出来后直接接到 8259A 的 IRQ 脚 还有一种是让 8255 的 PB 口工作在方式 1 让 8254 的 OUT 引脚每隔 50ms 发一个负脉 冲给 PC2 ACK 则 PC0 会自动在 ACK 的上升沿发出中断 3 下面我们还要讨论的是 8259A 究竟用 IRQ 几 从题目可知中断向量号是 70H 和 71H 我们知道 中断向量 类型号 的高 5 为由 ICW2 提供 低 3 位就是 IRQi中的 i 所以 显 然是使用 IRQ0 和 IRQ1 4 DOS 下 实地址模式 中断向量表的填写也有两种方法 第一种是使用 DOS 功能调 用 如教材中 166 页的例子 第二种方法是从 0000 0000 开始 按照中断向量 类型 号 4 算出偏移 然后从低到高连续 4 个字节分别放中断处理程序的入口地址的偏移量 2 字 节 和段地址 2 字节 如假设中断向量号为 3 的中断的入口地址是 1234H 5678H 则 3H 4H 0CH 所以 0000 000C 0000 000F 的 4 个字节的内容分别是 78H 56H 34H 12H 注意 PC 机中存储采用低字节放在低地址 高字节放在高地址 见教材 P14 本题 我们采用 DOS 功能调用 答 1 电路图如下 由于译码部分和前几题一样 故译码部分省略 8086 部分也省略 其 中 PB 工作在方式 1 12 IOR IOW D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27 PA0 4 PA1 3 PA2 2 PA3 1 PA4 40 PA5 39 PA6 38 PA7 37 PB0 18 PB1 19 PB2 20 PB3 21 PB4 22 PB5 23 PB6 24 PB7 25 PC0 14 PC1 15 PC2 16 PC3 17 PC4 13 PC5 12 PC6 11 PC7 10 RD 5 WR 36 A0 9 A1 8 RESET 35 CS 6 U 8255 A0 A1 VCC D0 8 OUT0 10 D1 7 GATE0 11 D2 6 CLK0 9 D3 5 D4 4 D5 3 D6 2 OUT1 13 D7 1 GATE1 14 CLK1 15 CS 21 RD 22 WR 23 OUT2 17 A0 19 GATE2 16 A1 20 CLK2 18 U 8254 D0 D1 D2 D3 D4 D7 D5 D6 IOR IOW A0 A1 50KHz 20Hz VCC D0 11 D1 10 D2 9 D3 8 D4 7 D5 6 D6 5 D7 4 A0 27 CS 1 RD 3 WR 2 SP EN 16 INT 17 INTA 26 IR0 18 IR1 19 IR2 20 IR3 21 IR4 22 IR5 23 IR6 24 IR7 25 CAS0 12 CAS1 13 CAS2 15 U 8259A CS54 A0 CS59 IOR IOW INTR INTA CS55 U XOR U XOR D0 D1 D2 D3 D4 D7 D5 D6 D0 D1 D2 D3 D4 D7 D5 D6 单稳态触发器 初始化程序如下 8253 的初始化程序 MO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论