引言
在工业生产及日常生活中,多点温度检测系统的应用十分广泛,例如消防电气的非破坏性温度检测,电力设备的过热故障预知检测,空调系统的温度检测,各类运输工具组件的过热检测,医疗与诊断设备的温度测试等。针对这一情况,本文设计了一种基于AT89C51、数字温度传感器DSl8820的多点温度检测系统,该系统利用DSl8820单总线的特点,可以方便地组建传感器网络,从而实现多点温度的测量。该系统设计灵活、抗干扰性好,可以在恶劣的工作环境中进行温度测量。
1 总体结构
设计的多点温度检测系统如图1所示。该系统主要由AT89C51单片微型计算机、键盘显示电路、温度显示电路、看门狗电路、温度测试电路、串口通信电路等组成。
图1 多点温度检测系统硬件框图
图2DS18B20内部结构图
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 DS18B20配置寄存器结构
图3中:TM为测试模式标志位,出厂时被写入0,不能改变;R0,Rl为温度计分辨率设置位,其对应4种分辨率如表1所列,出厂时R0,R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
表1 配置寄存器结构与分辨率关系表
高速暂存存储器由9个字节组成,其分配如图4所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第O和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图4所示。对应的温度计算:当符号位S=O时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
图4 DS18B20寄存器映像图
由于DSl8B20是单线数字温度传感器,因此它基本不需要外围电路就可以与单片机直接以1根线相连,图5为多个DSl8B20通过单总线与单片机相连的原理图,图中,DSl8B20采用外部电源供电方式。
图5 DSl8B20测温电路
2.2 键盘及显示电路
该系统采用的是矩阵式键盘,共组成20个按键,主要包括10个数字键以及“上限”、“下限”、“确定”等功能键。当有键按下时,8279产生中断信号送入单片机,然后转向相应的功能程序。
显示部分采用1片75451与5个LED数码管相连来实现动态显示,工作状况下,从左向右依次显示为通道号、温度的正负号、温度值的十位、温度值的个位以及温度值的小数点后一位。
2.3 电源电路
因为单片机工作电源为+5 V,且底层电路功耗很小,采用7805三端稳压片即可满足要求。具体电路如图6所示。
图6 电源电路图
2.4 看门狗电路
考虑到底层电路板的工作环境相对恶劣,单片机会受到周围环境的干扰,因而出现程序跑飞、死机等一些不可预知的不正常工作现象,工作人员也不可能到现场对单片机重起,本设计为单片机电路添加一个外部看门狗电路,定时查询单片机的工作状态,一但发现异常即对单片机延时重起,以保证系统安全可靠的运行。其电路如图7所示。
图7 看门狗电路
3 软件设计
系统的软件采用模块化方法进行编程,主要由主程序、数码管显示程序、键盘扫描以及按键处理程序、温度测试程序、中断控制程序等组成。其中主程序完成系统初始化和对采集到的温度进行计算等;键盘扫描电路及按键处理程序实现键盘的输入按键的识别及相关处理;温度测试程序主要完成由温度芯片传送数据的处理,并进行判断和显示;数码管显示程序完成向数码的显示送数,控制系统的显示部分;中断控制程序则实现循环显示功能。
系统程序流程图如图8所示。
图8 系统程序流程图
4 结语
利用AT89C51单片机和DSl8B20数字温度传感器可以实现多点温度的检测与控制。系统具有信号数字化、硬件简单化和抗干扰能力强等特点,如果与相应的可扩展接口芯片相连,则可实现更多路温度的测量与控制,以适应工业生产的需要。