| 论文导读:本文提出利用美国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).
 
   |