一、目的与要求
利用DS18B20温度传感器实现温度测量,可以对多点温度进行实时测量。对实际测量精度进行测试与分析。
二、实验内容
1、方案确定
用atmega16单片机和三个18B20实现多点测温,并将测温结果在1602液晶上显示,将温度的限值存放在单片机的EEPROM中,可避免系统数据的掉电不丢失,每次上电都要从EEPROM中读取相应的温度限值,当温度超过上下限值时用1602液晶显示相关字符进行报警。三个18B20连接在一个端口上,通过主机发送相应的命令来实现对每个温度传感器的控制。
2、系统框图
其中EEPROM为单片机内置的512字节的掉电不丢失存储器。
3、1602液晶的使用说明
1602液晶的命令端口连接的是单片机上的PA5,PA6,PA7,数据端口为PD口,通过控制单片机给1602液晶相应的命令来实现显示相应的字符。部分代码对应的指令见附录一;
4、18B20温度传感器使用介绍
DS18B20是美国DALLAS公司推出的一款单线数字温度传感器。它具有:体积小,功耗低,精度高,可靠性好,易于单片机接口等优点,每片DS18B20都有唯一的一个可读出的序列号,同时DS18B20还采用了寄生电源技术,可以不用外接电源。综合以上特点,DS18B20特别适合于多点测温系统。
封装图如下:
18B20具有如下特点:
Ø 适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电
Ø 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
Ø 支持多点组网功能,实现组网多点测温
Ø 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内
Ø 温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃
Ø 可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温
Ø 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快
Ø 测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力
Ø 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
相关指令代码见附录二
5、程序流程图
主程序流程图:
18B20温度转换流程图:
6、系统主程序
/*使用1602液晶显示三点测温,时钟为16MHz,三个18B20共用一个端口,将温度限值存放到EEPROM中,当温度超过或低于限值时,1602显示Warning报警
见附件
用户3782352 2016-4-25 10:43
用户1374002 2013-9-30 10:01
用户1409404 2013-5-8 22:52
用户1015353 2012-7-19 23:12
很有参考价值