基于DS18B20的水温检测系统设计

2016-07-26 04:00侯嘉龙
湖南工业职业技术学院学报 2016年3期
关键词:温度传感器测温限值

侯嘉龙

(湖南大学物理与微电子科学学院,湖南 长沙,410082)



基于DS18B20的水温检测系统设计

侯嘉龙

(湖南大学物理与微电子科学学院,湖南 长沙,410082)

[摘要]采用51系列单片机STC89C52RC为主控制器,DS18B20为数字温度传感器,将温度传感器密封入不锈钢壳体内实现水温检测,用LCD1602双行英文字符液晶显示实测温度与报警温度的上下限值。设计了系统的硬件电路与控制程序,实现了对水温度的测量,显示,和报警等功能。经测试后,证明其工作可靠、准确度高、体积小,携带方便,具有实用价值。

[关键词]STC89C52RC单片机;数字温度传感器DS18B20;显示器LCD1602

引言

传统的温度检测以热敏电阻为温度检测元件,热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。本文设计的数字水温检测系统具有读数方便,测温范围广,精确高,数字显示,适用范围广等特点。采用51系列单片机STC89C52RC为主控制器,DSl8B20数字温度呢传感器作为测温元件,通过LCD1602并行传送数据显示温度值,实现对水温的测量、显示和报警功能。该水温检测装置直接采用测温器件测量温度,简化了数据传输与处理过程。本系统的主要功能如下:

(1)1路DS18B20温度检测电路。

(2)测温范围为0~100℃。

(3)温度精度为0.1℃;误差±0.5℃。

(4)显示模块采用LCD1602液晶显示器。

(5)设置按键3个,分别用于模式切换和设置上下限温度值的加、减。

(6)报警设置10-90度,温度低于下限值或高于上限值均产生声光报警。

1 DS18B20简介

温度传感器DS18B20引脚如图1所示。

图1 DS18B20温度传感器

引脚功能说明:

VDD:可选电源引脚,电源电压范围3~5.5V。当工作于寄生电源时,此引脚必须接地。

DQ:数据输入/输出引脚。漏极开路,常态下高电平。

GND:电源地。

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、温度报警触发器TH和TL、暂存器等组成,DS18B20的内部结构如图2所示。

图2DS18B20内部结构图

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在DS18B20的两个8位的RAM中,如表1所示,高8位二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。

表1 DS18B20测温字节存放表

2系统硬件电路设计

系统硬件电路如图3所示,主要由时钟电路、复位电路、按键电路、DS18B20构成的单线测温电路、LCD1602液晶显示电路及声光报警电路组成。时钟电路由电容C1、C2和晶体振荡器X1组成,晶振频率为12MHZ,提供单片机工作所需要的时钟信号。复位电路由复位按键S0、电阻R1及电容C3组成,用于系统的上电复位与按键复位。按键电路由设置/上/下限键S1、加键S2、减键S3三个独立式按键组成。S1键为模式切换键,每按一次S1键,切换一种模式,连续按S1键在正常模式、上限模式和下限模式之间循环切换。S2键为增加上/下限值键。S3键为减小上/下限值键。单片机P2.3引脚与DS18B20的数据线相连,用软件方式产生DS18B20的时序信号,实现单片机与DS18B20之间的数据交换。单片机的P2.6和P2.7引脚分别连接发光二极管和蜂鸣器电路,当测量的水温超过上限值或低于下限值时,P2.6和P2.7引脚输出低电平产生声光报警。液晶显示器LCD1602用于显示测量的实时温度和设定的上、下限温度值,其中P1口为数据口,实现单片机与LCD1602的数据交换,P3口低3位产生LCD1602的控制信号。

图3 水温检测硬件电路

3系统软件设计

控制程序由主函数、DS18B20初始化函数、LCD1602初始化函数、读温度值函数及处理温度值函数和显示函数及按键函数等组成。主程序流程图如图4,首先将报警温度的下限值与上限值分别设置为10℃和85℃,然后定时器初始化用于控制蜂鸣器发声的频率,启动DS18B20进行温度检测,延时1后,读取温度值并进行温度值的处理便于显示。循环进行按键扫描,显示温度值,读取测量温度值及报警判断。

图4 主程序流程图

读出温度数据后,第一字节的低四位为温度的小数部分,可以精确到0.0625℃,第一字节的高四位和第二字节的低三位为温度的整数部分,第二字节的高五位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0.5℃,向个位进1;小于0.5℃,舍去不要。当数据是负数的时候,显示之前要进行数据转换,将其整数部分取反加1。处理温度值的程序如下:

