1、AVR 单 片 机 实 用 程 序 设 计张 克 彦 编 著ht t p :/ / www .buaap ress .com .cn内 容 简 介本 书 在 介 绍 A VR 单 片 机 系 统 结 构 运 行 原 理 和 指 令 系 统 的 基 础 上 , 给 出 众 多 实 用 程 序 的 设计 和 使 用 方 法 并 提 供 详 细 程 序 清 单 。 它 们 有 的 结 合 A VR 单 片 机 的 先 进 性 和 特 点 , 如 脉 宽 调 制 ( PWM) 输 出 , 看 门 狗 定 时 器 , 休 眠 模 式 (低 功 耗 ) 的 应 用 , 片 内 A/ D 转 换 器 (85
2、35) 的 使 用 , 异 、 同 步 串 口 通 信 , 软 件 DA A 等 ; 有 的 属 于 对 传 统 程 序 的 优 化 , 如 对 简 易 键 盘 LED 显 示 管 理 , 精 确 定 时 及对 重 装 时 间 常 数 的 修 正 , 模 拟 半 双 工 口 , 断 电 保 护 , 带 循 环 冗 余 检 测 ( CRC) 的 异 步 串 口 通 信 , 多 机 通 信 , 定 点 、 浮 点 运 算 以 及 并 、 串 行 时 钟 日 历 芯 片 和 串 行 测 温 器 件 应 用 等 。 主 要 程 序 都 附 有 流 程 图 , 所 有 程 序 都 列 出 清 单 并 带
3、 详 细 注 释 , 且 配 备 光 盘 。本 书 还 总 结 了 对 一 般 嵌 入 式 系 统 应 用 程 序 都 适 用 的 程 序 设 计 和 优 化 方 法 。 书 中 提 供 了 嵌 入 式 系 统 完 整 的 软 件 设 计 实 例 。本 书 程 序 虽 主 要 针 对 8515/ 8535 单 片 机 设 计 , 但 对 升 级 型 或 高 档 的 MEGA 系 列 机 , 以 及 大 部分 低 档机 也 是 适 用 的 。本 书 可 作 为 嵌 入 式 系 统 应 用 工 程 技 术 人 员 的 设 计 参 考 书 , 或 作 为 大 专 院 校 的 教 学 参 考 书 。图
4、 书 在 版 编 目 ( CI P ) 数 据A V R 单 片 机 实 用 程 序 设 计 / 张 克 彦 编 著 . 北 京 : 北 京 航 空 航 天 大 学 出 版 社 , 2004. 2ISBN 7 81077 416 6 . A . 张 . 单 片 微 型 计 算 机 , A V R程 序 设 计 . T P368. 1中 国 版 本 图 书 馆 CIP 数 据 核 字 (2003) 第 097012 号AVR 单 片 机 实 用 程 序 设 计张 克 彦 编 著 责 任 编 辑 胡 晓 柏*北 京 航 空 航 天 大 学 出 版 社 出 版 发 行北 京 市 海 淀 区 学 院
5、路 3 7 号 ( 1 0 00 8 3) 发 行 部 电 话 : 0 10 - 8 2 3 17 0 24 传 真 : 0 10 - 8 2 32 8 0 26 h t t p :/ / w ww .b uaa pr ess .com .cn E- m ail : b h p res s 2 6 3 .n et河 北 省 涿 州 市 新 华 印 刷 厂 印 装 各 地 书 店 经 销*开 本 : 78 7 9 60 1/ 1 6 印 张 : 2 5 .5 字 数 : 57 1 千 字20 0 4 年 2 月 第 1 版 20 0 4 年 2 月 第 1 次 印 刷 印 数 : 5 0 0 0
6、 册IS BN 7 81 0 77 4 16 6 定 价 : 39 .0 0 元 ( 含 光 盘 )1前 言高 可 靠 性 、 功 能 强 、 高 速 度 、 低 功 耗 和 低 价 位 , 一 直 是 衡 量 单 片 机 性 能 的 重 要 指 标 , 也 是 单 片 机 占 领 市 场 、 赖 以 生 存 的 必 要 条 件 。回 顾 单 片 机 发 展 史 , 我 们 看 到 , 早 期 单 片 机 主 要 由 于 工 艺 及 设 计 水 平 不 高 、 功 耗 高 和 抗 干 扰 性 能 差 等 原 因 , 所 以 采 取 稳 妥 方 案 : 即 采 用 较 高 的 分 频系 数 对
7、时 钟 分 频 , 使 得 指 令 周 期 长 , 执 行 速 度 慢 。 以 后 的 CM OS 单 片 机 虽然 采 用 提 高 时 钟 频 率 和 缩 小 分 频 系 数 等 措 施 , 但 这 种 状 态 并 未 被 彻 底 改 观 ; 此 间 虽 有 某 些 精 简 指 令 集 单 片 机 ( RISC ) 问 世 , 但 依 然 沿 袭 对 时 钟 分 频 的 作 法 。A V R 单 片 机 的 推 出 , 彻 底 打 破 这 种 旧 设 计 格 局 , 废 除 了 机 器 周 期 , 抛 弃 复 杂 指 令 计 算 机 ( CISC ) 追 求 指 令 完 备 的 做 法 ;
8、采 用 精 简 指 令 集 , 以 字 作 为指 令 长 度 单 位 , 将 内 容 丰 富 的 操 作 数 与 操 作 码 安 排 在 一 字 之 中 ( 指 令 集 中 占 大 多 数 的 单 周 期 指 令 都 是 如 此 ) , 取 指 周 期 短 , 又 可 预 取 指 令 , 实 现 流 水 作 业 , 故 可 高 速 执 行 指 令 。 当 然 这 种 速 度 上 的 升 跃 , 是 以 高 可 靠 性 为 其 后 盾 的 。A V R 单 片 机 硬 件 结 构 采 取 8 位 机 与 16 位 机 的 折 中 策 略 , 即 采 用 局 部寄 存 器 存 堆 (32 个 寄
9、存 器 文 件 ) 和 单 体 高 速 输 入 / 输 出 的 方 案 ( 即 输 入 捕 获 寄 存 器 、 输 出 比 较 匹 配 寄 存 器 及 相 应 控 制 逻 辑 ) 。 这 样 , 既 提 高 了 指 令 执 行速 度 ( 可 在 晶 振 采 用 12 M H z, 对 3 种 单 片 机 完 成 16 位 16 位 乘 法 运 算 做如 下 比 较 : MCS 51 单 片 机 平 均 耗 时 313 s , A V R 单 片 机 则 降 为 13. 6 s , 而 MCS 96 单 片 机 16 位 乘 法 指 令 执 行 时 间 为 6. 25 s。 AV R 单 片 机
10、 耗 时 为 MCS 96 单 片 机 的 2 倍 , 却 只 有 MCS 51 单 片 机 的 1/ 23 ) , 克 服 了 瓶 颈 现 象 , 增 强 了 功 能 ; 又 减 少 了 对 外 设 管 理 的 开 销 , 相 对 简 化 了 硬 件 结 构 , 降 低 了 成 本 。 故 A V R 单 片 机 在 软 / 硬 件 开 销 、 速 度 、 性 能 和 成 本 诸 多 方 面 取 得 了 优 化 平 衡 , 是 高 性 价 比 的 单 片 机 ; 而 且 A V R 单 片 机 定 格 在 8 位 机 , 没 必2要 做 得 像 16 位 机 那 样 复 杂 。A V R 单
11、 片 机 具 有 多 达 10 位 的 预 分 频 器 , 由 软 件 设 定 分 频 系 数 , 与 8/ 16 位 定 时 器 配 合 , 可 提 供 多 种 档 次 的 定 时 时 间 。 使 用 时 可 选 取 最 接 近 的 定时 档 次 , 即 选 8/ 16 位 定 时 器 / 计 数 器 与 分 频 系 数 的 最 优 组 合 , 减 少 了 定 时 误 差 。 A V R 单 片 机 独 有 的 “ 以 定 时 器 / 计 数 器 双 向 计 数 形 成 三 角 波 再 与 输 出 比 较 匹 配 寄 存 器 配 合 , 生 成 占 空 比 可 变 方 波 的 设 计 方 法
12、 ( 即 脉 宽 调 制 输 出 P WM ) ”更 是 令 人 耳 目 一 新 。A V R 单 片 机 高 质 量 的 F LAS H 寄 存 器 , 擦 写 方 便 , 便 于 开 发 产 品 ; 长 寿 命 的 E E P RO M , 可 长 期 保 存 关 键 数 据 , 避 免 断 电 丢 失 ; 内 部 R A M , 一 般 场 合 足 够 使 用 , 并 可 像 MCS 51 单 片 机 那 样 扩 展 外 部 R A M ( A T 90S8515 等 ) ; 增 设 高 速 同 步 串 口 , 便 于 组 成 分 布 式 网 络 ; 异 步 串 口 功 能 超 过 MC
13、S 51/ 96 单 片 机 串 口 , 加 之 AV R 单 片 机 高 速 , 中 断 服 务 时 间 短 , 故 可 实 现 高 波特 率 通 讯 。 A V R 单 片 机 具 有 8/ 9 位 数 据 通 讯 模 式 , 也 可 实 现 多 机 通 讯 。 A V R 单 片 机 采 用 固 定 中 断 优 先 级 , 不 需 软 件 设 定 , 简 化 了 编 程 。 AV R 单 片 机 的 I/ O 线 驱 动 能 力 强 , 可 省 去 功 率 驱 动 器 件 ; 且 都 可 单 独 设 定 为 输 入 / 输 出 , 故 使 I/ O 口 资 源 灵 活 、 充 分 利 用
14、 。 AV R 单 片 机 功 能 强 , 独 立 的 看 门 狗 电 路 , 并 使 复 位 源 增 加 到 3 个 ( 上 下 电 、 外 部 和 看 门 狗 ) , 增 强 了 嵌 入 式 系 统 的 可 靠 性 。 A V R 单 片 机 具 有 多 种 省 电 休 眠 模 式 , 且 供 电 电 压 可 降 至 2 .7 V , 抗 干 扰 能 力 强 , 可 降 低 一 般 8 位 机 中 的 软 件 抗 干 扰 设 计 工 作 量 , 使 开 发 掌 上 电 脑 、 便 携 式 仪 器 、 仪 表 等 低 功 耗 领 域 , 又 增 添 了 优 选 机 型 。 AV R 单 片
15、机 某 些 机 型 ( 如 A T 90S8535 ) 带 A/ D 转 换 器 件 ( 最 快 转 换 速 度 65 s/ 次 ) ; 大 部 分 机 型 都 带 模 拟 比 较 器 , 可 进 行 模 拟 量 采 集 , 故 A V R 单 片 机 是 一 个 典 型 的 高 性 能 的 模 拟 数 字 混 合 型 通 用 IC 器 件 。综 上 所 述 , AV R 单 片 机 博 采 众 长 , 又 具 独 特 技 术 , 不 愧 为 8 位 机 中 的 佼佼 者 。A V R 单 片 机 技 术 体 现 了 单 片 机 集 多 种 器 件 ( 包 括 看 门 狗 、 FL ASH 程
16、 序 存 储 器 、 E EP R OM、 同 / 异 步 串 行 口 、 模 数 转 换 器 、 定 时 器 / 计 数 器 等 ) 和 多3种 功 能 ( 增 强 可 靠 性 的 复 位 系 统 、 降 低 功 耗 抗 干 扰 的 休 眠 模 式 、 品 种 多 门 类全 的 中 断 系 统 、 具 输 入 捕 获 和 比 较 匹 配 输 出 等 多 样 化 功 能 的 定 时 器 / 计 数 器 、 具 替 换 功 能 的 I/ O 端 口 ) 于 一 身 , 从 “片 自 为 战” 向 片 上 系 统 过 渡 的 发 展 方 向 。 一 般 单 片 机 应 用 中 的 接 口 技 术
17、以 及 软 、 硬 件 抗 干 扰 设 计 技 术 , 在A V R 单 片 机 应 用 设 计 中 不 再 占 据 举 足 轻 重 的 地 位 。本 书 主 要 从 应 用 角 度 向 读 者 介 绍 各 种 程 序 的 设 计 方 法 和 使 用 方 法 。 作 者 具 有 20 余 年 智 能 仪 器 、 仪 表 开 发 经 验 , 且 多 数 程 序 都 由 工 程 项 目 设 计 产生 , 具 有 一 定 的 深 度 和 难 度 。本 书 对 A V R 单 片 机 系 统 组 成 的 先 进 性 和 运 行 特 点 ( 以 A T 90S8515 和 8535 为 代 表 ) 都
18、有 侧 重 说 明 , 并 配 以 相 应 的 实 用 程 序 。 除 此 之 外 , 对 单 片 机问 世 以 来 最 基 本 的 应 用 程 序 和 流 行 程 序 都 进 行 了 优 化 设 计 。 本 书 提 供 众 多 实 用 程 序 , 主 要 包 括 定 点 运 算 、 浮 点 运 算 、 数 制 转 换 、 线 性 插 值 、 数 据 表 设 计 、 键 盘 显 示 ( 带 看 门 狗 ) 管 理 、 打 印 机 使 用 、 步 进 电 机 自 动 ( 或 手 动 ) 正 ( 或 反 ) 转 控 制 、 精 确 定 时 、 脉 宽 调 制 ( PW M ) 输 出 、 异 步
19、/ 同 步 串 口 ( 带 CRC 检 测 ) 通 讯 、 软 件 模 拟 半 双 工 口 、 A/ D 转 换 、 休 眠 ( 省 电 ) 模 式 使 用 、 多 机 通 讯 和 断 电 保 护 等 程 序 。 若 以 本 书 中 的 模 块 化 设 计 为 C 语 言 提 供 支 持 , 可 提 高 混 合 编程 质 量 。本 书 对 A V R 指 令 系 统 也 作 了 详 细 说 明 , 给 出 了 算 术 、 逻 辑 运 算 后 状 态 寄 存 器 SRE G 各 标 志 位 的 布 尔 表 达 式 解 释 。 并 以 实 例 对 比 有 符 号 数 和 无 符 号 数 算 术 运
20、 算 对 标 志 位 影 响 的 特 点 。 调 用 本 书 提 供 的 十 进 制 加 ( 减 ) 法 调 整 子 程 序 , 具 有 其 他 8 位 机 DA A 指 令 相 同 功 能 , 从 而 实 现 实 用 的 多 字 节 压缩 BCD 码 加 减 运 算 。 书 中 提 供 键 盘 显 示 子 程 序 带 定 时 复 位 看 门 狗 指 令 , 如 果 调 用 该 子 程 序 作 为 应 用 系 统 的 背 景 程 序 , 则 对 看 门 狗 初 始 化 后 不 必 再 对其 进 行 管 理 ; 对 看 门 狗 使 用 方 法 与 注 意 事 项 、 A V R 中 断 方 式
21、及 特 点 、 省 电 模 式 下 工 作 特 点 、 E E PR O M 在 线 写 入 ( A T 90S8535 ) 和 多 机 通 讯 方 法 等 也 都 进 行 了 详 细 说 明 。书 中 在 介 绍 多 种 实 用 程 序 设 计 方 法 的 基 础 上 , 总 结 了 一 般 嵌 入 式 系 统4软 件 设 计 及 优 化 方 法 。 为 使 读 者 能 对 嵌 入 式 系 统 软 件 总 体 设 计 有 较 全 面 了 解 , 书 中 提 供 了 完 整 的 嵌 入 式 系 统 软 件 设 计 实 例 , 如 A V R 频 率 计 程 序 ( 清单 96 ) , 计 数
22、器 资 源 共 享 的 输 入 捕 获 、 比 较 匹 配 PW M 输 出 和 定 时 中 断 信 号 获 取 程 序 ( 清 单 97) 以 及 DA L LAS18B20 测 温 程 序 ( 清 单 100) 等 。书 中 还 给 出 正 确 的 由 R 2R 网 络 组 成 的 数 / 模 转 换 电 路 和 数 据 转 换 公式 , 并 解 释 其 工 作 原 理 。全 书 分 为 5 章 : 第 1 章 介 绍 AV R 单 片 机 硬 件 结 构 , 分 析 它 的 运 行 原 理 ; 第 2 章 介 绍 A V R 单 片 机 指 令 系 统 , 详 解 其 功 能 特 点 ;
23、 第 3 章 介 绍 定 点运 算 及 数 制 转 换 子 程 序 的 设 计 方 法 ; 第 4 章 介 绍 各 类 实 用 程 序 ( 查 表 、 外 设 管 理 、 通 讯 、 A/ D 转 换 和 定 时 器 / 计 数 器 应 用 等 ) 的 设 计 使 用 方 法 , 并 对 嵌 入 式 系 统 程 序 优 化 方 法 进 行 总 结 ; 第 5 章 介 绍 AV R 单 片 机 浮 点 程 序 库 设 计及 其 应 用 , 包 括 介 绍 浮 点 数 结 构 、 基 本 运 算 、 函 数 计 算 、 浮 点 数 制 转 换 等 子 程 序 的 设 计 方 法 、 演 示 及 应
24、 用 。本 书 成 书 过 程 中 得 到 北 京 航 空 航 天 大 学 何 立 民 教 授 的 关 照 , 并 得 到 北京 航 空 航 天 大 学 出 版 社 以 及 珠 海 志 美 公 司 同 事 的 大 力 支 持 和 热 心 相 助 。 在 此 表 示 感 谢 。作 者2003 年 7 月电 话 : 0431 - 4667215通 讯 地 址 : 长 春 市 经 济 技 术 开 发 区海 口 路 3 号 ( 新 华 证 券 )邮 编 : 1300315 目 录1目 录第 1 章 AVR 单 片 机 硬 件 结 构 和 运 行 原 理1 .1 AV R 单 片 机 的 内 部 结 构
25、 31 .2 存 储 器 组 织 51 .3 定 时 器 / 计 数 器 91 .4 A T 90 S8515/ 8535 单 片 机 的 I/ O 口 231 .5 中 断 系 统 261 .6 复 位 系 统 341 .7 A T 90 S8535 单 片 机 片 内 模 数 转 换 器 361 .8 同 步 串 行 口 SPI 401 . 9 异 步 串 行 口 U A RT 461 .10 模 拟 比 较 器 531 .11 看 门 狗 551 .12 E E P R OM 的 读 / 写 581 .13 休 眠 方 式 60第 2 章 AVR 单 片 机 指 令 系 统2 .1 AV
26、 R 单 片 机 汇 编 器 编 程 规 定 622 .1 .1 伪 指 令 622 .1 .2 表 达 式 652 .2 操 作 数 及 指 令 所 涉 及 的 对 象 672 .2 .1 状 态 寄 存 器 SR EG 672 .2 .2 执 行 指 令 对 标 志 位 的 影 响 682 .2 .3 操 作 数 寄 存 器 和 操 作 数 692 .2 .4 堆 栈 692 .3 寻 址 方 式 69AV R 单 片 机 实 用 程 序 设 计 522 .4 算 术 和 逻 辑 运 算 指 令 722 .4 .1 加 法 指 令 732 .4 .2 减 法 指 令 752 .4 .3 取
27、 反 指 令 772 .4 .4 取 补 指 令 772 .4 .5 比 较 指 令 772 .4 .6 逻 辑 与 指 令 782 .4 .7 逻 辑 或 指 令 792 .4 .8 逻 辑 异 或 指 令 802 .5 转 移 指 令 802 .5 .1 无 条 件 转 移 指 令 822 .5 .2 条 件 转 移 指 令 822 .6 数 据 传 输 指 令 902 .6 .1 直 接 寻 址 数 据 传 输 指 令 922 .6 .2 间 接 寻 址 传 输 指 令 922 .6 .3 I/ O 口 数 据 传 送 942 .6 .4 堆 栈 操 作 指 令 942 .7 位 操 作
28、 及 其 他 指 令 952 .7 .1 移 位 指 令 972 .7 .2 位 操 作 指 令 982 .7 .3 修 改 标 志 位 指 令 982 .7 .4 I/ O 寄 存 器 操 作 指 令 1002 .7 .5 其 他 指 令 101第 3 章 定 点 运 算 和 定 点 数 制 转 换3 .1 软 件 DAA 的 实 现 方 法 1023 .1 .1 实 现 加 法 DAA 功 能 子 程 序 ADDAA 和 LSDAA 的 设 计 方 法 1033 .1 .2 实 现 减 法 DAA 功 能 子 程 序 SUDA A 的 设 计 方 法 1043 .1 .3 实 现 右 移
29、DAA 功 能 子 程 序 R SDAA 的 设 计 方 法 1053 .2 定 点 运 算 子 程 序 1053 .2 .1 多 字 节 压 缩 BCD 码 加 法 子 程 序 ADBCD4 和 ADBCD 1053 .2 .2 多 字 节 压 缩 BCD 码 减 法 子 程 序 SU BCD4 和 SUBCD 1063 .2 .3 乘 法 子 程 序 M U L16 1073 .2 .4 带 舍 入 功 能 的 乘 法 子 程 序 M U L165 1085 目 录33 .2 .5 整 数 除 法 子 程 序 DIV 16 1083 .2 .6 将 最 后 余 数 舍 入 处 理 的 除
30、法 子 程 序 DIV 165 1093 .2 .7 商 为 规 格 化 浮 点 数 的 除 法 子 程 序 DIV 16 F 1093 .2 .8 整 数 除 法 子 程 序 DIV 24 和 DIV40 1093 .2 .9 整 数 开 方 子 程 序 I N T SQ R 1123 .3 定 点 数 制 转 换 子 程 序 114第 4 章 AVR 实 用 程 序4. 1 查 表 ( 子 ) 程 序 1204. 1. 1 线 性 内 插 计 算 子 程 序 C H E T A 1204. 1. 2 功 能 数 据 表 格 项 目 浏 览 、 查 找 、 修 改 程 序 1274. 2 E
31、 EP R OM 读 / 写 子 程 序 1374. 2. 1 E EP R OM 读 出 子 程 序 RE E P 1374. 2. 2 E EP R OM 写 入 子 程 序 WE E P 1384. 3 输 入 输 出 子 程 序 1394. 3. 1 时 钟 日 历 芯 片 O KI MSM 62 42 的 读 / 写 子 程 序 1394. 3. 2 显 示 保 护 程 序 DSP R V 1434. 3. 3 键 处 理 程 序 DE A LKY 1454. 3. 4 计 算 键 值 L ED 显 示 管 理 子 程 序 DSPA 和 DSPY 1484. 3. 5 键 入 数 字
32、 序 列 左 移 处 理 子 程 序 LSDD8 1554. 3. 6 双 键 浏 览 、 修 改 数 据 子 程 序 KY IN2 1584. 3. 7 通 用 宽 行 打 印 机 检 测 及 打 印 子 程 序 LP R N T 1634. 3. 8 步 进 电 机 控 制 程 序 1674. 4 精 确 定 时 及 日 历 时 钟 走 时 程 序 ( 电 脑 钟 ) 1754. 4. 1 MC U 主 频 4 M Hz 用 T CN T 1 精 确 定 时 程 序 1764. 4. 2 MC U 主 频 8 M Hz 用 T CN T 1 精 确 定 时 程 序 1784. 4. 3 M
33、C U 主 频 4 M Hz 用 T CN T 0 精 确 定 时 程 序 1804. 4. 4 以 外 部 时 钟 ( 32 768 H z) 用 T/ C2 定 时 直 接 产 生 秒 号 程 序 1814. 4. 5 时 钟 日 历 走 时 子 程 序 ACL K 1824. 5 通 信 程 序 1884. 5. 1 异 步 串 行 口 中 断 接 收 和 发 送 ASCII 码 字 串 程 序 1884. 5. 2 用 外 部 中 断 配 合 查 询 接 收 串 行 ASCII 码 字 串 程 序 1934. 5. 3 以 定 时 器 和 输 出 口 配 合 用 中 断 方 式 发 送
34、 ASCII 码 字 串 程 序 2004. 5. 4 以 定 时 器 和 输 入 口 配 合 用 中 断 方 式 接 收 ASCII 码 字 串 程 序 205AV R 单 片 机 实 用 程 序 设 计 544. 5. 5 主 从 多 机 通 信 程 序 2114. 5. 6 智 能 型 R S 232 与 R S 485 标 准 转 换 程 序 2164. 5. 7 高 速 同 步 串 行 口 通 信 程 序 2184. 5. 8 模 拟 串 行 口 配 合 74164 驱 动 LE D 静 态 显 示 程 序 2214. 6 脉 宽 调 制 ( P WM ) 输 出 2234. 6.
35、1 精 确 定 时 输 出 占 空 比 1 1 秒 号 方 波 2244. 6. 2 用 比 较 匹 配 达 到 时 控 制 输 出 口 的 方 法 输 出 P WM 波 形 2254. 6. 3 用 比 较 匹 配 达 到 时 求 反 输 出 口 的 方 法 输 出 P WM 波 形 2274. 7 模 数 转 换 2294. 7. 1 A/ D 转 换 和 自 运 行 的 PWM 输 出 综 合 程 序 2294. 7. 2 利 用 模 拟 比 较 器 进 行 A/ D 转 换 程 序 2324. 8 可 靠 性 程 序 2354. 8. 1 滑 动 平 均 子 程 序 SLP AV 23
36、54. 8. 2 带 外 部 SR A M ( 不 断 电 ) 的 8515 系 统 断 电 保 护 程 序 2404. 8. 3 A T 90 LS8535 工 作 于 掉 电 模 式 下 小 系 统 的 断 电 保 护 程 序 2494. 8. 4 循 环 冗 余 检 测 子 程 序 CRCS T 2554. 8. 5 循 环 冗 余 检 测 演 示 程 序 2594. 9 码 制 转 换 2614. 9. 1 ASCI I 码 数 据 综 合 处 理 子 程 序 2614. 9. 2 格 雷 ( Gr ay) 码 与 二 进 制 数 相 互 转 换 子 程 序 2724. 10 嵌 入
37、式 系 统 软 件 设 计 方 法 2744. 11 嵌 入 式 系 统 常 用 优 化 设 计 方 法 276第 5 章 AVR 浮 点 程 序 库5 .1 AV R 浮 点 程 序 库 的 特 点 2825 .1 .1 AV R 浮 点 程 序 库 的 设 计 特 点 2825 .1 .2 AV R 浮 点 程 序 库 的 优 点 2835 .1 .3 IE E E 浮 点 数 格 式 2855 .1 .4 浮 点 数 的 规 格 化 2875 .1 .5 对 阶 2885 .2 基 本 运 算 子 程 序 的 设 计 方 法 2885 .2 .1 支 持 基 本 运 算 的 辅 助 子
38、程 序 2885 .2 .2 浮 点 数 比 较 大 小 子 程 序 F PC P 的 设 计 方 法 2895 .2 .3 浮 点 加 法 子 程 序 F PAD 的 设 计 方 法 2905 目 录55 .2 .4 浮 点 减 法 子 程 序 F PS U 的 设 计 方 法 2915 .2 .5 浮 点 乘 法 子 程 序 F PM U 的 设 计 方 法 2945 .2 .6 浮 点 除 法 子 程 序 F PDI 的 设 计 方 法 2975 .2 .7 浮 点 数 模 拟 手 算 开 平 方 子 程 序 F PSQ 的 设 计 方 法 3005 .2 .8 浮 点 数 牛 顿 迭
39、代 开 平 方 子 程 序 FSQ R 的 设 计 方 法 3045 .2 .9 基 本 运 算 子 程 序 的 演 示 程 序 3065 .3 函 数 计 算 子 程 序 的 设 计 方 法 3085 .3 .1 函 数 计 算 子 程 序 的 设 计 总 则 3095 .3 .2 函 数 计 算 子 程 序 的 辅 助 子 程 序 3095 .3 .3 用 荷 纳 法 计 算 多 项 式 值 子 程 序 F PL N1 和 FP LN 2 3155 .3 .4 对 数 函 数 LNX 及 其 衍 生 函 数 子 程 序 的 设 计 方 法 3175 .3 .5 指 数 函 数 EXP 及
40、其 衍 生 函 数 子 程 序 的 设 计 方 法 3225 .3 .6 正 弦 函 数 sin x 及 其 衍 生 函 数 子 程 序 的 设 计 方 法 3275 .3 .7 反 正 弦 函 数 ASI NX 及 其 衍 生 函 数 子 程 序 的 设 计 方 法 3305 .3 .8 函 数 计 算 子 程 序 的 演 示 程 序 3365 .3 .9 阶 乘 子 程 序 NP 的 设 计 方 法 3375 .3 .10 浮 点 数 制 转 换 3385 .4 浮 点 程 序 应 用 实 例 3495 .4 .1 拟 合 直 线 程 序 3495 .4 .2 模 数 转 换 器 AD77
41、01 的 应 用 354附 录 实 用 程 序 的 补 充 参 考 程 序 后 记参 考 文 献第 1 章A V R 单 片 机 硬 件 结 构 和 运 行 原 理A V R 单 片 机 是 A T M E L 公 司 推 出 的 具 有 众 多 成 员 的 单 片 机 家 族 , 主 要 包 括 A T - tiny、 A T 90 和 A T me ga 三 个 系 列 , 其 硬 件 结 构 从 相 对 简 单 到 复 杂 , 功 能 增 强 , 而 指 令 系 统 向 上 兼 容 。与 一 般 8 位 机 相 比 , AV R 单 片 机 的 显 著 特 点 为 高 性 能 、 高 速
42、 度 和 低 功 耗 。 它 是 最 先 取 消 机 器 周 期 , 以 时 钟 周 期 为 指 令 周 期 , 实 行 流 水 作 业 , 并 首 先 采 用 寄 存 器 文 件 和 精简 指 令 集 的 8 位 单 片 机 。 它 具 有 高 质 量 的 FL AS H 程 序 存 储 器 和 E EP R OM 数 据 存 储 器 、 功 能 多 样 化 的 定 时 器 / 计 数 器 、 可 靠 的 监 视 定 时 器 、 多 渠 道 的 复 位 电 路 以 及 多 种 选 择 的 休 眠 方 式 等 方 面 优 势 , 使 其 功 能 、 可 靠 性 、 速 度 、 节 电 和 价
43、位 等 综 合 性 指 标 在 8 位 机 中 名 列 前 茅 , 是 8 位 嵌 入 式 系 统 应 用 的 首 选 机 种 。A V R 单 片 机 指 令 以 字 为 单 位 , 指 令 内 容 丰 富 , 且 大 部 分 指 令 都 为 单 周 期 指 令 ; 而 单 周 期 即 可 执 行 本 指 令 功 能 , 并 完 成 读 取 下 一 指 令 的 操 作 。A V R 单 片 机 采 用 12 M Hz 晶 振 时 , 执 行 速 度 可 达 12 兆 条 单 周 期 指 令 每 秒 ( 12 M IPS ) , 是 一 般 MCS 51 单 片 机 的 12 倍 。 若 考
44、虑 到 消 除 瓶 颈 现 象 等 因 素 ( 算 术 运 算 、 逻 辑 运 算 和 移 位 操 作 都 在 寄 存 器 文 件 中 完 成 , 寄 存 器 文 件 之 间 、 寄 存 器 文 件 与 I/ O 寄 存 器 或 与 片 内 、 外 SR A M 之 间 都 可 直 接 传 送 数 据 等 ) , 执 行 模 块 功 能 的 总 体 速 度 还 可 在 此 基 础 上 再 翻 一 番 。 例 如 , 其 16 位 16 位 乘 法 子 程 序 的 速 度 为 MCS 51 单 片 机 的 23 倍 即 是 明 证 。A V R 单 片 机 的 FL ASH 程 序 存 储 器
45、可 擦 / 写 1 000 次 , 对 于 需 要 频 繁 修 改 软 件 设 计 的 开 发 项 目 也 足 够 使 用 。 E E P R OM 数 据 存 储 器 可 擦 / 写 10 万 次 , 可 妥 善 保 存 仪 器 仪 表 的 关 键 性 数 据 。AV R 单 片 机 实 用 程 序 设 计 52A V R 单 片 机 具 有 种 类 多 样 的 中 断 源 , 便 于 设 计 实 时 、 多 功 能 、 高 效 的 应 用 系 统 。A V R 单 片 机 的 A T90S8535 等 机 型 带 A/ D 转 换 器 , 可 实 现 多 路 模 拟 量 连 续 快 速 转
46、 换 , 最 高 速 度 达 65 s/ 次 。 图 1 .1 为 A T 90S8515 单 片 机 引 脚 配 置 图 。图 1 .1 AT90S8515/ 8535 单 片 机 引 脚 配 置5 AVR 单 片 机 硬 件 结 构 和 运 行 原 理3A V R 单 片 机 的 异 步 串 行 口 功 能 优 于 一 般 8 位 机 , 波 特 率 设 置 得 很 高 , 且 具 有 高 速同 步 串 行 口 , 容 易 实 现 多 机 通 信 , 规 定 多 种 通 信 协 议 。A V R 单 片 机 具 有 功 能 多 样 化 的 定 时 器 / 计 数 器 , 定 时 精 度 和
47、 定 时 档 次 可 广 泛 选 择 ,且 具 有 输 入 捕 获 、 脉 宽 调 制 输 出 等 功 能 。A V R 单 片 机 具 有 多 种 类 型 休 眠 模 式 , 可 选 择 多 种 中 断 ( 包 括 复 位 ) 源 唤 醒 MC U ,使 设 计 低 功 耗 嵌 入 式 应 用 系 统 达 到 多 样 化 。休 眠 模 式 和 多 复 位 源 的 采 用 , 增 强 了 硬 件 抗 干 扰 功 能 , 减 少 了 软 件 抗 干 扰 设 计 的 工 作 量 , 使 AV R 单 片 机 性 能 跃 升 新 高 。A V R 嵌 入 式 应 用 系 统 的 优 点 , 还 可
48、列 举 出 很 多 。本 书 主 要 讲 述 A V R 中 档 机 A T 90 系 列 的 A T 90 S8515/ 8535 单 片 机 。 A T 90S8515 单 片 机 的 特 点 是 其 引 脚 与 MCS 51 单 片 机 完 全 兼 容 , 可 外 扩 S R AM 或 扩 展 外 设 。 但外 扩 占 用 了 A 口 、 C 口 和 RD、 W D 等 控 制 端 口 , 主 要 适 合 于 较 大 的 应 用 系 统 。 A T90S8535 单 片 机 带 8 路 10 位 A/ D 转 换 器 , 但 它 不 便 外 扩 SR A M 或 扩 展 外 设 , 故
49、适 合 真 正 意 义 的 单 片 机 应 用 场 合 。A T90S8515 与 A T 90 S8535 单 片 机 的 FL ASH 存 储 器 、 片 内 SR A M 和 E E PR O M的 容 量 完 全 相 同 , 分 别 为 4 K 字 、 512B 和 512B。 A T 90 S8535 单 片 机 还 扩 展 了 定 时 器 / 计 数 器 T/ C2 , 主 要 作 为 实 时 钟 或 应 用 于 休 眠 模 式 。1 .1 AVR 单 片 机 的 内 部 结 构麻 雀 虽 小 , 五 脏 俱 全 。 AV R 单 片 机 也 具 有 一 般 计 算 机 的 基 本 组 成 部 分 , 其 中 最 重要 的 是 控 制 器 和 计 算 器 , 称 为 CP U。 AV R 单 片 机 结 构 框 图 如 图 1 .2 所 示 。 A V R 单 片 机 通 过 32 个 通 用 寄 存 器 文 件 与 算 术 逻 辑 单 元 A LU 构 成 计 算 器 。 在 进 行 算 术 、 逻 辑 运 算 时 , 源 寄 存 器 和 目 的 寄 存 器 便 切 换 接 通 AL U ; 计 算 完 毕 后 , AL U 再 与 别 的