电子专业-毕业论文-实时温度采集系统(毕业设计课程设计).doc_第1页
电子专业-毕业论文-实时温度采集系统(毕业设计课程设计).doc_第2页
电子专业-毕业论文-实时温度采集系统(毕业设计课程设计).doc_第3页
电子专业-毕业论文-实时温度采集系统(毕业设计课程设计).doc_第4页
电子专业-毕业论文-实时温度采集系统(毕业设计课程设计).doc_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

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

文档简介

燕山大学本科生毕业设计 论文 I 摘摘 要要 本课题主要介绍了基于 DS18B20 和串口通信技术的分布式远程温度 监控系统 DS18B20 是 Dallas 公司推出的单线总线产品 最大的优点是只占用 单片机的一个 I O 引脚 并且可以直接输出数字信号 而且精确度很高 所以很适合用于多点测温系统 本课题采用单片机与计算机串口通信的方式来实现远程采集与控制 的工作 通信采用 RS485 传输协议 并在计算机端将其转化为 RS232 从 而能够与计算机串口连接 单片机通过对测温器件 DS18B20 执行相应的操作来读取对应通道的 温度 然后将读取到的温度通过串行口发送给计算机 计算机通过用 Visual Basic6 编写的软件读取到温度值后通过显示器显示出来 用户可 以操作软件绘制温度曲线和温度列表 并能够将其保存到电脑硬盘上 还可以操作软件选择测温通道和测量分辨率等 关键词 串口通信 分布式测温 DS18B20 燕山大学本科生毕业设计 论文 II Abstract This subject introduces the serial based on DS18B20 and communication technology distributed remote temperature monitoring system DS18B20 is the 1 wire product of Dallas the biggest advantages is the only occupants of one microcontroller s I O pins and can be directly output digital signal with a high degree of accuracy so it suit for distributed temperature measurement system The subject based on the serial communication between the computer and the MCU Transfer Protocol using RS485 communications and it will be converted into RS232 to connect to the computer The SCM through the DS18B20 to read the temperature and then send it to the computer The computer use the software which is made by Visual Basic6 to read the temperature and then display it The user can use the software to make the curve and the temperature list and the user can save them to the hard disk The user also can chose the access and the temperature measurement resolution Keywords Serial Communication Distributed Temperature DS18B20 III 目目 录录 摘 要 I ABSTRACT II 第 1 章 绪论 1 1 1 课题背景 1 1 1 1 传统测温的介绍 1 1 1 2 计算机控制技术的发展 1 1 2 本章小结 2 第 2 章 系统硬件结构 3 2 1 51 系列单片机系统简介 3 2 2 测温器件 DS18B20 介绍 3 2 3 串口通信技术的硬件基础 5 2 3 1 RS 232 RS 485 简介 5 2 3 2 器件 MAX232 介绍 7 2 3 3 器件 MAX485 介绍 8 2 4 显示系统的硬件原理 8 2 4 1 串行寄存器 74LS164 功能 8 2 4 2 数码管原理 9 2 4 3 数字串行显示的实现 10 2 5 本章小结 11 第 3 章 系统软件设计 12 3 1 总体程序设计思路 12 3 1 1 制定通信协议 12 3 1 2 下位机的程序设计思路 12 3 1 3 上位机软件的程序功能 14 3 2 下位机程序分块介绍 14 3 2 1 DS18B20 的程序介绍 14 3 2 2 串行口收发程序设计 17 3 2 3 LED 显示模块 18 3 3 上位机程序分块介绍 18 3 3 1 MSComm 控件的用法与详细介绍 18 3 3 2 界面设计 19 3 3 3 串口收发程序设计 21 IV 3 3 4 绘图程序 22 3 4 本章小结 22 第 4 章 仿真与调试 23 4 1 PROTEUS 介绍 23 4 2 原理图的输入 23 4 2 1 工作界面 23 4 2 2 绘制原理图 24 4 2 3 编辑对象 25 4 3 电路仿真 26 4 4 本章小结 27 第 5 章 PCB 板的制作 28 5 1 PROTEL简介 28 5 2 原理图输入 28 5 3 PCB 板的制作 29 5 3 1 PCB 的结构 29 5 3 2 PCB 布局 30 5 3 3 PCB 布线 30 5 4 PCB 板的电磁兼容设计 31 5 5 本章小结 31 结论 32 参考文献 33 附录 1 35 附录 2 38 附录 3 硬件原理图 41 附录 4 硬件 PCB 图 42 附录 5 实物照片 43 附录 6 PROTEUS 仿真截图 44 附录 7 电脑软件界面 45 附录 8 电脑软件运行截图 47 附录 9 VB 源程序 49 附录 10 单片机程序 79 V 附录 11 英文翻译 91 致谢 98 燕山大学本科生毕业设计 论文 1 第 1 章 绪论 1 1 课题背景 随着时代的发展 科技的进步 各种复杂的场合对温度的测量也提出 了不同的要求 在某些场合要求能够实时监控温度值 并且能够将大量的 温度数据保存起来 并进行集中处理 计算机的出现使得大量温度数据的 保存及处理成为了可能 但是传统的酒精或煤油温度计等却无法将温度数 据传递给计算机 所以便出现了各式各样的电子温度传感器 而现在大量 采用的是温敏电阻加 A D 转换的方法 采集温度虽然方便 但是精度不够 而且电路复杂 并不适用与多点测温 本课题正是针对这种状况而设计的 采用了精确的温度传感器 并且能够通过单片机实时采集温度传送给电脑 用于实现温度的远程监控 而且可以利用电脑的优势存储大量的温度数据 和实现对温度数据的处理 1 1 1 传统测温的介绍 传统的温度测量方法有很多种 酒精温度计 煤油温度计 水银温度 计 热电偶 热电阻 热敏电阻 辐射高温计等 酒精 煤油温度计常用于室温的测量 也用于实验室中一些液体或实 验室温度的测量 水银常用于体温计 由于熔点比较高 所以不适合低温 环境 热电偶测温的原理是 将两条不同的金属线的一端连接在一起并加热 在两线之间会有一个与温度成正比的热离子电压产生 但在恶劣的环境中 热电偶的质量可能会受影响 由于水是溶解物质所以也可能会引起问题 温度过高热电偶金属可能会熔化 从而改变成分 并且影响读数 热电阻是一种电阻与温度成正比的温度传感器 辐射高温计是非接触型温度传感器 它可以探测到来自被测物的红外 辐射并将辐射转换成与温度成正比的电压或电流 所以这种方式比较适合 一些非接触的场合 1 1 2 计算机控制技术的发展 计算机控制系统是随着现代大型工业生产自动化的不断兴起而应运产 燕山大学本科生毕业设计 论文 2 生的综合控制系统 它紧密依赖于最新发展的计算机技术 网络通信技术 和控制技术 在计算机参与工业系统控制的历史长河中扮演了重要的角色 1 2 本章小结 本课题所研究的实时温度采集系统相对传统的测温方式有很大的优势 不仅电路简单 而且精度高 测温范围大 通信距离远 通过电脑还能大 量地采集存储温度数据并进行处理 所以本系统应用的范围也非常广 比如可以应用于电冰箱的质量检测 中央空调的温度控制 同时管理多个对温度要求较高的车间或实验室 以 及各种条件恶劣 温度复杂多变的环境 燕山大学本科生毕业设计 论文 3 第 2 章 系统硬件结构 2 1 51 系列单片机系统简介 单片机是现代电子设计中使用最广泛的电子元器件 它的价格低廉 功能强大 体积小 性能稳定 深受广大电子设计爱好者的的喜爱 目前 各类产品中都能看到单片机的身影 如门铃 报警器 玩具 以及各类数 据采集系统等 2 单片机以高性能 高速度 体积小 价格低廉 可重复编程和功能扩 展方便等优点 获得广泛的应用 其主要应用领域有以下几点 家用电器及玩具 由于 51 系列单片机价格低 体积小 控制能力 强 功能扩展方便等优点 使其广泛应用于电视 冰箱 洗衣机 玩具 家用防盗报警器等 智能测量设备 以前的测量仪表体积大功能单一 限制了测量仪表 的发展 选用单片机改造各种测量控制仪表 可以使其体积减小 功能扩 展 从而产生新一代的智能化仪表 如各种数字万用表 示波器等 机电一体化产品 机电一体化产品是指将机械技术 微电子技术和 计算机技术结合在一起 从而产生的具有智能化特性的产品 它是机械工 业的主要发展方向 单片机可以作为机电一体化产品的控制器 从而简化 原机械产品的结构 扩展其功能 自动测控系统 采用单片机可以设计各种数据采集系统 自适应控 制系统等 如温度的自动控制 电压电流的数据采集 计算机控制及通信技术 51 系列单片机都有集成的串行通信接口 可以通过该接口和计算机的串行接口进行通信 实现计算机的程序控制和 通信等 2 2 测温器件 DS18B20 介绍 DS18B20 是 DALLAS 公司生产的单线总线数字温度传感器 可把温 度信号直接通过串行总线输出到单片机上 在一条总线上可以同时挂接多 个单线器件 每个器件通过其独立的光刻 64 位 ROM 来区分 总线本身可 以向所有挂接的 DS18B20 供电 而不需额外电源 7 由于 DS18B20 这一特点 非常适合于多点温度检测系统 硬件结构 燕山大学本科生毕业设计 论文 4 简单 方便联网 因此在仓库管理 工农业生产制造 气象观测 科学研 究以及日常生活中被广泛应用 以下是 DS18B20 的主要特点 独特的单线接口 只需一个引脚即可实现通信 多点能力非常适合于分布式测温系统 不需要外部元器件 寄生电源功能 可用数据线供电而不用另接电源 以数字值方式输出温度 测量范围大 从 55 到 125 图 2 1 是 DS10B20 的方框图 图 2 1 DS10B20 的方框图 31 图 2 2 是 DS18B20 的寄生电源工作方式 当 I O 引脚位高电平时 便 通过总线获取维持其工作的电量 这使得 DS18B20 有了一个双重的优点 第一 利用此引脚 远程温度检测时无需本地电源 第二 缺少正常电源 也可以维持其工作 由于在温度转换时 其工作电流高达 1mA 所以必须在单线上提供一 强的上拉 如图 2 所示 通过一 MOSFET 把 I O 线直接拉到电源即可达到 这一点 图 2 2 DS18B20 的寄生电源方式 31 燕山大学本科生毕业设计 论文 5 向 DS18B20 供电的另一种方式是使用连接到 VDD 引脚的外部电源 如图 2 3 所示 这种方法的优点是不需要强的上拉 上拉电阻也可以省去 图 2 3 DS18B20 的独立供电方式 31 2 3 串口通信技术的硬件基础 在单片机的应用系统中广泛采用异步串行通信的方式进行数据通信 然而 在进行串行通信的线路连接的时候 还需要选择标准接口 考虑电 平转换 传输介质等问题 通信的双方共同遵守某种约定 称为物理接口标准 包括电缆的机械 特性 电器特性 信号功能及传输过程的定义 对于串行接口 目前用得 比较多的是 RS 232 标准 RS 422 标准以及 RS 485 标准等 在远距离 干扰大 或者和计算机进行串口通信的场合 需要考虑选用串行接口标准 的问题 2 3 1 RS 232 RS 485 简介 RS 232 标准是美国电子工业协会 EIA 与 Bell 等公司一起开发 于 1962 年公布 1969 年最后修订的串行通信协议 它适合于 0 20000b s 范围内的通信 字母 RS 表示 Recommended Standard 232 是识别代号 RS 232 标准最初是为远程通信连接数据终端 DTE 与数据通信设备 DCE 而制定的 目前 计算机与终端或外设之间的近距离连接 很多都采 用 RS 232 接口 例如串口的鼠标 键盘 以及数据采集系统等 在 RS 232 标准中 对串行通信接口的信号功能 电器特性和机械特性等都做了 明确的规定 由于 RS 232 在微机系统中的广泛使用 加上 51 系列单片机 内部集成的异步串行通行接口 使得它们之间的连接很方便 RS 232 的机械特性主要规定了使用的连接器的机械规格和电缆长度 燕山大学本科生毕业设计 论文 6 由于在 RS 232 标准中只规定采用一对物理连接器 但对连接器本身的 物理特性没有具体的定义 因此市场上出现了 DB 25 DB 15 和 DB 9 等 各种类型的连接器 其引脚的定义也各不相同 目前使用最多的是 DB 9 型连接器 一般的计算机和测控仪器中都使用 DB 9 型 RS 232 引脚结构 如图 2 4 所示 图 2 4 DB 9 型 RS232 引脚结构 表 2 1 是各管脚的说明 表 2 1 RS232 管脚说明 旧制 JIS 名称 新制 JIS 名称 全 称说 明 FGSGFrame Ground连到机器的接地线 TXDSDTransmitted Data数据输出线 RXDRDReceived Data数据输入线 RTSRSRequest to Send要求发送数据 CTSCSClear to Send回应对方发送的 RTS 的发送许可 DSRDRData Set Ready告知本机在待命状态 DTRERData Terminal Ready告知数据终端处于待命状态 CDCDCarrier Detect载波检出 SGSGSignal Ground信号线的接地线 现在通常计算机均配有这种标准的 232 接口 通常这种接口用于联接 鼠标 MODEM 或打印机等外部设备 实际应用中 电子工程师在设计计算机与外围设备的通信时 通常在 9 针的基础再进行简化 只用其中的 2 3 5 三个管脚进行通信 这三个 管脚分别是接收线 发送线和地线 在一般情况下即可满足通讯的要求 燕山大学本科生毕业设计 论文 7 计算机和外部通讯的接线方法如图 2 5 图中 2 3 两脚是交叉互联的 因 为一个设备的发送线必须联接到另外一台设备的接收线上 反之亦然 图 2 5 计算机与外部通信电路图 RS 485 标准是一种平衡传输方式的串行接口标准 RS 485 标准是一种 多发送器的电路标准 允许在双导线上有多个发送器 也允许一个发送器 驱动多个负载设备 RS 485 标准的特点是抗干扰能力强 传输距离远 速率高 如果采用 双绞线传输信号 若最大传输速率为 10Mb s 传输距离为 15m 在最大 100kb s 的传输速率下 可以传输 1200m 如果最大传输速率为 9600b s 则传输距离可达 1500m RS 485 标准最多允许在平衡电缆上连接 32 个发送器 接收器 特别适 用于工业控制领域进行分布式管理 联网检测控件等 目前得到了很广泛 的应用 2 3 2 器件 MAX232 介绍 电平转换芯片 MAX232 是美信公司设计专用于进行将 TTL 电平转换 成 RS 232 电平的芯片 片内有泵电源 能将 5V 电压在芯片内提高到 RS 232 电平所需的 10V 或 10V 电平 转换电路如图 2 6 所示 其中 1uF 电容最好用金属钽电容 并且安装时尽量靠近芯片 信号传输线可用双芯 屏蔽线 双芯作为信号线 外层屏蔽线作为地线 燕山大学本科生毕业设计 论文 8 图 2 6 MAX232 电平转换电路 2 3 3 器件 MAX485 介绍 目前常用的与 TTL 的电平接口的 RS 485 传输线发送 驱动 器和接 收器芯片是差分平衡收发器 MAX485 其片内含有一个发送器和一个接收 器 MAX485 的 1 脚 RO 为接收器输出 接 TTL 电平 RXD 信号 4 脚 DI 为发送器输入 接 TTL 电平 TXD 信号 7 脚为发送器和接收器的 VT 6 脚为发送器和接收器的 VT 接传输线 3 脚 DE 为发送使能端 接 5V 2 脚 RE 是接收使能端 应接地 2 4 显示系统的硬件原理 2 4 1 串行寄存器 74LS164 功能 74LS164 为 8 位串入并出的移位寄存器 10 当清除端 Clear 为低电 平时 输出端 QA QH 均为低电平 串行数据输入端 A B 可控制 输入数据 当 A 或 B 任意一个为低电平 则禁止新数据输入 在时钟端 Clock 脉冲上升沿作用下 QA为低电平 当 A B 有一个为高电平 则 另一个就允许输入数据 并在 Clock 上升沿的作用下决定 QA的状态 其 真值表如图 所示 H 为高电平 L 为低电平 为任意电平 为上升 沿 QA0 QB0 QC0 QH0为规定的稳态条件建立前的电平 QAn QBn QGn为最近的上升沿前的电平 表 2 2 为 74LS164 的真值表 燕山大学本科生毕业设计 论文 9 表 2 2 74LS164 的真值表 输入输出 ClearClockA BQA QB QC QH L H H H H L H H L L L L L L QA0 QB0 QC0 QH0 H QAn QBn QGn L QAn QBn QGn L QAn QBn QGn 2 4 2 数码管原理 常用的数码管有 7 段 8 段和 米 字段之分 并分为共阴极和共阳 极两种 共阴极 LED 显示器的发光二极管的阴极连接在一起 通常此公 共阴极接地 当某个发光二极管的阳极接高电平时 发光二极管点亮 相 应的段被显示 同样 共阳极 LED 显示器的发光二极管的阴极连接在一 起 通常此公共阳极接正电压 当某个发光二极管的阴极接低电平时 发 光二极管被点亮 相应的段被显示 使用数码管时 为了显示数字或符号 要为数码管提供代码 因为这 些代码是通过各段的亮与灭来为显示不同字型的 因此称之为段码 各字 符与段码的对应关系如表 2 3 所示 数码管常用的显示方式有两种 静态显示方式和动态显示方式 数码管工作于静态显示方式时 各位的共阴极 或共阳极 连接在一 起并接地 或 5V 每位的段选线分别与一个 8 位的锁存器输出相连 所 以称为静态显示 数码管工作于动态显示方式时 通常将所有的段选线并联在一起 由 一个 8 位 I O 口控制 形成段选线的多路复用 而各位的公共极分别由相 应的 I O 线控制 实现各位的分时选通 燕山大学本科生毕业设计 论文 10 表 2 3 共阴极数码管字符段码对照表 显示字符共阴极共阳极显示字符共阴极共阳极 03FHC0Hc39HC6H 106HF9Hd5EHA1H 25BHA4HE79H86H 34FHB0HF71H8EH 466H99HP73H8CH 56DH92HU3EHC1H 67DH82HT31HCEH 707HF8HY6EH91H 87FH80HH76H89H 96FH90HL38HC7H A77H88H 灭 00HFFH b7CH83H 40HBFH 2 4 3 数字串行显示的实现 本课题的 LED 显示部分采用串行移位寄存器 74LS164 驱动共阴极数 码管实数据的静态显示 电路图如图 2 7 所示 最靠近数据输入方向的数码管用于显示温度通道 其他四个用于显示 温度数值 当温度为负数时 第二个数码管用于显示温度的符号 最后一 个数码管用于显示温度的小数部分 显示精度为 0 5 图 2 7 数码管显示电路 燕山大学本科生毕业设计 论文 11 2 5 本章小结 本章主要介绍了整个系统的硬件电路的设计 包括单片机的介绍 RS232 RS485 通信的原理 测温原理以及数码管的显示等 由于 DS18B20 独特的一线总线结构 很容易实现分布式测温 而且硬 件结构简单 连线方便 并通过 RS485 协议传输 能够传输很远的距离 所以本系统很适合于远距离分布式测温的工作 燕山大学本科生毕业设计 论文 12 第 3 章 系统软件设计 3 1 总体程序设计思路 3 1 1 制定通信协议 要想实现通信必须得有通信协议 只有通信双方都遵守这一协议才能 实现正确的通信 完成正确的数据收发过程 由于本课题通信的数据和 控制命令不太复杂 因此通信协议的制定也比较简单 如图 3 1 所示 图 3 1 通信协议 3 1 2 下位机的程序设计思路 由于硬件结构简单 单片机与 DS18B20 的连接只需一个 I O 口 所以 任何数据读取和命令发送比较复杂 必须严格按照 DS18B20 的时隙来工 作 首先是复位操作 复位成功后才能继续执行相应的 ROM 操作 由于 ROM 操作完成后将要发送的是针对所有器件转换温度命令 所以此次 ROM 操作执行跳过 ROM ROM 操作完成后开始转换温度 由于 DS18B20 转换温度需要一段时间 所以再发送出转换温度命令后必须进行 延时 等待器件转换完成后再执行下一步的复位操作 复位成功后继续 ROM 操作 此时将要读取数据 所以必须进行匹配 ROM 操作 选择相应 的器件 以读取其温度 读取完毕即可通过单片机发送给电脑以进行下一 燕山大学本科生毕业设计 论文 13 步的处理 图 3 2 是 DS18B20 测温程序流程图 开始 复位 跳过 ROM 转换温度 延时 匹配 ROM 复位 读暂存器 CRC 校验 发送温度显示温度 失败 成功 失败 成功 错误 正确 燕山大学本科生毕业设计 论文 14 图 3 2 多点温度采集程序框图 3 1 3 上位机软件的程序功能 上位机软件采用 Visual Basic6 0 编写 主要用于实时地显示采集的温 度和进行数据处理 并能够有效地进行远程控制 因此上位机软件应具有 显示温度 选择测温通道 调整温度精度 绘制温度曲线以及记录温度等 功能 以下是该软件功能的详细介绍 本软件能够通过串口接收单片机发送过来的温度数据 接收到后通过 软件上的显示部分将温度值显示出来 用户单击主界面上的小显示窗口后 会弹出一个单独的大的温度显示窗口 这使得用户能够很方便的观察温度 值 本软件还具有一定的数据处理功能 可以单击 绘制曲线 按钮绘制 温度曲线或单击 采集温度 按钮制作温度列表并将其保存到电脑上 同 时还可以调整采集的间隔和时长 本软件还具有报警功能 当温度值超出 设定好的上下限范围后便会启动报警 同时绘制的温度曲线将会以红色显 示 本软件还附带一个读取 DS18B20 的 64 位 ROM 的小工具 首先对单 片机烧写响应的读取 ROM 的程序 单片机读取到 ROM 值后会发送给计 算机 计算机通过该工具接收后会分析单片机发送过来的数据 然后将 ROM 值提取出来并转化为单片机代码 3 2 下位机程序分块介绍 下位机主要用于温度数据的采集与发送和数据的显示 因此下位机软 件应该包括对 DS18B20 的读写操作 串行口的收发以及数码管显示三个部 分 3 2 1 DS18B20 的程序介绍 由于 DS18B20 与单片机的连接十分简单 只需一根线即可 因此只能 采用串行传输的方式 并且需严格按照规定的流程进行数据的读取和命令 的发送等操作 所以程序编写要相对复杂许多 下面是 DS18B20 的常用操 作 一 复位操作 主机通过拉低单线 480us 以上 产生复位脉冲 在主机释放总线后产 燕山大学本科生毕业设计 论文 15 生一个上升沿 单线器件 DS18B20 检测到该上升沿后 延时 15 60us 通过拉低总线 60 240us 来产生应答脉冲 主机接收到应答脉冲后 说明 有单线器件在线 然后即可进行下一步操作 24 二 读操作 读取数据时 把数据线从高电平拉至低电平 低电平保持最少 1us 来自 DS18B20 的输出数据在读时隙下降沿之后 15us 内有效 所有读时隙 最短必须持续 60us 两时隙之间最少保持 1us 的回复时间 三 写操作 主机将数据线从高电平拉至低电平时产生写时隙 DS18B20 在 DQ 变 低的后的 15 60us 进行采样 为高就写 1 为低就写 0 对 DS18B20 的存储器操作命令都是通过写操作实现的 如表 3 1 所示 表 3 1 DS18B20 的写操作命令 指令名称代码功能 写存储器 4EH 主机向存储器中写数据 读存储器 BEH 主机连续读 0 8 存储器内容 复制存储器 48H 复制 TH TL等存储器的内容到 EEPROM 中 温度转换 44H 启动温度转换 重新调出 B8H 从 EEPROM 调出 TH TL等数据到存储器中 读电源 B4H 器件向主机传送它的供电方式 四 ROM 操作 64 位光刻 ROM 记录了器件的识别信息 每一个 DS18B20 包括一个唯 一的 64 位的光刻 ROM 开始的 8 位是单线产品系列编码 接着的 48 位 是唯一的系列号 最后的 8 位是开始 56 位的 CRC 校验数据 主机通过发 出匹配 ROM 命令后 可向其发出特定的操作指令 ROM 操作指令如表 3 2 所示 表 3 2 DS18B20 的 ROM 操作命令 指令名称代码功能 读 ROM 33H 在口线上接一个器件时读其 ROM 码 匹配 ROM 55H 找出某个指定的 ROM 码的器件 跳过 ROM CCH 对口线上所有器件的操作 燕山大学本科生毕业设计 论文 16 搜索 ROM F0H 口线上有多个器件时 找出每个器件的 ROM 码 搜索报警 ECH 找出各器件是否超限 读 ROM 命令允许总线主机读 DS18B20 的 8 位产品系列编码 唯一的 48 位序列号 以及 8 位的 CRC 此命令只能在总线上仅有一个 DS18B20 的情况下使用 如果总线上存在多于一个的从属器件 那么当所有从片企 图同时发送时将发生数据冲突的现象 在使用匹配 ROM 命令后 继续发送 64 位的 ROM 数据系列 允许总 线主机对多点总线上特定的 DS18B20 寻址 只有与 64 位 ROM 序列严格 相符的 DS18B20 才能对后继的存储器操作命令作出响应 所有与 64 位 ROM 序列不符的从片将等待复位脉冲 此命令在总线上有单个或多个器 件的情况下均可使用 跳过 ROM 命令通过允许总线主机不提供 64 位 ROM 编码而访问存储 器操作来节省时间 如果在总线上存在多个 DS18B20 时 由于以后的操 作是对所有器件有效的 所以在执行完跳过 ROM 命令后 多个器件同时 发送数据时会在总线上发生数据冲突 而当确实是想要对所有器件进行操 作或只有单只器件在线时 这一命令将变得十分有用 五 读存储器 DS18B20 的存储器由 9 个字节组成 如图 3 3 图 3 3 DS18B20 的存储器结构图 31 byte0 用于存储温度的高字节 byte1 用于存储温度的低字节 其存储 燕山大学本科生毕业设计 论文 17 格式如图 3 4 所示 图 3 4 DS18B20 的温度存储格式 31 byte2 byte3 是 TH 和 TL 的易失性拷贝 在每一次上电复位时被刷新 温度值与贮存在 TH 与 TL 内的触发值相比较 因为这些寄存器仅仅是 8 位 所以 0 5 位在比较时被忽略 TH 或 TL 的最高有效位直接对应于 16 位温度寄存器的符号位 如果温度测量的结果高于 TH 或低于 TL 那么器 件内告警标志将置位 每次温度测量更新次标志 只要告警标志位置位 DS18B20 将对告警搜索命令作出响应 这允许并联许多的 DS18B20 同 时进行温度测量 如果某处温度超过极限 那么可以识别出正在告警的器 件并立即将其读出而不必读出非告警的器件 六 CRC 校验 在 ROM 的高 8 位和存储器的第九个字节存储了 8 位的 CRC 校验数据 在接收完毕后可以通过 CRC 校验数据检验接收的正确性 七 分辨率的调整 DS18B20 提供了四种分辨率的调整 如图 3 5 通过设置配位寄存器 R1 R0 的值可以调整不同的分辨率 同时不同的分辨率也对应不同的温 度转换时间 如表 3 3 所示 图 3 5 DS18B20 的分辨率位置 31 表 3 3 DS18B20 的分辨率与寄存器对照表 R1R0分辨率转换时间 009 bit93 75ms 0110 bit187 5ms 1011 bit375ms 1112 bit750ms 燕山大学本科生毕业设计 论文 18 3 2 2 串行口收发程序设计 单片机与计算机的通信协议如图 3 1 所示 单片机每次调用发送函数时发送 4 个字节 第一个字节为起始位 用 大写英文字母 S 表示 用于上位机判断所接收到数据的顺序 第二个 字节为温度正负标识位 数字 0 表示正数 数字 1 表示负数 用于 上位机判断温度的正负 第三个字节和第四个字节分别是温度值的整数部 分和小数部分 单片机每次接收的控制命令包含在一个字节内 低两位为温度精度 单片机通过提取低两位的信息来调整测温器件 DS18B20 的测温分辨率 3 4 5 位用于选择测温通道 本课题共有 5 个测温通道 单片机将通道 数据读出后 使用 匹配 ROM 命令选择将要在总线上传送温度的器件 最后将读取的温度数据发送出去 3 2 3 LED 显示模块 LED 显示模块采用 5 个移位寄存器 74LS164 控制 5 个共阴极数码管实 现 采用这种显示方式的优点是占用单片机引脚较少 并且容易实现静态 显示 使得数码管的亮度较高 3 3 上位机程序分块介绍 上位机主要用于接收下位机传送的温度数据 然后进行相应的处理并 能够保存在计算机上 另外还具有相应的设置及报警等功能 3 3 1 MSComm 控件的用法与详细介绍 MSComm 控件是 Visual Basic6 0 中用于计算机串口通信的一个控件 它一般不会直接显示在 VB 左边的控件栏里边 可以通过选择上面菜单栏 里边的 工程 部件 然后在弹出的部件对话框里选择 Microsoft Comm Control 6 0 点击确定后就会在左边的控件栏里显示出一个电话样 式的图标 这就是 MSComm 控件 MSComm 控件通过串行端口传输和接收数据 为应用程序提供串行 通讯功能 MSComm 控件在串口编程时非常方便 程序员不必去花时间 去了解较为复杂的 API 函数 而且在 VC VB Delphi 与 C 等语言中均 可使用 MSComm 控件是 Microsoft 公司提供的简化 Windows 下串行通信 燕山大学本科生毕业设计 论文 19 编程的 ActiveX 控件 它为应用程序提供了通过串行接口收发数据的简便 方法 具体的来说 它提供了两种处理通信问题的方法 一是事件驱动 Event driven 方法 一是查询法 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法 在许 多情况下 在事件发生时需要得到通知 例如 在串口接收缓冲区中有字 符 或者 Carrier Detect CD 或 Request To Send RTS 线上一个字符到 达或一个变化发生时 在这些情况下 可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件 OnComm 事件还可以检查和处 理通讯错误 所有通讯事件和通讯错误的列表 参阅 CommEvent 属性 在编程过程中 就可以在 OnComm 事件处理函数中加入自己的处理代码 这种方法的优点是程序响应及时 可靠性高 每个 MSComm 控件对应着 一个串行端口 如果应用程序需要访问多个串行端口 必须使用多个 MSComm 控件 查询方式实质上还是事件驱动 但在有些情况下 这种方式显得更为 便捷 在程序的每个关键功能之后 可以通过检查 CommEvent 属性的值 来查询事件和错误 如果应用程序较小 并且是自保持的 这种方法可能 是更可取的 例如 如果写一个简单的电话拨号程序 则没有必要对每接 收一个字符都产生事件 因为唯一等待接收的字符是调制解调器的 确定 响应 3 3 2 界面设计 上位机程序主界面如图 3 6 所示 整个主界面按功能可分为菜单栏 控制部分和显示部分 剩余的还包括一个用于串口通信的 MSComm 控件 和三个 Timer 控件 其中 MSComm 控件和 Timer 控件在程序运行时不可 见 菜单栏包括 文件 工具 和 关于 三个菜单 3 其中 文件 菜 单包括 保存文档 保存曲线 和 关闭 三个选项 分别用于保存采 集的温度列表 保存绘制好的温度曲线和退出程序 工具 菜单包括一 个读取测温器件 DS18B20 的小工具 关于 菜单是关于本软件的介绍 控制部分包括通道选择 阈值设置 采集时长与间隔设置 精度控制 部分和对温度列表的功能控制部分 其中通道选择功能是使用一个 燕山大学本科生毕业设计 论文 20 ComboBox 控件实现的 阈值设置与采集时间设置是分别使用一个 Frame 控件 两个 Label 控件和两个 TextBox 控件实现的 精度控制部分使用的 是一个 Frame 控件和四个 OptionButton 控件 而温度列表控制部分使用的 是一个 TextBox 控件 一个 Label 控件和三个 CommandButton 控件 显示部分包括温度显示 曲线绘制和温度列表三个部分 其中温度显 示部分使用了五个 Image 控件组成的控件数组 两个 Label 控件和一个 Frame 控件 曲线绘制部分值使用了一个 PictureBox 控件 温度列表使用 了一个 TextBox 控件 4 图 3 6 上位机程序主界面 除了主窗口外本软件还包含两个子窗口 一个是放大的温度显示窗口 可通过单击温度显示部分弹出 如图 3 7 另一个是读取 ROM 窗口 可通 过菜单栏的 工具 读取 ROM 弹出 如图 3 8 燕山大学本科生毕业设计 论文 21 图 3 7 温度显示窗口 图 3 7 读 ROM 窗口 3 3 3 串口收发程序设计 要想实现串口收发需要使用 MSComm 控件 13 同时必须正确地设置 MSComm 控件的各个属性才能实现数据的正常收发 其中主要属性的介 绍与设置如下 PortOpen 属性 设置并返回通讯端口的状态 可通过设置该端口的值 来打开和关闭端口 只有该端口设置为 Ture 时才能实现串口通信 本软 件在 Form Load 函数里将其设置为 Ture 即打开计算机的串口 CommPort 属性 设置并返回通讯端口号 在设计时 value 可以设置 成从 1 到 16 的任何数 缺省值为 1 但是如果用 PortOpen 属性打开 一个并不存在的端口时 MSComm 控件会产生错误 68 设备无效 本 燕山大学本科生毕业设计 论文 22 软件默认设置为 1 SThreshold 属性 设置或返回引发发送事件的字节数 默认为 0 即 不引发发送事件 本软件设置为 1 即 1 个字节就引发发送时间 RThreshold 属性 设置或返回引发接收事件的字节数 默认为 0 即 不引发接收事件 本软件设置为 1 即接收到一个字节就引发接收事件 Settings 属性 设置并返回波特率 奇偶校验 数据位 停止位参数 由于波特率越大 最大通信距离越短 所以考虑到本课题的应用范围比较 大 故设置波特率为 110bit s 奇偶校验设置为 n 即不需要奇偶校验 数 据位设置位 8 即一个字节 停止位设置为 1 InputMode 属性 用于设置数据取回的方式 设置为 0 默认 时 以文本方式取回数据 设置为 1 时 以二进制方式取回数据 3 3 4 绘图程序 该程序用于在 PictureBox 控件中绘制坐标函数和温度曲线 1 并可以通 过调整采集时长来调整横坐标的刻度 通过调整阈值中的上下限来调整温 度曲线的颜色 坐标效果如图 3 8 所示 图 3 8 PictureBox 控件中的坐标效果 燕山大学本科生毕业设计 论文 23 3 4 本章小结 本章主要介绍了整个系统的软件部分 包括用 C 语言编写单片机程序 和用 Visual Basic6 编写的计算机软件 单片机程序主要分为三部分 读取测温器件 DS18B20 的温度 显示温 度并将温度发送给电脑 而使用 Visual Basic6 编写的计算机端软件则主要 是用于接收单片机发送到的数据并进行相应的处理 对数据的处理工作主 要是绘制温度曲线和制作温度列表 此外该软件还具有对单片机工作的一 些控制功能 能够对单片机发送精度选择命令和通道选择命令 再通过单 片机对 DS18B20 的写存储器操作实现精度的选择和测温通道的选择 燕山大学本科生毕业设计 论文 24 第 4 章 仿真与调试 4 1 PROTEUS 介绍 Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件 它运行于 Windows 操作系统上 可以仿真 分析 SPICE 各种模拟器件和 集成电路 该软件的特点是 实现了单片机仿真和 SPICE 电路仿真相结 合 具有模拟电路仿真 数字电路仿真 单片机及其外围电路组成的系统 的仿真 RS232 动态仿真 I2C 调试器 SPI 调试器 键盘和 LCD 系统仿真 的功能 有各种虚拟仪器 如示波器 逻辑分析仪 信号发生器等 支 持主流单片机系统的仿真 目前支持的单片机类型有 68000 系列 8051 系列 AVR 系列 PIC12 系列 PIC16 系列 PIC18 系列 Z80 系列 HC11 系列以及各种外围芯片 提供软件调试功能 在硬件仿真系统中具有全 速 单步 设置断点等调试功能 同时可以观察各个变量 寄存器等的当 前状态 因此在该软件仿真系统中 也必须具有这些功能 同时支持第三 方的软件编译和调试环境 如 Keil C51 uVision2 等软件 具有强大的 原理图绘制功能 总之 该软件是一款集单片机和 SPICE 分析于一身的仿 真软件 功能极其强大 5 4 2 原理图的输入 4 2 1 工作界面 Proteus ISIS 的工作界面是一种标准的 Windows 界面 如图 4 1 所示 包括 标题栏 主菜单 标准工具栏 绘图工具栏 状态栏 对象选择按 钮 预览对象方位控制按钮 仿真进程控制按钮 预览窗口 对象选择器 窗口 图形编辑窗口 燕山大学本科生毕业设计 论文 25 图 4 1 Proteus ISIS 的工作界面 4 2 2 绘制原理图 1 画导线 Proteus 的智能化可以在你想要画线的时候进行自动检测 当鼠标的 指针靠近一个对象的连接点时 跟着鼠标的指针就会出现一个 号 鼠标左键点击元器件的连接点 移动鼠标 不用一直按着左键 就 出现了 粉红色的连接线变成了深绿色 如果你想让软件自动定出线路径 只需左 击另一个连接点即可 这就是 Proteus 的线路自动路径功能 简称 WAR 如果你只是在两个连接点用鼠标左击 WAR 将选择一个合适的线径 WAR 可通过使用工具栏里的 WAR 命令按钮来关闭或打开 也可以在菜单栏 的 Tools 下找到这个图标 如果你想自己决定走线路径 只需在想要 拐点处点击鼠标左键即可 在此过程的任何时刻 你都可以按 ESC 或者点 击鼠标的右键来放弃画线 燕山大学本科生毕业设计 论文 26 2 画总线 为了简化原理图 我们可以用一条导线代表数条并行的导线 这就是 所谓的总线 点击工具箱的总线按钮 即可在编辑窗口画总线 3 画总线分支线 点击工具的按钮 画总线分支线 它是用来连接总线和元器件管脚的 画总线的时候为了和一般的导线区分 我们一般喜欢画斜线来表示分支线 但是这时如果 WAR 功能打开是不行的 需要把 WAR 功能关闭 画好分支线 我们还需要给分支线起个名字 右键点击分支线选中它 接着左键点击选 中的分支线就会出现分支线编辑对话框同端是连接在一起的 放置方法是 用鼠标单击连线工具条中图标或者执行 Place Net Label 菜单命令 这 时光标变成十字形并且将有一虚线框在工作区内移动 再按一下键盘上的 Tab 键 系统弹出网络标号属性对话框 在 Net 项定义网络标号比如 PB0 单击 OK 将设置好的网络标号放在第一步放置的短导线上 单击 鼠标左键即可将之定位 放置总线将各总线分支连接起来 方法是单击放 置工具条中图标或执行 Place Bus 菜单命令 这时工作平面上将出现十 字形光标 将十字光标移至要连接的总线分支处单击鼠标左键 系统弹出 十字形光标并拖着一条较粗的线 然后将十字光标移至另一个总线分支处 单击鼠标的左键 一条总线就画好了 4 放置线路节点 如果在交叉点有电路节点 则认为两条导线在电气上是相连的 否则 就认为它们在电气上是不相连的 ISIS 在画导线时能够智能地判断是否要 放置节点 但在两条导线交叉时是不放置节点的 这时要想两个导线电气 相连 只有手工放置节点了 点击工具箱的节点放置按钮 当把鼠标指 针移到编辑窗口 指向一条导线的时候 会出现一个 号 点击左键 就能放置一个节点 Proteus 可以同时编辑多个对象 即整体操作 常见的有整体复制 整体删除 整体移动 整体旋转几种操作方式 4 2 3 编辑对象 许多对象具有图形或文本属性 这些属性可以通过一个对话框进行编 辑 这是一中很常见的操作 有多种实现方式 编辑单个对象的步骤是 燕山大学本科生毕业设计 论文 27 1 选中对象 2 用鼠标左键点击对象 连续编辑多个对象的步骤是 1 选择 Main Mode 图标 再选择 Instant Edit 图标 2 依次用鼠标左键点击各个对象 以特定的编辑模式编辑对象的步骤是 1 指向对象 2 使用键盘 CTRL E 对于文本脚本来说 这将启动外部的文本编辑器 如果鼠标没有指向 任何对象的话 该命令将对当前的图进行编辑 通过元件的名称编辑元件的步骤如下 1 键入 E 2 在弹出的对话框中输入元件的名称 确定后将会弹出该项目中任何元件的编辑对话框 并非只限于当前 sheet 的元件 编辑完后 画面将会以该元件为中心重新显示 你可以通 过该方式来定位一个元件 即便你并不想对其进行编辑 元件 端点 线和总线标签都可以象元件一样编辑 编辑单个对象标签的步骤是 1 选中对象标签 2 用鼠标左键点击对象 连续编辑多个对象标签的步骤是 1 选择 Main Mode 图标 再选择 Instant Edit 图标 2 依次用鼠标左键点击各个标签 任何一种方式 都将弹出一个带有 Label and Style 栏的对话框窗体 可以参照指南中 Editing Local Styles 这一节得到编辑 local 文本类型 的详细内容 4 3 电路仿真 由于 Proteus 单片机仿

温馨提示

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

评论

0/150

提交评论