1绪论
在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。
我们采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55至125 oC,最高分辨率可达0.0625 oC。DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
本设计的一种温度控制系统,用STC89C52单片机作为温控器,选用DS18B20数字温度传感器,测量范围0℃-~+100℃,使用LED模块显示,可任意设置上下限报警温度,采用数码管实时显示温度,通过串口利用单片机与上位机的通信,对温度进行采集、数据处理和控制。
2 设计要求
? 内容及要求:
研究单片机的温度监控系统,可以在PC机端实时监控系统温度,并根据当前的温度值对单片机系统进行控制。利用VB编制PC示例程序或采用串口助手在PC机上显示。
? 主要技术指标:
(1)、温度测量范围0-70℃; (2)、可以设置温度报警的上、下限; (3)、提供单片机按键控制温度上下限;
(4)、PC机软件实现对温度数据分析、统计和处理。
3温度监控系统的设计原理 3.1 系统原理
系统由单片机最小系统、显示电路、按键、温度传感器等组成。 ? 主控制器
单片机STC89C51 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节
- 1 -
电池供电。晶振采用12MHZ。复位电路采用上电加按钮复位。
? 显示电路
显示电路采用4 位共阳极LED 数码管,P0 口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。P2 口的低四位作为数码管的位选端。采用动态扫描的方式显示。
? 温度传感器
DS18B20 温度传感器是美国DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式
? 报警温度调整按键
本系统设计三个按键,采用查询方式,一个用于选择切换设置报警温度和当前温度,另外两个分别用于设置报警温度的加和减。均采用软件消抖。
3.2 DS18B20
DS18B20主要由寄生电源、温度传感器、64位串行ROM单线接口、存储中间数据的高速暂存器(内含便笺式RAM)、用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余检验码(CRC)发生器部分。
DS18B20管脚排列如图3-1所示。
图3-1 DS18B20的引脚图
本设计使用的是三引脚的产品。其中,1号引脚接地,2号引脚接数据端,3号引脚接电源。
? DS18B20的主要特点
数字型智能温度传感器有以下主要特点:
(1) 适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由
- 2 -
数据线供电 。
(2) 独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。
(3) DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的单总线上,实现组网多点测温 。
(4) DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 。
(5) 温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃ 。 (6) 温度分辨力可编程。DS18B20的数字温度输出可进行9~12位编程。 (7) 在实际应用时,需要在分辨力与转换时间两者之间权衡考虑。当DS18B20工作在12位分辨力时,温度与数字输出的对应关系见表3.1。 (8) 测量结果直接输出数字温度信号,以“一线总线”串行传送给 CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力 。
表3-1 DS18B20输出数据与温度的对应关系
温度/℃ +125 +85 +25.0625 +10.125 +0.5 0 -10.125 -25.0625 -55 数字输出(二进制) 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0001 1010 0010 0000 0001 1010 1000 0000 0000 0000 0000 1111 1111 0101 1110 1111 1110 0101 1111 1111 1100 1001 0000 数字输出(十六进制) 07D0H 0550H 0191H 00A2H 0008H 0000H FF5EH FE6FH FC90H ? DS18B20的测温原理
用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55℃的一个值。如果计数器在门周期结束前达到0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测量的温度大于-55℃。
同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如
- 3 -
果门周期仍未结束,将重复这一过程。
斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器得值和每一度的计数
值。温度测量电路的方框图如图3-2所示。
斜坡累加器 预置 计数比较低温度系数晶振 计数器1 加1 =0 预置 置位/清除 温度寄存器 高温度系数晶振 计数器2 停止 =0 图3-2 DS18B20温度测量原理图
4程序流程图及方案设计 4.1系统描述
采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100 摄氏度时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器STC89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC 机通信上传数据,另外STC89C52 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
该系统利用STC89C52芯片控制温度传感器DS18B20进行实时温度检测并显
- 4 -
示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。
4.2总体方案设计
温度计电路设计总体设计方框图如图1 所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,用3 位LED 数码管以串口传送数据实现温度显示。
图4-1 系统的总体设计
4.3程序设计分析
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20 的测量的当前温度值,温度测量每1s 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4-2所示。
- 5 -