新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种基于51单片机的多功能温度控制器的设计

一种基于51单片机的多功能温度控制器的设计

作者:时间:2011-11-28来源:网络收藏

1.2 按键电路
采用2×3的小键盘,键盘的识别可以采用两种方法:行扫描法和行反转法。两种方法都要注意消除按键的抖动。文中采用行扫描法并做成子程序,出口参数为按键的键值。定义键K1设置TH,K2设置TL,K3调高TH或TL,K4调低TH或TL,K5对TH或TL的数值进行确认。
1.3 温度检测电路
温度检测电路采用智能温度传感器DSl8820,它与单片机相连只需要3线,减少了外部的硬件电路。DSl8820主要性能特点如下:
(1)测温的范围为-55~125℃,最大分辨率可以达到0.0625℃;
(2)电源电压范围为3.0~5.5V;
(3)供电模式:寄生供电和外部供电;
(4)封装形式有两种:3脚的TO-92封装和8脚的SOIC封装;
(5)可编程的温度转换分辨率,分辨率为9~12位(包括1位符号位),由配置寄存器决定具体位数,配置寄存器的格式如表1所示。

其中RlR0是用来设定分辨率的,分辨率的定义如表2所示。


由表2可以看出,分辨率设定得越高,温度转换所需要的时间就越长,因此应根据实际应用的需要来选择合适的分辨率。本文中选取12位分辨率,每隔1秒检测一次温度。12位分辨率的温度数据值格式如下:

当S=0表示测得的温度为正值,当S=l表示测得的温度为负值。
1.3.1 DSl8820的存储器结构
DSl8820的存储器有高速暂存RAM和非易失性电擦写EEPROM。高速暂存RAM的内容从低字节到高字节9个字节依次为:温度LSB、温度MSB、高温限值字节TH、低温限值字节TL、配置寄存器、保留、保留、保留,最后一个字节是前8个字节的CRC码。EEPROM用来存储TH和TL。
1.3.2 温度数据的处理方法
从DSl8820读出的两个字节的二进制值温度必须先转换成十进制数值,然后才能将其ASCII码送往显示。12位的分辨率,温度是以0.0625步进的,由于两个字节的温度采用补码表示,所以先判断读出温度的最高位是0还是1,即判断是正温还是负温,然后对其求补码转化成正温,之后将高字节的低4位和低字节的高4位组成一个字节,这个字节的二进制值不断除以10得出的余数即为温度值的个、十、百位值。若读出的温度数值是负数,显示处理时,在温度数的前面人为显示负号即可。对小数部分的温度只需将低字节的低4位乘以0.0625,然后对乘积取其小数点后的一位数即可。



评论


相关推荐

技术专区

关闭