单片微机原理与接口技术_习题参考答案110615.pdf_第1页
单片微机原理与接口技术_习题参考答案110615.pdf_第2页
单片微机原理与接口技术_习题参考答案110615.pdf_第3页
单片微机原理与接口技术_习题参考答案110615.pdf_第4页
单片微机原理与接口技术_习题参考答案110615.pdf_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

第 1 页 共 47 页 第 1 章 思考题及习题参考答案 1 写出下列二进制数的原码 反码和补码 设字长为 8 位 1 0 0 1 0 1 1 2 1 0 0 1 1 0 3 0 0 1 0 1 1 4 1 1 1 1 1 1 答 1 原码 0 0 0 0 1 0 1 1 反码 0 0 0 0 1 0 1 1 补码 0 0 0 0 1 0 1 1 2 原码 0 0 1 0 0 1 1 0 反码 0 0 1 0 0 1 1 0 补码 0 0 1 0 0 1 1 0 3 原码 1 0 0 0 1 0 1 1 反码 1 1 1 1 0 1 0 0 补码 1 1 1 1 0 1 0 1 4 原码 1 0 1 1 1 1 1 1 反码 1 1 0 0 0 0 0 0 补码 1 1 0 0 0 0 0 1 2 已知 X 和 Y 试计算下列各题的 X Y 补和 X Y 补 设字长为 8 位 1 X 1 0 1 1 Y 0 0 1 1 2 X 1 0 1 1 Y 0 1 1 1 3 X 1 0 0 0 Y 1 1 0 0 答 1 X 补码 0 0 0 0 1 0 1 1 Y 补码 0 0 0 0 0 0 1 1 Y 补码 1 1 1 1 1 1 0 1 X Y 补 0 0 0 0 1 1 1 0 X Y 补 0 0 0 0 1 0 0 0 2 X 补码 0 0 0 0 1 0 1 1 Y 补码 0 0 0 0 0 1 1 1 Y 补码 1 1 1 1 1 0 0 1 X Y 补 0 0 0 1 0 0 1 0 X Y 补 0 0 0 0 0 1 0 0 3 X 补码 0 0 0 0 1 0 0 0 Y 补码 0 0 0 0 1 1 0 0 Y 补码 1 1 1 1 0 1 0 0 X Y 补 0 0 0 1 0 1 0 0 X Y 补 1 1 1 1 1 1 0 0 3 微型计算机由那几部分构成 答 微型计算机由微处理器 存储器和 I O 接口电路构成 各部分通过地址总线 A B 数据总线 D B 和控制总线 C B 相连 4 8 0 8 6 的寻址范围有多大 其物理地址是如何形成 答 8 0 8 6有 2 0根地址总线 它可以直接寻址的存储器单元数为 1 M字节 其地址区域为 0 0 0 0 0 H F F F F F H 第 2 页 共 47 页 物理地址是由段地址与偏移地址共同决定的 物理地址 段地址 1 6 偏移地址其中段地址 通常来自于段寄存器 C S 物理地址来自于 I P 5 什么叫单片机 它有何特点 答 单片机就是在一块硅片上集成了 C P U R A M R O M 定时器 计数器和多种 I O口 如 并行 串行及 A D 变换器等 的一个完整的数字处理系统 单片机主要特点有 品种多样 型 号繁多 存储容量大 频率高 速度快 控制功能强 集成度高 功耗低 配套应用软件多 第 3 页 共 47 页 第 2 章 思考题及习题参考答案 2 1 说明 R O M E P R O M E E P R O M 和 F L A S H之间的主要区别 解 R O M 为只读存储器 在一般情况下只能读出所存信息 而不能重新写入 信息的 写入是通过工厂的制造环节或采用特殊的编程方法进行的 一旦写入 就能长期保存 E P R O M 芯片一般允许用户多次编程和擦除 擦除时 通过向芯片窗口照射紫外光的方 法来进行 E E P R O M 也称 E 2 P R O M 该类芯片允许用户多次编程和擦除 擦除时 可 采用加电方法在线进行 F L A S H 是一种新型的大容量 速度快 电可擦除可编程只读 存储器 2 2 E P R O M P R O M 动态 R A M 静态 R A M 等存储器中 哪几类是可以随时读写的 解 动态 R A M 静态 R A M 这几类是可以随时读写的 2 3 某 R O M 芯片中有 1 2 根地址输入端和 8 个数据输出端 该芯片的存储容量是多少位 解 芯片的存储容量是 4 K 8 位 2 4 说明动态 R A M 和静态 R A M的主要区别 使用时应如何选用 解 静态 s t a t i c R A M 即 S R A M 它以触发器为基本存储单元 所以只要不掉电 其所 存信息就不会丢失 该类芯片的集成度不如动态 R A M 功耗也比动态 R A M 高 但它的速度比 动态 R A M快 也不需要刷新电路 在构成小容量的存储系统时一般选用 S R A M 在微型计算 机中普遍用 S R A M 构成高速缓冲存储器 动态 D y n a m i c R A M 即 D R A M 一般用 M O S型半导体存储器件构成 最简单的存储形式 以单个 M 0 S 管为基本单元 以极间的分布电容是否持有电荷作为信息的存储手段 其结构简 单 集成度高 但是 如果不及时进行刷新 极间电容中的电荷会在很短时间内自然泄漏 致使信息丢失 所以 必须为它配备专门的刷新电路 动态 R A M芯片的集成度高 价格低廉 所以多用在存储容量较大的系统中 目前 微型计算机中的主存几乎都是使用动态 R A M 2 5 说明 N O R F L A S H 与 N A N D F L A S H的主要区别 使用时应如何选用 解 N O R F l a s h 具有以下特点 1 程序和数据可存放在同一芯片上 拥有独立的数据总线和地址总线 能快速随机 读取 允许系统直接从 F l a s h 中读取代码执行 而无需先将代码下载至 R A M中再执行 2 可以单字节或单字编程 但不能单字节擦除 必须以块为单位或对整片执行擦除 操作 在对存储器进行重新编程之前需要对块或整片进行预编程和擦除操作 但是 N O R F l a s h 的擦除和编程速度较慢 块尺寸又较大 因此擦除和编程操作所花费的 时间很长 在纯数据存储和文件存储的应用中 N O R 技术显得力不从心 N A N D F l a s h 具有以下特点 1 以页为单位进行读和编程操作 1 页为 2 5 6或 5 1 2 B 字节 以块为单位进行擦 除操作 1 块为 4 K 8 K 或 1 6 K B 具有快编程和快擦除的功能 其块擦除时间是 2 m s 而 N O R 技术的块擦除时间达到几百 m s 2 数据 地址采用同一总线 实现串行读取 随机读 取速度慢且不能按字节随机编程 3 芯片尺寸小 引脚少 是位成本 b i t c o s t 最低的 固态存储器 将很快突破每兆字节 1 美元的价格限制 4 芯片包含有失效块 其数目最 大可达到 3 3 5 块 取决于存储器密度 失效块不会影响有效块的性能 但设计者需要将 失效块在地址映射表中屏蔽起来 N O R F l a s h 具有可靠性高 随机读取速度快的优势 在擦除和编程操作较少而直接执行 第 4 页 共 47 页 代码的场合 尤其是纯代码存储的应用中广泛使用 如 P C 的 B I O S 固件 移动电话 硬盘驱 动器的控制存储器等 N A N D F l a s h 结构的闪速存储器适合于纯数据存储和文件存储 主要作为 S m a r t M e d i a 卡 C o m p a c t F l a s h 卡 P C M C I A A T A 卡 固态盘的存储介质 并正成为闪速磁盘技术的核心 2 6 现有 2 K 8 位的 R A M芯片若干片 若用线选法组成存储器 有效的寻址范围最大是多少 K B 若用 3 8 译码器来产生片选信号 则有效的寻址范围最大又是多少 若要将寻址范围扩 展到 6 4 K B 应选用什么样的译码器来产生片选信号 解 以 8 0 8 6 为例 8 0 8 6 有 2 0 条地址线 用 1 1 条地址线寻址一片 2 K 8 位的 R A M 余下的 9 条地址线做线选法的线 故可以并联 9 个芯片 故寻址最大范围是 2 0 K B 若用 3 8 译码器 来产生片选信号 9 条地址线可以控制 3 个 3 8 译码器这样就可以控制 2 4 个芯片最大范围 是 5 0 K B 若要将寻址范围扩展到 6 4 K B 可选用 4 1 6 地址译码器来产生片选信号 2 7 什么是地址重叠区 它对存储器扩展有什么影响 解 基本地址和前面全译码连接的地址范围是相同的 但两者还是有区别的 区别在于全译 码连接时各芯片的地址是唯一的 而部分译码连接时各芯片地址不是唯一的 也就是可以由 若干个地址都选中同一芯片的同一单元 既所谓的地址重叠区 由于存在的地址重叠 影响 了地址区的有效使用 也限制了存储器的扩展 因此 在选用部分译码时 也要尽可能多选 一些高位地址线来作为译码器的输入 2 8 如图 2 2 2 若用 1 K 8 位片子来扩展 3 K 8 位 R A M 试核算各片的地址范围为多少 解 A1 5 A1 4 A1 3 A1 2 A1 1 A1 0 A9 A8 A7A6A5A4 A3A2A1A0 地址 G1 A B C 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 片 1 A 0 0 0 H 图 2 22 1K 8 扩展的 3 K 8 的存储系统 第 5 页 共 47 页 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 片 1 A 3 F F H A1 5 A1 4 A1 3 A1 2 A1 1 A1 0 A9 A8 A7A6A5A4 A3A2A1A0 地址 G1 A B C 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 片 2 B 0 0 0 H 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 片 2 B 3 F F H A1 5 A1 4 A1 3 A1 2 A1 1 A1 0 A9 A8 A7A6A5A4 A3A2A1A0 地址 G1 A B C 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 片 3 B 4 0 0 H 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 片 3 B 7 F F H 所以各片地址范围为 片 1 A 0 0 0 H A 3 F F H 片 2 B 0 0 0 H B 3 F F H 片 3 B 4 0 0 H B 7 F F H 2 9 现有 8 K 8 位 R A M多片 1 片 3 8 译码器 要构成容量为 1 6 K 8 位的存储器 请用线 译码 部分译码 全译码 3 种方式分别设计 画出连接图 并指出寻址范围 解 线译码法 寻址范围 2 0 0 0 H 5 F F F H 第 6 页 共 47 页 部分译码寻址范围 0 0 0 0 H 3 F F F H 全译码 寻址范围 0 0 0 0 H F F F F H 2 1 0 如何检查扩展的 R A M 工作是否正常 试编一个简单的 R A M 检查程序 要求此程序能记 录有多少个 R A M 单元工作有错 且能记录出错的单元地址 解 T E S T C O N S T E Q U 5 A H T E S T R A M E Q U 0 3 H O R G 0 0 0 0 H L J M P I N I T I A L O R G 0 0 5 0 H I N I T I A L M O V R 0 2 5 3 M O V R 1 3 H T E S T A L L R A M M O V R 2 0 F F H T E S T O N E R A M M O V A R 2 M O V R 1 A C L R A 第 7 页 共 47 页 M O V A R 1 C J N E A 2 H E R R O R D I S P L A Y D J N Z R 2 T E S T O N E R A M I N C R 1 D J N Z R 0 T E S T A L L R A M O K D I S P L A Y M O V P 1 1 1 1 1 1 1 1 0 B W A I T 1 S J M P W A I T 1 E R R O R D I S P L A Y M O V A R 1 M O V P 1 A W A I T 2 S J M P W A I T 2 E N D 第 8 页 共 47 页 第 3 章 思考题及习题参考答案 1 8 0 C 5 1 单片机的 P 0 P 3 口在通用 I O 口时操作要注意哪些 P 0 P 3 口不做通用 I O 口时是 什么功能 在使用上有何特点 P 0 P 3 驱动能力如何 答 1 作为通用 I O 口时 P 0 P 3 都是准双向口 输入引脚信息时都必须先向其锁存器写 1 作为输出口时 P 0 口需结上拉电阻 2 P 0 可以作为地址 数据总线 P 2 口可以作为地址线的高 8 位 P 3 口是双功能口 每条口线还具有不同的第二功能 3 P 0 口的驱动能力为 8 个 T T L 负载 而其它口仅可驱动 4 个 T T L 负载 2 M C S 5 1 单片机运行出错或程序进入死循环 如何摆脱困境 答 通过复位电路复位 3 单片机的复位 R S T 操作有几种方法 复位功能的主要作用是什么 答 单片机的复位操作方式有 1 上电复位 2 手动复位 复位功能的主要作用是 复位时 P C 初始化为 0 0 0 0 H 使 M C S 5 1 单片机从 0 0 0 0 H 开始 执行程 4 简述程序状态寄存器 P S W 寄存器中各位的含义 答 程序状态字寄存器 P S W 8 位 其各位的意义为 C Y 进位 借位标志 有进位 借位时 C Y 1 否则 C Y 0 A C 辅助进位 借位标志 高半字节与低半字节间的进位或借位 F 0 用户标志位 由用户自己定义 R S 1 R S 0 当前工作寄存器组选择位 共有四组 0 0 0 1 1 0 1 1 O V 溢出标志位 有溢出时 O V 1 否则 O V 0 P 奇偶标志位 存于累加器 A C C 中的运算结果有奇数个 1 时 P 1 否则 P 0 5 8 0 C 5 1 单片机的当前工作寄存器组如何选择 答 由特殊功能寄存器中的程序状态寄存器 P S W 的 R S 1 R S 0 来决定 当 R S 1 R S 0 为 0 0 时 选择 0 组 为 0 1 时 选择 1 组 为 1 0 时选择 2 组 为 1 1 时选择 3 组 6 8 0 C 5 1 单片机的控制总线信号有哪些 各信号的作用如何 答 8 0 C 5 1 单片机的控制总线信号有以下 4 个 各信号的作用为 R S T V P D 复位信号输入引脚 备用电源输入引脚 A L E P R O G 地址锁存允许信号输出引脚 编程脉冲输入引脚 E A V p p 内外存储器选择引脚 片内 E P R O M 或 F l a s h R O M 编程电压输入引脚 P S E N 外部程序存储器选通信号输出引脚 7 8 0 5 1 单片机中 E A 引脚的作用是什么 答 访问内部或外部程序存储器的选择端当 E A 接高电平的时候程序从内部 R O M开始执行 当 E A 为低电平的时候 从外部 R O M开始执行 8 程序计数器 P C 的作用是什么 答 程序计数器 P C 是一个 1 6 位的计数器 他总是存放着下一个要取的指令的 1 6 位存 储单元地址 用来存放下一条指令的地址用来存放下一条指令的地址的 当执行一条指令时 首先需要根据 P C 中存放的指令地址 将指令由内存取到指令寄存器中 此过程称为 取指 令 与此同时 P C 中的地址或自动加 1 或由转移指针给出下一条指今的地址 此后经过 分析指令 执行指令 完成第一条指令的执行 而后根据 P C 取出第二条指令的地址 如此 循环 执行每一条指令 第 9 页 共 47 页 9 堆栈有哪些功能 堆栈指示器 S P 的作用是什么 在程序设计时 为什么要对 S P 重 新赋值 答 堆栈在中端过程中用来保护现场数据 复位后S P 7 H 而堆栈一般设置在通用R O M 区 3 0 H 7 F H 在系统初始化时候要从新设置 1 0 内部 R A M 低 1 2 8 单元划分为哪 3 个主要部分 说明各部分的使用特点 答 8 0 C 5 1 内部 1 2 8 B 的数据 R A M 区 包括有工作寄存器组区 可直接位寻址区和数据缓 冲区 各区域的特性如下 1 0 0 H 1 F H 为工作寄存器组区 共分 4 组 每组占用 8 个 R A M字节单元 每个单元 作为一个工作寄存器 每组的 8 个单元分别定义为 8 个工作寄存器 R 0 R 7 当前 工作寄存器组的选择是由程序状态字 P S W 的 R S 1 R S 0 两位来确定 如果实际应 用中并不需要使用工作寄存器或不需要使用 4组工作寄存器 不使用的工作寄 存器组的区域仍然可作为一般数据缓冲区使用 用直接寻址或用 R i 的寄存器间 接寻址来访问 2 2 0 H 2 F H 为可位寻址区域 这 1 6 个字节的每一位都有一个地址 编址为 0 0 H 7 F H 当然 位寻址区也可以用作字节寻址的一般数据缓冲区使用 3 3 0 H 7 F H 为堆栈 数据缓冲区 1 1 简述 M C S 5 1 单片机存储区的划分 答 M C S 5 1 单片机的存储器从物理结构上分为 片内和片外数据存储器 片内和片外程 序存储器 2 从逻辑上分别可划分为 片内统一寻址的 6 4 K 程序存储器空间 0 0 0 0 H F F F F H 6 4 K B 的片外数据存储器空间 0 0 0 0 H F F F F H 2 5 6 B 的片内数据存储器空间 0 0 H F F H 1 2 M C S 5 1 基本型单片机的中断入口地址各为多少 答 外部中断 0 中断入口地址 0 0 0 3 H 定时 计数器 0 中断入口地址 0 0 0 B H 外部中断 1 中断入口地址 0 0 1 3 H 定时 计数器 1 中断入口地址 0 0 1 B H 串行接口 中断入口地址 0 0 2 3 H 1 3 什么是指令周期 机器周期和时钟周期 答 指令周期 指令的执行时间 机器周期 C P U 完成一个最简单的指令所需要的时间 时 钟周期 晶振信号周期就是时钟周期 1 4 已知一 M C S 5 1 单片机系统使用 6 M H Z的外部晶体振荡器 计算 该单片机系统的状态周 期与机器周期各为多少 解 由于晶振为 6 M H z 所以机器周期为 2 u s 因为一个机器周期由 6 个状态周期组成 所以 状态周期 1 3 u s 1 5 8 0 3 1 单片机需要外接程序存储器 实际上它还有多少条 I O 线可以用 当使用外部存 储器时 还剩下多少条 I O 线可用 答 8 0 3 1 系统必须外接程序促成器 原则上说 P 0 和 P 2 口要用作数据和地址总线 所以只 有 P 1 和 P 3 口可用作 I O口 共 1 6 条 I O线 在使用外部存储器时 除了占用 P 0 和 P 2 口 外 还需要用 P 3 口 R D P 3 7 和 W R P 3 6 两条控制线 所以这种情况下就只剩下 1 4 条 I O 线可用了 第 10 页 共 47 页 第 4 章 思考题及习题参考答案 1 寻址方式是什么 答 寻址方式是寻找操作数或操作数地址的方式 2 8 9 C 5 1 指令系统有哪几种寻址方式 答 8 9 C 5 1 的寻址方式有七种 即 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 基址寄存器加变址寄存器变址寻址 相对寻址和位寻址 3 访问特殊功能寄存器 S F R 可以采用哪些寻址方式 答 直接寻址和位寻址方式 4 访问 R A M 单元可以采用哪些寻址方式 访问外部 R A M单元有哪些指令 答 直接寻址 寄存器间接寻址和位寻址方式 访问外部 R A M 单元的指令有 4 条 M O V X A D P T R M O V X A R i M O V X D P T R A M O V X R i A 5 访问外部程序存储器可以采用哪些寻址方式 访问外部程序存储器有哪些指令 答 立即寻址 变址寻址和相对寻址方式 访问外部程序存储器的指令有 2 条 M O V C A A D P T R M O V C A A P C 6 试写出完成以下每种操作的指令序列 1 将 R 0 的内容传送到片内 R A M 2 0 H 2 将 R 1 的内容传送到 R 0 3 内部 R A M 单元 1 0 H的内容传送到外部 R A M单元 1 0 0 0 H 4 外部 R A M 单元 1 0 0 0 H的内容传送到 R 5 5 外部 R O M 单元 1 0 0 0 H的内容传送到 R 5 6 外部 R A M 单元 2 0 0 0 H的内容传送到外部 R A M单元 2 0 0 1 H 答 1 M O V 2 0 H R 0 2 M O V A R 1 M O V R 0 A 3 M O V A 1 0 H M O V D P T R 1 0 0 0 H M O V X D P T R A 4 M O V D P T R 1 0 0 0 H M O V X A A D P T R M O V R 5 A 5 M O V D P T R 1 0 0 0 H M O V A 0 0 H M O V C A A D P T R 第 11 页 共 47 页 M O V R 5 A 6 M O V D P T R 2 0 0 0 H M O V X A D P T R I N C D P T R M O V X D P T R A 7 设内部 R A M 3 0 H 6 0 H 6 0 H 1 0 H 1 0 H 2 0 H R 1 2 2 H P 1 0 A H 分析以下程序执 行后 3 0 H 6 0 H 1 0 H A B P 2 每条指令的机器 码为多少 M O V R 0 3 0 H M O V A R 0 M O V R 1 A M O V B R 1 M O V R 1 P 1 M O V P 2 P 1 M O V 1 0 H 9 0 H 答 M O V R 0 3 0 H R 0 3 0 H 7 8 3 0 M O V A R 0 A 6 0 H E 6 M O V R 1 A R 1 6 0 H F 9 M O V B R 1 B 1 0 H 8 7 F 0 M O V R 1 P 1 6 0 H 0 A H A 7 9 0 M O V P 2 P 1 P 2 0 A H 8 5 9 0 A 0 M O V 1 0 H 9 0 H 1 0 H 9 0 H 7 5 1 0 9 0 3 0 H 6 0 H 6 0 H 0 A H 1 0 H 9 0 H A 6 0 H B 1 0 H P 2 0 A H 8 设外部 R A M 2 0 3 0 H 0 F H 分析以下指令执行后 D P T R 3 0 H 2 0 3 0 H A 每 条指令的机器码为多少 M O V D P T R 2 0 3 0 H M O V X A D P T R M O V 3 0 H A M O V A 3 F H M O V X D P T R A 答 M O V D P T R 2 0 3 0 H D P T R 2 0 3 0 H 9 0 2 0 3 0 M O V X A D P T R A 0 F H E 0 M O V 3 0 H A 3 0 H 0 F H F 5 3 0 M O V A 3 F H A 3 F H 7 4 3 F M O V X D P T R A 2 0 3 0 H 3 F H F 0 执行结果为 D P T R 2 0 3 0 H 3 0 H 0 F H 2 0 3 0 H 3 F H A 3 F H 9 编写指令实现下列位操作 第 12 页 共 47 页 1 使累加器的最高 2 位清零 2 屏蔽 清零 2 0 H 的高 4 位 3 将 E 0 H 的低 4 位取反 高 4 位不变 4 将 P 0 的低 2 位置 1 5 将 1 0 H 的内容取补后存放到 2 0 H 答 1 C L R A C C 7 C L R A C C 6 2 A N L 2 0 H 0 F H 3 X R L E 0 H 0 F H 4 O R L P 0 0 3 H 5 X R L 1 0 H 0 F F H I N C 1 0 H M O V 2 0 H 1 0 H 1 0 在外部程序存储器中 从 1 0 2 0 H 单元开始依次存放 0 9 的平方值 0 1 4 9 8 1 要求依据累加器 A 中的值 0 9 来查找所对应的平方值 试设计程序实现 答 M O V D P T R 1 0 2 0 H M O V C A A D P T R 1 1 设 R 0 2 0 H 2 0 H 4 0 H A 5 8 H 则 执行 X C H A R 0 后 A 2 0 H 若执行 X C H D A R 0 后 A 2 0 H 答 执行 X C H A R 0 后 A 4 0 H 2 0 H 5 8 H 若执行 X C H D A R 0 后 A 5 0 H 2 0 H 4 8 H 1 2 试编写程序序列 完成两个 1 6 位数的减法 3 0 H 3 1 H 1 0 H 1 1 H 3 0 H 3 1 H 答 C L R C M O V A 3 1 H S U B B A 1 1 H M O V 3 1 H A M O V A 3 0 H S U B B A 1 0 H M O V 3 0 H A 1 3 试编写程序 将 R 0 中的低 4 位数与 R 1 中的高 4 位数合并成一个 8 位数 并将其存放在 R 0 中 答 M O V A R 0 A N L A 0 F H M O V B A M O V A R 1 A N L A 0 F 0 H O R L A B M O V R 0 A 第 13 页 共 47 页 1 4 设计双字节无符号数加法程序实现 R 0 R 1 R 2 R 3 R 4 R 5 R 0 R 2 R 4存放 1 6 位数的高字节 R 1 R 3 R 5 存放低字节 假设其和不超过 1 6 位 答 M O V A R 1 A D D A R 3 M O V R 5 A M O V A R 0 A D D C A R 2 M O V R 4 A 1 5 设计双字节无符号数相减程序实现 R 0 R 1 R 2 R 3 R 4 R 5 R 0 R 2 R 4 存放 1 6 位数的高字节 R 1 R 3 R 5 存放低字节 答 M O V A R 1 C L R C S U B B A R 3 M O V R 5 A M O V A R 0 S U B B A R 2 M O V R 4 A 1 7 设 2 个 B C D码数存在外部 R A M的 2 0 0 0 H和内部 R A M的 2 0 H 设计程序实现 2 个 B C D 码相 加 其结果的十位和个位送到外部 R A M 的 2 0 0 0 H 单元 结果的百位值送 F 0 位 答 M O V D P T R 2 0 0 0 H M O V X A D P T R A D D A 2 0 H D A A M O V X D P T R A M O V F 0 H C Y 1 8 设变量 X 存放在片内 1 0 H单元中 函数 Y 存放在片内 2 0 H 单元 编写程序实现如下函 数功能 8 0 H X 0 Y 5 0 X 0 F F H X 0 则转移到 P O S I M O V A 0 F F H 若 X 0 时 A 8 0 H 第 14 页 共 47 页 C O M P M O V 2 0 H A 存函数 Y 值 S J M P 结束 1 9 利用位逻辑指令 模拟下图硬件逻辑电路功能 试编写程序实现 答 M O V C Y P 1 0 A N L C Y P 1 1 C P L C Y M O V F 0 C Y M O V C Y P 1 1 O R L C Y P 1 2 A N L C Y F 0 C P L C Y M O V F 0 C Y 2 0 若 C Y 0 P 1 1 0 1 1 0 1 1 1 B 试指出执行下列程序段后 C Y P 1 口内容的变化情况 M O V P 1 2 C M O V C P 1 4 J B C P 1 7 S S O R L C P 1 6 S S C P L P 1 3 A N L C P 1 3 M O V P 1 0 C 答 C Y 0 P 1 0 0 1 1 1 0 1 0 B 第 15 页 共 47 页 第 5 章 思考题及习题参考答案 1 8 0 C 5 1 单片机汇编语言有何特点 答 优点 源程序结构紧凑 灵活 汇编成的目标程序效率高 具有占存储空间少 运行速 度快 实时性强等优点 缺点 由于它的是面向机器的语言 所以它缺乏通用性 编程复杂繁琐 但应用相当广 泛 2 利用 8 0 C 5 1 单片机汇编语言进行程序设计的步骤如何 答 1 需要对单片机应用系统预先完成的任务进入深入的分析 明确系统的设计任务 功能要求 技术指标 2 要对系统的硬件资源和人工作环境进行分析和熟悉 3 利用数学方法或数学模型来对其进行描述 从而把一个实际问题转化成由计算机 进行处理的问题 4 对各种算法进行分析比较 并进行合理的优化 3 常用的程序结构有哪几种 特点如何 答 常用的程序结构有以下几种 1 顺序程序结构 顺序结构是按照逻辑操作顺序 从某一条指令开始逐条顺序进行 直到某一条指令为止 比如数据传送与交换 查表程序和查表程序的设计等 在顺序结构中 没有分支 也没有子程序 但它是组成复杂程序的基础和主干 2 分支程序结构 它的主要特点是程序执行流程中必然包含有条件判断指令 符合条 件要求的和不符条件合要求的有不同的处理程序 3 循环程序结构 它在本质上只是分支程序中的一个特殊形式 它由循环初始化 循环体 循环控制和结束部分构成 在循环次数已知情况下 采用计数循环程序 其特点是 必须在初始部分设定计数的初始值 循环控制部分依据计数器的值决定循环次数 根据控制 循环结束的条件 决定是否继续循环程序的执行 4 子程序 它的主要特点是 在执行过程中需要由其它的程序来调用 执行完后又需 要把执行流程返回到调用该子程序的主程序 4 子程序调用时 参数的传递方法有哪几种 答 在 8 0 C 5 1 单片机中 子程序调用时 参数的传递方法由三种 1 利用累加器 A 或寄存器 2 利用存储器 3 利用堆栈 5 什么是伪指令 常用的伪指令功能如何 答 伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令 常用的伪指令有 1 起始地址设定伪指令 O R G 该指令的功能是向汇编程序说明下面紧接的程序段或 数据段存放的起始地址 2 汇编结束伪指令 E N D 该指令的功能是汇编程序遇到 E N D 伪指令后立即结束汇编 3 字节数据定义伪指令 D B 该指令的功能是从标号指定的地址单元开始 在程序存 储器中定义字节数据 4 字数据定义伪指令 D W 该指令的功能是从标号指定的地址单元开始 在程序存储 器中定义字数据 第 16 页 共 47 页 5 空间定义伪指令 D S 该指令的功能是从标号指定的地址单元开始 在程序存储器 中保留由表达式所指定的个数存储单元作为备用空间 并都填以零值 6 赋值伪指令 E Q U 该指令的功能是将表达式的值或特定的某个汇编符号定义为一 个指定的符号名 7 位地址符号定义伪指令 B I T 该指令的功能是将位地址赋给指定的符号名 6 把外部 R A M 的 2 0 0 0 2 0 F F H R A M空间置零 程序如下 O R G 0 0 0 H M O V R 0 0 0 H M O V D P T R 2 0 0 0 H 空间首地址送D P T R L O O P M O V A 0 0 H M O V X D P T R A 清零 I N C D P T R D P T R 加1 I N C R 0 字节数加1 C J N E R 0 0 0 H L O O P 连续清2 5 6 个字节 L O O P 1 S J M P L O O P 1 E N D 7 录入并调试一个排序子程序 其功能为用冒泡法将内部 R A M 中从 5 0 H 开始的十个单字 节无符号正整数 按从小到大的次序重新排列 程序如下 用冒泡法进行数据排序 O R G 0 0 0 0 H M O V R 3 5 0 H L O O P 0 M O V A R 3 M O V R 0 A 指针送R 0 M O V R 7 0 A H 长度送R 7 C L R 0 0 H 标志位为0 M O V A R 0 L O O P 1 I N C R 0 第 17 页 共 47 页 M O V R 2 A C L R C M O V 2 2 H R 0 C J N E A 2 2 H L O O P 2 相等吗 S E T B C L O O P 2 M O V A R 2 J C L O O P 3 小于或等于不交换 S E T B 0 0 H X C H A R 0 D E C R 0 X C H A R 0 I N C R 0 大于交换位置 L O O P 3 M O V A R 0 D J N Z R 7 L O O P 1 J B 0 0 H L O O P 0 一次循环中有交换继续 L O O P S J M P L O O P 无交换退出 E N D 8 设被加数存放在内部 R A M 的 2 0 H 2 1 H 单元 加数存放在 2 2 H 2 3 H 单元 若要求和存放 在 2 4 H 2 5 H 中 试编写出 1 6 位数相加的程序 答 O R G 1 0 0 0 H M O V R 1 2 1 H 第 18 页 共 47 页 M O V R 2 2 3 H M O V R 3 2 5 H C L R C L P M O V A R 2 A D D C A R 1 M O V R 3 A D E C R 1 D E C R 2 D E C R 3 D J N E R 1 1 F H L P S J M P 9 编写一段程序 把外部 R A M 中 1 0 0 0 H 1 0 3 0 H 单元的内容传送到内部 R A M 的 3 0 H 6 0 H 单元 中 答 O R G 0 0 3 0 H M O V R 1 4 9 M O V R 0 3 0 H M O V D P T R 1 0 0 0 H L O O P M O V X A D P T R M O V R 0 A I N C D P T R I N C R 0 D J N Z R 1 L O O P S J M P E N D 1 0 编写程序 实现双字节无符号数加法运算 要求 R 1 R 0 R 7 R 6 6 1 H 6 0 H 答 M O V A R 0 A D D A R 6 M O V 6 0 H A M O V A R 1 A D D C A R 7 M O V 6 1 H A S J M P 1 1 用 R 0 和 R 1 作数据指针 R 0 指向第一个加数 并兼作 和 的指针 R 1 指向另一个加 数 字节存放到 R 2 中作计数初值 答 主程序 J A F A M O V R 0 2 0 H 指向加数最低字节 M O V R 1 2 9 H 指向另一加数最低字节 M O V R 2 0 4 H 字节数作计数值 第 19 页 共 47 页 A C A L L J A S U B 调用加法子程序 A J M P R T E 多字节加法子程序 J A S U B C L R C J A S U B 1 M O V A R 0 取出加数的一个字节 无符号数加数 A D D C A R 1 加上另一数的一个字节 M O V R 0 A 保存和数 I N C R 0 指向加数的高位 I N C R 1 指向另一加数的高位 D J N Z R 2 J A S U B 1 全部加完了吗 R E T 1 2 在内部 R A M 的 2 1 H单元开始存有一组单字节不带符号数 数据长度为 3 0 H 要求找出最 大数存入 B I G 单元 答 S T A R T M O V R 7 3 0 H D E C R 7 M O V R 0 2 1 H M O V A R 0 L O O P I N C R 0 C L R C S U B B A R 0 J N C N E X T M O V A R 0 N E X T D J N Z R 7 L O O P M O V B I G A S J M P E N D 1 3 求双字节补码程序 设双字节数放在内部 R A M 的 3 0 H和 3 1 H单元 高字节在低地址 将其取补后存入 4 0 H 存 放高字节 和 4 1 H 存放低字节 单元 答 S T A R T M O V A 3 1 H C P L A A D D A 0 1 H M O V 4 1 H A M O V A 3 0 H 第 20 页 共 47 页 C P L A J N C D O N E A D D A 0 1 H D O N E M O V 3 0 H A S J M P 1 4 编程统计累加器 A 中 1 的个数 答 M O V R 1 0 P U S H A C C L O O P 1 J Z D O N E C L R C R L C A J N C L O O P 1 I N C R 1 S J M P L O O P 1 D O N E P O P A C C S J M P E N D 1 5 编程序实现 1 2 3 1 0 0 答 汇编代码如下 H B y t e E Q U R 4 保存结果 高 8 位 L B y t e E Q U R 5 保存结果 低 8 位 M a x A d d e r E Q U 1 0 0 最大的加数 O R G 0 0 0 0 H L J M P M A I N O R G 0 0 3 0 H M A I N M O V R 2 1 加数 M O V R 4 0 M O V R 5 0 S T A R T M O V A M a x A d d e r C L R C Y S U B B A R 2 J C R E S U L T M O V A R 2 A D D A L B y t e M O V L B y t e A 保存低位 M O V A H B y t e A D D C A 0 M O V H B y t e A 保存高位 第 21 页 共 47 页 I N C R 2 J M P S T A R T R E S U L T S J M P 只用于调试 E N D C 语言代码如下 i n c l u d e a t 8 9 x 5 1 h 由于这里只是计算结果 所以这行代码可以去掉 v o i d m a i n v o i d u n s i g n e d c h a r i 1 u n s i g n e d i n t r e s u l t 0 f o r i 1 i 1 0 0 i r e s u l t i w h i l e 1 这里用于调试 第 22 页 共 47 页 第 6 章思考题及习题参考答案 1 什么是中断 中断源 中断服务程序 中断程序入口地址 答 当有中断源申请中断 并允许响应时 处理暂停当前执行的程序转去执行中断服务子 程序的过程叫中断 导致中断产生的事件和原因统称为中断源 处理暂停主程序后转去执行 的 用来处理中断事件的程序成为中断服务子程序 中断程序入口地址是指的中断服务子程 序的第一条指令所在的地址 2 中断优先权有什么作用 中断嵌套是什么 答 中断优先权可以用来解决多个中断源同时申请中断时 处理器响应中断的优先顺序 中 断嵌套是指处理器正在执行中断服务子程序时 被新的中断打断 转去执行新的中断而出现 的一个中断嵌套到另一个中断中的现象 3 保护断点是保护什么 怎么保护的 中断返回后的下一步到到哪里去 答 保护断点是保护主程序暂停时的下一条将要执行的指令的地址 保护方法是将下一条 指令的地址值入栈 中断返回后 断点地址从堆栈中弹出到程序计数器或指令指针寄存器 继续执行主程序 4 保护现场有什么作用 需要保护哪些内容 怎么保护的 5 8 0 C 5 1 单片机有 个中断源 分别是 和 答 5 I N T 0 I N T 1 T 0 T 1 串口 6 8 0 C 5 1 单片机中断有 个优先权等级 最多可以实现 级嵌套 答 2 2 7 8 0 C 5 1 中断嵌套的原则是什么 答 8 0 C 5 1 中断嵌套的原则是 高级中断可以打断低级中断 低级中断不能打断高级中断 同级中断不可以打断同级中断 8 8 0 C 5 1 响应中断的条件有哪些 答 8 0 C 5 1 响应中断的条件有 中断申请的对应中断使能控制位有效 全局中断使能控制位有效 中断申请时没有更高级别的中断服务程序正在执行 9 8 0 C 5 1 的各个中断源是如何撤销中断申请的 答 8 0 C 5 1 各中断源的中断申请撤销方法是 定时 计数器中断 在中断被响应后 由硬件自动清零中断申请标志位 串口中断 由软件清零中断申请标志位 边沿触发时的外部中断 中断被响应后 由硬件自动清零中断申请标志位 电平触发的外部中断 需要设计专门的电路 通过软件编程通知外部中断源 由外部 中断源撤销申请 第 23 页 共 47 页 1 0 8 0 C 5 1单片机中有 个定时 计数器 定时 计数 0有 种工作方式 定时 计 数 1 有 种工作方式 答 2 4 3 1 1 8 0 C 5 1 单片机中有与定时 计数器相关的特殊功能寄存器有哪些 各自有什么作用 答 有 T M O D 和 T C O N的高 4 位 T M O D 用来设置定时 计数的工作方式 选择计数时钟的来源 具体格式如下 定时 计数器 1 定时 计数器 0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 名称 G A T E C T M 1 M 0 G A T E C T M 1 M 0 T C O N 的高 4 位用来控制定时 计数器的启动和停止 并设置中断标志位 向处理器 申请中断 具体格式如下 位地址 8 F H 8 E H 8 D H 8 C H 8 B H 8 A H 8 9 H 8 8 H 位名称 T F 1 T R 1 T F 0 T R 0 I E 1 I T 1 I E 0 I T 0 1 2 8 0 C 5 1 单片机中的定时 计数器用作定时器和计数器时 有什么区别 答 用作定时器时 通常选择内部时钟 也可使用外部时钟 应用中 通常需要根据定时 要求设定计数初值 并查询等待定时时间结束 或者在定时时间结束后向处理器申请中断 用作计数器时 只能选择外部时钟 通常设置计数初值为零 而且需要读取计数结果 1 3 8 0 C 5 1 单片机中的定时

温馨提示

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

评论

0/150

提交评论