微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于AVR单片机的温度测量系统

基于AVR单片机的温度测量系统

时间:01-20 来源:互联网 点击:



然后,把功能函数的头文件包含到程序中才能调用头文件中的功能函数,头文件存放于"..\INC"目录下。该温度测量系统用到的功能函数在"ds18b20.h"、"1WIRE.h"、"LCD.h"这3个头文件中。

在调用功能函数对DS18B20进行操作时,由于每片DS18B20都有唯一的代码(64位产品序列号),在多点温度测控系统中,代码是识别和操作DS18B20的基础,无论读取还是选择对某一个传感器进行操作,主机必须发送64位代码。如果只有1个DS18B20,就不需要ROM码,指针addr要设为NULL(0)。如果有多个器件,首先要读ROM码对每一个器件进行识别,然后才能在调用时对需要的器件通过ROM码进行地址匹配。程序先对I/O口初始化操作,然后利用头文件ds18b20.h中的函数floatds18b20_temperature(unsigned char*addr)读取温度值。由函数定义可知,该函数的返回值是浮点型数据,提取各个位的值时需要进行整除和取余操作。由于浮点型数据无法进行整除和取余操作,需要先转化为长整型数据。浮点型数据转化为长整型数据时,小数点后的值会丢失,为了保持小数点后的数值不会因为转化为长整型后丢失,同时对浮点型数据乘以1 000,这样就可以分离出百位、十位、个位、十分位、百分位、千分位的值。将分离出来的各个位的值分别转化成LCD的字符码,即可显示将LCD的字符码传送到LCD,并显示出来。




4实验结果

为了检测测量系统的准确性,进行了温度测量实验。由于铂电阻温度传感器的精度高,稳定性好,应用温度范围广,因此,作为一种常用的温度检测器,不仅广泛用于工业测温,而且被制成各种标准温度计。这里,采用PT1000作为标准温度计。将DS18B20和PT1000捆绑在一起放入高低温箱中进行测试,通过改变高低温箱的温度,待箱中温度稳定后,记录在液晶显示器上显示温度值;同时用高精度万用表测PT1000铂电阻的具体阻值,然后根据PT1000的分度表算出温度值,将两者数值对比即可算出系统的误差。表1给出测试结果。可见,DS18B20与PT1000铂电阻所测的温度吻合得很好。这说明该温度测量系统的测量准确可靠。

5结语

该温度测量系统硬件设计简单,充分利用编译器CodeVisionAVR C Compiler的库函数,省去编写驱动程序的麻烦,大大缩短了开发周期,并且具有抗干扰能力强,扩展方便,廉价和适用的特点,可以扩展进行多点测量,而且同样只占用一个I/O口,在温度测量系统中具有广泛的应用价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top