论文导读:本文提出利用美国Dallas公司生产的DS18B20数字温度传感器和STC89C51单片机构成的多路测温系统。美国Dallas公司生产的DS18B20可组网数字温度传感器芯片。以DS18B20为温度传感器组成多点温度测量系统。
关键词:STC89C51,多点温度测量,DS18B20
一、引言
在工农业生产和科学研究中,温度的测量和控制有着非常重要的作用和广泛的应用。目前国内外新型的温度传感器正向数字化、智能化、网络化的方向迅速发展。多路温度检测方法有很多,传统方法多以热敏电阻和热电偶等元件,但都存在可靠性差、精度低、接线复杂的缺点。发表论文,STC89C51。
本文提出利用美国Dallas公司生产的DS18B20数字温度传感器和STC89C51单片机构成的多路测温系统,采用单总线的接线方式,单根总线可以挂接多个传感器,该系统接线简便,体积小,非常适合用于工农业生产及科研中。
二、DS18B20简介
美国Dallas公司生产的 DS18B20可组网数字温度传感器芯片,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
DS18B20测量温度范围为-55℃至+125℃,-10℃至+85℃范围内精度为±0.5℃。DS18B20包含一个独特的序号,多个DS18B20可以同时存在于一条总线。发表论文,STC89C51。发表论文,STC89C51。这使得只利用单片机的一个I/O端口就可以读取多个温度传感器的测量数据,从而完成多点温度的测量。
三、多点温度测量系统设计
1、硬件设计
本设计中以STC89C51单片机为核心控制元件,以DS18B20为温度传感器组成多点温度测量系统,系统硬件电路图如图1所示。

图1 多点温度测量系统硬件电路图
2、软件设计
每一片DSl8B20在其 ROM 中都存有其唯一的48位序列号,在出厂前已写入片内 ROM中,主机在进入操作程序前必须逐一接入DSl8B20用读 ROM(33H)命令将该DS18B20的序列号读出并进行匹配。发表论文,STC89C51。
当主机需要对在同一总线的多个DSl8B20的某一个进行操作时,首先要发出匹配 ROM 命令(55H), 紧接着主机提供 64 位序列(包括该DSl8B20 的 48 位序列号) ,之后对每个DS18B20进行读取温度操作,把所读取的温度显示在液晶屏上。发表论文,STC89C51。让用户能实时、方便的观看每个点的温度。其软件流程图以及部分程序如下图所示。发表论文,STC89C51。
⑴软件流程设计
图2 总程序流程图
⑵部分程序如下
①.初始化
ds18b20_init(void)
{
charpresence=1;
while(presence)
{
while(presence)
{
DQ=1;_nop_();_nop_();
DQ=0;
delay(50); //延时550us
DQ=1;
delay(6); //延时66us
presence=DQ;
}
delay(45); //延时500us
presence=~DQ;
}
DQ=1; //拉高电平
}
②.读序列号
uchar *read_rom(void)
{
uchar rom[8],i;
ds18b20_init();
ds18b20_writecommand(0x33);//写命令
for(i=8;i>0;i--)
{
rom[i-1]=read_byte();
}
return&rom[0];
}
③.写一个字节
voidwrite_byte(uchar val)
{
uchar i;
for(i=8;i>0;i--)
{
DQ=1;_nop_();_nop_();DQ=0;_nop_();_nop_();_nop_();
_nop_(); //延时5us
DQ=val&0x01; //最低位移出
delay(6);//延时66us
val=val/2; //右移1位
}
DQ=1;
delay(1);
}
④.读一个字节
ucharread_byte(void)
{
uchar i;
uchar value=0;
for(i=8;i>0;i--)
{
DQ=1;_nop_();_nop_();
value>>=1;
DQ=0;
_nop_();_nop_();_nop_();_nop_();//延时4us
DQ=1;
_nop_();_nop_();_nop_();_nop_();//延时4us
if(DQ)value|=0x80;
delay(6); //延时66us
}
DQ=1;
return(value);
}
四、结束语
本文利用STC89C51单片机与DS18B20设计出多点温度测量系统,该系统具有性价比高、耗电低、体积小、稳定可靠等优点,可用于工农业生产以及科学研究中,具有极广泛的应用价值。
参考文献
[1]尹振红,范悦.DS18B20及其在多点温度检测中的应用[J].吉林工程技术师范学院学报(自然科学版),2007,(03)
[2]肖志飞,张铁肩,孙秋桐.基于DS18B20的单总线温度巡检系统[J].电子工程师,2005,(12).
[3]丁晓进,史小军,朱为,堵国梁.基于DS18B20的多点温度检测[J].电子工程师,2006,(07).
[4]徐文进,张阿卜.智能温度传感器Ds18b20在多路测温中的应用[J].现代电子技术,2004,(22).
[5]罗文广,兰红莉,陆子杰.基于单总线的多点温度测量技术[J].传感器技术,2002,(03).
|