基于单片机温室温度控制系统研究内容摘要:

线上与该编码相对应的 DS18B20 使之作出响应,为下一步对该 DS18B20 的读写作准备 搜索 ROM 0F0H 用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位ROM 地址,为操作各器件作好准备 跳过 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS18B20 发温度变换命令,适用于单片工作。 告警搜索 命 令 0ECH 执行后,只有温度超过设定值上限或者下限的片子才做出响应 温度变换 44H 启动 DS18B20 进行温度转换,转换时间最长为 500MS,结果存入内部 9字节 RAM 中 读暂存器 0BEH 读内部 RAM 中 9 字节的内容 写暂存器 4EH 发出向内部 RAM 的第 3, 4 字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据 复制暂存器 48H 将 E2PRAM 中第 3, 4 字节内容复制到 E2PRAM 中 重调 E2PRAM 0BBH 将 E2PRAM 中内容恢复到 RAM 中的第 3, 4字节 读 供 电 方 式 0B4H 读 DS18B20 的供电模式,寄生供电时 DS18B20 发 送“ 0”,外接电源供电 DS18B20 发送“ 1” 数器 1的预置值减到 0时温度寄存器的值将加 1,减法计数器 1的预置将重新被装入,减法 计数器 1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2 计数到 0 时, 停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。 图 8中的斜率累加器用 于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20 的测温原理。 另外,由于 DS18B20 单线通信功 能是分时完成的,他有严格的时隙概念,因此读写时序很重 要。 系统对 DS18B20 的各种操作必须按协议进行。 操作协议为:初始化 DS18B20(发复位脉冲 )→发 ROM功能命令 → 发存储器操作命令 → 处理数据。 温室 温度控制系统 10 图 9 测温原理内部装置 DS18B20 的测温流程 图 10 DS18B20测温流程 4 单片机接口 设计 DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20 的 1 脚接地, 2脚作为信号线, 3脚接电源。 另一种是寄生电源供电方式,如图 11 所示单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个 MOSFET 管来完成对总线的上拉。 本设计 采用电源供电方式, 口接单线总线为保证在有效的DS18B20 时钟周期内提供足够的电流,可用一个 MOSFET 管和 89S51 的 来完成对总线的上拉。 当 DS18B20 处于写存储器操作和温度 A/D 变换操作时,总线上必须有强的上拉,上拉开启时间最大为 10 μs。 采用寄生电源供电方式是 VDD和 GND 端均接地。 由于单 线制只有一根线,因此发送接收口必须是三 状态 的。 主机控制 DS18B20 完成温度转换必须经过3个步骤:初始化、 ROM 操作指令、存储器操作指令。 初始化 DS18B20 跳过 ROM 匹配 温度变换 延时 1S 跳过 ROM 匹配 读暂存器 转换成显示码 数码管显示 减法计数器 斜坡累加器 减到 0 减法计数器 预 置 低温度系数 振 荡 器 高温度系数 振 荡 器 计数比较器 预 置 温度寄存器 减到 0 单片机接口设 计 11 图 11 DS18B20与单片机的接口电路 5 系统整体 设计 主板电路 设计 (如附录 2) 单片机的 接 DS18B20 的 2 号引脚, P0 口送数 P2 口扫描, 、 控制加热器和电风扇的继电器。 各部分 电路 (1) 显示电路 显示电路 采用了 7段共阴数码 管扫描电路,节约了单片机的输出端口,便于程序的编写。 图 12 显示电路图 单 片 机 18B20 VCC GND 温室 温度控制系统 12 (2) 单片机电路 图 13单片机电路引脚图 (3) AT89SISP 下载口电路 图 14 下载口电路引脚图 此电路 连 接单片机。 (4) DS18B20 温度传感器 电路 图 15 温度传感器电路引脚图 系统整体设计 13 (5) 继电器电路 图中 引脚控制加热器继电器 , 引脚控制电风扇继电器。 给 . 低电平,三极管导通,电磁铁触头放下来开始工作;同样给 低电平,三极管导通,电磁铁触头放下来开始工作。 图 16 继电器电路 图 (6) 晶振控制电路 图 17 晶振控制 电路图 (7) 复位电路 图 18复位电路 图 温室 温度控制系统 14 系统软件 设计 系统 软件设计的整体思想 一个应用系统要完成各项功能,首先必须有较完善的硬件作保证。 同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。 甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。 因此充分利用其内部丰富的硬件资源和软件资源,采用与 S51 系列单片机相对应的 51 汇编语言和结构化程序设计方法进行软件编程。 程序设计语言有三种:机器语言、汇编语言和高级语言。 机器语言是机器唯一能“懂”的语言,用汇编语言或高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(成为目标程序),计算机才能“看懂”,然后逐一执行。 高级语言是面向问题和计算过程的语言,它可通过于各种不同的计算机,用户编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多条计算机指令,于是用高级语言编制程序的速度比较快,也便于学习和交流,但是本系统却选用了汇编语言。 原因在于,本系统是编制程序工作量不大、规模较小的单片机微控制系统,使用汇编语言可以不用像高级语言那样占用较多的存储空间,适合于存储容量较小的系统。 同时,本系统对位处理要求很高,需要解决大量的逻辑控制问题。 MCS— 51 指令系统的指令长度较短,它在存储空间和执行时间方面具有较高的效率,编成的程序占用内存单元少,执行也非常的快捷,与本系统的应用要求很适合。 而且 MCS— 51 指令系统有丰富的位操作(或称位处理)指令,可以形成一个相当完整的位操作指令子集,这是 MCS— 51 指令系统主要的优点之一。 对于要求反应灵敏与控 制及时的工控、检测等实时控制系统以及要求体积小、系统小的许多“电脑化”产品,可以充分体现出汇编语言简明、整齐、执行时间短和易于使用的特点。 本装置的软件包括主程序、读出温度子程序、 复位应答 子程序、 写入 子程序、以及有关 DS18B20 的程序(初始化子程序、写程序和读程序)等。 主程序的功能是:启动 DS18B20 测量温度,将测量值与给定值进行比较,若测得温度小于设定值,则进入加热阶段,置 为低电平,这期间继续对温度进行监测,直到温度在设定范围内,置 为高电平断开可控硅,关闭加热器,等待下一次的启动命令。 当测得温度大于设定值,则进入降温阶段,则置 为低电平,这期间继续对温度进行监测,直到温度在设定范围内,置。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。