种基于DS18B20的温度采集系统设计
扫描二维码
随时随地手机看文章
近年来,随着自动测试技术、计算机技术和微电子技术的迅猛发展,在温度测量领域,开发出一种新型的将数字电路和温度传感器集成在一起的数字式温度传感器。在数字式温度传感器的内部一般包含有温度传感器、接口电路、存储器(或寄存器)、信号处理器和A/D转换器。与传统的模拟温度传感器相比,数字式温度传感器在器件微小化、抗干扰能力、可靠性、分辨率以及精度方面都具有明显的优点,此外,其输出的温度数据以及相关的温度控制量能够与各种微处理器相适配。
1 硬件设计
1.1 温度传感器
该系统的温度采样元件采用DALLAS半导体公司生产的一线式数字温度传感器DS18B20,微处理器仅需要1条端口线即可实现与DS18B20的双向通信。DS18B20采用仅有3只引脚的小体积封装形式T0~92,包括共用地线、外供电源线和单线数据传输总线端口。DS18B20可提供两种不同的供电方式:一种是外部供电方式,外供电源线接+5 V,此种供电方式设计简单,在较短的时间内就能完成温度测量;另一种为数据线供电方式,要求外供电源线接地,数据线需用单片机的一个I/O口来实现上拉,空闲时通过内部电容从数据线获取能量,此种供电方式设计较复杂,完成温度转换的时间也相对较长。选择一线式数字温度传感器DS18B20的主要原因有以下几个方面:
1)系统的特性方面,温度测量范围在-55~+125℃之间,且在-10~+85 ℃温度范围内可满足±0.5℃的最低精度,温度A/D转换精度可编程为9~12位,温度转换值能够以16位二进制码的格式直接串行输出,完成12位高精度转换的最大时间需要750 ms,通过选择数据线供电方式,可以超低功耗工作。
2)系统复杂程度方面,因为DS18B20是采用单总线控制技术的器件,接口时仅需占用微处理器的其中一个I/O口,并且一条数据总线上可以同时连接几十个相同器件,测温时不需要其他任何外部元件,所以与传统的模拟传感器相比,接线的数量大大减少,系统的复杂程度大大降低,工程施工量也相应减少。
3)系统的调试和维护方面,系统接口由于引线的减少而大大简化,系统调试更加便利,同时由于DS18B20属于全数字元器件,其故障率非常低且抗干扰性很强,因此系统的日常维护工作轻松许多。
4)系统成本方面,随着微电子技术和计算机技术的迅猛发展,集成电路的功能不仅越来越强大,其体积也变得越来越小,且价格也越来越便宜。
1.2 电路原理
本系统采用AT89C51单片机作为控制核心,AT89C51是一种带有4 K字节FLASH闪速存储器的低电压、高性能8位CMOS微处理器,带有128字节的内部RAM、2个16位定时/计数器、32个I/O口、1个5向量两级中断结构、片内振荡器及时钟电路。此外,AT89C51能够降至0 Hz的静态逻辑操作,可以支持软件可选的两种节电工作模式。处于空闲工作模式时,CPU停止工作,但允许RAM、定时/计数器和中断系统继续工作。
电路原理图如图1所示,DS18B20的供电方式采用外部电源,数据线通过一个4.7 kΩ的上拉电阻接在单片机AT89C51的P1.7口,其他2只管脚分别对应接电源和地,此方式安全可靠且编程简单。
温度显示采用四位七段共阳LED数码管,间隔2 ms通过位选通信号P20、P21、P22、P23逐个点亮各个LED数码管,实现温度值的动态显示,可显示-55~+125℃温度测量范围。
2 软件开发流程
2. 1 主程序
主程序主要负责通过DS18B20读取到的当前温度测量值和温度的实时显示,由于DS18B20的12位精度的转换时间约为750 ms,可以每隔1 s进行一次温度测量,其程序流程图如图2所示。
2. 2 读温度子程序
读温度子程序的功能主要是从RAM中读取9字节数据,同事还需进行CRC校验,当校验出错时不再进行温度数据的读写,其子程序流程图如图3所示。
2.3 温度转换命令子程序
温度转换命令子程序的主要功能为发送温度转换开始命令,当设置为12位采样分辨率时完成转换时间约为750ms,故本程序设计中使用显示程序延时法来等待转换完成,延时时间设为1 s,其子程序流程图如图4所示。
2.4 计算温度子程序
计算温度子程序的功能是从RAM中读取值数据并进行BCD码转换运算,还需要判定温度值的正负,其子程序流程图如图5所示。
2.5 显示数据刷新子程序
显示数据刷新子程序的功能是刷新显示缓冲器中的显示数据,当显示最高位为0时需将符号显示位移到下一位,其子程序流程图如图6所示。
3 结论
此设计基于DS18B20的温度采集系统具有测温精度高、占用口线少、结构简单、连接方便、成本低等优点,但是硬件电路的简洁是以牺牲软件为代价的。由于DS18B20与单片
机AT89C51之间采用串行数据传送,所以,在对DS18B20进行读写操作时,必须保证严格的读写时序,否则将无法正确读取测温结果。