0 引言
在工业生产及日常生活中,多点温度检测系统的应用十分广泛,例如消防电气的非破坏性温度检测,电力设备的过热故障预知检测,空调系统的温度检测,各类运输工具组件的过热检测,医疗与诊断设备的温度测试等。针对这一情况,本文设计了一种基于AT89C51、数字温度传感器DSl8820的多点温度检测系统,该系统利用DSl8820单总线的特点,可以方便地组建传感器网络,从而实现多点温度的测量。该系统设计灵活、抗干扰性好,可以在恶劣的工作环境中进行温度测量。
1 总体结构
设计的多点温度检测系统如图1所示。该系统主要由AT89C51单片微型计算机、键盘显示电路、温度显示电路、看门狗电路、温度测试电路、串口通信电路等组成。
2 硬件电路
2.1 温度测试电路
温度测试电路主要采用温度芯片DSl8820,它是DALLAS公司生产的一线式数字温度传感器,测温范围为-55~+125℃,测温分辨率可达O.062 5℃,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等特点,特别适合于构成多点温度测控系统。其内部结构如图2所示。
DSl8820有4个主要的数据部件:
(1)64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成;
(2)温度灵敏元件;
(3)非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限值;
(4)配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DSl8820在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图3所示。
图3中:TM为测试模式标志位,出厂时被写入0,不能改变;R0,Rl为温度计分辨率设置位,其对应4种分辨率如表1所列,出厂时R0,R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
高速暂存存储器由9个字节组成,其分配如图4所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第O和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图4所示。对应的温度计算:当符号位S=O时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
由于DSl8B20是单线数字温度传感器,因此它基本不需要外围电路就可以与单片机直接以1根线相连,图5为多个DSl8B20通过单总线与单片机相连的原理图,图中,DSl8B20采用外部电源供电方式。