单片微机原理及应用--徐春辉---电子工业出版社习题答案

上传人:gbs****77 文档编号:10632123 上传时间:2020-04-13 格式:DOC 页数:150 大小:620KB
返回 下载 相关 举报
单片微机原理及应用--徐春辉---电子工业出版社习题答案_第1页
第1页 / 共150页
单片微机原理及应用--徐春辉---电子工业出版社习题答案_第2页
第2页 / 共150页
单片微机原理及应用--徐春辉---电子工业出版社习题答案_第3页
第3页 / 共150页
点击查看更多>>
资源描述
第 1 章 1 简述计算机的基本组成结构 答 计算机的基本组成结构由输入设备 输出设备 运 算器 控制器和存储器等五大部件构成 2 简述单片微型计算机系统应用和开发的特点 答 单片微型计算机系统应用和开发的特点是需要进行 软硬两方面的设计和调试 第 2 章 1 为什么微型计算机要采用二进制 十六进制代码能为微 型计算机直接执行吗 为什么要使用十六进制数 答 在所有数制中 只有二进制数最容易用电路来表达 据此构建的计算机结构也是最简单的 十六进制代码不能 为计算机直接执行 只有二进制代码才能为计算机所识别 和执行 二进制代码过于冗长 而其对应的十六进制数则 更为简洁 而且此二种数制的相互转换非常方便 这就是 常常使用十六进制数来表示其对应的二进制数的原因 2 将下列各二进制数分别转换为十进制数和十六进制数 1 11010B 2 110100B 3 10101011B 4 11111B 答 1 11010B 26 1AH 2 110100B 52 34H 3 10101011B 171 ABH 4 11111B 31 1FH 3 将下列各数分别转换为二进制数和十六进制数 1 129D 2 253D 3 0 625 4 111 111 答 1 129D 10000001B 81H 2 253D 11111101B FDH 3 0 625 0 101B 0 AH 4 111 111 01101111 000111B 6F 1CH 4 把下列十六进制数转换成十进制数和二进制数 1 AAH 2 BBH 3 C CH 4 DE FCH 5 ABC DH 6 128 08H 答 1 AAH 170 10101010B 2 BBH 187 10111011B 3 C CH 12 75 1100 1100H 4 DE FCH 222 984375 11011110 1111110B 5 ABC DH 2748 8125 101010111100 1101B 6 128 08H 296 03125 100101000 00001 5 什么叫原码 反码及补码 答 在机器数中 最高位为符号位 正数的符号位用 0 表示 负数的符号位用 1 表示 其余为该数的绝对值 这 种表示法称为原码 正数的反码和原码相同 负数的反码 为其原码除符号位外其他各位按位取反得所值 正数的补 码和原码相同 负数的补码为反码加 1 6 已知原码如下 写出其反码及补码 其最高位为符号位 1 X 原 01011001 2 X 原 11011011 3 X 原 11111100 答 1 X 反 X 补 X 原 01011001 2 X 反 10100100 X 补 10100101 3 X 反 10000011 X 补 10000100 7 当微机把下列数视为无符号数时 它们相应的十进制数 为多少 若把它们视为补码 最高位为符号位 那么它们 相应的十进制数又是多少 1 10001110 2 10110000 3 00010001 4 01110101 答 视为无符号数时 1 10001110B 142 2 10110000B 176 3 00010001B 17 4 01110101B 117 若把它们视为补码 最高位为符号位 那么它们相应的 十进制数是 1 10001110B 114 2 10110000B 80 3 00010001B 17 4 01110101B 117 8 先将下列十六进制数转换为二进制数 然后分别完成逻 辑乘 逻辑加和逻辑异或操作 1 33H 和 BBH 2 ABH 和 FFH 3 78H 和 0FH 答 1 X 33H 00110011B Y BBH 10111011B X Y 00110011B X Y 10111011B X Y 10001000B 2 X ABH 10101011B Y FFH 11111111B X Y 10101011B X Y 11111111B X Y 01010100B 3 X 78H 01111000B Y 0FH 00001111B X Y 00001000B X Y 01111111B X Y 01110111B 9 已知 x 和 y 试分别计算 x y 补 和 x y 补 并指出是否产 生溢出 设补码均用 8 位表示 1 x 1001110 y 0010110 2 x 0101101 y 1100100 3 x 0101110 y 0111011 4 x 1000101 y 0110011 答 1 x y 补 01100100B 无溢出 x y 补 00111000B 无溢出 2 x y 补 11001001B 无溢出 x y 补 10010001B 溢出 3 x y 补 00001101B 无溢出 x y 补 10010111B 无溢出 2 x y 补 10001000 B 无溢出 x y 补 11101110B 无溢出 10 写出下列各数的 BCD 码 1 45 2 98 3 124 4 1998 答 1 45 0100 0101 BCD 2 98 1001 1000 BCD 3 124 0001 0010 0100 BCD 4 1998 0001 1001 1001 1000 BCD 11 用十六进制形式写出下列字符的 ASCII 码 1 CD 2 COMPUTER 3 HELLO 4 F365 答 1 43H 44H 2 43H 4FH 4DH 50H 55H 54H 45H 52H 3 48H 45H 4CH 4CH 4FH 4 46H 33H 36H 35H 12 ALU 是什么部件 它能完成什么运算功能 答 ALU 称为算术逻辑部件 它能完成算术运算和逻辑 运算 13 累加器有何用处 答 累加器通常用于提供 ALU 的一个运算数据或暂存 ALU 的运算结果 此外还能使存储其中的数据左移或右移 14 控制字是什么意思 试举个例子说明之 答 控制字是一个二进制数 其各位代表相应控制信号 的逻辑状态 例如 CON LAEALBEBLCECLDED 10010000 表示要将寄存器 B 的内容传送入寄存器 A 中去 15 ROM 和 RAM 各有何特点和用处 答 ROM 为只能读出的存储器 可用于存放固定的程序 和数据 ROM 为可在线写入和读出的存储器 可用于随时写入或 读出数据 也可用于写入随时有可能改变的用户程序 16 为什么要建立 地址 这个概念 答 因为存储器的存储单元很多 为区分不同的存储单 元必须给每个存储单元编上地址 17 除地线公用外 5 根地址线和 11 根地址线各可选多少 个地址 答 2 5 32 个地址 211 2048 个地址 18 译码器有何用处 答 译码器用于产生和输入代码相对应的控制信号 如 果是存储器地址译码器则其能根据输入的地址信号产生存 储器相应单元的选通信号 19 存储地址寄存器 MAR 和存储数据寄存器 MDR 各有何用处 答 MAR 用以接受来自 PC 的地址号 MDR 用以接受来自总线的数据 此二者均为存储器的主要辅件 20 微型计算机的基本结构是怎样的 包括哪些主要部件 答 微型计算机包括微处理器 CPU 随机存取存储 器 RAM 只读存储器 ROM I O 接口电路及外设组 成 前面四大部分通过系统总线连接在一起 21 指令 指令系统和程序三者间有什么区别和联系 答 指令是指挥计算机工作的指示和命令 而指令系统 则是一台计算机所拥有的所有指令的集合 程序则是为了 实现特点功能而将取自指令系统的指令按照一定顺序排列 起来的组织体 22 控制部件包括哪些主要环节 各有何用处 答 1 指令部件 作用是获取来自程序存储器的 二进制指令操作码并将其译成控制动作信号送入控制矩阵 2 时序部件 作用是用于产生微操作控制部件所需 的定时脉冲信号 3 控制矩阵 控制矩阵可以为 ID 输出信号配上节 拍电位和节拍脉冲 也可将外部进来的控制信号组合 共 同形成相应的微操作控制信号序列 控制相关部件按照严 格的先后顺序执行指令所要求的各种微操作 最终完成规 定的操作 23 环形计数器有何用处 什么叫环形字 答 环形计数器用于产生机器节拍 若将环形计数器的 输出视为一个字 则这个字就称为环形字 24 试说明下列各部件的作用 1 程序计数器 PC 2 指令寄存器 IR 3 指令译 码器 ID 答 1 程序计数器 PC 是在控制器中设置的一个专用 寄存器 用来存放当前要执行的指令在存储器中的位置信 息 即存储器地址 以便根据此地址去读取指令 2 指令寄存器 IR 是用来暂时存放从存储器中取出的当 前要执行指令的操作码的这么一个寄存器 3 指令译码器 ID 是对指令操作码进行分析 在其输出 端产生各种控制电平 以形成相应的微操作 用以实现指 令执行过程中所需要的功能控制的这么一个译码器 25 什么叫例行程序 什么叫机器周期 取指周期和执行 周期 本章所论模型式计算机的机器周期包括几个时钟周 期 机器节拍 机器周期是否一定是固定不变的 答 例行程序是由控制部件内部的结构确定了的各条指 令的执行步骤 机器周期是指一条指令从取指到执行完所 需的时钟周期数 取指周期为从 PC 开始输出使程序存储器 中的指令进入 IR 到 PC 1 为止的时钟周期数 执行周期为从 指令进入控制器起至执行完的时钟周期数 本章所论模型 计算机的机器周期包括 6 个时钟周期 在这里机器周期是 固定的 但是对于不同的计算机而言 机器周期就不一定 是固定的了 26 何谓总线 它有哪几类 它们的主要功能是什么 答 将多个装置或部件连接起来并传送信息的公共通道 称为总线 总线通常有如下三种类型 数据总线 DB 专门传送数据信息 地址总线 AB 专门传送地址信息 控制总线 CB 专门传送控制信息 27 微型计算机系统的硬件和软件包括哪些部分 各部分 的作用是什么 答 硬件系统主要包括主机箱 显示器 键盘和打印机 等 主机箱内装有主机板 光盘和硬盘驱动器 电源等 CPU 内存储器和 I O 接口电路等装在主机板上 一般主机 板上还留有扩展插槽 以备用户扩展其他功能 硬件系统 是运行各种软件的支持平台 计算机的软件系统包括系统软件和应用软件 系统软件 是为了最大限度地发挥计算机的功能 便于使用 管理和 维护计算机硬件的软件 它也是应用软件的支撑软件 可 以为应用软件提供很好的运行环境 应用软件是指用户为 了解决某一领域的实际问题而编制的计算机应用程序 具 有明显的针对性和专用性 28 什么叫单片机 和一般型计算机相比 单片机有何特 点 答 单片是在一块芯片上集成了中央处理器 CPU 存储器 RAM ROM 定时器 计数器 中断控制 各种 输入 输出 I O 接口 如并行 I O 口 串行 I O 口和 A D 转换器 等为一体的器件 一般微型计算机的基本结构由 CPU 运算器 控制器 存储器 输入设备和输出设备五大部分组成 各部分通过 外部总线连接而成为一体 单片机的结构是在一块芯片上 集成了中央处理器 CPU 存储器 定时器 计数器 中 断控制 各种输入 输出接口 如并行 I O 口 串行 I O 口 和 A D 转换器 等 它们通过单片机内部总线连接而成为 一体 29 除了单片机这一名称之外 单片机还可称为 和 答 微控制器和嵌入式控制器 30 MCS 51 系列单片机的基本型芯片分别为哪几种 它们 的差别是什么 答 基本芯片为 8031 8051 8751 8031 内部包括 1 个 8 位 CPU 128BRAM 21 个特殊功能 寄存器 SFR 4 个 8 位并行 I O 口 1 个全双工串行口 2 个 16 位定时器 计数器 但片内无程序存储器 需外扩 EPROM 芯片 8051 是在 8031 的基础上 片内又集成有 4KBROM 作 为程序存储器 是 1 个程序不超过 4KB 的小系统 8751 是在 8031 的基础上 增加了 4KB 的 EPROM 它构 成了 1 个程序小于 4KB 的小系统 用户可以将程序固化在 EPROM 中 可以反复修改程序 31 MCS 51 系列单片机与 51 系列单片机的异同点是什么 答 51 系列单片机与 MCS 51 系列单片机的内核结构和 指令系统完全兼容 前者相比后者制造工艺得到改进 并 且片内资源有所增加 32 说明单片机主要应用在哪些领域 答 单片机主要应用领域为 工业自动化 智能仪器仪 表 消费类电子产品 通信方面 武器装备 终端及外部 设备控制 多机分布式系统 第 3 章 1 AT89S51 单片机的片内都集成了哪些功能部件 答 AT89S51 单片机的片内都集成了如下功能部件 1 1 个微处理器 CPU 2 128 个数据存储器 RAM 单元 3 4K Flash 程序存储器 4 4 个 8 位 可编程并行 I O 口 P0 口 P1 口 P2 口 P3 口 5 1 个全双工串行口 6 2 个 16 位定时器 计数器 7 1 个看门狗定时器 8 一个中断系统 5 个中断源 2 个 优先级 9 25 个特殊功能寄存器 SFR 10 1 个 看门狗定时器 2 说明 AT89S51 单片机的 引脚接高电平或低电平的区别 答 当脚为高电平时 单片机读片内程序存储器 4K 字 节 Flash 中的内容 但在 PC 值超过 0FFFH 即超出 4K 字 节地址范围 时 将自动转向读外部程序存储器内的程序 当脚为低电平时 单片机只对外部程序存储器的地址为 0000H FFFFH 中的内容进行读操作 单片机不理会片内的 4K 字节的 Flash 程序存储器 3 单片机的存储器在物理结构上和逻辑上有何区别 答 单片机存储器的逻辑空间是指由单片机 CPU 所确定 的可以寻址的空间 而物理空间是指有具体物理器件相对 应可以实际存储数据的那部分逻辑空间 4 AT89S51 单片机中执行程序的地址放在哪里 是几位二 进制数 最大寻址范围是多少 程序状态字 PSW 各位的定 义是什么 答 PC 16 位 64KB 程序状态字 PSW 各位的定义是 1 Cy PSW 7 进位标志位 2 Ac PSW 6 辅助进位标志位 3 F0 PSW 5 用户设定标志位 4 RS1 RS0 PSW 4 PSW 3 4 组工作寄存器区选择 控制位 5 OV PSW 2 溢出标志位 6 PSW 1 位 保留位 未做定义 不可使用 7 P PSW 0 奇偶标志位 5 什么叫堆栈 AT89S51 中堆栈的最大容量是多少 答 所谓堆栈 是指一个连续的数据存储区域 其操作 原则为 先进后出 或 后进先出 AT89S51 中堆栈的最大容量理论上可以达到 128B 6 开机复位后 CPU 使用哪一组工作寄存器 它们的地址 是什么 如何改变当前工作寄存器组 答 第 0 组 地址是 00H 07H 通过修改 PSW 中 RS1 RS0 两位的值来改变当前工作寄存器组 7 64KB 程序存储器空间有 5 个单元地址对应 AT89S51 单片 机 5 个中断源的中断入口地址 请写出这些单元的入口地 址及对应的中断源 答 64K 程序存储器空间中 5 个特殊单元所分别对应的 5 个中断源的中断服务程序入口地址如 下表所示 入口地址 中断源 0003H 外部中断 0 000BH 定时器 0 T0 0013H 外部中断 1 001BH 定时器 1 T1 0023H 串行口 8 在程序设计时 为什么有时要对复位后的堆栈指针 SP 重新赋值 如果在操作中需要使用三组工作寄存器 SP 的 初值应该至少多大 答 系统复位后 SP 初始化为 07H 使得堆栈事实上由 08H 单元开始 考虑到 08H 1FH 单元分属于工作寄存器区 的 1 3 组 如果程序设计中要用到这些寄存器组 则必须 在复位后对堆栈指针 SP 重新赋值 最好把 SP 值改置为 1FH 或更大的值如 60H SP 的初始值越小 堆栈深度就越深 堆栈指针的值可以由软件改变 因此堆栈在内部 RAM 中的 位置比较灵活 如果在操作中需要使用三组工作寄存器 SP 的初值至少 应该为 17H 9 AT89S51 的寻址范围是多少 最多可以配置多大容量的 外部 ROM 和多大容量的外部 RAM 答 64KB 64KB 64KB 10 AT89S51 单片机运行出错或程序进入死循环时如何摆脱 困境 答 通过硬件复位 11 AT89S51 单片机扩展系统中片外程序存储器和片外数据 存储器 使用相同的地址编码 是否会在数据总线上出现 争总线现象 为什么 答 不会 因为这两种存储器使用的选通信号不同 片 外程序存储器使用 作为输出使能控制信号 而片外数据 存储器分别使用 和 作为读写控制信号 12 AT89S51 的 P0 口和 P2 口各有何作用 P0 口为什么要 外接锁存器 答 P0 口通常作为分时复用的地址 数据总线使用 作为 地址总线使用时用于提供 16 位地址总线的低 8 位地址信号 P2 口通常用于提供 16 位地址总线的高 8 位地址信号 在前 述功能不使用的情况下 这两端口也可以作为一般的 I O 使 用 P0 口外接锁存器的目的是使 CPU 发出的地址信号在 P0 口作为数据通道时依然保持有效 13 AT89S51 的 ALE 引脚有何作用 AT89S51 不接外部 RAM 时 ALE 信号有何特点 答 AT89S51 的 ALE 引脚用于对低 8 位地址信号的锁存 控制 AT89S51 不接外部 RAM 时 ALE 信号是频率为时钟 频率六分之一的固定周期信号 14 举例说明单片机工业控制系统中掉电保护的意义和方 法 答 单片机工业控制系统在运行程序的过程中 如果发 生掉电故障将会丢失 RAM 和寄存器中的数据 其后果有时 是很严重的 为此 需要掉电保护功能 进行掉电保护处 理 掉电保护方式是通过对 SFR 中的 PCON 地址 87H 相应 位置 1 而启动的 当 CPU 执行一条置 PCON 1 位 PD 为 1 的指令后 系统进入掉电工作方式 在这种工作方式下 内部振荡器停止工作 由于没有振荡时钟 因此 所有的 功能部件都停止工作 但内部 RAM 区和特殊功能寄存器的 内容被保留 而端口的输出状态值都保存在对应的 SFR 中 掉电模式的退出有两种方法 硬件复位和外部中断 硬件 复位时要重新初始化 SFR 但不改变片内 RAM 的内容 当 VCC恢复到正常工作水平时 只要硬件复位信号维持 10ms 便可使单片机退出掉电运行模式 15 内部 RAM 中 位地址为 40H 88H 的位 该位所在字 节的字节地址分别为 和 答 28H 88H 16 片内字节地址为 2AH 单元最低位的位地址是 片内字节地址为 88H 单元的最低位的位地址为 答 50H 88H 17 若 A 中的内容为 63H 那么 P 标志位的值为 答 P 标志位的值为 0 18 在 AT89S51 单片机中 如果采用 6 MHz 晶振 那么一 个机器周期为 答 2 s 19 判断下列说法是否正确 A 使用 AT89S51 且引脚 1 时 仍可外扩 64 KB 的 程序存储器 B 区分片外程序存储器和片外数据存储器的最可靠的 方法是 看其位于地址范围的低端还是高端 C 在 AT89S51 中 为使准双向的 I O 口工作在输入方 式 必须事先预置为 1 D PC 可以视为程序存储器的地址指针 答 A 错 B 错 C 对 D 对 20 AT89S51 单片机复位后 R4 所对应的存储单元的地址 为 因上电时 PSW 这时当前的工作 寄存器区是 组工作寄存器区 答 04H 00H 第 0 21 判断以下有关 PC 和 DPTR 的结论是否正确 A 指令可以访问寄存器 DPTR 而 PC 不能用指令访问 B 它们都是 16 位寄存器 C 在单片机运行时 它们都具有自动加 1 的功能 D DPTR 可以分为 2 个 8 位的寄存器使用 但 PC 不能 答 A 对 B 对 C 错 D 对 22 内部 RAM 中 可作为工作寄存器区的单元地址为 H H 答 字节地址 00H 1FH 的单元可作为工作寄存器区 23 判断下列说法是否正确 A AT89S51 中特殊功能寄存器 SFR 就是片内 RAM 中的一部分 B 片内 RAM 的位寻址区 只能供位寻址使用 而不 能进行字节寻址 C AT89S51 共有 21 个特殊功能寄存器 它们的位都是 可用软件设置的 因此是可以进行位寻址的 D SP 称为堆栈指针 堆栈是单片机内部的一个特殊区 域 与 RAM 无关 答 A 错 B 错 C 错 D 错 24 在程序运行中 PC 的值是 A 当前正在执行指令的前一条指令的地址 B 当前正在执行指令的地址 C 当前正在执行指令的下一条指令的首地址 D 控制器中指令寄存器的地址 答 C 26 AT89S51 单片机程序存储器的寻址范围是由程序计数器 PC 的位数所决定的 因为 AT89S51 的 PC 是 16 位的 因此 其寻址的范围为 KB 答 64 27 AT89S51 的 4 个并行双向口 P0 P3 的驱动能力各为多 少 要想获得较大的输出驱动能力 是采用低电平输出还 是采用高电平输出 答 P0 口每位可驱动 8 个 LSTTL 输入 而 P1 P2 P3 口 的每一位的驱动能力 只有 P0 口的一半 当 P0 口的某位 为高电平时 可提供 400 A 的电流 当 P0 口的某位为低电 平 0 45V 时 可提供 3 2mA 的灌电流 如低电平允许提 高 灌电流可相应加大 所以 任何一个口要想获得较大 的驱动能力 只能用低电平输出 28 当 AT89S51 单片机运行出错或程序陷入死循环时 如 何摆脱困境 答 通过硬件复位 练习与思考题 4 1 按长度分 51 系列单片机的指令有 1 字节的 2 字节的和 3 字节的 2 按 指 令 的 执 行 时 间 分 51 系 列 单 片 机 的 指 令 有 1 2 和 4 机 器 周 期 的 指 令 3 51 系列单片机汇编语言指令格式中 唯一不可缺少 的部分是 B A 标号 B 操作码 C 操作数 D 注释 4 简述 8051 的寻址方式和每种寻址方式所涉及的寻址 空间 答 寻址方式 寻址空间 操作数的存放空间 立即寻址 程序存储器 直接寻址 片内 RAM 低 128 字节 特殊功能寄存器 寄存器寻 址 工作寄存器 R0 R7 A B DPTR 寄存器间 接寻址 片内 RAM R0 R1 SP 片外 RAM R0 R1 DPTR 变址寻址 程序存储器 A PC A DPTR 相对寻址 程序存储器 256 字节范围内 PC 偏移量 位寻址 片内 RAM 的位寻址区 字节 地址 20H 2FH 地址能被 8 整除的特殊功 能寄存器 5 51 系列单片机的寻址方式中 位寻址的寻址空间是 D A 工作寄存器 R0 R7 B 专用寄存器 SFR C 程序存储器 ROM D 片内 RAM 的 20H 2FH 字节中的所有位和地址 可被 8 整除的 SFR 的有效位 6 分析下面各指令源操作数的寻址方式 MOV A 32H 直接寻址 MOV R7 A 寄存器寻址 MOV R0 0FEH 立即寻址 MOV A R1 寄存器间接寻址 MOV DPTR 1E00H 立即寻址 MOVC A A DPTR 变址寻址 MOV C 20H 位寻址 JC 10H 相对寻址 7 访问特殊功能寄存器和外部数据存储器 分别可以采 用哪些寻址方式 答 访问特殊功能寄存器只能用直接寻址 访问外部数 据存储器只能用寄存器间接寻址 8 在寄存器寻址方式中 指令中指定寄存器的内容就是 操作数 9 在寻址方式中 只能使用 8 位二进制数作为 直接地址 10 在寄存器间接寻址方式中 其 间接 体现在指令 中寄存器的内容不是操作数 而是操作数的 地址 11 在变址寻址方式中 以 累加器 A 作变址寄存器 以 PC 或 DPTR 作基址寄存器 12 三种传送指令 MOV MOVC 和 MOVX 使用时有 什么区别 答 MOV 指令用来实现单片机内部寄存器 存储单元 特殊功能寄存器之间的数据传送 MOVC 指令用来读程序存储器中的数据表 MOVX 指令用来实现累加器 A 和外部数据存储 器之间的数据传送 13 假 定 DPTR 的 内 容 为 8100H 累 加 器 的 内 容 为 40H 执 行 指 令 MOVC A A DPTR 后 程序存储器 8140H 单元的内容送累加器 A 中 14 单片机中 PUSH 和 POP 指令常用来 C A 保护断点 B 保护现场 C 保护现场 恢复现场 D 保护断点 恢复 断点 15 假定 A 85H R0 20H 20H AFH 执 行指令 ADD A R0 后 累加器 A 的内容为 34H CY 的内容为 1 AC 的内容为 1 OV 的内容为 1 16 假定 A 56H R5 67H 执行指令 ADD A R6 DA A 后 累加器 A 的内容为 23H Cy 的内容为 1 17 假定 A 50H B 0A0H 执行指令 MUL AB 后 寄存器 B 的内容为 32H 累加器 A 的内容为 00H 18 假定 A 0FBH B 12H 执行指令 DIV AB 后 累加器 A 的内容为 0DH 寄存器 B 的内容为 11H 19 下列指令中可将累加器 A 最高位置 1 的是 B C D E A ORL A 7FH B ORL A 80H C SETB 0E7H D ORL E0H 80H E SETB ACC 7 20 假 定 标 号 L2 对 应 的 地 址 值 为 0100H 标 号 L3 对 应 的 地 址 值 为 0123H 当 执 行 指 令 L2 SJMP L3 时 该指令的相对偏移量 即指令的第二字节 为 21H 21 在位操作中 能起到与字节操作中累加器的相似作 用的是 进位标志位 C 22 累加器 A 中存放着一个其值小于等于 127 的 8 位无 符号数 Cy 0 执行 RLC A 指令后 则 A 中的数 变为原来的 2 倍 23 试根据以下要求写出相应的汇编语言指令 1 将 R6 的高四位和 R7 的高四位交换 R6 R7 的低 四位内容保持不变 答 MOV A R6 MOV 30H R7 MOV R0 40H MOV R0 30H XCHD A R0 MOV R7 A MOV 30H R0 MOV R6 30H 2 两个无符号数分别存放在 30H 31H 试求出他们 的和并将结果存放在 32H 答 MOV A 30H ADD A 31H MOV 32H A 3 将 30H 单元的内容左环移两位 并送外部 RAM 3000H 单元 答 MOV A 30H RL A RL A MOV DPTR 3000H MOVX DPTR A 4 将程序存储器中 1000H 单元的内容取出送外部 RAM 3000H 单元 答 MOV A 0 MOV DPTR 1000H MOVC A A DPTR MOV DPTR 3000H MOVX DPTR A 5 使累加器 A 的最高位置位 答 SETB ACC 7 6 使进位标志位清 0 答 CLR C 7 使 ACC 4 ACC 5 和 ACC 6 置 1 答 ORL A 01110000B 24 下述程序执行后 SP A 和 B 分别为多少 ORG 1000H MOV SP 40H MOV A 30H LCALL SUBR ADD A 10H MOV B A SJMP SUBR MOV DPTR 100AH PUSH DPL PUSH DPH RET 答 SP 42H A 30H B 30H 练习与思考题 5 1 用于程序设计的语言分为哪几种 它们各有什么特点 答 51 系列单片机的编程语言可以分为汇编语言和高级语 言 如 C 语言 两种 各自的特点如下 名称 特点 缺点 优点 适用 场合 汇编 语言 用符号书 写指令 用助记 符表示操 作码 特 殊符号表 示操作数 机器不能直接识 别 程序员必须 了解机器的结构 和指令系统 不 易推广和普及 不能移植 不具 备通用性 较易为 人们识 别 记 忆和读 写 实时 控制 系统 高级 语言 用以英语 为基础的 语句编程 机器不能直接识 别 执行时间长 易于推 广和交 流 不 依赖于 机器 具有通 用性 科学 运算 和数 据处 理 2 说明伪指令的作用 伪 的含义是什么 常用的伪指 令有哪些 其功能是什么 答 伪指令是在 机器汇编 过程中 用来对汇编过程进 行某种控制或者对符号和标号进行赋值 伪 的含义是 指这些指令不属于指令系统中的指令 汇编时也不产生机 器代码 常用伪指令有 ORG EQU DATA DB DW DS BIT END 功能 ORG 指出后面程序块或数据块在程序存储器中存放的 起始地址 EQU 赋值命令 DATA 对数据地址或代码地址赋予规定的字符名称 DB 定义字节数据 DW 定义字数据 DS 从指定的地址单元开始 保留若干单元备用 BIT 定义位地址符号命令 END 汇编结束命令 3 设常量和数据标号的定义为 ORG 2000H DAT1 DB 1 2 3 4 5 DAT2 DB ABCD DAT3 DW 1200H 2 TAB DW DAT1 DAT3 1 画出上述数据或地址的存储形式 2 写出各标号的地址 答 1 地址 内容 H 2000H 01 02 03 04 05 2005H 41 42 43 44 2009H 12 00 FF FE 200DH 20 00 20 09 2 DAT1 2000H DAT2 2005H DAT3 2009H TAB 200DH 4 编 写 双 字 节 加 法 程 序 要 求 被 加 数 放 在 内 部 R A M 的 3 0 H 高 字 节 3 1 H 低 字 节 单 元 中 加 数 存 放 在 内 部 R A M 的 3 2 H 高 字 节 和 3 3 H 低 字 节 中 运 算 结 果 放 存 放 在 3 0 H 3 1 H 中 进 位 存 放 在 位 寻 址 区 的 0 0 H 位 答 O R G 0 0 0 0 H M O V A 3 1 H A D D A 3 3 H M O V 3 1 H A M O V A 3 0 H A D D C A 3 2 H M O V 3 0 H A M O V 0 0 H C S J M P E N D 5 试编写程序 找出片内 RAM 30H 5FH 单元中无符号数 的最大数 并将结果存入 60H 单元 答 ORG 0000H MOV R0 30H MOV R7 2FH MOV A R0 AGAIN INC R0 MOV B A CLR C SUBB A R0 JNC L1 MOV A R0 AJMP L2 L1 MOV A B L2 DJNZ R7 AGAIN MOV 60H A SJMP END 6 试 编 写 程 序 统 计 片 内 R A M 的 2 0 H 5 F H 单 元 中 出 现 5 5 H 的 次 数 并 将 统 计 结 果 送 6 0 H 单 元 答 T A B E Q U 2 0 H O R G 0 0 0 0 H S T A R T M O V 6 0 H 0 M O V R 0 T A B L O O P 2 M O V A 5 5 H C L R C S U B B A R 0 J N Z N E X T I N C 6 0 H N E X T I N C R 0 C J N E R 0 6 0 H L O O P 2 S J M P E N D 7 编写程序 将片外数据存储区中 3000H 30FFH 单元全 部清零 答 ORG 0000H START MOV A 0 MOV R7 0 MOV DPTR 3000H LOOP MOVX DPTR A INC DPTR DJNZ R7 LOOP SJMP END 8 将外部 RAM 8000H 开始的 20 个字节数据传送到外部 RAM 8100H 开始的地址单元中去 答 DATA1 EQU 8000H DATA2 EQU 00H ORG 0000H START MOV DPTR DATA1 MOV R0 DATA2 MOV R7 20 LOOP MOVX A DPTR MOV P2 81H MOVX R0 A INC R0 INC DPTR DJNZ R7 LOOP SJMP END 9 编 程 统 计 累 加 器 A 中 1 的 个 数 答 以 下 程 序 将 A 中 1 的 个 数 放 在 3 0 H 单 元 DAT EQU 37H O R G 0 0 0 0 H S T A R T P U S H A C C M O V A D A T M O V 3 0 H 0 N E X T J Z E X I T C L R C R L C A J N C L 1 I N C 3 0 H L 1 A J M P N E X T P O P A C C E X I T S J M P E N D 1 0 编 写 程 序 将 3 0 H 3 4 H 单 元 中 压 缩 的 B C D 码 数 每 个 字 节 存 放 两 个 B C D 码 数 转 换 为 A S C I I 码 数 并 将 结 果 存 放 在 片 内 R A M 6 0 H 6 9 H 单 元 答 O R G 0 0 0 0 H S T A R T M O V R 0 3 0 H M O V R 1 6 0 H M O V R 7 2 A G A I N M O V A R 0 A N L A 0 F 0 H S W A P A A D D A 3 0 H M O V R 1 A M O V A R 0 A N L A 0 F H A D D A 3 0 H I N C R 1 M O V R 1 A I N C R 0 I N C R 1 D J N Z R 7 A G A I N S J M P E N D 1 1 将 内 部 R A M 3 0 H 单 元 的 内 容 转 换 成 三 位 B C D 码 百 位 十 位 个 位 并 将 结 果 存 入 外 部 R A M 1 0 0 0 H 开 始 的 单 元 答 O R G 0 0 0 0 H S T A R T M O V A 3 0 H M O V D P T R 1 0 0 0 H M O V B 1 0 0 D I V A B M O V X D P T R A I N C D P T R M O V A B M O V B 1 0 D I V A B M O V X D P T R A M O V A B I N C D P T R M O V X D P T R A S J M P E N D 1 2 请 使 用 位 操 作 指 令 编 程 实 现 其 中 2 0 H 2 F H 2 A H 都 是 位 地 址 答 O R G 0 0 0 0 H MOV C 20H ANL C 2FH CPL C ORL C 2AH MOV P1 0 C SJMP END 13 简述利用 Keil Vision 调试汇编语言程序的主要步骤 答 利用 Keil Vision 调试软件的主要步骤包括 建立 工程 project 编写汇编语言源程序并保存 在工程中 添加源文件 设置工程 编译并连接 创建目标文件 调 试程序 14 如何产生 hex 文件 答 编译并连接时 在 Project Workspace 窗口中 右键 Target 1 选择 Options For Target Target1 选 项 弹出 option for Target 对话窗 选 Output 选项 卡 选中 Create HEX File 15 在 Keil Vision 环境中 如何查看寄存器和数据存储 单元内容 答 点击 Regs 可查看寄存器的内容 在 Keil 的菜单栏中 选择 View Memory Window 选项 打开 Memory 对话窗 在 Address 栏中输入地址 D 0030H 查看片内 RAM 中 0030H 的内容 X 外部数据存储器 C 程序存储器 练习与思考题 8 1 什么叫中断 计算机采用中断有什么好处 答 外部发生的某一件事件使 CPU 暂停正在执行 的程序 转而执行与该事件相对应的程序 执行完此 程序后再返回到原来被暂停的地方 继续执行原来的 程序 这样一个过程就被称为中断 中断的好处 1 可以提高 CPU 的工作效率 2 可以提高实时数据的处理时效 3 实现实时控制 2 什么叫中断源 AT89S51 有哪些中断源 各有什么特 点 答 引起中断的原因称为中断源 AT89S51 中断系统共 有 5 个中断请求源 1 外部中断请求 0 中断请求标志 为 IE0 2 外部中断请求 1 中断请求标志为 IE1 3 定时器 计数器 T0 溢出中断请求 中断请求标志 为 TF0 4 定时器 计数器 T1 溢出中断请求 中断请求 标志为 TF1 5 串行口中断请求 中断请求标志为 TI 或 RI 特点 2 个外部中断源 3 个内部中断源 3 什么叫中断系统 中断系统的功能是什么 答 实现中断处理功能的软硬件系统称为中断系统 中断系统的功能是 1 对同时提出中断请求的多中断源进行优先 级判断 2 实现中断嵌套 3 自动响应中断 4 实现中断并返回 4 中断嵌套及中断优先级的含义是什么 答 当 CPU 正在处理一个中断源请求时 执行相应的中 断服务程序 发生了另外一个优先级比它更高的中断源 请求 CPU 暂停对原来中断源的服务程序 转而去处理优 先级更高的中断请求源 处理完以后 再回到原低级中断 源服务程序 这样的过程称为中断嵌套 一个 CPU 通常可以与多个中断源相连 由于中断产 生的随机性 可能出现两个或两个以上中断源同时请求中 断的情况 这就要求设计者必须根据轻重缓急给每个中断 源赋予一个中断优先级 这样 当多个中断源同时向 CPU 请求中断时 CPU 就可以率先响应中断优先权高的中断请 求 而把中断优先权低的中断请求暂时搁置起来 等到处 理完优先权高的中断请求后再来响应优先权低的中断 这 就是中断优先级的含义 5 AT89S51 的 6 个中断标志位代号是什么 它们在什么 情况下被置位和复位 答 1 外部中断 0 中断请求标志为 IE0 2 外 部中断 1 中断请求标志位为 IE1 3 定时器 计数器 T0 溢出中断请求标志位为 TF0 4 定时器 计数器 T1 溢出中断请求标志位为 TF1 5 串行口发送中 断请求标志位为 TI 6 串行口接收中断请求标志 位为 RI 各标志位因有相应的中断请求而置位 前四个标志 位因相应的中断请求被响应而复位 而后两个标志位 则是在中断服务程序里通过软件复位 6 中断允许寄存器 IE 各位的定义是什么 请写出允许 T1 定时器溢出中断的指令 答 IE 中各位的定义如下 1 EA 中断允许总控制位 EA 0 CPU 屏蔽所有的中断请求 CPU 关中断 EA 1 CPU 开放所有中断 CPU 开中断 2 ES 串行口中断允许位 ES 0 禁止串行口中断 ES 1 允许串行口中断 3 ET1 定时器 计数器 T1 的溢出中断允许位 ET1 0 禁止 T1 溢出中断 ET1 1 允许 T1 溢出中断 4 EX1 外部中断 1 中断允许位 EX1 0 禁止外部中断 1 中断 EX1 1 允许外部中断 1 中断 5 ET0 定时器 计数器 T0 的溢出中断允许位 ET0 0 禁止 T0 溢出中断 ET0 1 允许 T0 溢出中断 6 EX0 外部中断 0 中断允许位 EX0 0 禁止外部中断 0 中断 EX0 1 允许外部中断 0 中断 允许 T1 定时器溢出中断的指令为 MOV IE 88H 或用位操作指令 SETB EA 和 SETB ET1 7 试 写 出 设 定 和 上 的 中 断 请 求 为 高 优 先 级 和 允 许 它 们 中 断 的 程 序 此 时 若 和 引 脚 上 同 时 有 中 断 请 求 信 号 输 入 试 问 AT89S51 先 响 应 哪 个 引 脚 上 的 中 断 请 求 为 什 么 答 程 序 为 用 位 操 作 指 令 SETB PX0 SETB PX1 SETB EA SETB EX0 SETB EX1 用 字 节 操 作 指 令 MOV IE 85H MOV IP 05H 若 和 引 脚 上 同 时 有 中 断 请 求 信 号 输 入 则 AT89S51 先 响 应 引 脚 上 的 中 断 请 求 因 为 在 同 一 级 别 的 中 断 源 查 询 顺 序 中 排 在 之 前 8 AT89S51 响应中断是有条件的 请说出这些条件 中 断响应的全过程如何 答 响应中断的条件 1 有中断源发出中断请求 2 中断中允许位 EA 1 即 CPU 开中断 3 申请中断的中断源的中断允许位为 1 即中断 没有被屏蔽 4 无同级或更高级中断正在服务 5 当前指令周期已经结束 6 若现行指令为 RETI 或访问 IE 或 IP 指令时 该 指令以及紧接着的另一条指令已执行完毕 AT89S51 单片机的中断响应全过程 CPU 在每个机器周期 S5P2 期间顺序采样每个中断源 CPU 在下一个机器周期 S6 期间按优先级顺序查询中断 标志 如查询到某个中断标志为 1 将在接下来的机器 周期 S1 期间按优先级进行中断处理 中断系统通过硬件 自动将相应的中断矢量地址装入 PC 以便进入相应的中 断服务程序 一旦响应中断 AT89S51 首先置位相应的 中断 优先级生效 触发器 然后由硬件执行一条长调 用指令 把当前的 PC 值压入堆栈 以保护断点 再将 相应的中断服务的入口地址送入 PC 于是 CPU 接着从 中断服务程序的入口处开始执行 对于有些中断源 CPU 在响应中断后会自动清除中断标志 9 AT89S51 响应中断的时间是否是固定的 为什么 答 AT89S51 响应中断的时间不是固定的 由于 CPU 不是在任何情况下对中断请求都予以响应的 此外 在 不同的情况下 CPU 对中断响应的时间也是不同的 下面 以外部中断 为例 说明中断响应的时间 在每个机器周期的 S5P2 期间 端的中断请求信 号被记录到 TCON 的 IE0 位 CPU 在下一个机器周期才 会查询这些值 这时如果满足中断响应的条件 下一条 要执行的指令将是一条硬件长调用指令 LCALL 使 程序转入中断矢量入口 调用本身要用 2 个机器周期 这样 从外部中断请求有效到开始执行中断服务程序的 第一条指令 至少需要 3 个机器周期 这是最短的响应 时间 如果遇到中断受阻的情况 这中断响应时间会更长一 些 例如 当一个同级或更高级的中断服务程序正在进 行 则附加的等待时间取决于正在进行的中断服务程序 如果正在执行的一条指令还没有进行到最后一个机器周 期 附加的等待时间为 1 3 个机器周期 如果正在执行 的是 RETI 指令或者访问 IE 或 IP 的指令 则附加的等待 时间在 5 个机器周期内 若系统中只有一个中断源 则 响应时间为 3 8 个机器周期 10 AT89S51 中 哪些中断可以随着中断被响应而自动 撤除 哪些中断需要用户来撤除 撤除的方法是什么 答 下降沿触发方式下的外部中断 0 和外部中断 1 以及定时器 计数器 T0 和 T1 的溢出中断请求 可以随着 中断被响应而自动撤除 串行口中断请求需要用户来撤 除 撤除的方法是用指令将相应中断请求标位清零 另 外 对于电平沿触发方式下的外部中断 0 和外部中断 1 的中断请求信号通常也需要用户通过软件来撤除 11 试写出 为下降沿触发方式的中断初始化程序 答 ORG 0000H AJMP MAIN ORG 0013H AJMP PINT1 ORG 0100H MAIN SETB IT1 SETB EX1 SETB EA HERE AJMP HERE PINT1 RETI END 12 中断响应过程中 为什么通常要保护现场 如何保 护 答 由于在执行中断服务程序时需要使用 CPU 的某 些寄存器来进行运算 传送 保存中间结果 这样一来 就使得断点处的这些寄存器的原值被改变 中断返回后 继续执行主程序时就会产生错误 因此 在正式执行中断 服务程序之前必须采取保护措施 将断点处的有关寄存器 的值送入堆栈保护 具体保护哪些寄存器的内容 应根据 具体情况而定 13 AT89S51 提供了哪些中断源 各中断源对应的中断 入口地址是多少 答 AT89S51 提供的中断源及各中断源对应的中断 入口地址如下表所示 表 8 2 中断入口地址 中 断源 入 口地 址 外 部中断 0 000 3H 定 时 计 数器 T0 000 BH 外 部中断 1 001 3H 定 时 计 数器 T1 001 BH 串 行口中 断 002 3H 14 AT89S51 对各种中断提出的中断请求如何进行控制 答 AT89S51 对各种中断提出的中断请求进行中断允 许及优先级的控制 具体是通过对 IE IP 两个特殊功能 寄存器的设置来实现 15 子 程 序 和 中 断 服 务 程 序 有 何 异 同 子 程 序 返 回 指 令 RET 和 中 断 返 回 指 令 RETI 能 相 互 替 代 吗 答 子程序和中断服务程序的相同处 都是被调用的 一段程序 执行完后都能返回原调用处 不同处在于 1 子程序调用是预先安排好的 而中断调用是随机发 生的 2 调用子程序 是为主程序服务的 而中断服 务程序与主程序的程序可以毫无关系 3 子程序是由 主程序中安排的调用指令给出目标地址 而中断调用是 通过隐指令获得中断服务程序的入口地址 子程序返回指令 RET 和中断返回指令 RETI 不能相互 替代 虽然 RET 和 RETI 指令都有返回原调用处的功能 但是 RETI 还具有清除中断响应时被置 1 的内部中断优 先级寄存器的优先级状态的功能 16 AT89S51 单片机各中断标志是如何产生的 又如何 清除 答 当单片机检测到 或 上有中断请求信号时 就将相应的中断标志位 IE0 或 IE1 置为 1 当定时器 计数器 T0 或 T1 置为 1 当 CPU 响应此四个中断中 的任何一个后 相应的中断标志位由硬件自动清除 如 果中断是禁止的 这些标志位也可通过软件清除 串行 口完成一次发送或接收后就将相应的中断请求标志位 TI 或 RI 置 1 这两个标志位需要用软件给与清除 17 AT89S51 单片机响应外部中断的典型时间是多少 在哪些情况下 CPU 将推迟对外部中断请求的响应 答 在一个单一中断的系统里 AT89S51 单片机响 应外部中断的典型时间是在 3 8 个机器周期之间 当 AT89S51 正在处理同级或更高优先级的中断时 则将推迟对此外部中断请求的响应 18 AT89S51 单片机响应中断后 产生硬件长调用指令 LCALL 执行指令的过程包括 首先把 PC 的 内容压入堆栈 以进行断点保护 然后把长调用指令 的 16 位地址送 PC 使程序执行转向 程序存 储器 中的中断地址区 19 AT89S51 扩展外部中断源的常用方法有哪些 答 1 借用定时器作为外部中断使用 2 采用中断和查询相结合的方法扩充外部中断源 20 写出定时器 T0 作为外部中断源的初始化程序 答 MOV TMOD 06H MOV TL0 0FFH MOV TH0 0FFH SETB EA SETB ET0 SETB TR0 21 某系统有 3 个外部中断 分别为中断源 1 中断源 2 和中断源 3 当某一个中断源发出高电平的中断请求 信号时 即可使 引脚变低电平 从而引起 CPU 的中断响应 设优先级处理顺序由高到低依次为中断 源 3 中断源 2 中断源 1 中断服务程序入口地址分 别为 2100H 2200H 2300H 试设计实现此功能的硬 件电路 并编写主程序及中断服务程序 转至相应的 入口
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!