新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于AT89S52温度自动控制检测系统设计

基于AT89S52温度自动控制检测系统设计

作者:时间:2013-08-23来源:网络收藏

4.2 温度检测
4.2.1 读取温度设计
DS18B20可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生电源为止。此外,还可外接5 V电源,给DS18B20供电。
读取温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。DS18B20的各个命令对时序的要求特别严格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高低位在后,低位在前,共12位数,小数4位,整数7位,还有一位符号位。
读取温度的主程序如下:
d.JPG
4.2.2 温度数据处理设计
读出温度数据后,TempL的低四位为温度的小数部分,可以精确到0.062 5℃,TempL的高四位和TempH的低四位为温度的整数部分,Tem pH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为3个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大干0.5℃的话,向个位进1;小于0.5℃的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最低温度只能为-55℃,所以可以将整数部分的最高位换成一个“-”,表示为负数。由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。温度高字节高5位是用来保存温度的正负,高字节低3位和低字节来保存温度值。其中低字节的低4位来保存温度的小数位。由于本程序采用的是0.062 5的精度,小数部分的值,可以用后四位代表的实际数值乘以0.062 5,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留一位小数即可。也就说,本系统的温度精确到了0.1度。
温度数据处理主程序如下:
e.JPG

5 结束语
基于AT89S52的自动温控系统能广泛地应用于工、农业及人们的居家生活中。由于本系统采用AT89S52开发,可以很方便地根据用户的要求实现不同的专用的自动温控系统,具有广阔的市场前景。

本文引用地址:http://www.amcfsurvey.com/article/170434.htm

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