单片机串行通信功能设计 毕业论文.doc_第1页
单片机串行通信功能设计 毕业论文.doc_第2页
单片机串行通信功能设计 毕业论文.doc_第3页
单片机串行通信功能设计 毕业论文.doc_第4页
单片机串行通信功能设计 毕业论文.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

单片机串行通信功能设计 摘 要 现代的单片机测控系统中通常以 pc 机作为控制中心,单片机 将采集到的数据通过串口送给 pc 机进行各种处理,为保证数据传 送的及时性和正确性,就必须建立可靠的通讯。在开发控制系统时, 信号的测控及采集均由单片机系统自行完成,然后通过异步串行通 信口将信号实时地传送给 pc 机进行处理。上位 pc 机使用 vb 进行 串口通信的编程,下位单片机使用 c51 进行编程。本文详述了使用 vb 和 c51 实现 pc 机和单片机串行通信的开发方法,并简要地介绍 了 vb 通讯控件及其使用方法,给出了调试程序。 采用将置于现场 mcs 一 51 单片机应用系统挂在主机 pc 的串 行通信上,通过串行通信电路及系统控制软件与 pc 机和单片机进 行数据交换的方式,实现了对现场数据的接收与发送。串行通信系 统主机采用标准接口。该系统的通信是由 pc 机主动进行发信访问, 各个 mcs 一 51 单片机处于被动通信状态,对 pc 机与单片机数据 通信的校验采用奇校验方式。 关键词: 单片机;串行通信; vb 程序设计; 上位机 abstract modern microcontroller measure-control system usually regard pc as the control center, the microcontroller will send the collected data to a pc for a serial port, to ensure that the transmission of all the timeliness and accuracy data, it must establish reliable communication. in the development of the control system, signal control and collection of microcomputer system itself, then through asynchronous serial communication to the real-time signal transmitted pc.pc using vb programming for serial communication, scm c51 use for programming. the paper describes using vb c51 and pc machine and mcu development method of serial communication, and briefly introduces the method of using vb communication control is presented, and debugging. using placed on site mcs a 51 scm system in the pc host hanging on the serial communication, through serial communication circuit and control system software and pc and mcu exchange data on site, receiving and sending data. serial communication system is using standard interface host. the system of communication by the pc is active on a visit each mcs kindhearted passive communication 51-series microcomputer. for pc and calibration adopts single-chip data communications parity. keywords: single chip; serial communication; vb program design; host computer 目 录 第一章 绪论 1 1.1 单片机技术介绍 1 1.2 课题背景与意义 2 1.3 课题研究内容 3 第二章 串行通信基础 4 2.1 串行通信协议 4 2.2 通信方式 5 2.2.1 串行通信 5 2.2.2 并行通信 6 2.3 串行通信方式 6 2.3.1 异步串行通信方式 6 2.3.2 同步串行通信方式 7 2.4 串行通信的制式 8 2.4.1 单工 8 2.4.2 半双工 8 2.4.3 全双工 9 2.5 波特率 9 2.6 串行通信的错误校验 10 2.6.1 奇偶校验 10 2.6.2 代码和校验 10 2.6.3 循环冗余校验 10 2.7 串行通信的工作方式 11 2.7.1 方式 011 2.7.2 方式 112 2.7.3 方式 2 和方式 313 2.8 本章小结 14 第三章 系统开发基础 15 3.1 系统硬件 15 3.1.1 微处理器芯片 89c5115 3.1.2 显示芯片 hd7279a17 3.1.3 串行通信芯 max23218 3.2 软件工具及编程语言 19 3.2.1 选用 vb 开发上位机软件 19 3.2.2 mscomm 控件的主要属性、事件 .19 3.2.3 编程小结 20 33 系统方案设计 .21 第四章 系统方案实施 22 4.1 接口设计 22 4.1.1 系统连接电路 .22 4.1.2 串行通信电路 23 4.2 软件设计 24 4.2.1 显示 hd7279 显示程序 24 4.2.2 串行口通信 25 4.2.3 vb 通信程序 26 4.3 小结 27 第五章 结束语 28 致 谢 29 参考文献 30 第一章 绪论 1 第一章 绪论 1.1 单片机技术介绍 单 片 机 也 被 称 为 微 控 制 器 ( microcontroller unit) , 常 用 英 文 字 母 的 缩 写 mcu 表 示 单 片 机 , 它 最 早 是 被 用 在 工 业 控 制 领 域 。 单 片 机 由 芯 片 内 仅 有 cpu 的 专 用 处 理 器 发 展 而 来 。 最 早 的 设 计 理 念 是 通 过 将 大 量 外 围 设 备 和 cpu 集 成 在 一 个 芯 片 中 , 使 计 算 机 系 统 更 小 , 更 容 易 集 成 为 复 杂 的 而 对 体 积 要 求 严 格 的 控 制 设 备 当 中 。 自单片机出现至今,单片机技术已走过了近 20 年的发展路程。纵观 20 年 来单片机发展历程可以看出,单片机技术的发展以微处理器(mpu)技术及超大 规模集成电路技术的发展为先导,以广泛的应用领域为拉动,表现出较微处理 器更具个性的发展趋势。与此同时在市场上以单片机为核心控制器的产品更是 层出不穷,各种家用电器、智能仪器仪表、医疗器械、机电一体化、实时工业 控制、交通领域无不用到单片机。从目前单片机的发展趋势来看,单片机控制 技术已成为电子设计技术及计算机技术不可缺少的一个重要部分,因此单片机 系统在电子世界里有着较好的前景,进行单片机的系统开发设计在当今电子领 域有着重大的意义。 单 片 机 又 称 单 片 微 控 制 器 ,它 不 是 完 成 某 一 个 逻 辑 功 能 的 芯 片 ,而 是 把 一 个 计 算 机 系 统 集 成 到 一 个 芯 片 上 。 相 当 于 一 个 微 型 的 计 算 机 , 和 计 算 机 相 比 , 单 片 机 只 缺 少 了 i/o 设 备 。 概 括 的 讲 : 一 块 芯 片 就 成 了 一 台 计 算 机 。 它 的 体 积 小 、 质 量 轻 、 价 格 便 宜 、 为 学 习 、 应 用 和 开 发 提 供 了 便 利 条 件 。 同 时 , 学 习 使 用 单 片 机 是 了 解 计 算 机 原 理 与 结 构 的 最 佳 选 择 。 它 是 一 种 在 线 式 实 时 控 制 计 算 机 , 在 线 式 就 是 现 场 控 制 , 需 要 的 是 有 较 强 的 抗 干 扰 能 力 , 较 低 的 成 本 , 这 也 是 和 离 线 式 计 算 机 的 ( 比 如 家 用 pc) 的 主 要 区 别 。 单 片 机 是 靠 程 序 运 行 的 , 并 且 可 以 修 改 。 通 过 不 同 的 程 序 实 现 不 同 的 功 能 , 尤 其 是 特 殊 的 独 特 的 一 些 功 能 , 这 是 别 的 器 件 需 要 费 很 大 力 气 才 能 做 到 的 , 有 些 则 是 花 大 力 气 也 很 难 做 到 的 。 一 个 不 是 很 复 杂 的 功 能 要 是 用 美 国 第一章 绪论 2 50 年 代 开 发 的 74 系 列 , 或 者 60 年 代 的 cd4000 系 列 这 些 纯 硬 件 来 搞 定 的 话 , 电 路 一 定 是 一 块 大 pcb 板 ! 但 是 如 果 要 是 用 美 国 70 年 代 成 功 投 放 市 场 的 系 列 单 片 机 , 结 果 就 会 有 天 壤 之 别 ! 只 因 为 单 片 机 的 通 过 你 编 写 的 程 序 可 以 实 现 高 智 能 , 高 效 率 , 以 及 高 可 靠 性 ! 由 于 单 片 机 对 成 本 是 敏 感 的 , 所 以 目 前 占 统 治 地 位 的 软 件 还 是 最 低 级 汇 编 语 言 , 它 是 除 了 二 进 制 机 器 码 以 上 最 低 级 的 语 言 了 , 既 然 这 么 低 级 为 什 么 还 要 用 呢 ? 很 多 高 级 的 语 言 已 经 达 到 了 可 视 化 编 程 的 水 平 为 什 么 不 用 呢 ? 原 因 很 简 单 , 就 是 单 片 机 没 有 家 用 计 算 机 那 样 的 cpu, 也 没 有 像 硬 盘 那 样 的 海 量 存 储 设 备 。 一 个 可 视 化 高 级 语 言 编 写 的 小 程 序 里 面 即 使 只 有 一 个 按 钮 , 也 会 达 到 几 十 k 的 尺 寸 ! 对 于 家 用 pc 的 硬 盘 来 讲 没 什 么 , 可 是 对 于 单 片 机 来 讲 是 不 能 接 受 的 。 单 片 机 在 硬 件 资 源 方 面 的 利 用 率 必 须 很 高 才 行 , 所 以 汇 编 虽 然 原 始 却 还 是 在 大 量 使 用 。 一 样 的 道 理 , 如 果 把 巨 型 计 算 机 上 的 操 作 系 统 和 应 用 软 件 拿 到 家 用 pc 上 来 运 行 , 家 用 pc 的 也 是 承 受 不 了 的 。 1.2 课题背景与意义 计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行 通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传 输时,避免了多条线路特性的不一致而被广泛采用。 在串行通讯时,要求通讯 双方都采用一个标准接口,使不同 的设备可以方便地连接起来进行通讯。 rs-232-c 接口(又称 eia rs-232-c)是目前最常用的一种串行通讯接口。 它是在 1970 年由美国电子工业协会(eia)联合贝尔系统、 调制解调器厂家及计 算机终端生产厂家共同制定的用于串行通讯的标 准。它的全名是“数据终端设 备(dte)和数据通讯设备(dce)之间 串行二进制数据交换接口技术标准”该标准 规定采用一个 25 个脚的 db25 连接器,对连接器的每个引脚的信号内容加以规 定,还对各种信 号的电平加以规定。 随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单 片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。pc 机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过 pc 机的 rs-232 串行接口与外部设备进行通信,是许多测控系统中常用的一种 第一章 绪论 3 通信解决方案。因此如何实现 pc 机与单片机之间的通讯具有非常重要的现实意 义。 1.3 课题研究内容 设计要求实现如下功能 (1)完成最小系统设计; (2)设计串行通信接口,实现与 pc 机的通信; (3)具有人机对话功能,可通过键盘进行输入。 具有串行通信功能的数据采集模块为通用化模块设计,下位机 a/d 芯片可 采集工业现场的标准信号,经单片机数据量化能够实时上传给 pc 机,灵活组 网,使用十分方便。基于单片机技术的发展,随着其成本的降低,这种通过 rs232 串口与外围数据采集设备的通信模式将会更大地发挥其市场价值。下章 先介绍串行通信基础知识。 第二章 串行通信基础 4 第二章 串行通信基础 2.1 串行通信协议 最 被 人 们 熟 悉 的 串 行 通 信 技 术 标 准 是 eia 232、 eia-422 和 eia 485, 也 就 是 以 前 所 称 的 rs-232、 rs-422 和 rs-485。 由 于 eia 提 出 的 建 议 标 准 都 是 以 “rs”作 为 前 缀 , 所 以 在 工 业 通 信 领 域 , 仍 然 习 惯 将 上 述 标 准 以 rs 作 前 缀 称 谓 。 eia 232、 eia-422 和 eia 485 都 是 串 行 数 据 接 口 标 准 , 最 初 都 是 由 电 子 工 业 协 会 ( eia) 制 订 并 发 布 的 , eia-232 在 1962 年 发 布 , 后 来 陆 续 有 不 少 改 进 版 本 , 其 中 最 常 用 的 是 eia-232-c 版 。 (1)eia-232 目 前 eia-232 是 pc 机 与 通 信 工 业 中 应 用 最 广 泛 的 一 种 串 行 接 口 。 eia-232 被 定 义 为 一 种 在 低 速 率 串 行 通 信 中 增 加 通 信 距 离 的 单 端 标 准 。 eia-232 采 取 不 平 衡 传 输 方 式 , 即 所 谓 单 端 通 信 。 标 准 规 定 , eia 232 的 传 送 距 离 要 求 可 达 50 英 尺 ( 约 15 米 ) , 最 高 速 率 为 20kbps。 (2)eia-422 由 于 eia-232 存 在 传 输 距 离 有 限 等 不 足 , 于 是 eia-422 诞 生 了 。 eia- 422 标 准 全 称 是 “平 衡 电 压 数 字 接 口 电 路 的 电 气 特 性 ”, 它 定 义 了 一 种 平 衡 通 信 接 口 , 将 传 输 速 率 提 高 到 10mbps, 传 输 距 离 延 长 到 4000 英 尺 ( 约 1219 米 ) , 并 允 许 在 一 条 平 衡 总 线 上 连 接 最 多 10 个 接 收 器 。 当 然 , eia 422 也 有 缺 陷 : 因 为 其 平 衡 双 绞 线 的 长 度 与 传 输 速 率 成 反 比 , 所 以 在 100kbps 速 率 以 内 , 传 输 距 离 才 可 能 达 到 最 大 值 , 也 就 是 说 , 只 有 在 很 短 的 距 离 下 才 能 获 得 最 高 传 输 速 率 。 一 般 在 100 米 长 的 双 绞 线 上 所 能 获 得 的 最 大 传 输 速 率 仅 为 1mbps。 另 外 有 一 点 必 须 指 出 , 在 eia-422 通 信 中 , 只 有 一 个 主 设 备 ( master) , 其 余 为 从 设 备 ( salve) , 从 设 备 之 间 不 能 进 行 通 信 , 所 以 eia- 422 支 持 的 是 点 对 多 点 的 双 向 通 信 。 (3)eia-485 为 扩 展 应 用 范 围 , eia 于 1983 年 在 eia-422 基 础 上 制 定 了 eia-485 标 准 , 增 加 了 多 点 、 双 向 通 信 能 力 , 即 允 许 多 个 发 送 器 连 接 到 同 一 条 总 线 上 , 第二章 串行通信基础 5 同 时 增 加 了 发 送 器 的 驱 动 能 力 和 冲 突 保 护 特 性 , 扩 展 了 总 线 共 模 范 围 , 后 命 名 为 tia/eia-485-a 标 准 。 由 于 eia-485 是 从 eia-422 基 础 上 发 展 而 来 的 , 所 以 eia-485 许 多 电 气 规 定 与 eia-422 相 仿 , 如 都 采 用 平 衡 传 输 方 式 、 都 需 要 在 传 输 线 上 接 终 接 电 阻 、 最 大 传 输 距 离 约 为 1219 米 、 最 大 传 输 速 率 为 10mbps 等 。 但 是 , eia-485 可 以 采 用 二 线 与 四 线 方 式 , 采 用 二 线 制 时 可 实 现 真 正 的 多 点 双 向 通 信 , 而 采 用 四 线 连 接 时 , 与 eia-422 一 样 只 能 实 现 点 对 多 点 通 信 , 但 它 比 eia-422 有 改 进 , 无 论 四 线 还 是 二 线 连 接 方 式 总 线 上 可 接 多 达 32 个 设 备 。 由 于 eia-232、 eia-422 与 eia-485 标 准 只 对 接 口 的 电 气 特 性 做 出 规 定 , 而 不 涉 及 接 插 件 、 电 缆 或 协 议 , 标 准 内 容 规 定 比 较 简 单 , 在 此 标 准 基 础 上 , 用 户 可 以 建 立 自 己 的 高 层 通 信 协 议 。 因 此 , 这 些 串 行 通 信 技 术 应 用 很 广 , 如 录 像 机 、 计 算 机 以 及 许 多 工 业 控 制 设 备 上 都 配 备 有 eia 232 串 行 通 信 接 口 。 2.2 通信方式 通信方式分为并行通信方式和串行通信方式两种 2.2.1 串行通信 所谓“ 串行通信“ 是指将数据字节分成一位一位的形式在一条传输线上逐个 地传送,此时只需要一条数据线,外加一条公共信号地线和若干控制信号线。 因此一次只能传输一位,所以对于一个字节的数据,至少要分 8 位才能传送完 毕。串行通信的必要过程是:发送时,要把并行数据变成串行数据发送到线路 上去,接受时,要把串行信号再变成并行数据,这样才能被计算机及其他设备 处理。如图 2.1 所示 1。 第二章 串行通信基础 6 图 2.1 串行通信方式 串行通讯方式,由于高速率的要求,处于计算机内部的 cpu 与串口之间 的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现 cpu 与外围数 据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计 算机时,数据格式由位 (bit)转化为字节数据;串行端口的本质功能是作为 cpu 和串行设备间的编码转换器。当数据从 cpu 经过串行端口发送出去时, 字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。反之, 当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。 2.2.2 并行通信 通信有并行和串行两种方式。并行通讯通常是将数据的各位用多条数据线 同时进行传输,并由传输的数据位数线外加地址线和通信控制线。优点是传输 速率高,缺点是长距离传输成本高,可靠性差,只适用于近距离传输。 2.3 串行通信方式 串行通信又有两种方式:异步串行通信和同步串行通信。 2.3.1 异步串行通信方式 异步串行通信方式是指通信的发送与接收设备使用各自的时钟控制数据的 发送和接收过程。为使双方收、发协调,要求发送和接收设备的时钟尽可能一 致。 异 步 串 行 通 信 的 字 符 物 格 式 所 谓 异 步 串 行 通 信 是 指 具 有 不 规 则 数 据 段 传 送 特 性 的 串 行 数 据 传 输 。 发送设备 接收设备8 位顺次传送 gnd 停止位 起始位 1 1 0 0 0 1 1 0 0 01 d7 d6 d5 d4 d3 d2 d1 d0 第二章 串行通信基础 7 异 步 通 信 数 据 帧 的 第 一 位 是 开 始 位 , 在 通 信 线 上 没 有 数 据 传 送 时 处 于 逻 辑 “1”状 态 。 当 发 送 设 备 要 发 送 一 个 字 符 数 据 时 , 首 先 发 出 一 个 逻 辑 “0”信 号 , 这 个 逻 辑 低 电 平 就 是 起 始 位 。 起 始 位 通 过 通 信 线 传 向 接 收 设 备 , 当 接 收 设 备 检 测 到 这 个 逻 辑 低 电 平 后 , 就 开 始 准 备 接 收 数 据 位 信 号 。 因 此 , 起 始 位 所 起 的 作 用 就 是 表 示 字 符 传 送 开 始 。 当 接 收 设 备 收 到 起 始 位 后 , 紧 接 着 就 会 收 到 数 据 位 。 数 据 位 的 个 数 可 以 是 5, 6, 7 或 8 位 的 数 据 。 在 字 符 数 据 传 送 过 程 中 , 数 据 位 从 最 低 位 开 始 传 输 。 数 据 发 送 完 之 后 , 可 以 发 送 奇 偶 校 验 位 。 奇 偶 校 验 位 用 于 有 限 差 错 检 测 , 通 信 双 方 在 通 信 时 需 约 定 一 致 的 奇 偶 校 验 方 式 。 就 数 据 传 送 而 言 , 奇 偶 校 验 位 是 冗 余 位 , 但 它 表 示 数 据 的 一 种 性 质 , 这 种 性 质 用 于 检 错 , 虽 有 限 但 很 容 易 实 现 。 在 奇 偶 位 或 数 据 位 之 后 发 送 的 是 停 止 位 , 可 以 是 1 位 、 1 5 位 或 2 位 。 停 止 位 是 一 个 字 符 数 据 的 结 束 标 志 。 在 异 步 通 信 中 , 字 符 数 据 以 图 所 示 的 格 式 一 个 一 个 地 传 送 。 在 发 送 间 隙 , 即 空 闲 时 , 通 信 线 路 总 是 处 于 逻 辑 “1”状 态 , 每 个 字 符 数 据 的 传 送 均 以 逻 辑 “0”开 始 2, 如 图 2.2.1 所 示 。 停 止 位 数据位 校 验 位 起 始 位 l s b m s b 空 闲 下一字符 起 始位 空 闲 一个字符帧 图 2.2异步串行通信字符帧格式 异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销 较小,但每个字符要附加 23 位,用于起止位,校验位和停止位,各帧之间还 有间隔,因此传输效率不高。 在单片机与单片机之间,单片机与计算机之间通信时,通常采用异步串行 通信。 2.3.2 同步串行通信方式 同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方完全达到 第二章 串行通信基础 8 完全同步。此时,传输数据的位之间的距离均为“位间隔” 的整数倍,同时传送 的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收 方的同步可以通过外同步和自同步两种方法实现。如图 2.2.2 所示 sny sny 数据 1 数据 2 数据 n. crc1 crc2 二个同步字符 连续几个数据 2 字节校验码 图 2.3 同步串行通信数据格式 2.4 串行通信的制式 2.4.1 单工 单工是指数据传输仅能沿一个方向,不能实现反方向传输 3。如图 2.3.1 所 示。 发送设备 接收设备 数据流 通信连接 图 2.4 单工 2.4.2 半双工 半双工是指数据传输可以沿两个方向,但需要分时进行。如图 2.3.2 所示。 第二章 串行通信基础 9 发送设备 接收设备 接收设备 发送设备数据流 通信连接 图 2.5半双工 2.4.3 全双工 全双工是指数据可以同时进行双向传输。如图 2.3.3 所示。 发送设备 接收设备 接收设备 发送设备 数据流 通信连接 图 2.6全双工 2.5 波特率 数据的传输速度可以用波特率表示。波特率是美妙传输二进制代码的位数, 单位:位/s 。在异步通讯中,接收方和发送方应使用相同的波特率,才能成功 传输数据。 波特率的计算 在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可 对单片机串行口编程为四种工作方式,其中方式 0 和方式 2 的波特率是固定的, 而方式 1 和方式 3 的波特率是可变的,由定时器 t1 的溢出率来决定。 串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同, 所以,各种方式的波特率计算公式也不相同 4。 第二章 串行通信基础 10 方式 0 的波特率 = fosc/12 方式 2 的波特率 =(2smod/64) fosc 方式 1 的波特率 =(2smod/32)(t1 溢出率) 方式 3 的波特率 =(2smod/32)(t1 溢出率) 当 t1 作为波特率发生器时,最典型的用法是使 t1 工作在自动再装入的 8 位定 时器方式(即方式 2,且 tcon 的 tr1=1,以启动定时器) 。这时溢出率取决于 th1 中的计数值。如公式 2-1 所示。 t1 溢出率 = fosc /12256 (th1) (2-1) 2.6 串行通信的错误校验 2.6.1 奇偶校验 在传送数据时,数据位尾随的 1 位为奇偶校验位(1 或 0) ,奇校验时,数 据中 1 的个数与校验位 1 的个数之和应为奇数;偶校验时,数据中 1 的个数与 校验位 1 的个数之和应为偶数。接收字符时,对 1 的个数进行校验,若发现不 一致,则说明传输数据过程中出现了差错 5。 2.6.2 代码和校验 代码和校验是发送方将所发数据块求和(或各字节异或) ,产生一个字节的 校验字符(校验和)附加到数据块末尾。接收方接收数据时同时对数据块(除 校验字节外)求和(或各字节异或) ,将所得的结果与发送方的“校验和” 进行比 较,相符则无差错,否则即认为传送过程中出现了差错。 2.6.3 循环冗余校验 这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常 用于对磁盘信息的传输,存储区的完整性校验等。这种校验方法纠错能力强, 广泛应用于同步通信中。 第二章 串行通信基础 11 2.7 串行通信的工作方式 串行接口可由 scon 中的 sm0 和 sm1 设置 4 种工作方式。 2.7.1 方式 0 方式 0 时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行 输入或输出口。数据由 rxd(p3.0)引脚输入或输出,同步移位脉冲由 txd( p3.1)引脚输出。发送和接收均为 8 位数据,低位在先,高位在后。波 特率固定为 fosc/12。 (1)方式 0 输出 图 2.7 方式 0输出时序 (2)方式 0 输入 图 2.8 方式 0输入时序 d 0 d 1 d 2 d 3 d 4 d 5 d 6 d 7 写入s b u f r x d (数据) t x d (移 位 脉冲) t i (中断标志) r e n = 1 r x d (数据输入) t x d (移 位 脉冲) r i = 0 d 0 d 1 d 2 d 3 d 4 d 5 d 6 d 7 第二章 串行通信基础 12 方式 0 接收和发送电路,如图 图 2.9全双工 2.7.2 方式 1 (1)方式 1 输出 图 2.10方式 1输出时序 (2)方式 1 输入 图 2.11 方式 1输入时序 用软件置 ren 为 1 时,接收器以所选择波特率的 16 倍速率采样 rxd 引 脚电平,检测到 rxd 引脚输入电平发生负跳变时,则说明起始位有效,将其 移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从 输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进 行最后一次移位。当 ri=0,且 sm2=0(或接收到的停止位为 1)时,将接收到 的 9 位数据的前 8 位数据装入接收 sbuf,第 9 位(停止位)进入 rb8,并置 ri=1,向 cpu 请求中断。 7 4 l s 1 6 4 r x d t x d p 1 . 0 8 0 c 5 1 c l rc l k a b g n d 7 4 l s 1 6 5 r x d t x d p 1 . 0 8 0 c 5 1 s / lc l k q g n d d 0 d 1 d 2 d 3 d 4 d 5 d 6 d 7 停止 位 r x d r i (中断标志) 起 始 位采样脉冲 d0 d1 d2 d3 d4 d5 d6 d7写 入 sbuf 停 止 位txdti( 中 断 标 志 ) 起 始 第二章 串行通信基础 13 2.7.3 方式 2 和方式 3 方式 2 或方式 3 时为 11 位数据的异步通信口。txd 为数据发送引脚, rxd 为数据接收引脚 。 图 2.12 异步通信字符帧格式 方式 2 和方式 3 时起始位 1 位,数据 9 位(含 1 位附加的第 9 位,发送时 为 scon 中的 tb8,接收时为 rb8) ,停止位 1 位,一帧数据为 11 位。方式 2 的波特率固定为晶振频率的 1/64 或 1/32,方式 3 的波特率由定时器 t1 的溢出 率决定。 (1)方式 2 和方式 3 输出 图 2.13 方式 2和方式 3的发送时序 发送开始时,先把起始位 0 输出到 txd 引脚,然后发送移位寄存器的输出 位(d0)到 txd 引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位, 并由 txd 引脚输出。 第一次移位时,停止位“1” 移入输出移位寄存器的第 9 位上 ,以后每次移 位,左边都移入 0。当停止位移至输出位时,左边其余位全为 0,检测电路检测 到这一条件时,使控制电路进行最后一次移位,并置 ti=1,向 cpu 请求中断。 (2)方式 2 和方式 3 输入 停 止 位 数据位9 位 起 始 位 l s b m s b 空 闲 空 闲 d 0 d 7 1 帧共1 1 位 r b 8 / t b 8 d 0 d 1 d 2 d 3 d 4 d 5 d 6 d 7 写入s b u f 停止 位 t x d t i (中断标志) 起 始 t b 8 第二章 串行通信基础 14 r i (中断标志) 位采样脉冲 d 0 d 1 d 2 d 3 d 4 d 5 d 6 d 7 停止 位 r x d 起 始 r b 8 图 2.14 方式 2和方式 3的接收时序 接收时,数据从右边移入输入移位寄存器,在起始位 0 移到最左边时,控 制电路进行最后一次移位。当 ri=0,且 sm2=0(或接收到的第 9 位数据为 1) 时,接收到的数据装入接收缓冲器 sbuf 和 rb8(接收数据的第 9 位) ,置 ri=1,向 cpu 请求中断。如果条件不满足,则数据丢失,且不置位 ri,继续 搜索 rxd 引脚的负跳变。 2.8 本章小结 本章介绍了串行口的通信协议,通信方式,串行口的通信制式,串行口的 工作方式,串行通信的错误校验,串行通信的波特率,等串行通信的基础知识, 接下来将从具体的软件来实现计算机与单片机的之间的通信。 第三章 系统开发基础 15 第三章 系统开发基础 3.1 系统硬件 3.1.1 微处理器芯片 89c51 (1)89c51 组成:89c51 由 8 个部件组 成,即微处理器(cpu) ,数据存储器(ram ) , 程序存储器(eeprom) ,i/o 口 (p0 ,p1,p2 ,p3 ) ,串行口,定时器计数器, 中断系统及特殊功能寄存器(sfr) 数据存储器:片内为 128 个字节,片外 最多可外扩 64k 字节; 程序存储器:片内为 4k eerpom,片 外最多可外扩 64k 字节; 中断系统:具有 5 个中断源, 2 级中断 优先权; 定时器/计数器: 2 个 16 位的定时器/计 数器,具有四种工作方式; 串行口:1 个全双工的串行口,具有四种工作方式; p0,p1, p2,p3:为 4 个并行 i/o 口; 特殊功能寄存器(sfr):共有 21 个,用于对片内各功能模块进行管 理,控制,监视。实际上是一些控制寄存器和状态寄存器,是一个特殊功能的 ram 区。 微处理器(cpu):为 8 位的 cpu,且内含一个 1 位 cpu(位处理器) 。 (2)引脚及功能: 电源及时钟引脚 vcc( 40):接 +5v 直流电源 vss(20):接地 xtal1(19 ):接外部晶体的一个引脚。在单片机内部,它是一个反向 图 3.1 89c51单片机引脚图 第三章 系统开发基础 16 放大器的输入端; xtal2(18 ):接外部晶体的一个引脚。在单片机内部接到内部反相器 的输出端; 控制引脚 rst/vpd(9):当震荡器运行时,在此引脚加上两个机器周期的高电平 将使单片机复位(rst) 。掉电期间,此引脚可接上备用电源(vpd ) ,以保持 内部 ram 的数据,当 vcc 下降到低于规定的值,而 vpd 在其规定的电压范 围 内(5+0.5 v)时,vpd 就向内部 ram 提供备用电源; ale/prog(30):当访问单片机外部存储器时,ale(地址锁存允许) 输出脉冲的负跳沿,用于 16 位地址的低 8 位的锁存信号。即使不访问外部存储 器,ale 端仍有正脉冲信号输出,此频率为始终震荡器频率的 1/6。ale 端 可以驱动 8 个 ttl 负载。对于 eprom 型单片机(8751) ,在 eprom 编程 期间,此引脚用来输入编程脉冲(prog) ; psen(29):此脚的输出是单片机访问外部程序存储器的读选通信号。 在由外部程序存储器取指令(或常数)期间,每个机器周期 psen 两次有效。 psen 可以驱动 8 个 lsttl 负载; ea/vpp(31):当 ea 端保持高电平时,单片机访问内部程序存储器, 但在 pc 值超过 0ffffh,将自动转向执行外部程序存储器内的程序。当 ea 保持低电平时,只访问外部程序存储器。对于 89c51,因其片内有 4kffprom,故该脚接高电平。在 ffprom 编程期间,vpp 编程电压为 +12v 或 +5v。 i/o 口引脚 p0 口(39-32):双向 8 位三态 i/o 口,此口为地址总线(低 8 位)及数 据总线分时复用口,可带 8 个 lsttl 负载; p1 口(1-8 ):8 位准双向 i/o 口,可带 4 个 lsttl 负载; p2 口(21-28):8 位准双向 i/o 口,与地址总线(高 8 位)复用,可带 4 个 lsttl 负载; p3 口(10-17):8 位准双向 i/o 口,双功能复用口。 第三章 系统开发基础 17 3.1.2 显示芯片 hd7279a (1)hd7279a 是键盘/ 显示器的串行控制芯片,能同时驱动 8 位共阴极 led 数码管或 64 个独立的 led 发光二极管以及 64 键的键盘(8*8 键盘矩阵)。 (2)引脚及功能: 28 脚双列直插式封装,单一+5v 供电。 图 3.2 hd7279 引脚图 表 21 hd7279引脚说明 引脚 名称 说明 1,2 vcc +5v 电源 3,5 nc 悬空 4 vss 接地 6 cs 片选信号,低电平有效 7 clk 同步时钟输入端 8 data 串行数据写入/读出端 9 key 接键有效输出端 10-16 sg-sa led 的 g-a 段驱动输出 17 dp 小数点驱动输出端 18-25 dig0-dig7 led 驱动输出端 26 clko 振荡输出端 27 rc rc 振荡器连接端 28 reset 复位端,低电平有效 第三章 系统开发基础 18 3.1.3 串行通信芯 max232 (1)通常 pc 机的主板会提供一个打印机输出并行端口(lpt),两个串行 口(com1 、com2 ),并行口主要进行短距离的数据传送,至少需要 8 根数据 线同时进行数据的传送,因而传送速率较快 6。而长距离的数据传送只能采用串 行口,串行口只需要一根数据线进行数据传送,传送距离较长,投资较少,但 传送速率较低。rs232c 也是人们常用的网络通信接口。此处,pc 机与单片 机的通信便采用该接口。 (2)接口电路 为了能使单片机与 pc 机之间通信,必须使二者遵循相同的通信协议。由于 下位机的 8031 芯片串行口,输入输出为 ttl 逻辑电平,高电平为 3.8 v 左右, 低电平为 0.3 v 左右,这种以 ttl 电平传送数据的方式,抗干扰性较差。而 上位机的 rs232c 串行口则采用+12 v 和-12 v 电平方式,使 0 信号和 1 信号的电平差别增大,从而增强了抗干扰性。为了解决这一矛盾,可采用一个 rs232c 电平转换器。它由发送器 1488 和接收器 1489 组成(见图 3.13)。 10 11 20 8031 3 2 7 pc com1 1488 txd rxd gnd rxd txd 图 3.3串行口连接电路 (3)在+5 v电源供电情况下降 ttl电平转换为10 v的rs-232电平,完全 可以替代传统的mc -1488、mc-1489芯片的功能,简化了电路设计,因此得到 了广泛应用。 引脚及功能: 第三章 系统开发基础 19 vcc:电源; gnd:接地 t1in,t2in:ttl/cmos输入引脚 r1out,r2out:ttl /cmos输出引脚 t1out:rs-232 输出口 r1in:rs-232输入口 图3.4 max232引脚图 3.2 软件工具及编程语言 3.2.1 选用 vb 开发上位机软件 visual basic(简称 vb)是 windows 操作系统下简单,易学,高效的应 用软件开发工具,已广泛地应用于各个领域,在微机串口方面也有很强的功能。 很多情况下我们需要把工程技术领域中系统采集的数据交给计算机来处理,或 者需要让计算机发送指令来控制我们的系统。而大多数的微处理器都带用串口, 这个时候需要编写一个界面良好的上位机软件来和微处理器进行通信。显然, 选择 vb 来开发上位机软件是一个不错的主意。 3.2.2 mscomm 控件的主要属性、事件 在 visual basic 中有一个名为 microsoft communication control(简称 mscomm)的通信控件,利用这个控件我们可以很方便的编写一个与单片机通信 的上位机 7。 (1)mscomm 的属性 由于 mscomm 控件属性很多,在此笔者仅介绍与实现串口通信密切相关 的核心属性。 commport:设置通信所占用的串口号。如设成 1(默认值),表示对 corn1 进行操作。 第三章 系统开发基础 20 setting:对串口通信的相关参数。包括串口通信的比特率,奇偶校验,数 据位长度、停止位等。其默认值是“9600,n,8,1” ,表示串口比特率是 9600bits ,不作奇偶校验,8 位数据位,1 个停止位。 portopen:设置串口状态,值为 true 时打开串口,值为 false 时关闭串口。 input:从输入寄存器读取数据,返回值为从串口读取的数据内容,同时输 入寄存器将被清空。 oupout:发送数据到输出寄存器。 inbuffer count:设置输入寄存器所存储的字符数,当将其值设为 0 时,则 输入寄存器将被清空。 input mode:设置从输入寄存器中读取数据的形式。若值为 0,则表示以文 本形式读取;值为 1,则表示以二进制形式读取。 out buffer count:设置输出寄存器所存储的字符数,当将其值设为 0 时, 则输出寄存器将被清空。 rthreshold:设置在 mscomm 控件设置 commevent 属性为 comev receive 并产生 oncomm 事件之前要接受的字符数。 commevent 属性:返回最近的通讯事件或错误。通过对它具体属性值的查 询,我们就可以获得通讯事件和通讯错误的完整信息。当其值是 comevreceive 时表示接收到数据。 (2)mscomm 的事件 除了公共事件之外,mscomm 只有一个 oncomm 事件。当 commevent 属 性值变化时将发生 oncomm 事件,指示发生一个通信事件或错误 8。当我们设 置 rtheshold 属性值为 0 时,将使得捕获 comevreceive 事件无效。 3.2.3 编程小结 单片机要发送和接收的操作其实都是对串行数据缓冲器(sbuf)进行调用。 串行数据缓冲器sbuf用来存放需发送和接收的数据,它由两个独立的寄存器组 成,一个是发送缓冲器,另一个是接收缓冲器,例如: (1)date=sbuf;表示单片机接收到数据data。 (2)sbuf=date;表示单片机发送数据到上位机。 第三章 系统开发基础 21 33 系统方案设计 系统方框图如图 3.5 所示。 图 3.5 系统方框图 系统方框图中可以看出用此方案设计的系统由电源电路、数据采集放大电 路、a/d转换电路、d/a转换电路、max232串行接口电路、单片机外围电路、 led显示电路、键盘电路等部分组成。此方案的特点是:硬件电路的实现较为 简单、所用元器件也较少、系统可以配上外部的各种传感器采集电路作为系统 的被测对象的模拟输入信号来源,如压力、温度、湿度的采集等等;配上相应 的模拟采集电路和软件就可以实现各种不同的功能、还能用led数码管十进制 显示相应的测量数据,如可以显示测得的压力、温度、湿度;还可以实现和pc 机串行通信和isp编程下载功能。 pc 机 max232 电平转换 电路 电源电路 控 制 器 单片机 at89s52 led 显 示电路 按键 电路 外部存 储器 d/a 转 换电路 a/d 转 换电路 外部采 集电路 第四章 系统方案实施 22 第四章 系统方案实施 4.1 接口设计 4.1.1 系统连接电路 系统连接电路如图 4.1 所示。 16 27 38 49 5 j1 db9 r1 in13 r2 in8 t1 in11 t2 in10 gn d 15 v+ 2 v- 6 vc c 16 r1 out 12r2 out 9 t1 out 14t2 out 7 c1+1 c1 -3 c2+ 4c2 - 5 u1 max232ewe(16)c3 0.1f c4 0.1f c2 0.1f c1 0.1f rxd/p3.0txd/p3.1vcc 1 23 4 5 67 8 9 10 j1 isp vcc d1 r1 1k p1.5p1.6 p1.7reset 图 4.1单片机与 pc机串行通信接口的电路 串行通信部分主要是由 max232 电平转换电路和 isp 编程下载电路组成, 其原理是:max232 芯片把单片机引脚的 coms

温馨提示

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

评论

0/150

提交评论