王 琪,朱光衡
南京化工职业技术学院自动控制系,江苏南京 210048
一种基于DS18B20的单点测温方法的研究
王 琪,朱光衡
南京化工职业技术学院自动控制系,江苏南京 210048
DS18B20为一线式数字温度传感器,具有耐磨耐碰、体积小、使用方便、封装形式多样、适用于各种狭小空间的特点。用于温度检测系统可实现温度的自动检测与转换,使系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。
温度测量;DS18B20;传感器
与传统的温度传感器相比,DS18B20数字式温度传感器能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,读出或写入信息仅需要一根口线进行,其电源可以从外部3V~5.5V的电压得到。总线本身也可以向其供电,而无需额外电源。因而可使系统结构更趋简单,可靠性更高。
对DS18B20进行初始化需遵循以下步骤:先将数据线置高电平“1”→延时(短时延时)→数据线拉到低电平“0”→延时480μs~960μs→数据线拉到高电平“1” →延时等待(如果初始化成功则在15ms~60ms时间之内产生一个由DS18B20所返回的低电平“0”→但是应注意不能无限的进行等待,否则会使程序进入死循环)→若CPU读到了数据线上的低电平“0”后,还要延时,延时的时间从发出的高电平算起(第5步算起)最少要480μs→将数据线再次拉高到高电平“1”后结束。 程序如下:
2)写操作过程:
数据线先置低电平“0”→ 延时15μs→ 按从低位到高位的顺序发送字节(一次只发送一位)→ 延时45μs→ 将数据线拉到高电平 → 重复上面的操作直到所有的字节全部发送完为止 → 最后将数据线拉高。程序如下:
当要对DS18B20 进行操作时,其操作流程为:
初始化 1-WIRE 总线 → 发送 ROM 命令 → 发送 Memory 命令→ 提取数据(最后一项可省略)。工作中系统对DS18B20的操作以ROM 命令(如表1)和RAM命令(如表2)形式出现。
表1 ROM指令表
表2 RAM指令表
DS18B20虽然具有测温系统简单、精度高、连接方便、占用口线少等优点,但在实际使用时也要注意几个问题,例如相对于较小的硬件开销就需要有相对复杂的程序进行补偿。另外在对其进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。还有在进行多点测温时要注意当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题等等。
[1]陶冶.基于DS18B20的单片机测温系统[J].农机化研究,2009(1).
[2]朱清慧,张凤蕊,翟天嵩.Proteus教程--电子线路设计、制版与仿真[M].北京:清华大学出版社,2008.
[3]王为青,程国钢.单片机Keil Cx51应用开发技术[M].北京:人民邮电出版社,2007.
[4]周月霞.DS18B20硬件连接及软件编程[J].信号与处理,2008(2).
TP212
A
1674-6708(2011)50-0223-02
王琪,讲师,工作单位:南京化工职业技术学院自动控制系,从事自动控制系统的教学与研究工作