DS18B20温度传感器的工作原理探析
2017-01-11徐锦钢鄢江西师范大学科学技术学院江西机电职业技术学院
徐锦钢鄢 妍/.江西师范大学科学技术学院 .江西机电职业技术学院
DS18B20温度传感器的工作原理探析
徐锦钢1鄢 妍2/1.江西师范大学科学技术学院 2.江西机电职业技术学院
本文围绕DS18B20温度传感器的工作原理展开论述,使用proteus仿真软件设计和绘制了DS18B20的测温电路图,并通过1602液晶显示器观察DS18B20测得的温度值,验证了DS18B20测温电路及程序设计的正确性,并给出了部分C程序代码。
DS18B20;测温;仿真
1.DS18B20温度传感器简介
DS18B20是DALLAS公司生产的一种温度传感器,具有体积小、先进的单总线数据通信方式、全数字温度转换及输出、测量精度可达土0.5℃、检测温度范围宽(可达-55℃~+125℃)等优点,因此使得DS18B20应用非常广泛[1]。
2.电路连接
电路连接如上图1所示,主要包括AT89S52单片机、DS18B20和1个1602型液晶显示器。DS18B20组成的温度测量系统线路非常简单,只要求1个接口就可实现通信,图中DS18B20的第2脚(DQ)即为数据通信端,接至单片机的P3.3口,传输命令字和温度信号。DS18B20的第3脚(VCC)接5V电源,第1脚(GND)接地。1602液晶数据端(D0-D7)接至单片机P0口,控制端(RS、RW、EN)分别接至单片机P2.0、P2.1、P2.2口。
图1 电路连接图
3.DS18B20单总线内部构造介绍
图2 DS18B20单总线开漏等效电路
单总线系统只有1根数据线,主机或者从机设备通过1个漏极开路或三态接口连接至该数据线,这样使得主机或者从机设备在不发送数据时可释放数据总线,以便总线可被其他设备使用。图2给出了DS18B20单总线开漏等效电路,单总线要求外接1个约为5K欧姆的上拉电阻,以保证总线闲置时为高电平,如图1中的电阻R1所示[2]。
4.DS18B20温 度传感器程序设计
单总线器件要求严格遵守相应的通信协议,如此才能保证数据传输的完整性,这种协议一般定义了若干种类型的信号,包括器件复位、读数据、写数据,均由主机(即单片机)发出同步信号,所有的命令字和数据字都是低位在前,高位在后。
本文编写了一个完整的DS18B20测量显示程序,主要包括DS18b20初始化函数、主机写字节数据函数、主机读字节数据函数、开始温度转换、温度获取及数据修正函数。下面以其中的前4个函数示例,并给出注解。
4.1 DS18b20初始化函数
单总线的所有操作均是从1个初始化序列开始的,初始化序列包括1个由总线控制器发出的复位脉冲和随后由从机回发的应答脉冲,函数程序代码如下:
void Init_DS18B20()
{
uint i;
DQ=0;//拉低总线开始复位
i=103;
while(i>0)i--;//短暂延时
ds=1;//主机写1,释放总线
i=4;
while(i>0)i--;//短暂延时
}
4.2 主机写字节数据函数
void write_byte(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
DQ=0;//主机拉低DQ
dat>>=1;//待输出位通过移位操作先进入PSW的CY位
DQ=CY;
delay(8);
DQ=1;
}
}
4.3 主机读字节数据函数
void read_byte()
{
uchar i,dat=0;
for(i=0x01;i!=0;i<<=1)
{
DQ=0;_nop_();//主机拉低DQ,开始读时隙
DQ=1;_nop_();//主机释放DQ,准备读
if(DQ)
{dat|=i;}//1us后主机开始读取1位
delay(8);//实际延时77us
}
return dat;//将读到的字节数返回
}
4.4 开始温度转换函数
void tempchang(void)
{
Init_DS18B20();//初始化
delay(1);
write_byte(0xcc);//写命令字0xcc,跳过读取ROM序列号
write_byte(0x44);//写命令字0x44,启动温度转换
}
5.电路功能测试
按照图1搭好电路后,调节DS18B20器件上的温度增减按键,模拟外界温度的变化,单片机在获取温度值后,将温度值显示在1602液晶上,如图中测得温度为26℃时,液晶也显示为26℃,见下图3所示,说明电路连接及程序编写均正确无误。
图3 测试结果
6.结束语
本文采用单片机作为主控制器,设计了基于DS18B20的温度测量显示电路,论述了DS18B20的工作原理,给出了部分测试程序并注解。通过测试,DS18B20能够正常测温,电路工作正常。
[1]DS18B20芯片手册[DB/OL].百度文库,2007-03.
[2]彭 伟.单片机C语言程序设计实训100例[M].北京:电子工业出版社,2014-03.
徐锦钢(1983-),男,江西高安人,讲师,硕士研究生,研究方向:电子信息工程。