资源描述
基 于 单 片 机 的 微 控 制 器 及 其 设 计 电 子 计 算 机 的 发 展 概 述v电 子 计 算 机 的 问 世 及 其 经 典 结 构电 脑 的 学 名 为 电 子 计 算 机 , 是 由早 期 的 电 动 计 算 器 发 展 而 来 的 。 1946年 2月 15日 , 第 一 台 电 子 数字 计 算 机 问 世 , 这 标 志 着 计 算 机时 代 的 到 来 。 ENIAC( “ 埃 尼 阿 克 ” )用 于 计 算 弹 道 。 是 由 美 国 宾 夕 法尼 亚 大 学 莫 尔 电 工 学 院 制 造 的 ,但 它 的 体 积 庞 大 , 占 地 面 积 170多 平 方 米 , 重 量 约 30吨 , 消 耗 近100千 瓦 的 电 力 v ENIAC是 电 子 管 计 算 机 , 时 钟 频 率 仅 有 100 KHz, 但 能 在 1秒钟 的 时 间 内 完 成 5000次 加 法 运 算 。匈 牙 利 籍 数 学 家 冯 诺 依 曼 在 方 案 的 设 计 上 做 出 了 重 要 的 贡 献 。 1946年6月 , 他 又 提 出 了 “ 程 序 存 储 ” 和 “ 二 进 制 运 算 ” 的 思 想 , 进 一 步 构建 了 计 算 机 由 运 算 器 、 控 制 器 、 存 储 器 、 输 入 设 备 和 输 出 设 备 组 成这 一 计 算 机 的 经 典 结 构 。( EDVAC-ELECTRONIC DISCRETE VARIABLE AUTOMATIC COMPUTER) 电 子 计 算 机 技 术 的 发 展 , 相 继 经 历 了 五 个 时 代 : 电 子 管 计 算 机 ; 1946 晶 体 管 计 算 机 ; 1956 集 成 电 路 计 算 机 ; 1959 大 规 模 集 成 电 路 计 算 机 ;1970 超 大 规 模 集 成 电 路 计 算 机 。计 算 机 的 结 构 仍 然 没 有 突 破冯 诺 依 曼 提 出 的 计 算 机 的 经 典 结构 框 架 。 微 型 计 算 机 的 应 用 形 态 从 应 用 形 态 上 , 微 机 可 以 分 成 三 种 : 多 板 机 ( 系 统 机 ) 将 CPU、 存 储 器 、 I/O接 口 电 路 和 总 线 接 口 等 组 装 在 一 块 主 机 板( 即 微 机 主 板 ) 。 各 种 适 配 板 卡 插 在 主 机 板 的 扩 展 槽 上 并 与 电 源 、 软 /硬 盘 驱 动 器 及 光 驱 等 装 在 同 一 机 箱 内 , 再 配 上 系 统 软 件 , 就 构 成 了 一台 完 整 的 微 型 计 算 机 系 统 ( 简 称 系 统 机 ) 。 工 业 PC机 也 属 于 多 板 机 。 单 板 机 将 CPU芯 片 、 存 储 器 芯 片 、 I/O接 口 芯 片 和 简 单 的 I/O设 备 ( 小 键盘 、 LED显 示 器 ) 等 装 配 在 一 块 印 刷 电 路 板 上 , 再 配 上 监 控 程 序 ( 固化 在 ROM中 ) , 就 构 成 了 一 台 单 板 微 型 计 算 机 ( 简 称 单 板 机 ) 。单 板 机 的 I/O设 备 简 单 , 软 件 资 源 少 , 使 用 不 方 便 。早 期 主 要 用 于 微 型 计 算 机 原 理 的 教 学 及 简 单 的 测 控 系 统 , 现 在 已 很 少 使 用 。 单 片 机 在 一 片 集 成 电 路 芯 片 上 集 成 微 处 理 器 、 存 储 器 、 I/O接 口 电 路 , 从 而 构 成 了 单 芯 片 微 型 计 算 机 , 即 单 片 机 。 单 板 机 单 片 机系 统 机 ( 多 板 机 ) 系 统 机 ( 桌 面 应 用 ) 属 于 通 用 计 算 机 , 主 要 应 用 于 数 据 处 理 、 办 公 自动 化 及 辅 助 设 计 。 单 片 机 ( 嵌 入 式 应 用 ) 属 于 专 用 计 算 机 , 主 要 应 用 于 智 能 仪 表 、 智 能传 感 器 、 智 能 家 电 、 智 能 办 公 设 备 、 汽 车 及 军 事 电 子 设 备 等 应 用 系 统 。 单 片 机 体 积 小 、 价 格 低 、 可 靠 性 高 , 其 非 凡 的 嵌 入 式 应 用 形 态 对 于 满足 嵌 入 式 应 用 需 求 具 有 独 特 的 优 势 。 v 一 台 能 够 工 作 的 计 算 机 要 有 这 样 几 个 部 份 构 成 : CPU( 进行 运 算 、 控 制 ) 、 RAM( 数 据 存 储 ) 、 ROM( 程 序 存 储 ) 、输 入 /输 出 设 备 ( 例 如 : 串 行 口 、 并 行 输 出 口 等 ) 。v在 个 人 计 算 机 上 这 些 部 份 被 分 成 若 干 块 芯 片 , 安 装 一 个 称 之为 主 板 的 印 刷 线 路 板 上 。v而 在 单 片 机 中 , 这 些 部 份 , 全 部 被 做 到 一 块 集 成 电 路 芯 片 中了 , 所 以 就 称 为 单 片 ( 单 芯 片 ) 机 , 而 且 有 一 些 单 片 机 中 除了 上 述 部 份 外 , 还 集 成 了 其 它 部 份 如 A/D, D/A等 。v实 际 工 作 中 并 不 是 任 何 需 要 计 算 机 的 场 合 都 要 求 计 算 机 有 很高 的 性 能 , 一 个 控 制 电 冰 箱 温 度 的 计 算 机 难 道 要 用 Pc?v应 用 的 关 键 是 看 是 否 够 用 , 是 否 有 很 好 的 性 能 价 格 比 。 所 以8051出 来 十 多 年 , 依 然 没 有 被 淘 汰 , 还 在 不 断 的 发 展 中 。 4.1 单 片 机 的 概 述v4.1.1 单 片 机 的 由 来 v单 片 机 专 业 名 称 Micro Controller Unit(微 控 制 器 件 )。它 是 由 INTEL公 司 发 明 的 最 早 的 系 列 是 MCS-48, 后 来 有了 MCS-51我 们 经 常 说 的 51系 列 单 片 机 就 是 MCS-51micro controller system它 是 一 种 8位 的 单 片 机 。 1982年 , Intel推 出 MCS-96系 列 单 片 机 。v后 来 INTEL公 司 把 它 的 核 心 技 术 转 让 给 了 世 界 上 很 多 的 小 公司 , 所 以 世 界 上 就 有 许 多 公 司 生 产 51系 列 兼 容 单 片 机 ,比 如飞 利 浦 的 87LPC系 列 ,华 邦 的 W78系 列 ,达 拉 斯 的 DS87系列 ,现 代 的 GSM97系 列 等 等 。 目 前 在 我 国 比 较 流 行 的 就 是 美国 ATMEL公 司 的 89C51,89S51, 它 是 一 种 带 Flash ROM的 单 片 机 。v 4.1.2 主 要 单 片 机 的 分 类vAVR系 列 单 片 机 也 是 ATMEL公 司 生 产 的 一 种 8位 单 片 机 , 它 采用 的 是 一 种 叫 RISC( 精 简 指 令 集 单 片 机 ) 的 结 构 , 所 以 它的 技 术 和 51系 列 有 所 不 同 , 开 发 设 备 也 和 51系 列 是 不 通 用的 , 它 的 一 条 指 令 的 运 行 速 度 可 以 达 到 纳 秒 级 ( 即 每 秒1000000000次 ) , 是 8位 单 片 机 中 的 高 端 产 品 , 由 于 它 的 出色 性 能 , 目 前 应 用 范 围 越 来 越 广 , 大 有 取 代 51系 列 的 趋 势 。vPIC系 列 单 片 机 它 是 美 国 MICROCHIP公 司 生 产 的 另 一 种 8位 单片 机 , 它 采 用 的 也 是 RISC的 指 令 集 , 它 的 指 令 系 统 和 开 发工 具 与 51系 列 更 是 不 同 , 但 由 于 它 的 低 价 格 和 出 色 性 能 ,目 前 国 内 使 用 的 人 越 来 越 多 , 国 内 也 有 很 多 的 公 司 在 推 广它 , 不 过 它 的 影 响 力 远 没 有 51系 列 的 大 , 所 以 作 为 初 学 者51系 列 当 然 是 首 选 。 单 片 机 用 途v其 实 单 片 机 就 是 一 种 能 进 行 数 学 和 逻 辑 运 算 , 根 据 不 同 使 用 对象 完 成 不 同 控 制 任 务 , 面 向 控 制 而 设 计 的 集 成 电 路 。v在 电 脑 上 我 们 可 以 用 不 同 的 软 件 在 相 同 的 硬 件 上 实 现 不 同 的 工作 。 比 如 我 们 用 WORD可 以 打 字 , 用 PROTEL可 以 设 计 图 纸等 等 。 单 片 机 其 实 也 是 如 此 , 同 样 的 芯 片 可 以 根 据 我 们 不 同 的要 求 做 出 截 然 不 同 的 产 品 , 只 不 过 电 脑 是 面 向 应 用 的 而 单 片 机是 面 向 控 制 的 , 比 如 控 制 一 个 指 示 灯 的 亮 和 灭 控 制 一 台 电 机 的启 动 和 停 止 等 等 。v大 家 都 知 道 我 们 的 电 脑 有 很 多 的 零 件 , 比 如 CPU中 央 处 理 器 ,RAM内 存 条 , ROM程 序 存 储 器 , 输 入 输 出 设 备 并 行 口 串 行 口等 等 。 在 单 片 机 中 这 些 部 件 都 有 , 而 且 还 把 它 们 全 部 做 到 了 一块 芯 片 上 , 这 就 是 单 片 机 名 称 的 由 来 。v这 么 多 零 件 集 成 在 一 块 芯 片 上 , 那 为 什 么 单 片 机 的 价 格 会 这 么便 宜 , 89S51每 块 才 10元 不 到 , 其 实 原 因 很 简 单 -功 能 有强 弱 。 就 象 我 们 平 时 用 的 PLC控 制 一 台 数 控 机 床 要 用 128点 的 。而 控 制 一 台 电 机 有 几 点 的 , 就 足 够 了 另 外 这 种 芯 片 的 产 量 很 大 ,技 术 也 非 常 的 成 熟 , 自 然 价 格 也 就 很 低 了 。 vMCS 51系 列 产 品 按 程 序 存 储 器 配 置 类 型 分 为 3类 :v 8051芯 片 含 有 4k个 单 元 的 ROM;v 8751芯 片 含 有 4k个 单 元 的 EPROM;v 8031中 无 程 序 存 储 器 , 需 要 扩 展 程 序 存 储 器 。v8051与 80C51单 片 机 的 主 要 差 别 就 在 于 芯 片 的 制 造 工 艺 上 。80C51的 制 造 工 艺 是 在 8051基 础 上 进 行 了 改 进 。 v8051系 列 单 片 机 采 用 的 是 HMOS工 艺 : 高 速 度 、 高 密 度 ; v80C51系 列 单 片 机 采 用 的 是 CHMOS工 艺 : 高 速 度 、 高 密 度 、低 功 耗 ; v也 就 是 说 80C51单 片 机 是 一 种 低 功 耗 单 片 机 。 MCS-51的 基 本 系 列 是 8051/8751/8031, 此 外 还 有 8052/8032、 8001BH/ 87C51/ 8001等 派 生 系 列 ,它 们 的 引 脚 、 指 令 系 统 相 互 兼 容 , 只 是 在 内 部 结 构和 具 体 应 用 上 存 在 着 某 些 差 异 。 8051内 包 括 :适 于 控 制 应 用 的 8位 CPU;4KB程 序 存 储 器 (ROM);128B数 据 存 储 器 (RAM);32根 双 向 并 可 以 按 位 寻 址 的 I/O线 1个 全 双 工 串 行 口 I/O线 ; 2个 16位 定 时 计 数 器 ; 5个 中 断 源 2个 优 先 级 的 嵌 套 结 构 ; 1个 片 内 时 钟 振 荡 器MCS-51系 列 单 片 机 是 40脚 双 列 直 插 式 封 装 (DIP)的 VLSI芯 片 VCC 40脚 接 电 源 +5V VSS 20脚 接 地 也 就 是 GND XTAL119脚 和 XTAL218脚 接 振 荡 电 路 ( 单 片 机 是 一 种 时 序 电 路 , 必 须 有 脉 冲 信 号 才 能 工 作 , 在 它 的内 部 有 一 个 时 钟 产 生 电 路 , 有 两 种 振 荡 方 式 , 一 种 是 内 部 振 荡方 式 , 只 要 接 上 两 个 电 容 和 一 个 晶 振 即 可 , 另 一 种 是 外 部 振 荡方 式 , 采 用 外 部 振 荡 方 式 时 需 在 XTL2上 加 外 部 时 钟 信 号PSEN29脚 片 外 ROM选 通 信 号 低 电 平 有 效ALE/PROG30脚 地 址 锁 存 信 号 输 出 端/EPROM编 程 脉 冲 输 入 端RST/VPD9脚 复 位 信 号 输 入 端 /备 用 电 源 输入 端EA/ VPP31 脚 内 /外 部 ROM选 择 端P0口 39-32脚 双 向 I/O口 P1口 1-8脚 准 双 向 通 用 I/0口 P2口 21-28脚 准 双 向 I/0口 P3口 10-17脚 多 用 途 口 单 片 机 的 引 脚 功 能 P3口 第 二 功 能v P3.0 RXD 串 行 输 入 口v P3.1 TXD 串 行 输 出 口v P3.2 INT0 外 部 中 断 0( 低 电 平 有 效 )v P3.3 INT1 外 部 中 断 1( 低 电 平 有 效 )v P3.4 T0 定 时 计 数 器 0v P3.5 T1 定 时 计 数 器 1v P3.6 WR 外 部 数 据 存 储 器 写 选 通 ( 低 电 平 有 效 ) v P3.7 RD 外 部 数 据 存 储 器 读 选 通 ( 低 电 平 有 效 ) P0口 、 P2口 和 P3的 第 二 功 能 用 法v初 学 时 往 往 对 P0口 、 P2口 和 P3口 的 第 二 功 能用 法 迷 惑 不 解 , 认 为 第 二 功 能 和 原 功 能 之 间 要 有一 个 切 换 的 过 程 , 或 者 说 要 有 一 条 指 令 , 事 实 上 ,各 端 口 的 第 二 功 能 完 全 是 自 动 的 , 不 需 要 用 指 令来 转 换 。v如 P3.6、 P3.7分 别 是 WR、 RD信 号 , 当 外 接RAM或 有 外 部 I/O口 时 , 它 们 被 用 作 第 二 功 能 ,不 能 作 为 通 用 I/O口 使 用 , 只 要 一 微 处 理 机 一 执行 到 MOVX指 令 , 就 会 有 相 应 的 信 号 从 P3.6或P3.7送 出 , 不 需 要 事 先 用 指 令 说 明 。 4.2 MCS-51单 片 机 的 硬 件 结 构包 括 : CPU、 存 储 器 ( ROM、 RAM) 、 I/O接 口 等 计 算 机 的 基 本 组 成 。 数 制十 进 制 数 即 0123456789, 它 遵 循 逢 十 进 一 , 借 一 当 十 的 原 则 。计 算 机 中 却 无 法 采 用 , 因 为 计 算 机 只 能 有 两 种 状 态 0和 1。二 进 制 数 , 0和 1, 它 遵 循 的 是 逢 二 进 一 , 借 一 当 二 的 进 借 位原 则 。 也 就 是 当 某 位 计 数 到 两 个 数 时 就 向 高 位 进 , 同 时 本 位 变 为 0,比 如 二 进 制 数 1100=1*23+1*22+0*21+0*20。十 六 进 制 也 遵 循 两 个 规 则 , 一 是 有 十 六 个 基 数 , 即 0123456789ABCDEF,另 一 个 规 则 是 逢 十 六 进 一 , 借 一 当 十 六 。二 进 制 简 码 B和 十 进 制 简 码 D, 省 略 。 十 六 进 制 简 码 H十 进 制 有 使 用 比 较 习 惯 的 特 点 , 二 进 制 有 易 于 表 示 和 运 算 方 便 的 特 点 , 十六 进 制 又 有 表 示 位 数 较 多 的 特 点 。 二 进 制 数 1011B转 换 成 十 进 制 为 1*23+0*22+1*21+1*20=8+2+1=11D, 再 比如 十 六 进 制 数 FFH转 换 成 十 进 制 为 0FFH=F*161+F*160=255D 在 单 片 机 中 通 常 我 们 把 这 个 数 称 之 为 立 即 数 总 线v计 算 机 电 路 是 以 微 处 理 器 为 核 心 , 各 器 件 都 要 与 微 处 理 器 相 连 ,所 以 需 要 的 连 线 就 很 多 了 , 如 果 仍 如 同 模 拟 电 路 一 样 , 在 各 微处 理 器 和 各 器 件 间 单 独 连 线 , 则 线 的 数 量 将 多 得 惊 人 , 所 以 在微 处 理 机 中 引 入 了 总 线 的 概 念 。v各 个 器 件 共 同 享 用 连 线 , 所 有 器 件 的 8根 数 据 线 全 部 接 到 8根 公用 的 线 上 , 即 相 当 于 各 个 器 件 并 联 起 来 , 但 仅 这 样 还 不 行 , 如果 有 两 个 器 件 同 时 送 出 数 据 , 一 个 为 0, 一 个 为 1, 那 么 , 接 收方 接 收 到 的 究 竟 是 什 么 呢 ? 这 种 情 况 是 不 允 许 的 , 所 以 要 通 过控 制 线 进 行 控 制 , 使 器 件 分 时 工 作 , 任 何 时 候 只 能 有 一 个 器 件发 送 数 据 ( 可 以 有 多 个 器 件 同 时 接 收 ) 。v器 件 的 数 据 线 也 就 被 称 为 数 据 总 线 , 器 件 所 有 的 控 制 线 被 称 为控 制 总 线 。 在 单 片 机 内 部 或 者 外 部 存 储 器 及 其 它 器 件 中 有 存 储单 元 , 这 些 存 储 单 元 要 被 分 配 地 址 , 才 能 使 用 , 分 配 地 址 当 然也 是 以 电 信 号 的 形 式 给 出 的 , 由 于 存 储 单 元 比 较 多 , 所 以 , 用 于 地 址 分 配 的 线 也 较 多 , 这 些 线 被 称 为 地 址 总 线 。 数 据 、 地 址 、 指 令v 之 所 以 将 这 三 者 放 在 一 起 , 是 因 为 这 三 者 的 本 质 都 是 一 样 的 数 字 , 或 者说 都 是 一 串 0和 1组 成 的 序 列 。 换 言 之 , 地 址 、 指 令 也 都 是 数 据 。v 指 令 : 由 单 片 机 芯 片 的 设 计 者 规 定 的 一 种 数 字 , 它 与 我 们 常 用 的 指 令 助 记 符有 着 严 格 的 一 一 对 应 关 系 , 不 可 以 由 单 片 机 的 开 发 者 更 改 。v 地 址 : 是 寻 找 单 片 机 内 部 、 外 部 的 存 储 单 元 、 输 入 输 出 口 的 依 据 , 内 部 单 元的 地 址 值 已 由 芯 片 设 计 者 规 定 好 , 不 可 更 改 , 外 部 的 单 元 可 以 由 单 片 机 开 发者 自 行 决 定 。v 数 据 : 这 是 由 微 处 理 机 处 理 的 对 象 , 在 各 种 不 同 的 应 用 电 路 中 各 不 相 同 , 一般 而 言 , 被 处 理 的 数 据 可 能 有 这 么 几 种 情 况 : v 1地 址 ( 如 MOV DPTR, 1000H) , 即 地 址 1000H送 入 DPTR。 v 2方 式 字 或 控 制 字 ( 如 MOV TMOD, #3) , 3即 是 控 制 字 。 v 3常 数 ( 如 MOV TH0, #10H) 10H即 定 时 常 数 。 v 4实 际 输 出 值 ( 如 P1口 接 彩 灯 , 要 灯 全 亮 , 则 执 行 指 令 : MOV P1,#0FFH, 要 灯 全 暗 , 则 执 行 指 令 : MOV P1, #00H) 这 里 0FFH和 00H都 是 实 际 输 出 值 。 4.2.1 MCS-51的 微 处 理 器v1 中 央 处 理 器 ( CPU)v CPU由 运 算 器 和 控 制 器 组 成 , 它 是 单 片 机 的 核 心 , 完 成 运 算 和 控 制 操 作 。 1. 运 算 器 组 成 : 算 术 逻 辑 运 算 器 ALU, 算 术 累 加 器 A, 寄 存 器 B, 暂 存 器 TMP1,暂 存 器 TMP2, 布 尔 累 加 器 Cy等 功 能 : 进 行 移 位 、 算 术 运 算 和 逻 辑 运 算 ; MCS-51运 算 器 还 包 含 有 一 个布 尔 ( 位 ) 处 理 器 ,用 来 处 理 位 操 作 。v ( 1) 累 加 器 A( 8位 ) 功 能 : 暂 存 操 作 数 及 保 存 运 算 结 果 ; A是MCS-51单 片 机 中 最 繁 忙 的 寄 存 器 ;v ( 2) 寄 存 器 B( 8位 ) 功 能 : 用 于 乘 法 、 除 法 运 算 , 可 作 为 一 个 暂 存 器 使 用 ;v ( 3 ) 程 序 状 态 字 寄 存 器 PSW( 8位 ) 功 能 : 存 放 累 加 器 A在 运 算 过 程标 志 位 ( P, OV, AC, Cy) 的 状 态 ; 指 出 CPU所 使 用 的 当 前 工 作 寄 存器 组 。 CY AC F0 RS0 OV PRS1PSW.7 PSW.0 CY (PSW.7) 进 位 /借 位 标 志 位 。 若 ACC在 运 算 过 程 中 发 生 了 进 位 或 借 位 , 则 CY=1; 否 则=0。 它 也 是 布 尔 处 理 器 的 位 累 加 器 , 可 用 于 布 尔 操 作 。 AC(PSW.6)半 进 位 /借 位 标 志 位 。 F0 (PSW.5) 用 户 标 志 位 。PSW.6 PSW.52.1.3 MCS-51单 片 机 内 部 结 构PSW 2.1.3 MCS-51单 片 机 的 内 部 结 构PSW.7 PSW.0 RS1(PSW.4)、 RS0(PSW.3)工 作 寄 存 器 组 选 择 位 。CY AC F0 RS0 OV PRS1PSW.4 PSW.3PSWOV (PSW.2)溢 出 标 志 位 。 PSW.1 未 定 义 。P (PSW.0)奇 偶 标 志 位 。 P=1表 示 累 加 器 中 “ 1”的 个 数 为 奇 数 P=0表 示 累 加 器 中 “ 1”的 个 数 为 偶 数 CPU随 时 监 视 着 ACC中 的 “ 1”的 个 数 ,并 反 映 在 PSW中PSW.2 PSW.1 v 2. 控 制 器l 组 成 : 定 时 与 控 制 部 件 , 复 位 电 路 , 程 序 计 数 器 ( PC) , 指 令 寄 存 器 、指 令 译 码 器 , 数 据 指 针 ( DPTR) ,堆 栈 指 针 ( SP) 等l 作 用 : 产 生 计 算 机 所 需 的 时 序 , 控 制 程 序 自 动 执 行 。CPU程 序 存 储 器 指 令 寄 存 器外 RAM,EPROM,外 I/O 指 令 译 码 器控 制 单 片 机 各 部 分 的 运 行 ,产 生 ALE, PSEN, RD/WR 控 制 器 是 单 片 机 的 神 经 中 枢 , 存 放 在 ROM/EPROM中 的 指 令 被 逐 条 送 到 指 令 寄存 器 , 经 译 码 器 译 码 后 , 发 出 各 种 控 制 信 号 , 产 生 一 系 列 的 微 操 作 , 把 单 片 机 的各 部 分 组 织 在 一 起 协 调 地 工 作 。 l 程 序 计 数 器 PC( 16位 )v 程 序 计 数 器 PC用 来 存 放 即 要 执 行 的 指令 地 址 , 共 16位 , 低 8位 经 P0 口 输 出 , 高 8位经 P2口 输 出 。v CPU每 取 一 次 机 器 码 , PC内 容 自 动加 一 , CPU执 行 一 条 指 令 , PC内 容 自 动 增 加 该指 令 的 长 度 。 CPU复 位 后 , PC内 容 为 0000H,它 标 志 着 程 序 从 头 开 始 执 行 。v PC的 内 容 变 化 决 定 程 序 的 流 向 。l 指 令 寄 存 器 ( 8位 ) 指 令 寄 存 器 中 存 放 将 要 执 行 的 指 令 代 码 , 通过 指 令 译 码 器 , 将 指 令 代 码 转 化 为 电 信 号 控 制 信 号 ALE等 。 l 数 据 指 针 DPTR( 16位 ) 用 于 访 问 外 部 RAM或 外 部 I/O口 , 提 供 十 六位 地 址 。 用 于 程 序 存 储 器 的 查 表 和 程 序 散 转 指令 , 作 为 基 地 址 寄 存 器 , 提 供 十 六 位 基 地 址 。堆 栈 指 针 寄 存 器 SP( 8位 ) 用 于 管 理 对 栈 , 指 出 栈 顶 位 置 。 MCS-51单 片 机 复 位 后 , (SP)=07H 4.2.2 MCS-51的 存 储 器v1.程 序 存 储 器 ROM/EPROMv位 的 含 义 : v一 盏 灯 亮 或 者 说 一 根 线 的 电 平 的 高 低 , 可 以 代 表 两 种 状态 : 0和 1。 实 际 上 这 就 是 一 个 二 进 制 位 , 因 此 我 们 就 把一 根 线 称 之 为 一 “ 位 ” , 用 BIT表 示 。v字 节 的 含 义 : v一 根 线 可 以 表 于 0和 1, 两 根 线 可 以 表 达 00, 01, 10,11四 种 状 态 , 也 就 是 可 以 表 于 0到 3, 而 三 根 可 以 表 达0-7, 计 算 机 中 通 常 用 8根 线 放 在 一 起 , 同 时 计 数 , 就 可以 表 过 到 0-255一 共 256种 状 态 。 这 8根 线 或 者 8位 就称 之 为 一 个 字 节 ( BYTE) 。v 1B=8bit,1KB=1024B 什 么 是 Flash ROM?ROM(Read-Only Memory)是 只 读 存 储 器 , 满 足 一 定 的 条 件 就 能把 数 据 预 先 写 进 去PROM称 之 为 可 编 程 只 读 存 储 器 , 只 能 写 一 次 , 擦 不 掉EPROM称 之 为 紫 外 线 擦 除 的 可 编 程 只 读 存 储 器 。 用 紫 外 线 照射 , 可 以 擦 除 的 次 数 是 几 十 次 , 电 脑 上 的 BIOS芯 片 采 用 的 就是 这 种 结 构 的 存 储 器EEPROM电 擦 写 紫 外 线 只 读 存 储 器 , 比 FLASH存 储 器 速 度 要 慢Flash ROM是 一 种 快 速 存 储 式 只 读 存 储 器 。 既 可 以 电 擦 写 而 且掉 电 后 程 序 还 能 保 存 , 编 程 寿 命 可 以 达 到 一 千 次 左 右RAM( Random Access Memory) , 随 机 存 取 存 储 器 也 叫 内 存 , 既可 以 随 时 改 写 也 可 以 随 时 读 出 里 面 数 据 的 存 储 器 存 储 器v 存 储 器 就 是 用 来 存 放 数 据 的 地 方 。 它 是 利 用 电 平 的 高 低 来 存 放 数 据 的 , 也 就 是说 , 它 存 放 的 实 际 上 是 电 平 的 高 、 低 , 而 不 是 我 们 所 习 惯 认 为 的 1234这 样 的数 字 . v 一 个 存 储 器 就 象 一 个 个 的 小 抽 屉 , 一 个 小 抽 屉 里 有 八 个 小 格 子 , 每 个 小 格 子 就是 用 来 存 放 “ 电 荷 ” 的 , 电 荷 通 过 与 它 相 连 的 电 线 传 进 来 或 释 放 掉 , 存 储 器 中的 每 个 小 抽 屉 就 是 一 个 放 数 据 的 地 方 , 我 们 称 之 为 一 个 “ 单 元 ” 。v 要 放 进 一 个 数 据 00011010, 我 们 只 要 把 第 2号 第 4号 和 第 5号 小 盒 子 里 存 满电 荷 , 其 它 小 盒 子 里 的 电 荷 给 放 掉 就 行 了 。v 一 个 存 储 器 有 好 多 单 元 , 线 是 并 联 的 , 在 放 入 电 荷 的 时 候 , 会 将 电 荷 放 入 所 有的 单 元 中 , 而 释 放 电 荷 的 时 候 , 会 把 每 个 单 元 中 的 电 荷 都 放 掉 , 这 样 的 话 , 不管 存 储 器 有 多 少 个 单 元 , 都 只 能 放 同 一 个 数 , 这 当 然 不 是 我 们 所 希 望 的 , 因 此 ,要 在 结 构 上 稍 作 变 化 , 在 每 个 单 元 上 有 个 控 制 线 , 我 想 要 把 数 据 放 进 哪 个 单 元 ,就 给 一 个 信 号 这 个 单 元 的 控 制 线 , 这 个 控 制 线 就 把 开 关 打 开 , 这 样 电 荷 就 可 以自 由 流 动 了 , 而 其 它 单 元 控 制 线 上 没 有 信 号 , 所 以 开 关 不 打 开 , 不 会 受 到 影 响 ,这 样 , 只 要 控 制 不 同 单 元 的 控 制 线 , 就 可 以 向 各 单 元 写 入 不 同 的 数 据 了 , 同 样 ,如 果 要 某 个 单 元 中 取 数 据 , 也 只 要 打 开 相 应 的 控 制 开 关 就 行 了在 MCS-51中 内 部 程 序 存 储 器 ( ROM/ EPROM) 和 外 部扩 展 程 序 存 储 器 的 地 址 是 连 续 的 , 内 部 ( 4KB) 为 00000FFFH, 外 部 ( 64KB) 为 1000FFFFH 在 使 用 8051/8751时 , 应 使 引 脚 EA=1。 对 于 8031, 因 为 内 部 没 有 程 序 存 储 器 ,所 以 应 使 EA=0, CPU完 全 从 外 部 程 序 存 储 器 ( 地 址 为 0000FFFFH) 读 取 指 令 。由 于 8031价 格 便 宜 , 使 用 灵 活 , 更 适 用 于 机 电 一 体 化 产 品 的 开 发 。 MCS-51内 部 RAM共 有 128个 单 元 , 地 址 为 00H-7FH。 MCS-51对 内 部 RAM有 丰 富 的 操作 令 , 编 程 非 常 方 便 。 MCS-51还 可 以 在 片 外 扩 展 64KB的 RAM或 I/0口 , 可 以 满 足 一 般应 用 系 统 的 需 要 。 MCS-51的 内 部 数 据 存 储 器 可 以 划 分 为 四 个 区 域 :(1)工 作 寄 存 器 区从 001F为 工 作 寄 存 器 区 , 共 32个 单 元 , 每 8个 单 元 为一 组 , 共 分 4组 , 每 组 内 各 寄 存 器 编 号 分 别 为 R0 R7 。 可通 过 PSW中 的 RS1, RS0两 位 选 择 其 中 的 一 组 工 作 。(2)位 寻 址 区内 部 RAM的 202FH为 位 寻 址 区 , 该 区 内 每 一 位 都 有 一个 8位 地 址 , 编 址 为 007FH。 (3)数 据 缓 冲 区内 部 RAM的 307FH为 数 据 缓 冲 区 。 实 际 上 , 在 分 配 好工 作 寄 存 器 组 、 位 标 志 区 以 及 堆 找 区 以 后 , 剩 下 的 RAM均 可 作 为 数 据 缓 冲 器 使 用 。 MCS-51的 堆 找 原 则 上 可 以 设置 在 内 部 RAM的 任 意 区 域 。 但 由 于 001FH为 工 作 寄 存 器区 , 202FH为 位 寻 址 区 ,堆 找 可 根 据 具 体 情 况 进 行 设 置 。 (4)特 殊 功 能 寄 存 器 Special Function Register特 殊 功 能 寄 存 器 SFR总 共 21个 单 元 , 离 散 地 分 布 在80FFH地 址 区 域 内 , 4.2.3 并 行 口 ( Parallel Port) 51系 列 单 片 机 有 4个 I/O端 口 , 每 个 端 口 都 是 8位 准 双 向 口 , 共 占 32根引 脚 。 每 个 端 口 都 包 括 一 个 锁 存 器 (即 专 用 寄 存 器 P0 P3)、 一 个 输 出驱 动 器 和 输 入 缓 冲 器 。 通 常 把 4个 端 口 笼 统 地 表 示 为 P0 P3。( 一 ) P0.0P0.7: 双 向 I/Ov 访 问 外 部 程 序 存 储 器 时 分 时 作 为 双 向 8位 数 据 口 和 输 出 低 8位 地 址 复 用 口 ;不 接 外 部 程 序 存 储 器 时 可 作 为 8位 准 双 向 I/O口 使 用 。 引 脚 P0.X2 1D QCK /Q读 引 脚读 锁 存 器写 锁 存 器内 部 总 线 地 址 /数 据 控 制 34 Vcc l ( 二 ) P2.0 P2.7: 双 向 I/O ( 内 置 了 上 拉 电 阻 )v 外 部 程 序 存 储 器 时 输 出 高 8位 地 址 ; 不 接 外 部程 序 存 储 器 时 可 作 为 8位 准 双 向 I/O口 使 用 。2 1D QCK /Q读 引 脚读 锁 存 器写 锁 存 器内 部 总 线 地 址 高 8位 控 制 引 脚 P2.X3 内 部 上 拉 电 阻Vcc l ( 三 ) P3.0 P3.7: 双 功 能 口 ( 内 置 了 上 拉 电 阻 )v 具 有 特 定 的 第 二 功 能 。 在 不 使 用 它 的 第 二 功能 时 它 就 是 普 通 的 通 用 准 双 向 I/O口 。21D QCK /Q 读 引 脚读 锁 存 器写 锁 存 器内 部 总 线 第 二 功 能 输 出 引 脚 P3.X3 内 部 上 拉 电 阻Vcc第 二 功 能 输 入 4 ( 四 ) P1.0 P1.7: 准 双 向 I/O口 ( 内 置 了 上 拉 电 阻 )21D QCK /Q读 引 脚 =0读 锁 存 器 =0写 锁 存 器内 部 总 线 Vcc 引 脚 P1.X内 部 上 拉 电 阻 v串 行 口 ( Serial Port)v 有 1个 全 双 工 的 串 行 口 , 用 于 串 行 通 信 。串 行 口 由 发 送 缓 冲 器 SBUF、 接 收 缓 冲 器 SBUF、移 位 寄 存 器 和 串 行 口 控 制 逻 辑 等 部 分 组 成 。 v定 时 /计 数 器 ( Timer/Counter) v 有 2个 16位 的 定 时 /计 数 器 T0和 T1, T0由 TH0和 TL0构 成 , T1由 TH1和 TL1构 成 , 方 式 控 制 寄 存 器 TMOD选 择定 时 /计 数 器 的 工 作 模 式 和 方 式 ,v定 时 器 控 制 寄 存 器 TCON控 制 T0和 T1的 启 动 和 停 止 , 同 时 反 映T0和 T1的 溢 出 状 态 。D7D4用 于 设 定 T1的 工 作 方 式 , D3D0用 于 设 定 T0的 工 作 方 式C/T=0时 为 定 时 方 式 ( 对 内 部 时 钟 脉 冲 计 数 ) , 否 则 为 计 数 方 式 TRX是 TX的 运 行 控 制 位 , 由 软 件 置 位 和 复 位 。 TRX=1时 启 动 定 时 计 数 器 ,TRX=0时 停 止 计 数 。 v中 断 系 统 ( Interrupt System)v“ 中 断 ” 就 是 正 常 的 工 作 过 程 被 外 部 的 事 件 打 断了v中 断 源 , 一 共 有 5个 : 两 个 外 部 中 断 , 两 个 计 数 /定 时 器 中 断 , 一 个 串 行 口 中 断v中 断 优 先 级 4.3 MCS-51的 寻 址 方 式 v1 立 即 寻 址v2 直 接 寻 址v3 寄 存 器 寻 址v4 寄 存 器 间 接 寻 址v5 变 址 寻 址v6 相 对 寻 址v7 位 寻 址 ( 1) 立 即 寻 址 - 在 指 令 中 直 接 给 出 了 参 与 运 算 的 操 作 数 。v表 示 立 即 数 时 前 面 加 #, 立 即 数 可 以 用 二 进 制 数 (B) 十 六 进 制 数 (H) 十 进 制 数 (D)例 如 : MOVA, # 60H ; A#60H MOVDPTR, # 3400H; DPTR#3400H MOV30H, # 40H ; 30H单 元 #40H v上 述 三 条 指 令 执 行 完 后 , 累 加 器 A中 数 据 为 立 即 数 据 60H,DPTR寄 存 器 中 数 据 为 3400H, 30H单 元 中 数 据 为 立 即 数40H。 ( 2) 直 接 寻 址 方 式v指 令 中 直 接 给 出 操 作 数 地 址 的 寻 址 方 式 , 能 进 行直 接 寻 址 的 存 储 空 间 有 SFR寄 存 器 和 内 部 数 据RAM。例 如 MOV A, 30H ; A30H内 部 RAM单 元中 的 内 容v30H为 直 接 给 出 的 内 部 RAM的 地 址 。v对 SFR的 访 问 只 能 采 用 直 接 寻 址 方 式 vMOV A, 4AH ; A(4AH) 内 部 RAM 2BH4AH 2BH 累 加 器 A v直 接 寻 址 方 式 只 能 给 出 8位 地 址 , 因 此 , 此 种 寻址 方 式 的 寻 址 范 围 只 限 于 片 内 RAM, 具 体 地 说 : (1)低 128单 元 在 指 令 中 直 接 以 单 元 地 址 形式 给 出 。 (2)特 殊 功 能 寄 存 器 , 这 时 除 了 可 以 单 元 地址 形 式 给 出 外 , 还 可 以 寄 存 器 符 号 形 式 给 出 。 虽然 特 殊 功 能 寄 存 器 可 以 便 用 符 号 标 志 , 但 在 指 令代 码 中 还 是 按 地 址 进 行 编 码 的 。 需 要 说 明 的 是 ,直 接 寻 址 是 访 问 特 殊 功 能 寄 存 器 的 惟 一 方 法 。 v ( 3) 寄 存 器 寻 址 方 式 v指 令 中 , 指 出 了 参 与 运 算 的 操 作 数 所 在 的 寄 存 器 。v MOV A , R0 v寄 存 器 寻 址 方 式 中 的 寄 存 器 :v 1) 工 作 ( 通 用 ) 寄 存 器 R0R7 、 DPTRv 2) 累 加 器 A、 寄 存 器 B( 仅 在 乘 除 法 时 ) 和 布 尔 累 加 器 C ( 4) 寄 存 器 间 接 寻 址v 寄 存 器 间 接 寻 址 是 指 在 指 令 中 要 到 寄 存 器 的 内 容 所 指 的 地 址 中 去 取 操 作 数 。可 以 看 出 , 在 寄 存 器 寻 址 方 式 中 , 寄 存 器 中 存 放 的 是 操 作 数 ; 而 在 寄 存 器间 接 寻 址 方 式 中 , 寄 存 器 中 存 放 的 则 是 操 作 数 的 地 址 , 即 寄 存 器 为 地 址 指针 。 这 就 是 说 , 指 令 的 操 作 数 是 通 过 寄 存 器 间 接 得 到 的 , 因 此 称 为 寄 存 器间 接 寻 址 。寄 存 器 间 接 寻 址 也 需 要 以 寄 存 器 符 号 名 称 的 形 式 表 示 。 为 了 区 别 寄 存 器 寻址 和 寄 存 器 间 接 寻 址 , 在 寄 存 器 间 接 寻 址 中 , 应 在 寄 存 器 的 名 称 前 加 前 缀“ ” ,v MOV A , R0 ; A 内 部 RAM(R0) 片 内 RAM 30HR0 34HA 30H 34H v寄 存 器 间 接 寻 址 的 寻 址 范 围 是 :v(1)片 内 RAM低 128单 元 ,这 里 只 能 使 用 R0,R1作 为 间址 寄 存 器 .其 通 用 形 式 写 为 Ri(i=0,1);v(2)片 外 RAM64KB;使 用 DPTR作 为 间 址 寄 存 器 ,书 写形 式 为 DPTR.v(3)片 外 RAM低 256单 元 .除 可 使 用 DPTR作 为 间 址 寄存 器 外 还 可 以 使 用 R0,R1作 为 间 址 寄 存 器 .v(4)堆 栈 区 ,堆 栈 操 作 指 令 (PUSH和 POP)也 属 于 寄 存 器间 接 寻 址 ,即 使 用 SP(堆 栈 指 针 )作 为 间 址 寄 存 器 的 间 接寻 址 方 式 . ( 5) 变 址 寻 址 方 式 (基 址 寄 存 器 +变 址 寄 存 器 间 接 寻 址 )操 作 数 的 地 址 由 基 址 寄 存 器 +变 址 寄 存 器 间 接 寻 址 指 出 。MCS-51单 片 机 中 可 以 作 基 址 寄 存 器 :2个 十 六 位 寄 存 器 , DPTR和 PC MCS-51单 片 机 中 变 址 寄 存 器 : 8位 寄 存 器 : 累 加 器 A操 作 数 存 放 在 一 个 由 (PC)+(A)或 (DPTR)+(A)指 出 的十 六 位 地 址 所 指 的 单 元 中 ( 在 ROM中 ) , 例 如 : MOVC A, A+DPTR ; A(A+DPTR) ROM 3AH120AH 1200H 0AH DPTR A(执 行 前 ) + 3AHA(执 行 后 ) ( 6) 相 对 寻 址 v以 当 前 程 序 计 数 器 PC的 内 容 为 基 础 , 加 上 指 令给 出 的 一 字 节 补 码 数 ( 偏 移 量 ) 形 成 新 的 PC值的 寻 址 方 式 。v相 对 寻 址 用 于 修 改 PC值 , 主 要 用 于 实 现 程 序 的分 支 转 移 。 例 如 , SJMP 08H ; PCPC+2+56H ROM 80H3000H 56H rel=56H PC=3002H +3001H 3002H 3058H 转 移 ( 7) 位 寻 址 v位 寻 址 只 能 对 有 位 地 址 的 单 元 作 位 寻 址 操 作 。v位 寻 址 其 实 是 一 种 直 接 寻 址 方 式 , 不 过 其 地 址 是位 地 址 。
展开阅读全文