基于AT89C51单片机为核心的多路温度采集系统电路设计
图5 DS18B20的内部结构图
DS18B20有4个主要的数据部件:
① 64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。
② 温度灵敏元件。
③ 非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。 ④ 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如表1:
表 1
TM R1 R0 1 1 1 1 1 LSB
MSB
其中,TM:测试模式标志位,出厂时被写入0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
配置寄存器与分辨率关系如表2 :
表 2
R0 0 0 1 1
R1 0 1 0 1 温度计分辨率/bit 9 10 11 12 最大转换时间/ms 93.75 187.5 375 750 (3)高速暂存存储器
高速暂存存储器由9个字节组成,其分配如表 3所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示。对
13
基于AT89C51单片机为核心的多路温度采集系统电路设计
应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表 3 温度低位 温度高位 TH TL 配置 保留 保留 保留 8位CRC MSB
LSB
温度值格式图DS18B20 温度数据表4:
表 4
23 MSB S
22 21 20 2-1 2-2 2-3 2-4 LSB S S S S 26 25 24 典型对应的温度值表5:
表 5
温度/℃ +125 +25.0625 +10.125 +0.5 0 -0.5 -10.125 -25.0625 -55 二进制表示 00000111 11010000 00000001 10010001 00000000 10100010 00000000 00001000 00000000 00000000 11111111 11111000 11111111 01011110 11111110 01101111 11111100 10010000 十六进制表示 07D0H 0191H 00A2H 0008H 0000H FFF8H FF5EH FE6FH FC90H (4)DS18B20使用的注意事项
DS1820虽然具有测温系统简单、测温精度高、连接方便、占用P口线少等优点,但在实际应用中也应注意以下几方面的问题:
①对硬件结构简单的单线数字温度传感器DS18B20 进行操作,一定要注意DS18B20对程序和电气参数的严格要求。
14
基于AT89C51单片机为核心的多路温度采集系统电路设计
②连接DS18B20的总线电缆是有长度限制的。所以在试验中,要考虑总线的选择和分布及与之相关的问题。
③有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20 序列号和自动排序,以减少调试和维护工作量。
④在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,实际应用时,不能挂接过多的DS18B20,若是挂得太多就要解决其驱动能力问题。
⑤在DS18B20测温实际应用中,一定要确保每个DS18B20都接触良好否则系统会陷入死循环,这一点在进行DS1820硬件连接和软件设计时也要给予一定要注意。
4 硬件电路设计
系统电路主要功能包括:多路温度采集及其相关处理,实时显示温度信息,硬件设计主要包括以下几个模块:电源电路、按键电路、液晶显示电路、温度采集电路、报警电路、复位电路、时钟电路等。具体硬件电路框图结构如图6:
电源 图 6 硬件电路框图结构
4.1 电源 4.1.1 电源电路
因为单片机工作电源为+5V,且电路功耗很小。采用电池组 和LM7805三端稳压片即可满足要求,使移动作业更方便。LM7805系列为3端稳压器件,能提供5V的输出电压。应用范围广,内含过流和过载保护电路,带散热片时能持续提供1.5A的输出电流。具体电路如下图7:
15
基于AT89C51单片机为核心的多路温度采集系统电路设计
图 7 电源电路
主要特点:
具有最大输出电流可达 1.5A、输出电压有5V、过热保护、短路保护等特点 电源电路其主要作用是为单片机提供工作电源。
4.2 功能按键 4.2.1按键电路
单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。具体电路如下图8:
图8 按键电路
开关状态的输入:
按键开关状态的可靠输入有两种解决方法。一种是软件去抖动:它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响。另一种为硬件去抖动:即为按键添加一个锁存器。两种方法都简单易行,本设计采用的是软件防抖动方式。
16