void Temperature_treatment()

{uchar t=150;//延时

ng=0;//负值标志位

if(Temp_Value[1]&0xf8)==0xf8)

Temp_Value[1]=~Temp_Value[1];

Temp_Value[0]=~Temp_Value[0]+1;

if(Temp_Value[0]==0x00)

Temp_Value[1]++;

ng=1;//负温度

else{ng=0;}//温度为正

Display_Digit[0]=df_Table[Temp_Value[0]&0x0f];//查表得温度小数部分

CurrentT=(Temp_Value[0]&0xf0)>>4)|((Temp_Value[1]&0x07)<<4);//温度整数部分

Display_Digit[3]=CurrentT/100;//温度值百位

Display_Digit[2]=CurrentT%100/10;//温度值十位

Display_Digit[1]=CurrentT%10;//温度值个位

Temp=CurrentT;//报警温度

if(ng==1){Temp=0;}//当温度为负时,报警判断温度寄存器为0

4仿真与测试

用proteus软件绘制系统原理图,在keil软件下编写控制程序并生成HEX文件装载到单片机中进行仿真,电路首先输出DS18B20当前的温度值,按下S1键后,在LCD1602的第二行显示设置温度值的上下限初值10和85,此时按S2和S3键可修改下限初值,再次按下S1键后,按S2和S3键可修改上限初值。当实测温度超过上下限值时,产生声光报警。做成实物后测试,与仿真调试结论相符。

5结语

本文设计的基于DS18B20的水温检测装置具有电路简单,能够完成对水温的快速检测。可测量水温范围为0~+100℃,温度精度在0.5℃,误差±0.5℃以内,报警设置10-90度,温度值低于下限值或高于上限值均产生声光报警,通过按键设置上下限值。采用电池供电,系统体积小,功耗低,可携带到各测试点进行温度检测,经测试系统工作稳定可靠,对温度检测具有实用价值。

[参考文献]

[1]张越.基于单片机和模糊控制的水温自动控制系统[J].仪表技术与传感器,2007(4):71-72.

[2]张军.智能温度传感器DS18B20及其应用[J].仪表技术,2010 (4):68-70.

[3向华.C语言程序设计(第2版)[M].北京:清华大学出版社,2015.

[4]王静霞.单片机应用技术(C语言版)第2版[M].北京:电子工业出版社,2014.

[5]郑峰.51单片机典型应用开发范例大全[M].北京:中国铁道出版社,2011.

[6]朱清慧.Proteus教程—电子线路设计、制版与仿真[M].北京:清华大学出版社,2008.

[7]彭伟.单片机C语言程序设计实训100例[M].北京:电子工业出版社,2010.

[8]范风强,兰婵丽.单片机语言C51应用实战集锦[M].北京:电子工业出版社,2002.

[中图分类号]TP368.1

[文献标识码]A

[文章编号]1671-5004(2016)03-0016-03

[收稿日期]2016-5-1

[作者简介]侯嘉龙(1994-),男,湖南石门人,湖南大学物理与微电子科学学院2013级应用物理专业,研究方向:光电技术应用。

Design of Water Temperature Detection System Based on DS18B20

HOU Jia-long
(School of Physics and Electronics Development,Hunan University,Changsha410081,Hunan)

[Abstract]The 51 series microcontroller stc89c52rc is used as the main controller,and the DS18B20 is used as the digital temperature sensor.The temperature sensor is sealed into the stainless steel shell to carry out the body temperature detection,and the limiting values of actual temperature and alarm temperature are displayed by the double line of English characters of LCD1602.The hardware circuit and the control program of the system are designed,and the measurement,display,alarm and other functions of the water temperature are realized.After testing,it is proved that the work is reliable,the accuracy is high,the volume is small,the carrying is convenient,and it has the practical value.

[Key words]STC89C52RC single chip microcomputer;digital temperature sensor DS18B20;monitor LCD1602

猜你喜欢
温度传感器测温限值
气象用温度传感器检定结果的测量不确定度评定与应用
硬线测温探头在离心式压缩机组的应用
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
XTR105电流变送器在温度传感器中的应用
变压器光纤测温探头的安装固定
辽宁省辽河流域石油炼制排放限值的制定
汽油车稳态工况法污染物统计分析及限值修订研究
基于DS18B20的单片机测温系统
中美炼钢行业污染物排放限值研究