DS18B20水温控制系统方案Word文档下载推荐.docx
- 文档编号:16020518
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:27
- 大小:405.53KB
DS18B20水温控制系统方案Word文档下载推荐.docx
《DS18B20水温控制系统方案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DS18B20水温控制系统方案Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
不想就这么放弃。
好废话不多说了,这个文档是我花了一个小时整理到博客上的,我觉得这个博客还是非常的COOL的,竟然没有字数限制。
呵呵喜欢。
以后就用你了。
这是我第一篇发表的文章,还希望大家多多留言,提出宝贵的意见。
目录
一.引言...
二.设计目的...
三.系统功能...
四.系统设备...
五.温度控制总体方案与原理...
1.系统模块图...
2.系统模块总关系图...
六.温度转换核心及其算法...
1.温度传感器DS18B20原理与特性...
DSl8B20的管脚及特点...
DS18B20的部结构...
DS18B20的存结构...
DS18B20的测温功能...
DSl820工作过程中的协议...
温度传感器与单片机通讯时序...
2.温度转换算法及分析...
七.硬件设计说明...
1.系统总体电路图...
2.各个模块电路图...
输入系统...
输出系统...
芯片系统...
八.软件设计说明...
1.总模块的流程图...
2.各个模块的流程图...
读取温度DS18B20模块的流程...
键盘扫描处理流程...
九.操作指引...
按键功能...
显示温度...
设定温度...
十.参考文献...
程序源代码...
一.引言
在一些温控系统中,广泛采用的是通过热电偶、热电阻或PN结测温电路经过相应的信号调理电路,转换成A/D转换器能接收的模拟量,再经过采样/保持电路进行A/D转换,最终送入单片机及其相应的外围电路,完成监控。
但是由于传统的信号调理电路实现复杂、易受干扰、不易控制且精度不高。
因此,本系统用一种新型的可编程温度传感器(DS18B20),不需复杂的信号调理电路和A/D转换电路能直接与单片机完成数据采集和处理,实现方便、精度高,可根据不同需要用于各种场合。
二.设计目的
设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。
水温可以在一定围由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。
利用单片机AT89S52实现水温的智能控制,使水温能够在40-90度之间实现控制温度调节。
利用仪器读出水温,并在此基础上将水温调节到我们通过键盘输入的温度(其方式是加热或降温),而且能够将温度显示在我们的七段发光二极管板上。
三.系统功能
1.
可以对温度进行自由设定,到那时必须在0-100摄氏度单位,设定时可以适时的显示说设定的温度值,温度是可以自由设置的,传感器的检测值与设定的温度比较,可以显示在七段发光二极管上。
2.
温度由1台1000w电炉来实现,如果温度不在40-90度之间,则在LED上显示“8888”,表示错误。
3.
能够保持不间断显示水温,显示位数4位,分别为百位,个位,十位,和小数位。
(但由于规定不超过90度,所以百位也就没有实现,默认的百位是不显示的)
四.系统设备
ME300B最小系统板
DS18B20数字温度传感器(集成了A/D转换功能)
1000W电炉
温度计
继电器
风扇
盛水器皿
五.温度控制总体方案与原理
1.系统模块图
系统模块分为:
DS18B20模块,显示模块,继电器模块,键盘输入模块,DS18B20可以被编程,所以箭头是双向的,CPU(89S52)首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过89S52来处理数据。
数据处理后的结果就显示到数码管上。
1.系统模块总关系图
本系统的执行方法是循环查询执行的,键盘扫描也是用循环查询的办法,由于本系统对实时性要求不是很高,所以没有用到中断方式来处理。
六.温度转换核心及其算法
1.温度传感器DS18B20原理与特性
本系统采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。
首先先来介绍一下DS18B20这块传感器的特性及其功能:
DSl8B20的管脚及特点
DS18B20可编程温度传感器有3个管脚。
(如图:
1)GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。
VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,围3.O~5.5V。
本文使用外部电源供电。
主要特点有:
用户可自设定报警上下限温度值。
不需要外部组件,能测量-55~+125℃围的温度。
-10℃~+85℃围的测温准确度为±
0.5℃。
4.
通过编程可实现9~l2位的数字读数方式,可在至多750ms将温度转换成12位的数字,测温分辨率可达0.0625℃。
5.
独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。
DS18B20的部结构
DS18B20部功能模块如图2所示,主要由4部分组成:
64位光刻R0M(图3)、温度传感器、非易失性的温度报警触发器TH和TL、配置寄存器。
R0M中的64位序列号是出厂前被光刻好的,他可以看作是该DSISB20的地址序列码,每个DSI8B20的64位序列号均不相同。
高低温报警触发器TH和TL,配置寄存器均由一个字节的E2PROM组成,使用一个存储器功能命令可对TH,TL或配置寄存器写入。
配置寄存器中R1,R0决定温度转换的精度位数:
R1R0=’00’,9位精度,最大转换时间为93.75ms;
R1R0=‘01’,10位精度,最大转换时间为187.5ms;
R1R0=‘10’,11位精度,最大转换时间为375ms;
R1R0=’11’,12位精度,最大转换时间为750ms;
未编程时默认为12位精度。
本系统采用的也是12位的精度。
DS18B20的存结构
DSI8B20温度传感器的部存储器包括一个高速暂存RAM(便笺式的部存储器)和一个非易失性的可电擦除的EEPROM,后者存放高温和低温触发器TH,TL和结构寄存器。
便笺存储器包含了9个连续字节(0~8),前两个字节是测得的温度信息(图4),字节0的容是温度的低8位,字节1是温度的高8位,字节2是TH(温度上限报警),字节3是TL(温度下限报警),字节4是配置寄存器(图5),用于确定输出分辨率9到12位。
第5、6、7个字节是预留寄存器,用于部计算。
字节8是冗余检验字节,校验前面所有8个字节的CRC码,可用来保证通信正确。
DS18B20的测温功能
当DSI8B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的0,1字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。
温度值格式如图4所示,其中“S”为标志位,对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;
当S=1时,先将补码变换为原码,再计算十进制值。
图4下面的表是对应的一部分温度值。
DSI8B20完成温度转换后,就把测得的温度值与TH做比较,若T>
TH或T<
TL,则将该器件的告警标志置位,并对主机发出的告警搜索命令做出响应。
具体算法分析,会在后文中提到。
DSl820工作过程中的协议
初始化->
RoM操作命令->
存储器操作命令->
处理数据
1初始化
单总线上的所有处理均从初始化开始
2ROM操作品令
总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如
指令
代码
ReadROM(读ROM)
[33H]
MatchROM(匹配ROM)
[55H]
SkipROM(跳过ROM]
[CCH]
SearchROM(搜索ROM)
[F0H]
Alarmsearch(告警搜索)
[ECH]
3存储器操作命令
指令
代码
WriteScratchpad(写暂存存储器)
[4EH]
ReadScratchpad(读暂存存储器)
[BEH]
CopyScratchpad(复制暂存存储器)
[48H]
ConvertTemperature(温度变换)
[44H]
RecallEPROM(重新调出)
[B8H]
ReadPowersupply(读电源)
[B4H]
温度传感器与单片机通讯时序
2.温度转换算法及分析
由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。
温度高字节(MSByte)高5位是用来保存温度的正负(标志为S的bit11~bit15),高字节(MSByte)低3位和低字节来保存温度值(bit0~bit10)。
其中低字节(LSByte)的低4位来保存温度的小数位(bit0~bit3)。
由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留一位小数即可。
也就说,本系统的温度精确到了0.1度。
算法核心:
首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LSByte)取反加一变成原码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS18B20 水温 控制系统 方案