基于ds18b20的多点温度检测系统设计(编辑修改稿)内容摘要:

在 一起,焊接牢固。 若 VCC脱开未接,传感器只送 ℃ 的温度值。 ( 4)实际应用时,要注意单线的驱动能力,不能挂接过多的 DS18B20,同时还应注意最远接线距离。 另外还应根据实际情况选择其接线拓扑结构。 本设计中,两片 DS18B20 芯片串接在单片机的 口 ,如图 310 所示 : AT89C51 DS18B20 1 DS18B20 2 DS18B20 3 DS18B20 20 VCC=5V 1— WIRE 中北大学 2020 届毕业设计 第 16 页 ,共 41 页 图 310 DS18B20 连接图 温度报警电路 温度检测的更重要的意义是预警,即当温度超过安全界限时,能够提醒人们,以提醒人们采取相应的措施。 本 设计的温度报警主要由蜂鸣器和发光二极管构成,蜂鸣器采用 NPN 三极管驱 动。 由于本设计需要测设两点的温度,所以,用不同颜色的发光二极管以示区分。 即当温度高于或低于设定的温度值时,蜂鸣器能够发生警报,同时,相对应的发光二极管发生光亮。 蜂鸣器接在单片机的 ,发光二极管分别接在单片机的 口和 口, 设计连接图如图 311 所示: 中北大学 2020 届毕业设计 第 17 页 ,共 41 页 图 311 温度报警电路 温度 显示电路 显示部分可以用液晶显示和数码管显示,因为要同时显示两点温度, 这里采用的液晶显示 LCD1602。 LCD1602 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。 它由若干个 5x7 或者 5x11 等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。 它的 显示的内容为 16x2,即可以显示两行,每行16 个字符。 1602 采用标准的 16 脚接口, 其引脚图如图 312 所示 [15,16]: 图 312 LCD1602 引脚图 其中: 中北大学 2020 届毕业设计 第 18 页 ,共 41 页 第 1 脚: VSS 为电源 地 第 2 脚: VCC 接 5V 电源正极 第 3 脚: V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生 “鬼影 ”,使用时可以通过一个 10K 的电位器调整对比 度)。 第 4 脚: RS 为 寄存器 选择,高电平 1 时选择 数据寄存器 、低电平 0 时选择 指令寄存器。 第 5 脚: RW 为读写信号线 ,高电平 (1)时进行读操作,低电平 (0)时进行写操作。 第 6 脚: E(或 EN)端为使能 (enable)端 ,高电平( 1)时读取信息,负跳变时执行指令。 第 7~ 14 脚: D0~ D7 为 8 位双向数据端。 第 15~ 16 脚: 空脚 或背灯电源。 15 脚背光正极, 16 脚背光负极。 在本设计中, LCD1602 的 数据 /命令端 RS 管脚接单片机的 口 , 读写端RW 管脚接单片机的 口,使能端 EN 接 单片机的 端,数据段 D0D7 接在单片机的 P0 口,具体电路如图 313 所示: 图 313 LCD1602 电路连接图 在本电路中, LCD1602 的数据段 D0D7 连接在单片机的 P0 口,因为 P0 口 是 8位漏极开路的双向 I/O 口 , 内部没有上拉电阻,是开漏的, 不管它的驱动能力多中北大学 2020 届毕业设计 第 19 页 ,共 41 页 大,相当于它是没有电源的,需要外部的电路提供。 简单一点说就是它要驱动LCD 显示屏显示就必须要有电源驱动,否则亮不了,而恰好 P0 口没有电源,所以就要外接电源, 因此在 PO 口接上了排阻 P1。 在这里, LCD1602 的 V0 管脚接了 的电阻,液晶可以达到一个相对合适的亮度。 串口通信电路 AT89C51 有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。 进行串行通讯时要满足一定的条件,比如电脑的串口是 RS232电平的,而单片机的串口是 TTL 电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片 MAX232 进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠 [17]。 具体电路如 图 314: 图 314 串口电路电路连接图 我们采用了三线制连接串口,也就是说和电脑的 9 针串口只连接 其中的 3 根线:第 5 脚的 GND、第 2 脚的 RXD、第 3 脚的 TXD。 这是最简单的连接方法,但是对 本设计 来说已经足够使用了,电路如 上 图所示。 通信线采用交叉接法,即中北大学 2020 届毕业设计 第 20 页 ,共 41 页 两者信号线对应成为 R— T, T— R。 具体连接电路如图 315: 162738495J1D B 9 A T 8 9 C 5 1162738495J2D B 9 P CR X D R X DT X D T X D 图 315 单片机与 PC 机串口连接图 整体电路 见附件一 (电路原理图) 4 软件设计 概述 整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。 从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。 二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。 每一个执行软件也就是一个小的功能执行模块。 这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。 各执行模块规划好后,就可以规划监控程序了。 首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据 实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。 主程序方案 主程序调用了 4 个子程序,分别是温度测试程序 、 LCD1602 温 度显示程序、温度报警程序、单片机与 PC 机串口通讯程序。 温度测试程序:对温度芯片送过来的数据进行处理,计算和显示。 中北大学 2020 届毕业设计 第 21 页 ,共 41 页 LCD1602 温度显示程序:单片机向 LCD1602 发送温度 值,实时显示测量结果。 温度报警:对温度值做出判断,当超出界限时,蜂鸣器发声报警,发光二级管发光。 串口通讯程序:实现 PC 机与单片机通讯,将温度数据传送给 PC 机。 将各个功能程序以子程序的形式写 好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和 I/O 冲突即可。 程序应该尽可能多的使用调用指令代替跳转指令。 因为跳转指令使得程序难以看懂各程序段之间的结构关系。 而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。 将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块 [18,19]。 主程序流程图如 图 41: 图 主程序流程图 中北大学 2020 届毕业设计 第 22 页 ,共 41 页 各模块子程序设计 下面对主要几 个子程序的流程图做介绍: ( 1) 温度测试子程序设计 在 设计中 ,在同一条数据线上 挂接了两片 DS18B20 芯片 ,程序通过读取每个芯片的序列号来识别 ,因此必须事先知道每片 DS18B20 芯片的序列号。 我们可以程序获取到每片 DS18B20 芯片的序列号,并通过液晶显示出来。 通过程序我们得到的两片 DS18B20 的 64 位序列号分别为 [20]: A: 28AB17D003000072 B: 28961AD003000039 注:均为十六进制表示 温度测试子程序流程图如图 42 所示: 中北大学 2020 届毕业设计 第 23 页 ,共 41 页 图 42 温度测试子程序流程图 Y N N Y 开始 初始化 DS18B20 搜索 ROM 读并存储 DS18B20 的序列号 发一个 DS18B20 序列号 匹配 ROM 命令 初始化 DS18B20 跳过 ROM 温度转换命令 等待 1ms 转换命令结束 初始化 存在一个DS18B20。 所有 DS18B20 都访问完毕。 读当前 DS18B20 温度 中北大学 2020 届毕业设计 第 24 页 ,共 41 页 ( 2) 温度显示子程序 DS18B20 读取的温度存在一个十六位的寄存器中, 如表 33 所 示,其中前五位表示温度的正负,因此要对读取到的温度进行处理,得到十进制表示的温度值,再分离出温度值的百位,十位,各位,及小数位分别显示到液晶上。 ( 3) 串口通信程序设计 本次通讯中,测控系统分位上位机和下位机之间的通信,系统中单片机负责数据 采集、处理和控制,上位机进行现场可视化检测,通信协议采用半双工异步串行通信方式,通过 RS232 的 RTS 信号进行收发转换,传输数据采用二进制数据,上位机与下位机之间采用主从式通讯。 本设计中,上位机主要利用串口调试助手接收从下位机发送来的温度数据,所以借助 USB 就可完成。 如果利用串口线,还需要其他软件搭建窗口界面。 为了显示更加清晰,发送数据为十进制的字符,因此在实际程序中,采用每得到一个字符发送一次。 串口通信显示温度 仿真 结 果如图 43 所示: 图 43 串口通信显示温度 中北大学 2020 届毕业设计 第 25 页 ,共 41 页 如图 43 示,每两个数据为一组数据, 以“ Fir”和“ Sec”区分。 5 温度传感器 调试 最后的工作是制作实物,根据电路原理,制作出 PCB 板,然后焊接实物。 在实际制作中,考虑到硬件电路不是很复杂,所以选择用洞洞板自己焊接。 焊接实物见附录三。 PCB 图 见附录二。 系统 调试 测试环境及工具 测试温度: 0~100 摄氏度。 (模拟多点不同温度值环境) 测试仪器及软件:数字万用表,温度计 0~100 摄氏度,串口调试助手。 测试。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。