关于DS18B20在单片机中的应用

(整期优先)网络出版时间:2022-09-21
/ 2

关于DS18B20在单片机中的应用

魏文燕

武汉东湖学院

摘要DS18820是美国DALLAS半导体公司生产的单总线数字温度传感器,它可直接实现数字化输出和测试,具有控制功能强,高精度,传输距离远,抗干扰能力强,微型化和微功耗等特点.本文介绍了单线数字温度传感器DS18820的结构,特点和工作原理;在蓝桥杯CT107D开发平台了上利用DS18820测量正负范围内带小数的实时温度并显示,测量系统的硬件结构及设计C51程序所注意事项。

关键词:DS18820实时测温正负温度

Abstract:DS18820 is a single bus digital temperature sensor produced by DALLAS Semiconductor Company in the United States. It can directly realize digital output and test, with strong control function, high precision, long transmission distance, strong anti-interference ability, miniaturization and micro-power consumption. This paper introduces the structure, characteristics and working principle of single-wire digital temperature sensor DS18820. On the development platform of Lanqiao CT107D, DS18820 is used to measure the real-time temperature with decimal in the range of positive and negative and display the hardware structure of the measurement system and the matters for attention in the design of C51 program..

Keywords:DS18820,real-time temperature measuring,the positive and negative temperature

温度传感器是比较常用的一种传感器,早期多使用模拟式温度传感器,如热敏电阻;随着科技进步,现在温度传感器多用数字式的,如DS18B20。DS18B20是常用的数字温度传感器,因其体积小、抗干扰能力强、精度高、接口简单等特点,广泛应用于生产、生活多个领域,如粮仓、储罐、冷柜等测温场合。美国DALLAS公司推出的DS18B20采用单总线协议,即于单片机连接时仅仅需占用一个I/O端口,无需其他外围电路,直接将环境温度转化成数字信号,以数字码方式串行输出,简化了传感器与微处理器的接口。

DS18820有两种供电模式:外部电源供电和寄生电源供电。在外部电源供电方式下,DS18820工作电源由VCC引脚接入,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接多个DS18820组成多点测温系统。在外部供电方式下,GND不能悬空,否则不能转换温度,读取的温度总是85℃。外部电源供电是最佳方式,工作稳定可靠,抗干扰能力强,而且电路比较简单,可以开发稳定可靠的多点温度监控系统。同时在这种供电方式下,可以充分发挥DS18820宽电压范围的优点,即使电源电压VCC降到3V,依然保证温度测量精度。

在寄生电源方式下,DS18820从信号线上汲取能量;在DQ处于高电平期间把能量存储在内部电容里,在DQ处于低电平期间消耗电容上能量,直到高电平再次给电容充电。要使DS18820准确的进行温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18820在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行测温时,只靠4.7K上拉电阻无法提供足够的能量,会造成无法转换温度或温度误差较大。因此,这种方式比较适合用于单个测温或者不适宜采用采用电池供电系统的情况,并且工作电源必须保证达到5V,当电源电压下降时,寄生电源能够汲取的能量也降低了,会使温度误差变大。同时由于多种因素也可能咋农村寄生电源汲取能量不够而引起不能正常测温或误差较大的现象,因此在开发测温系统时不建议直接使用寄生电源供电,可以在此基础上采用寄生电源强上拉供电方式。

为了使DS18820在温度检测周期内获得足够的电流供应,当进行温度转换或拷贝到EEPROM存储器操作时,用MOSFET把I/O线直接拉到VCC就可以提供足够电流,在发出任何涉及拷贝到EEPROM存储器或启动温度转换的指令后,必须在最多10us内把I/O线转换到强上拉状态。强上拉方式可以解决电流供应不足的问题,适合多点测温的应用,但需要多占用一根I/O口线进行强上拉切换。

DS18820可采集正、负温度,其结果以补码形式存放在高速暂存器的字节0和字节1中,如图1所示.

图1 温度存放格式

现在利用蓝桥杯CT107D开发平台完成DS18820正负温度范围内带小数实时测量,并用数码管显示。数码管驱动采用I/O访问模式,将条线J13调整为IO模式。利用定时器0产生1ms定时中断,每隔1ms刷新一次显示,每隔100ms进行一次温度转换。

图2 读取温度代码

如图2所示,将高速暂存器中字节0、字节1中的内容存入变量low、high中,并将high作为16位变量temp的高八位,low作为变量temp的低八位。

图3 判断正负温度代码

如图3所示,将temp赋值给temperature,如果temperature大于或等于零则温度为正的,否则温度为负,是以补码形式存入,需对其求补并显示负号。

图4 处理小数点代码

如图4所示,转换后的温度从高速暂存器中取出后并未带小数点,经“temp=high<<8;temp|=low;”后,temp已经扩展100倍,因此temperature的千位上的值,实际是十位值;百位上的值是个位值;十位值是小数点后一位值;个位是小数点后两位值。经过读取温度,判断正负,处理小数点后调用显示函数显示。

参考文献:

[1] DS18B20数据手册

[2] [1]李钢, 赵彦峰. 1-Wire总线数字温度传感器DS18B20原理及应用[J]. 现代电子技术, 2005, 28(21):77-79.

作者简介:魏文燕(1986-),女,江西南昌人,武汉东湖学院电子信息工程学教师,助教。在武汉东湖学院任职期间,主要承担《单片计算机原理与接口技术》等专业理论课程和实验课程的教学,参与蓝桥杯竞赛的学生培训。