单片机原理及应用教程第3版习题课后答案

上传人:gbs****77 文档编号:10631009 上传时间:2020-04-13 格式:DOC 页数:45 大小:645.50KB
返回 下载 相关 举报
单片机原理及应用教程第3版习题课后答案_第1页
第1页 / 共45页
单片机原理及应用教程第3版习题课后答案_第2页
第2页 / 共45页
单片机原理及应用教程第3版习题课后答案_第3页
第3页 / 共45页
点击查看更多>>
资源描述
1 单片机原理及应用程序 第三版 习题参考答案 第一章 1 为什么计算机要采用二进制数 学习十六进制数的目的是什么 在计算机中 由于所采用的电子逻辑器件仅能存储和识别两种状态的特点 计算 机内部一切信息存储 处理和传送均采用二进制数的形式 可以说 二进制数是计算机 硬件能直接识别并进行处理的惟一形式 十六进制数可以简化表示二进制数 2 1 01111001 79H 2 0 11 0 CH 3 01111001 11 79 CH 4 11101010 101 0EA AH 5 01100001 61H 6 00110001 31H 3 1 0B3H 2 80H 3 17 AH 4 0C CH 4 1 01000001B 65 2 110101111B 431 5 1 00100100 00100100 00100100 2 10100100 11011011 11011100 5 10000001 11111110 11111111 6 00100101B 00110111BCD 25H 7 137 119 89 8 什么是总线 总线主要有哪几部分组成 各部分的作用是什么 总线是连接计算机各部件之间的一组公共的信号线 一般情况下 可分为系统总线和 外总线 系统总线应包括 地址总线 AB 控制总线 CB 数据总线 DB 地址总线 AB CPU 根据指令的功能需要访问某一存储器单元或外部设备时 其地址 2 信息由地址总线输出 然后经地址译码单元处理 地址总线为 16 位时 可寻址范围为 216 64K 地址总线的位数决定了所寻址存储器容量或外设数量的范围 在任一时刻 地 址总线上的地址信息是惟一对应某一存储单元或外部设备 控制总线 CB 由 CPU 产生的控制信号是通过控制总线向存储器或外部设备发出控 制命令的 以使在传送信息时协调一致的工作 CPU 还可以接收由外部设备发来的中断 请求信号和状态信号 所以控制总线可以是输入 输出或双向的 数据总线 DB CPU 是通过数据总线与存储单元或外部设备交换数据信息的 故数据 总线应为双向总线 在 CPU 进行读操作时 存储单元或外设的数据信息通过数据总线传 送给 CPU 在 CPU 进行写操作时 CPU 把数据通过数据总线传送给存储单元或外设 9 什么是接口电路 CPU 与接口电路连接一般应具有哪些信号线 外部设备与接口电 路连接一般应具有哪些信号线 CPU 通过接口电路与外部输入 输出设备交换信息 一般情况下 外部设备种类 数量较多 而且各种参量 如运行速度 数据格式及物 理量 也不尽相同 CPU 为了实现选取目标外部设备并与其交换信息 必须借助接口电 路 一般情况下 接口电路通过地址总线 控制总线和数据总线与 CPU 连接 通过数据 线 D 控制线 C 和状态线 S 与外部设备连接 10 存储器的作用是什么 只读存储器和随机存储器有什么不同 存 储 器 具 有 记 忆 功 能 用 来 存 放 数 据 和 程 序 计 算 机 中 的 存 储 器 主 要 有 随 机 存 储 器 RAM 和 只 读 存 储 器 ROM 两 种 随 机 存 储 器 一 般 用 来 存 放 程 序 运 行 过 程 中 的 中 间 数 据 计 算 机 掉 电 时 数 据 不 再 保 存 只 读 存 储 器 一 般 用 来 存 放 程 序 计 算 机 掉 电 时 信 息 不 会 丢 失 11 某存储器的存储容量为 64KB 它表示多少个存储单元 64 1024 12 简述微型计算机硬件系统组成 3 一台计算机的基本结构由运算器 控制器 存储器 输入设备和输出设备五部分组成 13 什么是单片机 单片机与微机相比有何特点 单片机 Single Chip Microcomputer 又称单片微控制器 其基本结构是将微型计算机 的基本功能部件 中央处理机 CPU 存储器 输入接口 输出接口 定时器 计数器 中断系统等全部集成在一个半导体芯片上 因此 单片机其体积小 功耗低 价格低廉 且具有逻辑判断 定时计数 程序控制等多种功能 单片机结构上的设计 在硬件 指令系统及 I O 能力等方面都有独到之处 具有较强 而有效的控制功能 虽然单片机只是一个芯片 但无论从组成还是从其逻辑功能上来看 都具有微机系统的含义 另一方面 单片机毕竟是一个芯片 只有外加所需的输入 输 出设备 才可以构成实用的单片机应用系统 14 单片机主要应用于哪些领域 1 智能仪器 智能仪器是含有微处理器的测量仪器 单片机广泛应用于各种仪器仪表 使仪器仪表智能化取得了令人瞩目的进展 2 工业控制 单片机广泛应用于各种工业控制系统中 如数控机床 温度控制 可 编程顺序控制等 3 家用电器 目前各种家用电器普遍采用单片机取代传统的控制电路 如洗衣机 电冰箱 空调 彩电 微波炉 电风扇及高级电子玩具等 由于配上了单片机 使其功 能增强而身价倍增 深受用户的欢迎 4 机电一体化 机电一体化是机械工业发展的方向 机电一体化产品是指集机械技 术 微电子技术 计算机技术于一体 具有智能化特征的机电产品 单片机除以上各方面应用之外 还广泛应用于办公自动化领域 如复印机 汽车电 路 通信系统 如手机 计算机外围设备等 成为计算机发展和应用的一个重要方 4 向 15 什么是嵌入式系统 嵌入式系统有哪些重要特征 所谓嵌入式系统 是 以应用为中心 以计算机技术为基础 软件硬件可裁减 功能 可靠性 成本 体积 功耗严格要求的专用计算机系统 即以嵌入式应用为目的计算机 系统 嵌入式系统的重要特征 1 系统内核小 2 专用性强 3 系统精简 嵌入式系统一般没有系统软件和应用软件的明显区分 其功能设计及实现上不要 求过于复杂 这样一方面利于控制系统成本 同时也利于实现系统安全 4 高实时性 第二章 1 举例说明 MCS 51 有哪些典型产品 它们有何区别 MCS 51 系列单片机可分为两大系列 51 子系列和 52 子系列 51 子系列单片机的典型产品有 8051 8751 8031 80C51 80C31 等 它们的结构基 本相同 其主要差别反映在片内存储器的配置上有所不同 2 8051 单片机内部包含哪些主要功能部件 各功能部件的主要作用是什么 8051 单片机内部由 CPU 4KB 的 ROM 128B 的 RAM 4 个 8 位的 I O 并行端口 一个串行口 两个 16 位定时 计数器及中断系统等组成 3 程序状态字寄存器 PSW 各位的定义是什么 PSW 是一个 8 位寄存器 用于寄存当前指令执行后的某些状态 即反映指令执行结果 的一些特征信息 Cy PSW 7 即 PSW 的 D7 位 进位 借位标志 AC PSW 6 即 PSW 的 D6 位 辅助进位标志 5 F0 PSW 5 及 F1 PSE 1 即 PSW 的 D5 位 D1 位 用户标志位 RS1 及 RS0 PSW 4 及 PSW 3 即 PSW 的 D4 位 D3 位 寄存器组选择控制位 OV PSW 2 即 PSW 的 D2 位 溢出标志 4 MCS 51 存储器结构的主要特点是什么 程序存储器和数据存储器各有何不同 MCS 51 单片机的存储器结构与一般微机存储器的配置方法不同 一般微机把程序和 数据共存同一存储空间 各存储单元对应惟一的地址 而 MCS 51 的存储器把程序和数 据的存储空间严格区分开 数据存储器用于存放程序运算的中间结果 状态标志位等 程序存储器用于存放已编制好的程序及程序中用到的常数 5 MCS 51 单片机内部 RAM 可分为几个区 各区的主要作用是什么 内部数据存储器分为高 低 128B 两大部分 低 128B 为 RAM 区 地址空间为 00H 7FH 可分为 寄存器区 位寻址区 堆栈及 数据存储区 存放程序运算的中间结果 状态标志位等 高 128B 为特殊功能寄存器 SFR 区 地址空间为 80H FFH 其中仅有 21 个字节 单元是有定义的 6 MCS 51 单 片 机 的 P0 P3 四 个 I O 端 口 在 结 构 上 有 何 异 同 使 用 时 应 注 意 哪 些 事 项 P0 口是一个 8 位漏极开路型双向 I O 端口 P1 口是一个内部带上拉电阻的 8 位准双向 I O 端口 P2 口也是一个内部带上拉电阻的 8 位准双向 I O 端口 P3 口是一个内部带上拉电阻的 8 位多功能双向 I O 端口 在使用时应注意以下方面 P0 P3 都是准双向 I O 口 即 CPU 在读取数据时 必须先向相应端口的锁存 6 器写入 1 各端口名称与锁存器名称在编程时相同 均可用 P0 P3 表示 当系统复位 时 P0 P3 端口锁存器全为 1 故可直接对其进行读取数据 P0 口 每 一 输 出 位 可 驱 动 8 个 LS 型 TTL 负 载 P0 口 可 作 通 用 输 入 输 出 端 口 使 用 此 时 若 要 驱 动 NMOS 或 其 他 拉 电 流 负 载 时 需 外 接 上 拉 电 阻 才 能 使 该 位 高 电 平 输 出 有 效 在单片机进行外部存储器扩展时 P0 口必须作为地址 数据复用线使用 此时 不必 外接上拉电阻 P0 也不能作通用 I O 口使用 P1 P2 P3 口输出均接有内部上拉电阻 输入端无需外接上拉电阻 每一位输出 可以驱动 4 个 LS 型 TTL 电路 P0 P2 口除可以作通用 I O 端口 以实现与外部进行数据交换外 更主要的是 当 CPU 访问外部存储器时 CPU 将自动地把外部存储器的地址线信号 16 位 送 P0 P2 口 作为地址总线 P0 口输出低 8 位地址 P2 口输出高 8 位地址 向外部存储 器输出 16 位存储单元地址 在控制信号作用下 该地址低 8 位被锁存后 P0 口自动切换 为数据总线 这时经 P0 口可向外部存储器进行读 写数据操作 此时 P2 口不再作通用 I O 端口 P0 口为地址 数据复用口 7 在什么情况下 P3 口作为第二功能使用 P3 口的第二功能是作为控制端口使用的 由于单片机没有专设的控制信号引脚 单片 机在进行外部存储器和 I O 端口扩展时所需要的控制信号必须由 P3 口提供 P3 口第二功 能相当于 PC 机中 CPU 的控制线引脚 8 为什么说单片机具有较强的位处理能力 对于许多控制系统 开关量控制是控制系统的主要对象之一 作为传统的 CPU 对于 简单的个别开关量进行控制却显得不那么方便 而让 MCS 51 值得骄傲的正是它有效地 解决了单一位的控制 7 MCS 51 片内 CPU 还是一个性能优异的位处理器 也就是说 MCS 51 实际上又是一个 完整而独立的 1 位单片机 也称布尔处理机 该布尔处理机除了有自己的 CPU 位寄存 器 位累加器 即进位标志 Cy I O 口和位寻址空间外 还有专供位操作的指令系统 可以直接寻址对位存储单元和 SFR 的某一位进行操作 MCS 51 单片机对于位操作 布 尔处理 有置位 复位 取反 测试转移 传送 逻辑与和逻辑或运算等功能 所以 单片机具有较强的位处理能力 9 指出 8051 可进行位寻址的存储空间 00 7FH 即 20H 0 2FH 7 及 SFR 地址能被 8 整除的寄存器中的各位 10 位地址 90H 和字节地址 90H 及 P1 0 有何异同 如何区别 位地址 90H 表示 P1 0 位 字节地址 90H 表示 P1 口 11 在访问外部 ROM 或 RAM 时 P0 和 P2 口各用来传送什么信号 P0 口为什么要 采用片外地址锁存器 P0 口传送地址低八位后可复用数据线 所以 P0 口要采用片外地址锁存器 P2 口 传送地址高八位 12 什么是时钟周期 什么是机器周期 什么是指令周期 当振荡频率为 12MHz 时 一个机器周期为多少微秒 时钟周期 也称振荡周期 即振荡器的振荡频率 fosc 的倒数 是时序中最小的时间单 位 机器周期 执行一条指令的过程可分为若干个阶段 每一阶段完成一规定的操作 完成一个规定操作所需要的时间称为一个机器周期 一个机器周期包含 12 个时钟周 期 当振荡频率为 12MHz 时 一个机器周期为 12 12 1000000 秒 1 微秒 指令周期 定义为执行一条指令所用的时间 8 13 MCS 51 单片机有几种复位方法 复位后 CPU 从程序存储器的哪一个单元开始执 行程序 MCS 51 的复位电路包括上电复位电路和按键 外部 复位电路 0000H 14 8051 系统掉电时如何保存内部 RAM 中的数据 单片机在运行过程中 如果发生掉电 片内 RAM 和 SFR 中的信息将会丢失 为防止 信息丢失 可以把一组备用电源加到 RST VPD 端 当 VCC 上的电压低于 VPD 上的电压时 备用电源通过 VPD 端 以低功耗保持内部 RAM 和 SFR 中的数据 15 8051 单片机引脚 ALE 的作用是什么 当 8051 不外接 RAM 和 ROM 时 ALE 上 输出的脉冲频率是多少 其作用是什么 地址锁存使能输出 ALE 当单片机访问外部存储器时 外部存储器的 16 位地址信号 由 P0 口输出低 8 位 P2 口输出高 8 位 ALE 可用作低 8 位地址锁存控制信号 当不用 作外部存储器地址锁存控制信号时 该引脚仍以时钟振荡频率的 1 6 固定地输出正脉冲 可以驱动 8 个 LS 型 TTL 负载 第三章 1 MCS 51 有哪几种寻址方式 举例说明它们是怎样寻址的 MCS 51 指令系统的寻址方式有以下 7 种 立即寻址方式 操作数直接出现在指令中 直接寻址方式中 操作数的单元地址直接出现在指令中 寄存器寻址方式中 寄存器中的内容就是操作数 寄存器间接寻址方式中 指定寄存器中的内容是操作数的地址 该地址对应存储单 元的内容才是操作数 变址寻址方式是以程序指针 PC 或数据指针 DPTR 为基址寄存器 以累加器 A 作为 9 变址寄存器 两者内容相加 即基地址 偏移量 形成 16 位的操作数地址 相对寻址是以程序计数器 PC 的当前值作为基地址 与指令中的第二字节给出的相对 偏移量 rel 进行相加 所得和为程序的转移地址 位地址 内部 RAM 地址空间的可进行位寻址的 128 位和 SFR 地址空间的可位寻址 的 11 个 8 位寄存器的 88 位 位寻址给出的是直接地址 2 位寻址和字节寻址如何区分 在使用时有何不同 由寻址方式可以看出 不同的寻址方式所寻址的存储空间是不同的 正确地使用寻址 方式不仅取决于寻址方式的形式 而且取决于寻址方式所对应的存储空间 字节寻址必 须是对 8 位存储单元 位寻址的存储空间只能是片内 RAM 的 20H 2FH 字节地址中的所 有位 位地址为 00H 7FH 和部分 SFR 的位 决不能是该范围之外的任何单元的任何位 3 要访问专用寄存器和片外数据寄存器 应采用什么寻址方式 举例说明 访问专用寄存器 可采用直接寻址或寄存器寻址 访问片外数据寄存器 寄存器间接寻址 4 什么是堆栈 其主要作用是什么 堆栈是后进先出的数据存储区 一般用于中断处理过程中 若需要保护现场数据 如内部 RAM 单元的内容 可使 用入栈指令 将数据压入堆栈 中断处理过程执行完后 再使用出栈指令恢复现场数据 5 编程将内部 RAM 的 20H 单元的内容传送给外部 RAM 的 2000H 单元 MOV A 20H MOV DPTR 2000H MOVX DPTR A 6 编程将内部数据存储器 20H 30H 单元内容清零 10 MOV R0 20H MOV A 0 MOV R3 17 LOP MOV R0 A INC R0 DJNZ R3 LOP 7 编程查找内部 RAM 的 32H 41H 单元中是否有 0AAH 这个数据 若有这一数据 则将 50H 单元置为 0FFH 否则清 50H 单元为 0 MOV R3 10H MOV A 0AAH MOV R0 31H LOP INC R0 SUBB A R0 JZ LOP1 DJNZ R3 LOP MOV 50H 0H AJMP LOP3 LOP1 MOV 50H 0FFH LOP3 AJMP 1OP3 8 查找 20H 4FH 单元中出现 00H 的次数 并将查找结果存入 50H 单元 MOV R3 30H 11 MOV R0 20H MOV A 0 LOP MOV A R0 JZ LOP1 LOP3 INC R0 DJNZ R3 LOP AJMP LOP2 LOP1 INC 50H AJMP LOP3 LOP2 AJMP LOP2 9 已知 A 83H R0 17H 17H 34H 写出下列程序段执行完后的 A 中的内容 ANL A 17H ORL 17H A XRL A R0 CPL A A 11001011B 0CBH 10 已知单片机的 fosc 12MHz 分别设计延时 0 1s 1s 1min 的子程序 设晶振频率为 12MHz 一个机器周期为 1 s 延时 1ms 的子程序 执行时间 机器周期 DELAY MOV R7 0FFH 1 LOOP NOP 1 NOP 1 DJNZ R7 LOOP 2 RET 2 该程序段的总的执行时间为 1 4 255 2 s 1023 s 1ms 12 延时时间为 100ms 的子程序 DELAY MOV R5 64H 对延时 1ms 的子程序循环 100 次 LOP1 MOV R7 0FFH LOOP NOP NOP DJNZ R7 LOOP DJNZ R5 LOP1 RET 延时时间为 1s 的子程序 DELAY1 MOV R3 0AH 对延时 100ms 的子程序循环 10 次 DELAY MOV R5 64H LOP1 MOV R7 0FFH LOOP NOP NOP DJNZ R7 LOOP DJNZ R5 LOP1 DJNZ R3 DELAY RET 延时时间为 60s 的子程序 对延时 1s 的子程序循环 60 次 11 MCS 51 汇编语言中有哪些常用的伪指令 各起什么作用 BIT 地址符号命令 END 结束汇编 EQU 等值 DB 定义字节 DW 定义字 13 DS 定义存储单元 ORG 汇编起始地址 12 比较下列各题中的两条指令有什么异同 MOV A R1 MOV 0E0H R1 指令功能相同 寻址方式表示不同 MOV A P0 MOV A 80H 指令功能相同 寻址方式表示不 同 LOOP SJMP LOOP SJMP 指令功能相同 13 下列程序段汇编后 从 3000H 开始各有关存储单元的内容是什么 ORG 3000H TAB1 EQU 1234H TAB2 EQU 5678H DB 65 13 abcABC DW TAB1 TAB2 9ABCH 3000H 65 3001H 13 3002H a 3003H b 3004H c 3005H A 3006H B 3007H C 3008H 34H 3009H 12H 300AH 78H 14 300BH 56H 300CH 0BCH 300DH 9AH 14 为了提高汇编语言程序的效率 在编写时应注意哪些问题 1 把要解决的问题化成一个个具有一定独立性的功能模块 各模块尽量采用子程序 完成其功能 2 力求少用无条件转移指令 尽量采用循环结构 3 对主要的程序段要下功夫精心设计 这样会收到事半功倍的效果 4 能用 8 位数据解决问题的就不要使用 16 位数据 5 累加器是信息传递的枢纽 在调用子程序时应通过累加器传送子程序的参数 通 过累加器向主程序传送返回参数 所以 在子程序中一般不把累加器推入堆栈 若需保 护累加器的内容时 应先把累加器的内容存入其他寄存器单元 然后再调用子程序 6 为了保证程序运行的安全可靠 应考虑使用软件抗干扰技术 如数字滤波技术 指令冗余技术 软件陷井技术 用汇编语言程序实现这些技术 不需要增加硬件成本 可靠性高 稳定性好 方便灵活 15 试编写 8 字节外部数据存储器到内部数据存储器的数据块传送程序 外部数据存 储器地址范围为 40H 47H 内部数据存储器地址范围为 30H 37H MOV R3 8 MOV R0 40H MOV R1 30H LOP1 MOVX A R0 MOV R1 A INC R0 15 INC R1 DJNZ R3 LOP1 16 试编写 8 字节外部程序存储器到内部数据 RAM 的传送程序 外部程序存储器地 址为 2040H 2047H 内部 RAM 地址为 30H 37H 参看 15 题答案 提示 外部程序存储器地址为 16 位地址 2040H 2047H 间接寻 址采用 DPTR 17 试编程使内部 RAM 的 20H 4FH 单元的数据块按降序排列 参看 23 题答案 提示 本题对 20H 4FH 单元 48 个 数据降序排列 18 内 部 RAM 的 20H 单 元 开 始 有 一 个 数 据 块 以 0DH 为 结 束 标 志 试 统 计 该 数 据 块 长 度 将 该 数 据 块 传 送 到 外 部 数 据 存 储 器 7E01H 开 始 的 单 元 并 将 长 度 存 入 7E00H 单 元 MOV R0 20H MOV DPTR 7E01H LOP MOV A R0 MOV 60H A SUBB A 0DH JZ LOP1 MOV A 60H MOVX DPTR A INC R3 INC R0 16 INC DPTR AJMP LOP LOP1 MOV DPTR 7E00H MOV A R3 MOVX DPTR A END 19 试编写一个用查表法查 0 9 字形 7 段码 假设表的首地址为 TABLE 的子程序 调用子程序前 待查表的数据存放在累加器 A 中 子程序返回后 查表的结果也存放在 累加器 A 中 SQR1 MOV DPTR TABLE MOVC A A DPTR RET TABLE DB 0C0H 0F9H 0A4H 0B0H 99H 0 9 的字形显示段码 LED 共阳极 DB 92H 82H F8H 80H 90H 20 内部 RAM 的 DATA 开始的区域中存放着 10 个单字节十进制数 求其累加和 并将结果存入 SUM 和 SUM 1 单元 MOV R0 DATA MOV R3 0AH MOV A 0 LOP ADD A R0 MOV R4 A 17 ADDC A 0 MOV R5 A INC R0 DJNZ R3 LOP MOV SUM R4 MOV SUM 1 R5 END 21 内部 RAM 的 DATA1 和 DATA2 单元开始存放着两个等长的数据块 数据块的长 度在 LEN 单元中 请编程检查这两个数据块是否相等 若相等 将 0FFH 写入 RESULT 单元 否则将 0 写入 RESULT 单元 MOV R0 DATA1 MOV R3 LEN LOP MOV A R0 CJNZ A DATA2 LOP1 INC R0 INC DATA2 DJNZ R3 LOP MOV A 0FFH MOV RESULT A AJMP LOP2 LOP1 MOV A 0 MOV RESULT A LOP2 AJMP LOP2 18 END 22 有一输入设备 其端口地址为 20H 要求在 1 秒钟时间内连续采样 10 次读取该 端口数据 求其算术平均值 结果存放在内部 RAM 区 20H 单元 MOV R0 20H MOV R2 0 MOV A 0 MOV R4 0 LOP MOV R3 0AH IN ACALL DELAY MOVX A R0 MOV R2 A MOV A R4 ADD A R2 MOV R4 A DJNZ R3 IN MOV B 0AH DIV AB MOV 20H A AJMP LOP DELAY MOV R5 64H 延时时间为 0 1s 的子程序 LOP1 MOV R7 0FFH LOOP NOP 19 NOP DJNZ R7 LOOP DJNZ R5 LOP1 RET END 23 编写子程序 将内部 RAM 区以 30H 为起始地址的连续 10 个存储单元中的数据 按照从小到大的顺序排序 排序结果仍存放在原数据区 采用冒泡法排序 冒泡排序法的基本算法是 N 个数排序 从数据存放单元的一端 如起始单元 开始 将相邻二个数依次进行比较 如果相邻两个数的大小次序和排序 要求一致 则不改变它们的存放次序 否则相互交换两数位置 使其符合排序要求 这 样逐次比较 直至将最小 降序 或最大 升序 的数移至最后 然后 再将 n 1 个数继 续比较 重复上面操作 直至比较完毕 可采用双重循环实现冒泡法排序 外循环控制进行比较的次数 内循环实现依次比较 交换数据 程序如下 ORG 0000H BLOCK EQU 30H 设 BLOCK 为 30H 单元 MOV R7 9H 设置外循环计数器 NEXT MOV A R7 MOV 80H A MOV R6 A 设置外循环计数器 MOV R0 30H 设置数据指针 COMP MOV A R0 MOV R2 A INC R0 CLRC SUBB A R0 JC LESS MOV A R2 XCH A R0 DEC R0 MOV R0 A INC R0 LESS DJNZ R6 COMP R6 1 不等于 0 转 COMP 继续内循环 MOV R0 30H 20 DEC 80H MOV R6 80h DJNZ R7 COMP RET END 第 4 章习题答案 1 MCS 51 系列单片机能提供几个中断源 几个中断优先级 各个中断源的优先级怎 样确定 在同一优先级中 各个中断源的优先顺序怎样确定 答 MCS 51 系列单片机能提供 5 个中断源 2 个中断优先级 各个中断源的优先级 是由特殊功能寄存器 IP 来确定 IP 中和各个中断源对应位为 1 时 此中断源为高优先级 否则为低优先级 在同一优先级中 各个中断源的优先顺序是由自然优先级来确定的 2 简述 MCS 51 系列单片机的中断响应过程 答 MCS 51 系列单片机的中断响应过程是按照以下顺序执行的 开中断 中断请求 中断判断 中断响应 中断返回 3 MCS 51 系列单片机的外部中断有哪两种触发方式 如何设置 对外部中断源的中 断请求信号有何要求 答 MCS 51 系列单片机的外部中断有电平触发和边沿触发两种方式 是由特殊功能 寄存器 TCON 中 IT0 IT1 的状态确定的 如 IT0 为 1 时外部中断 0 为边沿触发方式 当 INT0 外部引脚出现下降沿时向 CPU 提出中断请求 否则为电平触发方式 当 INT0 外 部引脚出现低电平时向 CPU 提出中断请求 4 MCS 51 单片机中断响应时间是否固定 为什么 答 MCS 51 单片机中断响应时间不固定 因为当中断源向 CPU 提出中断请求时 CPU 正在执行的指令的指令周期是不一样的 5 MCS 51 单片机如果扩展 6 个中断源 可采用哪些方法 如何确定它们的优先级 21 答 一般可采取中断加查询方式 软件先查询到的为高优先级 最后查询到的为低优先 级 6 当正在执行某一中断源的中断服务程序时 如果有新的中断请求出现 问在什么 情况下可响应新的中断请求 在什么情况下不能响应新的中断请求 答 当正在执行某一中断源的中断服务程序时 如果有新的中断请求出现 当新中断源 中断级别比正在执行中断源的中断级别高时可响应新的中断请求 否则不能响应新的中 断请求 7 8051 单片机有 5 个中断源 但只能设置两个中断优先级 因此 在中断优先级安 排上受到一定的限制 问以下几种中断优先级顺序的安排 级别由高到低 是否可能 如可能 则应如何设置中断源的中断级别 否则 请叙述不可能的理由 1 定时器 0 定时器 1 外中断 0 外中断 1 串行口中断 可能 其中 定时器 0 定时器 1 为高优先级 2 串行口中断 外中断 0 定时器 0 外中断 1 定时器 1 可能 其中 串行口中断为高优先级 3 外中断 0 定时器 1 外中断 1 定时器 0 串行口中断 不可能 4 外中断 0 外中断 1 串行口中断 定时器 0 定时器 1 可能 其中 外中断 0 外中断 1 串行口中断为高优先级 5 串行口中断 定时器 0 外中断 0 外中断 1 定时器 1 不可能 6 外中断 0 外中断 1 定时器 0 串行口中断 定时器 1 不可能 7 外中断 0 定时器 1 定时器 0 外中断 1 串行口中断 22 可能 其中 外中断 0 定时器 1 为高优先级 第 5 章习题答案 1 8051 定时器 计数器有哪几种工作模式 各有什么特点 答 8051 定时器 计数器有 0 1 2 3 四种工作模式 模式 0 为 13 位 1 定时器 计数 器 模式 1 为 16 位 1 定时器 计数器 模式 2 为自动赋初值的 8 位定时器 计数器 模式 3 可以增加一个 8 位定时器 T1 没有模式 3 2 8051 定时器作定时和计数时 其计数脉冲分别由谁提供 答 8051 定时器作定时器时 输入的记数脉冲是由晶体振荡器的输出经 12 分频后得 到的 所以定时器可看作是对单片机机器周期的计数器 8051 定时器作计数器时 则对 外部事件进行计数 3 8051 定时器的门控信号 GATE 为 1 时 定时器如何启动 答 8051 定时器的门控信号 GATE 为 1 时 只有 或 引脚为高电平且INT0I1 TR0 或 TR1 置 1 时 相应的 T0 或 T1 才能选通工作 4 定时器 计数器 0 已预置为 156 且选定用于模式 2 的计数方式 现在 T0 引脚上输 入周期为 1ms 的脉冲 问 1 此时定时器 计数器 0 的实际用途是什么 2 在什么情况下 定时器 计数器 0 溢出 答 1 此时定时器 计数器 0 的实际用途是 0 1S 脉冲信号发生器 2 当 T0 每记数 100 次后定时器 计数器 0 溢出 5 设 fosc 12MHz 定时器 0 的初始化程序和中断服务程序如下 MAIN MOV TH0 9DH MOV TL0 0D0H MOV TMOD 01H 23 SETB TR0 中断服务程序 MOV TH0 9DH MOV TL0 0D0H RETI 问 1 该定时器工作于什么方式 2 相应的定时时间或计数值是多少 答 1 该定时器以模式 1 工作于定时方式 2 相应的定时时间为 25 136ms 6 8 051 单 片 机 的 fosc 6MHz 如 果 要 求 定 时 时 间 分 别 位 0 1ms 和 5ms 当 T0 工 作 在 模 式 0 模 式 1 和 模 式 2 时 分 别 求 出 定 时 器 的 初 值 答 1 定 时 时 间 分 别 位 0 1ms 时 模 式 0 初 值 为 8142 模 式 1 初 值 为 65486 模 式 2 初 值 206 2 定 时 时 间 分 别 位 5ms 时 模 式 0 初 值 为 5692 模 式 1 初 值 为 63036 模 式 2 此 时 定 时 时 间 不 够 7 以定时器 1 进行外部事件计数 每计数 1000 个脉冲后 定时器 1 转为定时工作方式 定时 10ms 后 又转为计数方式 如此循环不止 设 fosc 6MHz 试用模式 1 编程 解 先确定 T1 作为计数器时初 值 为 64536 0FC68H T1 作为定时器时初 值 为 60536 0EC78H 程 序 SETB TR1 LOOP MOV TMOD 50H MOV TH1 0FCH MOV TL1 68H AA JBC TF1 AA MOV TMOD 10H MOV TH1 0E0H MOV TL1 78H BB JBC TF1 BB SJMP LOOP END 8 已 知 8051 单 片 机 的 fosc 6MHz 试 利 用 T0 和 P1 0 输 出 矩 形 波 矩 形 波 高 电 平 宽 100 s 低 电 平 宽 300 s 解 先确定 T0 作为定时器工作于模式 2 时初 值 为 高 电 平 为 50 低 电 平 为 150 采 用 中 断 方 式 编 程 ORG 0000H AJMP MAIN 24 ORG 001BH AJMP TIM0 ORG 0030H MAIN MOV SP 30H 设 置 栈 底 MOV TMOD 02H MOV TL0 50 MOV IE 82H SETB P1 0 SETB TR0 SJMP ORG 0100H TIM0 JNB P1 0 AA CLR P1 0 MOV TL0 150 RETI AA SETB P1 0 MOV TL0 50 RETI END 9 设 fosc 12MHz 试编写一段程序 功能为 对定时器 T0 初始化 使之工作在模式 2 产生 200 s 定时 并用查询 T0 溢出标志的方法 控制 P1 1 输出周期为 2ms 的方波 解 先确定 T0 作为定时器时初 值 为 56 程 序 MOV TMOD 02H MOV TL0 56 MOV TH0 56 MOV R7 5 设 置 循 环 次 数 SETB TR0 AA JBC TF0 AA DJNZ R7 AA CPL P1 1 MOV R7 5 SJMP AA END 10 已知 8051 单片机系统时钟频率为 6MHz 利用其定时器测量某正脉冲宽度时 采用 25 哪种工作模式可以获得最大的量程 能够测量的最大脉宽是多少 第 6 章习题答案 1 异步通信和同步通信的主要区别是什么 MCS 51 串行口有没有同步通信功能 答案 异步通信因为每帧数据都有起始位和停止位 所以传送数据的速率受到限制 但异步 通信不需要传送同步脉冲 字符帧的长度不受限制 对硬件要求较低 因而在数据传送 量不很大 同 步 通 信 一 次 可 以 连 续 传 送 几 个 数 据 每 个 数 据 不 需 起 始 位 和 停 止 位 数 据 之 间 不 留 间 隙 因 而 数 据 传 输 速 率 高 于 异 步 通 信 但 同 步 通 信 要 求 用 准 确 的 时 钟 来 实 现 发 送 端 与 接 收 端 之 间 的 严 格 同 步 MCS 51 串行口有同步通信功能 2 解释下列概念 1 并行通信 串行通信 2 波特率 3 单工 半双工 全双工 4 奇偶校验 答案 1 并行通信 数据的各位同时进行传送 其特点是传送速度快 效率高 数据有多少 位 就需要有多少根传输线 当数据位数较多和传送距离较远时 就会导致通信线路成 本提高 因此它适合于短距离传输 串行通信 数据一位一位地按顺序进行传送 其特点是只需一对传输线就可实现通 信 当传输的数据较多 距离较远时 它可以显著减少传输线 降低通信成本 但是串 行传送的速度慢 26 2 波特率 每秒钟传送的二进制数码的位数称为波特率 也称比特数 单位是 bps bit per second 即位 秒 3 单工 只允许数据向一个方向传送 即一方只能发送 另一方只能接收 半双工 允许数据双向传送 但由于只有一根传输线 在同一时刻只能一方发送 另一方接收 全双工 允许数据同时双向传送 由于有两根传输线 在 A 站将数据发送到 B 站 的同时 也允许 B 站将数据发送到 A 站 4 奇偶校验 为保证通信质量 需要对传送的数据进行校验 对于异步通信 常 用的校验方法是奇偶校验法 采 用 奇 偶 校 验 法 发 送 时 在 每 个 字 符 或 字 节 之 后 附 加 一 位 校 验 位 这 个 校 验 位 可 以 是 0 或 1 以 便 使 校 验 位 和 所 发 送 的 字 符 或 字 节 中 1 的 个 数 为 奇 数 称 为 奇 校 验 或 为 偶 数 称 为 偶 校 验 接 收 时 检 查 所 接 收 的 字 符 或 字 节 连 同 奇 偶 校 验 位 中 1 的 个 数 是 否 符 合 规 定 若 不 符 合 就 证 明 传 送 数 据 受 到 干 扰 发 生 了 变 化 CPU 可 进 行 相 应 处 理 3 MCS 51 串行口控制寄存器 SCON 中 SM2 TB8 RB8 有何作用 主要在哪几种方式 下使用 答案 SM2 多机通信控制位 主要在方式 1 2 3 下使用 TB8 存放发送数据的第 9 位 主要在方式 2 3 下使用 RB8 存放接收数据的第 9 位或停止位 主要在方式 1 2 3 下使用 4 试分析比较 MCS 51 串行口在四种工作方式下发送和接收数据的基本条件和波特率的 产生方法 答案 27 发送数据的基本条件 方式 0 1 2 3 CPU 执行一条将数据写入发送缓冲器 SBUF 的指令 接收数据的基本条件 方式 0 用软件使 REN 1 同时 RI 0 方式 1 用软件使 REN 1 一帧数据接收完毕 后 必须同时满足以下两个条件 RI 0 SM2 0 或接收到的停止位为 1 这次接收 才真正有效 将 8 位数据送入 SBUF 停止位送 RB8 置位 RI 否则 这次接收到的数 据将因不能装入 SBUF 而丢失 方式 2 3 软件使 REN 1 同时满足以下两个条件 RI 0 SM2 0 或接收到的第 9 位数据为 1 SM2 1 则这次接收有效 8 位数据装入 SBUF 第 9 位数据装入 RB8 并由硬件置位 RI 否则 接收的这一帧数据将丢失 波特率的产生方法 在方式 0 下 串行口的波特率是固定的 即波特率 f osc 12 在方式 1 3 下 串行口 波特率由定时器 T1 的溢出率和 SMOD 值同时决定 相应公式为 波特率 2SMOD T1 溢 出率 32 在方式 2 下 串行口的波特率可由 PCON 中的 SMOD 位控制 若使 SMOD 0 则所选波特率为 fosc 64 若使 SMOD 1 则波特率为 fosc 32 即 5 为何 T1 用作串行口波特率发生器时常用模式 2 若 fosc 6MHz 试求出 T1 在模式 2 下可能产生的波特率的变化范围 答案 定时器 T1 作为波特率发生器可工作于模式 0 模式 1 和模式 2 其中模式 2 在 T1 溢出后可自动装入时间常数 避免了重装参数 因而在实际应用中除非波特率很低 一 般都采用模式 2 若 fosc 6MHz T1 在模式 2 下可能产生的波特率的变化范围为 61 04 bps 15625 bps 2SMOD 64 fosc波特率 28 6 简述多机通信原理 答案 当主机选中与其通信的从机后 只有该从机能够与主机通信 其他从机不能与主 机进行数据交换 而只能准备接收主机发来的地址帧 上述要求是通过 SCON 寄存器中的 SM2 和 TB8 来实现的 当主机发送地址帧时使 TB8 1 发送数据帧时使 TB8 0 TB8 是 发送的一帧数据的第 9 位 从机接收后将第 9 位数据作为 RB8 这样就知道主机发来的 这一帧数据是地址还是数据 另外 当一台从机的 SM2 0 时 可以接收地址帧或数据帧 而当 SM2 1 时只能接收地址帧 这就能实现主机与所选从机之间的单独通信 7 试用 8051 串行口扩展 I O 口 控制 16 个发光二极管自右向左以一定速度轮流发光 画出电路并编写程序 答案 电路如下 程序如下 ORG 0000H AJMP MAIN ORG 0023H AJMP SBS 转向串行口中断服务程序 ORG 2000H MAIN MOV SCON 00H 串行口设置为方式 0 MOV A 01H 最右边一位发光二极管先亮 CLR P1 0 关闭并行输出 熄灭显示 CLR P1 1 MOV SBUF A 开始串行输出 LOOP SJMP LOOP 等待中断 SBS INC R0 29 CJNE R0 11H DSP MOV R0 01H DSP CJNE R0 08H DSPR SETB P1 1 启动高 8 位并行输出 DSPR SETB P1 0 启动低 8 位并行输出 ACALL DELY 显示延迟 1s CLR TI 清发送中断标志 RL A 准备点亮下一位 CLR P1 0 关闭并行输出 熄灭显示 CLR P1 1 MOV SBUF A 串行输出 ZDFH RETI DELY MOV R2 05H 延时 1s 子程序 f osc 6MHz DELY0 MOV R3 0C8H DELY1 MOV R4 0F8H NOP DELY2 DJNZ R4 DELY2 DJNZ R3 DELY1 DJNZ R2 DELY0 RET END 8 试设计一个 8051 单片机的双机通信系统 串行口工作在方式 1 波特率为 2400bps 编程将甲机片内 RAM 中 40H 4FH 的数据块通过串行口传送到乙机片内 RAM 的 40H 4FH 单元中 答案 双方约定的通信协议如下 甲机先发送请求乙机接收信号 0AAH 乙机收到该信号后 若为准备好状态 一个 则发送数据 0BBH 作为应答信号 表示同意接收 当甲机发送完 16 个字节后 再向 乙机发送一个累加校验和 校验和是针对数据块进行的 即在数据发送时 发送方对块 中的数据简单求和 产生一个单字节校验字符 校验和 附加到数据块结尾 在数据接 收时 接收方每接收一个数据也计算一次校验和 接收完数据块后 再接收甲机发送的 校验和 并将接收到的校验和与乙机求出的校验和进行比较 向甲机发送一个状态字 30 表示正确 00H 或出错 0FFH 出错则要求甲机重发 甲机收到收到乙机发送的接收 正确应答信号 00H 后 即结束发送 否则 就重发一次数据 甲机采用查询方式进行数据发送 乙机采用中断方式进行数据接收 双方约定传输波 特率为 2400bps 两机主频均为 11 059MHz 双机串行口都工作于方式 1 查表 6 2 可知 SMOD 0 定时器 T1 采用工作模式 2 初值为 F4H 甲机发送子程序 ORG 2000H SEND MOV TMOD 20H 定时器 1 设为模式 2 MOV TL1 0F4H MOV TH1 0F4H 置定时器初值 SETB TR1 启动 T1 MOV SCON 50H 设串行口为方式 2 MOV PCON 00H SMOD 0 TLLS MOV SBUF 0AAH 发送请求接收信号 WFS1 JBC TI RYD1 等待发送 SJMP WFS1 RYD1 JBC RI RYD2 等待乙机回答 SJMP RYD1 RYD2 MOV A SBUF 接收应答信号 XRL A 0BBH JNZ TLLS 乙机未准备好 继续联络 SDD1 MOV R0 40H 首地址 40H R0 MOV R1 10H 数据个数 R1 MOV R2 00H 清校验和寄存器 SDD2 MOV SBUF R0 发送一个数据 MOV A R2 ADD A R0 求校验和 MOV R2 A 保存校验和 INC R0 WFS2 JBC TI SDD3 等待发送 SJMP WFS2 SDD3 DJNZ R1 SDD2 数据块是否发送完 MOV SBUF R2 发送校验和 WFS3 JBC TI RYD3 SJMP WFS3 RYD3 JBC RI RYD4 等待乙机回答 SJMP RYD3 RYD4 MOV A SBUF JNZ SDD1 回答出错则重发 RET 乙机接收子程序 ORG 2000H RECV MOV TMOD 20H 定时器 1 设为模式 2 31 MOV TL1 0F4H MOV TH1 0F4H 置定时器初值 SETB TR1 启动 T1 MOV SCON 50H 设串行口为方式 2 MOV PCON 00H SMOD 0 MOV R0 40H 首地址 40H R0 MOV R1 10H 数据个数 R1 MOV 50H 00H 清校验和寄存器 SETB 7FH SETB 7EH 标志位初始置 1 SETB ES 允许接收中断 SETB EA 开中断 LOOP SJMP LOOP 等待中断 中断服务子程序 CLR EA CLR RI 清中断 JB 7FH RCMD 是请求接收信号吗 JB 7EH DATA 是数据块吗 MOV A SBUF 接收校验和 CJNE A 50H ERR 判断发送是否正确 MOV A 00H MOV SBUF A 正确 发 00H WFS1 JNB TI WFS1 等待发送 CLR TI SJMP RETN ERR MOV A 0FFH MOV SBUF A 出错 发 0FFH WFS2 JNB TI WFS2 等待发送 CLR TI SJMP AGAN RCMD MOV A SBUF 接收甲机请求信号 XRL A 0AAH JZ TYDX SJMP RETN TYDX MOV SBUF 0BBH 发送应答信号 0BBH WFS3 JNB TI WFS3 等待发送 CLR TI CLR 7FH SJMP RETN DATA MOV A SBUF 接收数据 MOV R0 A INC DPTR ADD A 50H 求校验和 MOV 50H A 保存校验和 DJNZ R1 RETN CLR 7EH 数据接收完后清数据标志位 SJMP RETN AGAN SETB 7FH SETB 7EH 恢复标志位 MOV DPTR 2000H 首地址 2000H DPTR MOV R1 10 数据个数 R1 MOV 50H 00H 清校验和寄存器 RETN SETB EA 开中断 32 RETI 9 8051 以方式 2 进行串行通信 假定波特率为 1200bps 第 9 位作奇偶校验位 以中断 方式发送 请编写程序 答案 主程序 ORG 2000H MAIN MOV SCON 80H 将串行口设置为方式 2 REN 1 MOV PCON 00H SMOD 0 MOV R0 30H 发送数据区首地址 R0 MOV R1 50H 接收数据区首地址 R1 MOV R2 20 置发送数据个数 R2 SETB ES SETB EA 开中断 LOOP SJMP LOOP 等待中断 中断服务子程序 ORG 0023H AJMP SOUT 转至中断服务程序 ORG 0200H SOUT CLR TI 清发送中断标志 DJNZ R2 LOOP1 数据未发送完 继续发送 SJMP RR1 发送完返回 LOOP1 MOV A R0 取发送数据到 A MOV C PSW 0 MOV TB8 C MOV SBUF A 发送数据 INC R0 指向下一个数据 RR1 RETI 10 8051 以方式 3 进行串行通信 假定波特率为 1200bps 第 9 位作奇偶验位 以查询方 式接收 请编写程序 答案 ORG 2000H RECV MOV TMOD 20H 定时器 1 设为模式 2 MOV TL1 0E8H MOV TH1 0E8H 置定时器初值 SETB TR1 启动 T1 MOV SCON 0D0H 将串行口设置为方式 3 REN 1 MOV PCON 00H SMOD 0 MOV R1 20H 接收数据区首地址 R1 MOV R2 16 置发送数据个数 R2 WAIT JBC RI PRI 等待接收到数据 SJMP WAIT PRI MOV A SBUF 读接收数据 33 JNB PSW 0 PZEO P 0 则跳转 JNB RB8 ERR P 1 RB8 0 转至出错 SJMP RIGHT P 1 RB8 1 转至正确 PZEO JB RB8 ERR P 0 RB8 1 转至出错 RIGHT MOV R1 A 存放数据 INC R1 指向下一个存储单元 DJNZ R2 WAIT 未接收完则继续接收 CLR F0 F0 0 RET ERR CLR REN SETB F0 置 F0 1 RET 11 RS 232C 总线标准是如何定义其逻辑电平的 实际应用中可以将 MCS 51 单片机串 行口和 PC 机的串行口直接相连吗 为什么 答案 RS 232C 采用负逻辑 即逻辑 1 用 5V 15V 表示 逻辑 0 用 5V 15V 表示 PC 机配置的是 R
展开阅读全文
相关资源
相关搜索

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


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

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


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