单片机的串行口通信

上传人:飞****9 文档编号:25596847 上传时间:2021-07-27 格式:PPT 页数:90 大小:1.41MB
返回 下载 相关 举报
单片机的串行口通信_第1页
第1页 / 共90页
单片机的串行口通信_第2页
第2页 / 共90页
单片机的串行口通信_第3页
第3页 / 共90页
点击查看更多>>
资源描述
第 7章 80C51单 片 机 的 串 行 口 通 信 第 7章 目 录n 7.1 串 行 通 信 基 础 知 识 7.1.1 并 行 通 信 与 串 行 通 信 7.1.2 串 行 通 信 的 通 信 方 式 7.1.3 串 行 通 信 的 数 据 传 送 方 向 7.1.4 通 信 中 的 误 码 问 题n 7.2 80C51系 列 单 片 机 的 串 行 接 口 7.2.1 串 行 接 口 的 结 构 7.2.2 串 行 接 口 的 控 制 寄 存 器 7.2.3 串 口 通 信 的 波 特 率 设 计n 7.3 串 行 口 工 作 模 式 7.3.1 模 式 0 7.3.2 模 式 1 7.3.3 模 式 2 7.3.4 模 式 3 第 7章 目 录n 7.4 串 行 通 信 应 用 举 例 7.4.1 串 行 口 模 式 0的 应 用 7.4.2 串 行 口 模 式 1的 应 用 7.4.3 串 行 口 模 式 2的 应 用 7.4.4 串 行 口 模 式 3的 应 用n 7.5 串 行 通 信 实 用 技 术 7.5.1 双 机 串 行 通 信 的 硬 件 连 接 7.5.2 80C51单 片 机 的 多 机 通 信 7.5.3 双 机 串 行 通 信 软 件 编 程 7.5.4 PC机 与 单 片 机 的 点 对 点 串 行 通 信 接 口 设 计 7.5.5 PC机 与 多 个 单 片 机 的 串 行 通 信 接 口 设 计 7.1串 行 通 信 基 础 知 识n 7.1.1并 行 通 信 与 串 行 通 信1、 并 行 通 信 并 行 通 信 是 指 将 数 据 字 节 的 各 位 用 多 条 数 据 线 同 时 进 行 传 送 。每 一 位 数 据 都 需 要 一 条 传 输 线 , 8位 数 据 总 线 的 通 信 系 统 ,一 次 传 送 8位 数 据 (1个 字 节 ), 将 需 要 8条 数 据 线 。 并 行 通 信 的 特 点 :是 传 送 速 度 快 、需 要 的 数 据 传 输 线 较 多 。 因 此 当距 离 较 远 、 位 数 又 多 时 导 致 了 通信 线 路 复 杂 且 成 本 高 。 一 般 适 合于 短 距 离 的 数 据 传 输 。 ( a) 并 行 通 信 7.1串 行 通 信 基 础 知 识n 7.1.1并 行 通 信 与 串 行 通 信2、 串 行 通 信 串 行 通 信 是 指 所 传 送 的 数 据 按 顺 序 一 位 接 一 位 地 进 行 传 送 。因 为 一 次 只 能 传 送 一 位 , 所 以 对 于 一 个 字 节 的 数 据 , 至 少 要分 8位 才 能 传 送 完 毕 。 串 行 通 信 的 特 点 是 需 要 的 数 据 传 输 线 较 少 , 通 信 线 路 简 单 、成 本 低 , 适 用 于 数 据 的 远 距 离 通 信 。但 传 输 速 度 慢 。 只 要 一 对 传 输 线 :即 发 送 线 和 接 收 线 就 可 以 实 现 通 信 。缺 点 是 传 送 速 度 慢 , 假 设 并 行 传 送n位 数 据 所 需 的 时 间 为 t, 那 么 串 行传 送 的 时 间 至 少 为 nt, 而 实 际 上 总 是 大 于 nt。 ( b) 串 行 通 信 7.1串 行 通 信 基 础 知 识n 7.1.2串 行 通 信 的 通 信 方 式 根 据 通 信 协 议 的 不 同 , 串 行 通 信 可 分 为 同 步 通 信 和 异 步 通 信两 种 基 本 方 式 。1、 同 步 通 信 同 步 通 信 是 一 种 连 续 串 行 传 输 数 据 的 通 信 方 式 , 传 送 的 数 据可 以 是 多 个 字 符 组 成 的 数 据 块 , 每 次 传 送 的 一 帧 数 据 由 同 步字 符 、 数 据 字 符 和 校 验 字 符 三 部 分 组 成 。 传 输 一 帧 数 据 的 开头 采 用 同 步 字 符 使 收 发 双 方 实 现 严 格 同 步 , 期 间 不 允 许 出 现空 隙 , 没 有 起 始 位 和 停 止 位 , 提 高 了 传 输 速 度 。 无 数 据 传 送时 , 发 送 同 步 字 符 。 同 步 通 信 方 式 发 送 的 数 据 量 大 、 速 度 快 ,常 用 于 传 输 速 度 要 求 高 的 场 合 , 但 较 复 杂 。 7.1串 行 通 信 基 础 知 识n 7.1.2串 行 通 信 的 通 信 方 式1、 同 步 通 信 同 步 通 信 方 式 帧 格 式 如 图 7-2所 示 。图 7-2 字 符 帧 的 同 步 串 行 通 信 格 式 7.1串 行 通 信 基 础 知 识n 7.1.2串 行 通 信 的 通 信 方 式2、 异 步 通 信异 步 通 信 不 需 要 同 步 字 符 , 也 不 需 要 发 送 设 备 保 持 数 据 块 的 连续 性 。 发 送 的 每 一 字 符 , 都 必 须 先 按 照 通 信 双 方 约 定 好 的 格式 进 行 格 式 化 , 在 其 前 、 后 分 别 加 上 起 始 位 和 停 止 位 , 用 以指 示 每 一 字 符 的 开 始 和 结 束 。 一 帧 信 息 传 送 完 毕 后 , 可 传 送不 定 长 度 的 空 闲 位 “ 1” , 作 为 帧 与 相 邻 帧 之 间 的 间 隔 , 也可 以 没 有 空 闲 位 间 隔 。80C51单 片 机 一 般 采 用 异 步 通 信 方 式 , 一 个 字 符 帧 的 异 步 串 行通 信 格 式 如 图 7-3所 示 。 7.1串 行 通 信 基 础 知 识n 7.1.2串 行 通 信 的 通 信 方 式2、 异 步 通 信 图 7-3 字 符 帧 的 异 步 串 行 通 信 格 式 7.1串 行 通 信 基 础 知 识n 7.1.3串 行 通 信 的 数 据 传 送 方 向数 据 通 信 系 统 一 般 由 数 据 发 送 方 、 数 据 接 收 方 及 数 据 通 路 组 成的 。 串 行 通 信 的 数 据 是 在 两 个 站 之 间 传 送 的 , 按 照 数 据 的 传送 方 向 , 串 行 通 信 有 三 种 数 据 通 路 连 接 方 式 。1、 单 工 方 式 在 单 工 方 式 下 , 通 信 线 的 一 端接 发 送 器 , 另 一 端 接 接 收 器 ,形 成 单 向 连 接 。 若 A为 发 送 端 ,B为 接 收 端 , 数 据 仅 能 从 A端 发至 B端 , 如 广 播 、 无 线 寻 呼 等 ,如 7-4中 ( a) 图 所 示 。 ( a) 单 工 方 式 7.1串 行 通 信 基 础 知 识n 7.1.3串 行 通 信 的 数 据 传 送 方 向2、 半 双 工 方 式 在 半 双 工 方 式 下 , 系 统 中 的 每 个 通 信设 备 都 由 一 个 发 送 器 和 一 个 接 收 器组 成 , 通 过 收 、 发 开 关 接 到 通 信 线上 。 数 据 既 可 从 A端 发 送 到 B端 , 也可 以 由 B端 发 送 到 A端 , 不 过 在 同 一时 间 只 能 作 一 个 方 向 的 数 据 传 送 ,如 使 用 同 一 载 波 频 率 的 对 讲 机 , 如7-4中 ( b) 图 所 示 。3、 全 双 工 方 式 在 全 双 工 方 式 下 , 在 同 一 时 间 两 端 既可 同 时 发 送 , 也 可 同 时 接 收 , 如 普通 电 话 、 手 机 等 , 80C51单 片 机 使 用 全 双 工 方 式 , 如 7-4( c) 图 所 示 。 ( b) 半 双 工 方 式( c) 全 双 工 方 式 7.1串 行 通 信 基 础 知 识n 7.1.3串 行 通 信 的 数 据 传 送 方 向数 据 通 信 系 统 一 般 由 数 据 发 送 方 、 数 据 接 收 方 及 数 据 通 路 组 成的 。 串 行 通 信 的 数 据 是 在 两 个 站 之 间 传 送 的 , 按 照 数 据 的 传送 方 向 , 串 行 通 信 有 三 种 数 据 通 路 连 接 方 式 。1、 单 工 方 式 在 单 工 方 式 下 , 通 信 线 的 一 端接 发 送 器 , 另 一 端 接 接 收 器 ,形 成 单 向 连 接 。 若 A为 发 送 端 ,B为 接 收 端 , 数 据 仅 能 从 A端 发至 B端 , 如 广 播 、 无 线 寻 呼 等 ,如 7-4中 ( a) 图 所 示 。 ( a) 单 工 方 式 7.1串 行 通 信 基 础 知 识n 7.1.4通 信 中 的 误 码 问 题 数 据 在 串 行 传 输 过 程 中 , 由 于 干 扰 可 能 使 传 输 的 数 据 发 生 错误 , 这 种 情 况 称 为 出 现 了 “ 误 码 ” , 错 误 的 数 据 位 数 与 所 有传 输 数 据 总 位 数 的 比 率 叫 做 “ 误 码 率 ” , 发 现 传 输 中 的 错 误叫 做 “ 检 错 ” , 发 现 错 误 后 消 除 错 误 叫 做 “ 纠 错 ” 。 为 了 使 系 统 能 够 可 靠 、 稳 定 地 通 信 , 在 编 程 时 应 当 设 计 通 信协 议 , 并 应 考 虑 数 据 的 纠 错 , 一 般 在 通 信 时 采 取 数 据 校 验 的办 法 , 可 有 效 保 证 数 据 传 输 的 可 靠 性 , 目 前 较 为 流 行 的 方 法有 奇 偶 校 验 、 累 加 和 校 验 、 据 环 冗 余 码 校 验 几 种 : 7.1串 行 通 信 基 础 知 识n 7.1.4通 信 中 的 误 码 问 题1、 奇 偶 校 验 最 简 单 的 检 错 方 法 是 “ 奇 偶 校 验 ” , 在 传 送 字 符 的 各 位 之 外 ,再 传 送 1位 奇 /偶 校 验 位 。 奇 校 验 : 数 据 中 1的 个 数 与 校 验 位 1的 个 数 之 和 应 为 奇 数 偶 校 验 : 数 据 中 1的 个 数 与 校 验 位 1的 个 数 之 和 应 为 偶 数 在 接 收 字 符 时 , 对 1的 个 数 进 行 校 验 , 若 发 现 不 一 致 , 则 说明 传 输 数 据 过 程 中 出 现 了 差 错 。 奇 偶 校 验 无 法 实 现 自 动 纠 错 ,发 现 错 误 后 只 能 要 求 重 发 , 但 由 于 其 实 现 简 单 , 仍 得 到 了 广泛 使 用 。 7.1串 行 通 信 基 础 知 识n 7.1.4通 信 中 的 误 码 问 题2、 累 加 和 校 验 累 加 和 校 验 是 指 发 送 方 将 发 送 的 数 据 块 求 和 , 并 将 “ 校 验 和 ”附 加 到 数 据 块 末 尾 , 接 收 方 接 收 数 据 时 也 是 先 对 数 据 块 求 和 ,将 所 得 结 果 与 发 送 方 的 “ 校 验 和 ” 进 行 比 较 , 相 符 则 无 差 错 ,否 则 即 出 现 了 差 错 。 校 验 和 能 够 检 测 到 比 奇 偶 校 验 更 多 的 错误 , 但 当 字 节 顺 序 颠 倒 时 , 校 验 和 不 能 发 现 , 因 为 其 不 能 发现 次 序 错 误 。3、 据 环 冗 余 码 校 验 据 环 冗 余 码 校 验 是 通 过 某 种 数 学 运 算 实 现 有 效 信 息 与 校 验 位之 间 的 循 环 校 验 , 常 用 于 对 磁 盘 信 息 的 传 输 、 存 储 区 的 完 整性 校 验 等 。 这 种 校 验 方 法 纠 错 能 力 强 , 广 泛 应 用 于 同 步 通 信中 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 80C51系 列 单 片 机 有 一 个 全 双 工 的 串 行 口 , 这 个 口 除 可 以 实 现串 行 异 步 通 信 , 还 可 以 作 为 同 步 移 位 寄 存 器 使 用 。n 7.2.1串 行 接 口 的 结 构 80C51系 列 单 片 机 串 行 口 主 要 由 发 送 数 据 缓 冲 器 、 发 送 控制 器 、 接 收 数 据 缓 冲 器 、 接 收 控 制 器 、 输 出 控 制 门 、 输 入 移位 寄 存 器 等 组 成 。 由 于 串 行 口 对 外 有 两 条 独 立 的 收 、 发 信 号 线 RXD( P3.0) 、TXD( P3.1) , 因 此 可 以 同 时 发 送 、 接 收 数 据 , 实 现 全 双 工通 信 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.1串 行 接 口 的 结 构串 行 口 结 构 框 图 如 图 7-5所 示 : 图 7-5 串 行 口 结 构 框 图 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器 对 串 行 口 的 访 问 和 设 置 是 通 过 访 问 相 关 的 特 殊 功 能 寄 存 器 完成 的 , 与 串 行 口 相 关 的 特 殊 功 能 寄 存 器 共 有 3个 , 如 表 7-1所示 。寄 存 器 地 址 名 称 7 6 5 4 3 2 1 0SCON 98H 串 行 口 控 制 SM0 SM1 SM2 REN TB8 RB8 TI RIPCON 87H 电 源 控 制 SMOD - - - GF1 GF0 PD IDLSBUF 99H 串 行 口 缓 存 - - - - - - - -表 7-1 串 口 控 制 寄 存 器 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器1、 串 行 数 据 缓 冲 器 SBUF 80C51单 片 机 串 行 数 据 缓 冲 器 SBUF是 两 个 8位 的 特 殊 功 能寄 存 器 , 其 在 功 能 和 物 理 空 间 上 均 独 立 , 但 两 者 共 用 SBUF这 个 符 号 , 并 且 字 节 地 址 均 为 99H。 发 送 缓 冲 器 只 能 写 入 不能 读 出 , 接 收 缓 冲 器 只 能 读 出 不 能 写 入 , 两 者 均 只 能 进 行 字节 寻 址 。 SBUF具 有 接 收 缓 冲 功 能 , 接 收 器 是 双 缓 冲 结 构 , 在 第 一个 字 节 从 寄 存 器 读 出 之 前 , 可 以 开 始 接 收 第 二 个 字 节 , 但 是如 果 第 二 个 字 节 接 收 完 毕 时 , 第 一 个 字 节 仍 未 读 出 , 其 第 一个 字 节 将 会 丢 失 。 发 送 器 为 单 缓 冲 器 , 因 为 发 送 时 CPU是 主动 的 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器1、 串 行 数 据 缓 冲 器 SBUF(1).串 行 口 的 数 据 发 送 单 片 机 启 动 发 送 的 方 法 是 : 在 TI=0的 条 件 下 , CPU通 过 执 行一 条 写 SBUF指 令 。 如 : 执 行 MOV SBUF, A指 令 向 输 出 缓冲 器 SBUF。 写 入 数 据 , 从 而 启 动 数 据 串 行 发 送 。 在 波 特 率 发 生 器 产 生 的发 送 时 钟 控 制 下 , 按 照 预 先 设 置 的 帧 格 式 由 低 位 到 高 位 逐 位由 TXD端 输 出 发 送 数 据 , 发 送 结 束 TI 1。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器1、 串 行 数 据 缓 冲 器 SBUF(2).串 行 口 的 数 据 接 收 单 片 机 启 动 接 收 的 首 要 条 件 是 REN=1。 串 行 口 通 过 对 RXD引脚 信 号 的 采 样 来 确 认 串 行 数 据 , 若 检 测 到 发 送 数 据 的 起 始 位(一 般 为 低 电 平 ), 则 其 后 对 RXD引 脚 每 间 隔 一 定 时 间 进 行 采样 , 采 样 到 的 数 据 在 接 收 时 钟 控 制 下 以 移 位 方 式 存 入 输 入 移位 寄 存 器 , 当 数 据 接 收 完 成 或 检 测 到 停 止 位 时 , CPU将 自 动把 接 收 到 输 入 移 位 寄 存 器 的 内 容 送 入 接 收 缓 冲 器 SBUF, 并置 接 收 完 成 标 志 位 RI=1, 编 程 人 员 可 通 过 中 断 方 式 或 查 询 方式 得 知 这 一 消 息 , 随 后 编 写 读 取 指 令 如 : MOV A, SBUF指令 将 接 收 到 的 数 据 取 出 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器1、 串 行 数 据 缓 冲 器 SBUF(2).串 行 口 的 数 据 接 收 例 如 : 甲 机 发 送 数 据 给 乙 机 。 图 7-6 串 行 通 信 甲 机 发 送 机 接 收 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器甲 机 作 为 发 送 机 , 执 行 MOV SBUF, A指 令 后 CPU向 SBUF写入 数 据 , 启 动 发 送 过 程 , A中 的 8位 数 据 并 行 送 入 SBUF, 在发 送 控 制 器 的 作 用 下 , 按 照 编 程 人 员 设 定 的 发 送 速 率 (发 送 波特 率 ), 每 传 来 一 个 时 钟 脉 冲 , 数 据 移 出 一 位 , 从 TXD端 由 低位 到 高 位 一 位 一 位 地 发 送 到 通 信 线 路 上 , 移 出 的 数 据 经 过 线路 直 达 乙 机 。乙 机 作 为 接 收 机 , 按 照 与 发 送 速 率 相 同 的 接 收 速 率 ( 接 收 波 特率 ) , 将 数 据 按 照 移 位 脉 冲 的 频 率 由 低 位 到 高 位 一 位 一 位 地移 入 到 SBUF。 很 显 然 , 只 有 双 方 的 传 送 速 度 一 致 , 才 能 完 成 数 据 的 正 确 传送 , 不 一 致 , 势 必 会 造 成 数 据 位 的 丢 失 。 同 样 , 如 果 数 据 传输 率 一 致 , 帧 格 式 不 一 致 同 样 会 导 致 数 据 传 输 混 乱 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器2、 串 行 口 控 制 寄 存 器 SCON 串 行 口 控 制 寄 存 器 SCON的 作 用 是 控 制 串 行 通 信 的 工 作 方 式 、在 数 据 发 送 和 接 收 的 过 程 中 设 置 中 断 标 志 。 SCON的 字 节 地址 为 98H, 可 进 行 位 寻 址 , 位 地 址 从 高 位 到 低 位 分 别 为9FH 98H, 寄 存 器 的 位 定 义 如 下 : D7 D6 D5 D4 D3 D2 D1 D0SM0 SM1 SM2 REN TB8 RB8 TI RI 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器SM0 SM1 工 作 方 式 功 能 波 特 率0 0 方 式 0 8位 同 步 移 位 寄 存 器 方 式 fosc/120 1 方 式 1 10位 通 用 异 步 接 收 器 /发 送 器 可 变 ( 由 定 时 器 控 制 )1 0 方 式 2 11位 通 用 异 步 接 收 器 /发 送 器 fosc/32或 fosc/641 1 方 式 3 11位 通 用 异 步 接 收 器 /发 送 器 可 变 ( 由 定 时 器 控 制 )( 1) SM0、 SM1: 定 义 串 口 工 作 方 式 选 择 位 。 SM0和 SM1定 义 串 行 口 4种 工 作 方 式 , 如 表 7-2所 示 。表 7-2 串 行 口 工 作 方 式 ( fosc为 系 统 晶 振 频 率 ) 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器( 2) SM2: 多 机 通 信 控 制 位 。 SM2主 要 用 于 方 式 2和 方 式 3。 当 接 收 机 的 SM2=1时 , 可 以 利用 收 到 的 RB8来 控 制 是 否 激 活 RI(RB8=0时 不 激 活 RI, 收 到 的信 息 丢 弃 ; RB8=1时 收 到 的 数 据 进 入 SBUF, 并 激 活 RI, 进而 在 中 断 服 务 程 序 中 将 数 据 从 SBUF读 走 )。 当 SM2=0时 , 不论 收 到 的 RB8是 0还 是 1, 均 可 以 使 收 到 的 数 据 进 入 SBUF,并 激 活 RI(即 此 时 RB8不 具 有 控 制 RI激 活 的 功 能 )。 通 过 控 制SM2, 可 以 实 现 多 机 通 信 。 在 方 式 0时 , SM2必 须 是 0。 在 方式 1时 , 若 SM2=1, 则 只 有 接 收 到 有 效 停 止 位 时 , RI才 置 1。( 3) REN, 允 许 接 收 控 制 位 。 该 位 由 软 件 置 1或 清 0, REN 1时 , 允 许 串 行 口 接 收 数 据 ;REN=0时 , 禁 止 串 行 口 接 收 数 据 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器( 4) TB8: 方 式 2或 3中 发 送 数 据 的 第 9位 。 该 位 按 由 软 件 置 1或 清 0, 在 方 式 2或 方 式 3时 存 放 要 发 送 数 据的 第 9位 。 可 以 用 作 数 据 的 奇 偶 校 验 位 , 或 在 多 机 通 信 中 ,作 为 地 址 帧 和 数 据 帧 的 标 志 位 。 一 般 TB8 0时 , 表 示 发 送的 是 数 据 信 息 ; TB8 1时 , 表 示 发 送 的 是 地 址 信 息 。 方 式 0和 方 式 1该 位 未 用 。( 5) RB8: 方 式 2或 3中 接 收 数 据 的 第 9位 。 在 方 式 2或 方 式 3下 存 放 接 收 数 据 的 第 9位 。 可 以 用 作 数 据 的 奇偶 校 验 位 , 或 在 多 机 通 信 中 , 作 为 地 址 帧 和 数 据 帧 的 标 志 位 。一 般 约 定 数 据 信 息 为 0, 地 址 信 息 为 1。 在 方 式 1中 , 若SM2=0, 则 RB8是 接 收 到 的 停 止 位 。 在 方 式 0中 , RB8未 用 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器( 6) TI: 发 送 中 断 标 志 位 。 该 位 用 来 指 示 一 帧 数 据 是 否 发 送 完 , 在 方 式 0中 , 发 送 完 第 8位 数 据 , 由 硬 件 置 1。 其 他 方 式 中 , 在 发 送 停 止 位 时 , 由 硬件 置 1。 值 得 注 意 的 是 , 在 任 何 方 式 下 , TI虽 然 都 是 由 硬 件自 动 置 位 , 但 都 必 须 由 软 件 来 清 零 。( 7) RI: 接 收 中 断 标 志 位 。 该 位 用 来 指 示 一 帧 数 据 是 否 接 收 完 , 在 方 式 0中 , 接 收 完 第 8位 数 据 , 由 硬 件 置 1。 其 他 方 式 中 , 在 接 收 停 止 位 时 , 由 硬件 置 1。 RI必 须 由 软 件 清 零 。 注 意 : 发 送 中 断 标 志 TI和 接 收 中 断 标 志 RI共 用 一 个 中 断 入 口地 址 ( 中 断 向 量 ) 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器3、 电 源 管 理 寄 存 器 PCON 电 源 管 理 寄 存 器 在 特 殊 功 能 寄 存 器 中 , 字 节 地 址 为 87H, 不能 位 寻 址 , 其 各 位 的 定 义 如 下 : D7 D6 D5 D4 D3 D2 D1 D0( 1) SMOD:该 位 与 串 口 通 信 波 特 率 有 关 。SMOD=0: 串 口 方 式 1, 2, 3时 , 波 特 率 正 常 。SMOD=1: 串 口 方 式 1, 2, 3时 , 波 特 率 加 倍 。( 3) (SMOD0),(LVDF),(POF):这 三 位 是 STC单 片 机 特 有 的 功 能 ,请 查 看 相 关 手 册 , 其 他 单 片 机 保 留 未 使 用 。 ( 4) GFl, GF0:两 个 通 用 工 作 标 志 位 , 用 户 可 以 自 由 使 用SMOD ( SMOD0) (LVDF) (POF) GF1 GF0 PD IDL 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.2串 行 接 口 的 控 制 寄 存 器3、 电 源 管 理 寄 存 器 PCON ( 5) PD:掉 电 模 式 设 定 位 。PD=0: 单 片 机 处 于 正 常 工 作 状 态 。PD=1: 单 片 机 进 入 掉 电 (Power Down)模 式 , 可 由 外 部 中 断 低 电平 触 发 或 由 下 降 沿 触 发 或 者 硬 件 复 位 模 式 换 醒 , 进 入 掉 电 模式 后 , 外 部 晶 振 停 振 , CPU、 定 时 器 、 串 行 口 全 部 停 止 工 作 ,只 有 外 部 中 断 继 续 工 作 。( 6) IDL:空 闲 模 式 设 定 位 。IDL=0: 单 片 机 处 于 正 常 工 作 状 态 。IDL=1: 单 片 机 进 入 空 闲 (Idle)模 式 , 除 CPU不 工 作 外 , 其 余 仍继 续 工 作 , 在 空 闲 模 式 下 可 由 任 一 个 中 断 或 硬 件 复 位 唤 醒 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.3串 口 通 信 的 波 特 率 设 计1、 什 么 是 波 特 率 波 特 率 是 指 每 秒 传 送 二 进 制 数 据 的 位 数 , 单 位 是 bps(位 /秒 ),即 1波 特 =1位 /秒 。 单 片 机 或 计 算 机 在 串 口 通 信 时 的 速 率 用 波 特 率 表 示 。 如 果 单 片 机 与 计 算 机 之 间 每 秒 钟 传 送 360个 字 符 , 而 每 个 字 符格 式 包 含 10位 (1个 起 始 位 、 1个 停 止 位 、 8个 数 据 位 ), 这 时的 波 特 率 为 10位 360个 /秒 =3600 bps。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.3串 口 通 信 的 波 特 率 设 计2、 80C51单 片 机 串 行 口 的 波 特 率 设 计 串 行 通 信 的 波 特 率 随 串 行 口 工 作 方 式 的 不 同 而 不 同 , 串 行 口的 4种 工 作 方 式 对 应 着 3种 波 特 率 。 影 响 波 特 率 的 因 素 主 要 有 以 下 几 个 :系 统 的 振 荡 频 率 fosc。电 源 控 制 寄 存 器 PCON中 的 波 特 率 倍 增 位 SMOD。定 时 器 /计 数 器 T1的 溢 出 率 设 置 。 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.3串 口 通 信 的 波 特 率 设 计接 下 来 讨 论 在 各 种 工 作 方 式 下 的 波 特 率 设 置 方 法 。(1).模 式 0的 波 特 率 在 模 式 0时 , 每 个 机 器 周 期 产 生 一 个 移 位 时 钟 , 发 送 或 接 收 一位 数 据 。 所 以 , 波 特 率 固 定 为 振 荡 频 率 的 1 12, 且 不 受SMOD的 影 响 。 即 : 模 式 0的 波 特 率 = 12 oscf 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.3串 口 通 信 的 波 特 率 设 计2 模 式 2的 波 特 率 模 式 2波 特 率 的 产 生 与 模 式 0不 同 , 模 式 2的 波 特 率 由 系 统 的 振荡 频 率 fosc和 PCON的 最 高 位 SMOD确 定 , 当 SMOD=0时 ,波 特 率 为 fosc/64; 若 SMOD=l, 波 特 率 为 fosc/32, 即 :模 式 2的 波 特 率 = SM O D2 64 oscf 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.3串 口 通 信 的 波 特 率 设 计3 模 式 1和 模 式 3的 波 特 率 模 式 1和 模 式 3的 移 位 时 钟 脉 冲 由 定 时 器 T1的 溢 出 率 决 定 , 故波 特 率 由 定 时 器 T1的 溢 出 率 与 SMOD值 共 同 决 定 , 即 : 模 式 1和 模 式 3的 波 特 率 = T1的 溢 出 率 当 T1做 波 特 率 发 生 器 使 用 时 , 最 典 型 的 用 法 是 使 T1工 作 在 模式 2(初 值 自 动 加 载 )定 时 方 式 , 若 计 数 初 值 为 X, 则 每 过“ 256 X” 个 机 器 周 期 。 定 时 器 T1就 会 产 生 一 次 溢 出 。 为了 避 免 因 溢 出 而 引 起 中 断 , 此 时 应 禁 止 中 断 。 这 时 , 溢 出 周 期 为 232SMOD12 (256 )osc Xf 溢 出 率 为 溢 出 周 期 的 倒 数 , 所 以 : 波 特 率 = 此 时 , 定 时 器 T1工 作 在 模 式 2时 的 初 值 为 :7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.3串 口 通 信 的 波 特 率 设 计3 模 式 1和 模 式 3的 波 特 率 232 12(256 )SMOD OSCf X ( 1)256 384oscf SMODX 波 特 率 7.2 80C51系 列 单 片 机 的 串 行 接 口n 7.2.3串 口 通 信 的 波 特 率 设 计【 例 7-1】 设 晶 振 频 率 fosc=6MHz, SMOD=1, 设 定 时 器 T1工作 在 方 式 2, fosc为 6MHz时 , 波 特 率 为 2400 bit/s, 计 算 定 时初 值 X, 并 初 始 化 T1和 串 行 口 。解 : X=256-6 106 (1+1)/(2400 32 12)=242.98 243=0F3H则 定 时 器 T1和 串 行 口 的 初 始 化 程 序 如 下 : MOV TMOD, #20H ; 设 T1为 方 式 2定 时MOV TH1, #0F3H ; 置 时 间 常 数MOV TL1, #0F3HSETB TR1 ; 启 动 T1 ORL PCON, #80H ; SMOD=1MOV SCON, #50H ; 串 行 口 方 式 1 7.3 串 行 口 工 作 模 式n 7.3.1模 式 0 模 式 0时 80C51单 片 机 串 行 口 工 作 在 同 步 移 位 寄 存 器 状 态 ,有 输 入 输 出 方 式 , 一 般 应 用 于 扩 展 I O口 。 8位 串 行 数 据的 输 入 或 输 出 都 是 通 过 RXD端 , 而 TXD端 用 于 送 出 同 步 移 位脉 冲 , 作 为 外 接 器 件 的 同 步 移 位 信 号 。 波 特 率 固 定 为 fsoc12。 模 式 0以 8位 为 一 帧 数 据 , 没 有 起 始 位 和 停 止 位 , 传 送 数 据时 , 低 位 在 前 、 高 位 在 后 , 其 帧 格 式 为 : D0 D1 D2 D3 D4 D5 D6 D7 7.3 串 行 口 工 作 模 式n 7.3.1模 式 0 模 式 0的 发 送 是 在 TI=0的 情 况 下 , 由 一 条 写 发 送 缓 冲 器 的 指 令 开始 。 例 如 : MOV SBUF, A。 CPU执 行 完 该 指 令 , 串 行 口 即 将8位 数 据 从 RXD端 送 出 (低 位 在 前 ), 同 时 在 TXD端 发 出 同 步 移 位脉 冲 。 8位 数 据 发 送 完 毕 后 , 由 硬 件 置 位 TI=1, 可 通 过 查 询 TI位 来 确 定 是 否 发 送 完 一 帧 数 据 , TI=1表 示 发 送 缓 冲 器 已 空 ;TI=1也 可 作 为 中 断 请 求 信 号 , 申 请 串 行 口 发 送 中 断 。 当 要 发 送下 一 组 数 据 时 , 需 用 软 件 使 TI清 零 , 然 后 才 可 发 送 下 一 组 数 据 。 ( a) 串 行 口 方 式 0发 送 时 序 7.3 串 行 口 工 作 模 式n 7.3.1模 式 0 ( b) 串 行 口 方 式 0接 收 时 序 模 式 0的 接 收 是 在 RI=0的 条 件 下 , 执 行 指 令 使 得 REN=1, 启 动 串 行 口 接 收 。 接 收数 据 由 RXD端 输 入 (低 位 在 前 ), TXD端 仍 发 出 同 步 移 位 脉 冲 。 接 收 到 8位 数 据 以 后 ,由 硬 件 使 RI=1。 可 通 过 查 询 RI位 来 确 定 是 否 接 收 到 一 组 数 据 , RI=1表 示 接 收 数 据 已装 入 接 收 缓 冲 器 , 可 以 用 指 令 读 取 其 内 容 , 常 用 的 指 令 如 : MOV A, SBUF; RI=1也可 作 为 中 断 请 求 信 号 , 申 请 串 行 口 接 收 中 断 。 无 论 是 中 断 方 式 还 是 查 询 方 式 , 当CPU读 取 数 据 后 , 需 用 软 件 使 RI清 零 , 以 准 备 接 收 下 一 组 数 据 。在 模 式 0中 , SCON寄 存 器 中 的 SM2、 RB8、 TB8都 不 起 作 用 , 一 般 设 它 们 为 零 即 可 。 7.3 串 行 口 工 作 模 式n 7.3.1模 式 0 串 行 口 定 义 为 模 式 1时 , 是 串 行 异 步 通 信 方 式 。 模 式 1一 帧 数 据由 10位 组 成 , 包 括 1位 起 始 位 、 8位 数 据 位 、 1位 停 止 位 , 其帧 格 式 为 : 起 始 DO D1 D2 D3 D4 D5 D6 D7 停 止 7.3 串 行 口 工 作 模 式n 7.3.1模 式 0n 模 式 1的 发 送 也 是 在 TI=0时 由 一 条 写 发 送 缓 冲 器 SBUF的 指 令 开 始 。 启 动 发 送后 , 串 行 口 自 动 插 入 一 位 起 始 位 (逻 辑 0), 接 着 是 8位 数 据 (低 位 在 前 ), 然 后 插入 一 位 停 止 位 (逻 辑 1), 在 发 送 移 位 脉 冲 作 用 下 , 依 次 由 TXD端 发 出 。 一 帧 信 息发 完 后 , 自 动 维 持 TXD端 信 号 为 1。 在 8位 数 据 发 完 之 后 , 也 就 是 在 插 入 停 止 位时 , 使 TI置 1, 用 以 通 知 CPU可 以 发 送 下 一 帧 数 据 。 ( a) 串 行 口 方 式 1发 送 时 序 7.3 串 行 口 工 作 模 式n 7.3.3 模 式 2 模 式 2也 是 串 行 异 步 通 信 方 式 。 一 帧 数 据 由 11位 组 成 , 包 括 1位 起 始 位 、 8位 数 据 位 、 1位 可 编 程 位 、 1位 停 止 位 , 其 帧 格式 为 : 模 式 2的 波 特 率 是 固 定 的 , 且 有 两 种 : 一 种 是 : 另 一 种 是 :起 始 DO D1 D2 D3 D4 D5 D6 D7 0/1 停 止32 oscf 64oscf 7.3 串 行 口 工 作 模 式n 7.3.3 模 式 2 模 式 2的 发 送 包 括 9位 有 效 数 据 , 在 启 动 发 送 之 前 , 要 把 发 送 的第 9位 数 值 装 入 SCON寄 存 器 中 的 TB8位 , 准 备 好 TB8的 值 以后 , 在 TI=0的 条 件 下 , 就 可 以 执 行 一 条 写 发 送 缓 冲 器 SBUF的 指 令 来 启 动 发 送 。 串 行 口 能 自 动 把 TB8取 出 , 并 装 入 到 第9位 数 据 的 位 置 , 逐 一 发 送 出 去 。 发 送 完 毕 , 使 TI置 1。 ( a) 串 行 接 口 方 式 2发 送 时 序 7.3 串 行 口 工 作 模 式n 7.3.3 模 式 2 ( b) 串 行 接 口 方 式 2接 收 时 序 模 式 2的 接 收 与 模 式 1基 本 相 似 。 不 同 之 处 是 要 接 收 9位 有 效 数 据 。 在 模 式1时 是 把 停 止 位 当 作 第 9位 数 据 来 处 理 , 而 在 模 式 2(或 模 式 3)中 存 在 着 真 正 的第 9位 数 据 。 因 此 , 接 收 数 据 真 正 有 效 的 条 件 为 :(1)RI=0;(2)SM2=0或 收 到 的 第 9位 数 据 为 1。 若 上 述 两 个 条 件 成 立 , 接 收 的 前 8位 数 据 进 入 SBUF以 准 备 让 CPU读 取 ,接 收 的 第 9位 数 据 进 入 RB8, 同 时 置 位 RI。 若 以 上 条 件 不 成 立 , 则 这 次 接 收无 效 , 放 弃 接 收 数 据 , 即 8位 数 据 不 装 入 SBUF, 也 不 置 位 RI。 7.3 串 行 口 工 作 模 式n 7.3.4 模 式 3 模 式 3同 样 是 串 行 异 步 通 信 方 式 , 其 一 帧 数 据 格 式 , 接 收 、 发 送过 程 与 模 式 2完 全 相 同 , 所 不 同 的 仅 在 于 波 特 率 。 模 式 2的 波特 率 只 有 固 定 的 两 种 , 而 模 式 3的 波 特 率 由 定 时 器 T1的 溢 出率 及 SMOD决 定 , 这 一 点 与 模 式 1相 同 。 7.4串 行 通 信 应 用 举 例n 7.4.1串 行 口 模 式 0的 应 用1、 扩 展 并 行 输 出 口 80C51单 片 机 的 串 行 口 在 方 式 0时 外 接 一 个 串 入 并 出 的 移 位 寄存 器 如 CD4094( 或 是 74LS164等 ) , 可 以 扩 展 一 个 8位 并 行输 出 口 。 如 图 7-10所 示 , 移 位 寄 存 器 CD4094的 STB端 为 并行 输 出 允 许 控 制 端 , STB=0时 , 移 位 寄 存 器 串 行 接 收 ,STB=1时 打 开 并 行 输 出 控 制 门 , 实 现 并 行 输 出 点 亮 发 光 二 极管 。 图 7-10 串 转 并 原 理 图 7.4串 行 通 信 应 用 举 例n 7.4.1串 行 口 模 式 0的 应 用1、 扩 展 并 行 输 出 口 【 例 7-2】 用 某 51单 片 机 串 行 口 外 接 CD4094扩 展 8位 并 行 输出 口 , 8位 并 行 口 的 各 位 都 接 一 个 发 光 二 极 管 , 假 设 发 光 二极 管 为 共 阴 极 型 , 电 路 连 接 如 图 7-10所 示 , 要 求 编 程 实 现 :发 光 二 极 管 呈 流 水 灯 状 态 (从 左 向 右 以 一 定 延 迟 依 次 点 亮 , 并反 复 循 环 )。解 : 本 例 数 据 的 串 行 发 送 采 用 查 询 方 式 , 显 示 的 延 迟 由 延 时 程序 DELAY实 现 。 程 序 如 下 : ORG 2000H START: MOV SCON,#00H ; 置 串 行 口 工 作 方 式 0, 且 TI=0 CLR ES ; 禁 止 串 行 中 断 MOV A,#80H ; 拟 先 点 亮 最 左 边 一 位 OUT0: CLR P1.0 ; 关 闭 并 行 输 出 MOV SBUF,A ; 启 动 串 行 输 出 7.4串 行 通 信 应 用 举 例n 7.4.1串 行 口 模 式 0的 应 用OUT1: JNB TI,OUT1 ; 输 出 完 否 CLR TI ; 完 了 , 清 TI标 志 , 以 备 下 次 发 送 SETB P1.0 ; 打 开 并 行 口 输 出 ACALL DELAY ; 延 时 一 段 时 间 RR A ; 循 环 右 移 CLR P1.0 ; 关 闭 并 行 输 出 JMP OUT0 ; 循 环 RETDELAY: ORG 2400H ; 延 时 50msDEL: MOV R7, #125 ; 执 行 时 需 1个 机 器 周 期 DEL1: MOV R6, #200 ;DEL2: DJNZ R6,DEL2 ; 200 2=400 s(内 循 环 时 间 ) DJNZ R7,DEL1 ; 0.4ms 125=50ms(外 循 环 时 间 ) RET 7.4串 行 通 信 应 用 举 例n 7.4.1串 行 口 模 式 0的 应 用2、 扩 展 并 行 输 入 口 80C51单 片 机 的 串 行 口 在 方 式 0时 外 接 一 个 并 入 串 出 的 移 位 寄存 器 如 CD4014( 或 是 74LS165等 ) , 如 图 7-11所 示 , 可 以扩 展 一 个 8位 并 行 输 入 口 。 并 入 串 出 移 位 寄 存 器 必 须 带 有 一个 预 置 /移 位 的 控 制 端 , CD4014的 预 置 /移 位 控 制 端 是 P/S,当 P/S=1时 , 8位 数 据 并 行 置 入 移 位 寄 存 器 ; P/S=0时 , 移 位寄 存 器 中 的 8位 数 据 串 行 移 位 输 出 。 图 7-11 扩 展 并 行 输 入 口 7.4串 行 通 信 应 用 举 例n 7.4.1串 行 口 模 式 0的 应 用2、 扩 展 并 行 输 入 口【 例 7-3】 某 51单 片 机 串 行 口 外 接 CD4014扩 展 8位 并 行 输 入 口 ,输 入 数 据 由 8个 开 关 提 供 , 另 有 一 个 开 关 S提 供 联 络 信 号 , 电路 连 接 如 图 7-12所 示 。 当 S=0时 , 要 求 编 程 实 现 连 续 从 RXD输 入 到 单 片 机 8位 开 关 量 。 图 7-12 扩 展 并 行 输 入 口 接 口 电 路 7.4串 行 通 信 应 用 举 例n 7.4.1串 行 口 模 式 0的 应 用2、 扩 展 并 行 输 入 口解 : 本 例 用 串 行 口 模 式 0接 收 数 据 , 初 始 化 时 应 使 REN为 1启 动接 收 , 采 用 查 询 方 式 输 入 数 据 , 程 序 如 下 : ORG 0300HBJS0: JB P1.0 , LP2 ; 开 关 K未 闭 合 , 转 返 回 CLR ES ; 采 用 查 询 方 式 ,因 此 禁 止 串 行 中 断 MOV SCON, #10H ; 设 模 式 0, RI清 0, REN=1启 动 接 收 LP: SETB P1.1 ; P/S=1, 并 行 置 入 开 关 数 据 CLR P1.1 ; P/S=0, 开 始 串 行 输 出 LP1: JNB RI, LP1 ; 查 询 RI, RI=0未 接 收 完 等 待 CLR RI ; 接 收 完 , 清 RI, 准 备 接 收 下 一 个 MOV A, SBUF ; 读 取 数 据 送 入 累 加 器 MOV 40H, A ; 送 内 部 RAM区LP2: RET ; 接 收 完 , 子 程 序 返 回 7.4串 行 通 信 应 用 举 例n 7.4.1串 行 口 模 式 0的 应 用2、 扩 展 并 行 输 入 口解 : 本 例 用 串 行 口 模 式 0接 收 数 据 , 初 始 化 时 应 使 REN为 1启 动接 收 , 采 用 查 询 方 式 输 入 数 据 , 程 序 如 下 : ORG 0300HBJS0: JB P1.0 , LP2 ; 开 关 K未 闭 合 , 转 返 回 CLR ES ; 采 用 查 询 方 式 ,因 此 禁 止 串 行 中 断 MOV SCON, #10H ; 设 模 式 0, RI清 0, REN=1启 动 接 收 LP: SETB P1.1 ; P/S=1, 并 行 置 入 开 关 数 据 CLR P1.1 ; P/S=0, 开 始 串 行 输 出 LP1: JNB RI, LP1 ; 查 询 RI, RI=0未 接 收 完 等 待 CLR RI ; 接 收 完 , 清 RI, 准 备 接 收 下 一 个 MOV A, SBUF ; 读 取 数 据 送 入 累 加 器 MOV 40H, A ; 送 内 部 RAM区LP2: RET ; 接 收 完 , 子 程 序 返 回 7.4串 行 通 信 应 用 举 例n 7.4.2串 行 口 模 式 1的 应 用【 例 7-4】 设 计 一 个 发 送 程 序 , 发 送 片 内 RAM40H 4FH中 的 数据 。 串 行 口 设 定 为 工 作 方 式 1, 波 特 率 为 1200b/s,fosc=11.0592MHz。 ( 设 T1工 作 在 方 式 2, SMOD=0。 )解 : 工 作 方 式 1的 波 特 率 取 决 于 定 时 器 T1的 溢 出 率 , 波 特 率 为1200, 则 T1的 计 数 初 值 X=256-(20/32) 11059200/(12 1200) =232=0E8H, 程 序 如 下 :MOV TMOD, #20H ; 定 时 器 T1为 工 作 方 式 2 MOV TH1, #0E8H ; 初 始 化 计 数 器 MOV TL1, #0E8H CLR ET1 ; 禁 止 T1中 断 SETB TR1 ; 启 动 T1MOV SCON, #40H ; 设 定 串 口 工 作 在 模 式 1, 禁 止 接 收 数据 7.4串 行 通 信 应 用 举 例n 7.4.2串 行 口 模 式 1的 应 用MOV PCON, #00H ; SMOD=0 CLR ES ; 禁 止 串 行 中 断MOV R0, #40H ; 置 发 送 数 据 首 地 址MOV R7, #16 ; 置 发 送 数 据 长 度LOOP: MOV A, R0 ; 读 取 第 一 个 数 据 AMOV SBUF, A ; 数 据 SBUF, 启 动 发 送 JNB TI, $ ; 等 待 一 帧 数 据 发 送 完 毕CLR TI ; TI清 0 INC R0 ; 指 向 下 一 字 节 单 元DJNZ R7, LOOP SJMP $ END 7.4串 行 通 信 应 用 举 例n 7.4.3串 行 口 模 式 2的 应 用【 例 7-5】 设 计 一 个 发 送 程 序 , 发 送 片 内 RAM 50H 5FH中 的 数 据 。 串 行 口 设定 为 方 式 2, TB8用 作 奇 偶 校 验 位 。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 机械制造 > 工业自动化


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

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


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