您当前的位置:五五电子网电子知识电器控制温度控制电路基于AT89S51单片机高精度采样的温度控制系统设计 正文
基于AT89S51单片机高精度采样的温度控制系统设计

基于AT89S51单片机高精度采样的温度控制系统设计

点击数:7663 次   录入时间:03-04 11:47:46   整理:http://www.55dianzi.com   温度控制电路

  本文主要介绍利用AT89S51单片机设计的高精度采样的温度控制系统,利用一个I/O口完成多点温度的检测和环境温度的检测。

  1.概述

  AT89S51单片机处理系统的数据、控制升降温设备及显示。温度采集核心部件采用DS18820温度传感器,其内部采用温度一频率变换方法进行温度采集,采集后的温度数据采用数字信号输出,分为9位、10位、11位和12位,经处理后测温精度可达到0.5℃、0.25℃、0.125℃和0.0625℃,采集数据耗时分别为93.75ms、167.5ms、375ms和750ms。显示部分采用MAX7219芯片驱动数码管。

  2.硬件设计

  该系统构成框图如下图所示。

系统构成框图

  2.1工作原理

  温度传感器DS18820从设备环境的不同位置采集温度,单片机AT89S51获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(风扇),当采集的温度经处理后低于设定温度的下限时,单片机通过三极管驱动继电器开启升温设备(白炽灯)。

  当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。

  系统采用一片2816A(电可擦写)存储器存储温度变化时的历史数据,以便观察整个温度的控制过程及监控温度的变化全过程。

  本系统通过中断的方式设置5个按键,分别为步进选择、加减键、模式选择键、移动键和模式切换键,实现温度上下限的手动设置,以及对上下限温度的录入、历史温度的查询和系统模式切换。

  为实现对温度的智能控制,本系统还支持预设一组随时间变化而变化的温度上下限,控制环境温度随时间变化而不断调整,达到让环境温度跟随预先设定的温度值变化的效果,从而实现环境温度的变限控制。

系统原理图

  系统原理图如上图所示。

  2.2温度传感采集单元

  温度采集部分原理图见上图,具体工作原理如下:DS18820测温原理如下图所示,低温系数晶振的振荡频率受温度影响很小,用于产生固有频率的脉冲信号送给计数器1;高温系数晶振随温度变化其振荡率改变明显,产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃对应的一个基数值。计数器1对低温系数晶振产生的脉冲信号进行减法记数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器2的值减1;再重新装入计数器1的预置值,然后重新开始对低温度系数晶振产生的脉冲信号进行记数,如此循环直到计数器2记数到0后,停止温度寄存器值的累加,此时温度寄存器中的数值即为被测温度值。

DS18820测温原理

  主机控制DS18820完成温度转换需经初始化、ROM操作指令、存储器操作指令三条指令。单片机系统所用的晶振频率为6MHz,根据DS18820的初始化时序、写时序和读时序,分别编写3个子程序。所有的数据读写均由最低位开始,在数据线上加4.3kΩ的上拉电阻,其它2个脚接地。由于采用单总线数据传输方式,DS18820的数据I/O均由同一条线完成,因此,对读写的操作时序要求严格。为严格保证DS18820的I/O时序,需要做较精确的延时。在DS18820操作中,用到的延时有15μs、90μs、270μs、540μs。

  2.3显示单元

  显示部分由MAX7219和两个4位数码管构成,具体工作原理如下:

  MAX7219为高集成化的串行输入/输出的共阴极LED显示驱动器,每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,与微处理器的相连只须3:根线。MAX7219内部集成有BCD码译:码器、多位扫描电路、段译码器、位驱动器。和用于存放每个数据位的8×8静态:RAM以及每个工作寄存器,通过指令设一置不同的工作寄存器,可以使MAX7219进入不同的工作状态。串行接口的传输速率可达10MHz;独立的发光二极管段控制;译码与非译码两种显示方式可选数字和模拟两种亮度控制方式;可以级联使用。本系统采用串行口向MAX7219传输数据,显示采用8位LED,MAX7219与89S51单片机的连接采用任意3个端口相连,如图2所示。

  系统在显示温度前,先对显示单元进行初始化,即显示模式、扫描位数,显示亮度、显示控制,然后将显示缓冲区内的8个字节的待显示数据送到MAX7219的内部存储器,通过串行口向显示单元传送数据,并且结合P2.6向MAX7219传送加载信号。

  2.4按键单元

  该系统设置了五个按键,分别是模式控制键(MOD)、加键(ADD)、减键(SUB),步进控制键(BUJIN)和修改移位键(MOVE),MOVE、ADD、SUB、BUJIN分别接单片机AT89S51的P1.7、P1.6、Pl.1、P2.5I/O口,且用一片74LS04,将MOVE、ADD、SUB的输入信号先“与”后再连接到AT89S51的P3.3(INTl)口,MOD按键输入信号直接接到AT89S51的P3.2(INTO)口。具体连接图见图2。

  系统工作时,按键MOD对系统的工作模式进行循环切换,当系统处于工作模式一时,通过BUJIN键选择调整上下限的步进幅度,同时可通过ADD、SUBB键对上下限进行加、减调整;当系统处于模式二时,系统进入温度控制状态,当系统处于加温或降温状态时不允许进行模式切换;当系统处于模式三时,通过ADD和SUBB键对历史温度进行上翻和下翻查询。

  2.5温度控制设备以及超温报警驱动当采集的温度经处理后超过规定温度上限时,单片机通过P1.4输出控制信号驱动三极管Dl,使继电器Kl开启降温设备(风扇);当采集的温度经处理后低于设定温度下限时,单片机通过P1.5输出控制信号驱动三极管D2,使继电器K2开启升温设备(白炽灯)。具体电路连接如下图所示。

具体电路连接

  3.软件设计

主程序流程图

  主程序流程图如上图所示。外部中断1处理子程序流程图如下图所示。

外部中断1处理子程序流程图

  中断处理子程序流程图如下图所示。4.测试分析测试(1):当箱体在升温和降温时,箱内温度的变化随升温设备和降温设备变化的情况,以及正常工作时箱内温度采集的情况,分析箱内的温度变化情况,以及环境温度对箱内温度的影响情况。

中断处理子程序流程图

  测试(1)的目的是得到箱内温度采样精度,分板系统对箱内温度的控制能力,以及外部环境温度对箱内温度控制的影响程序。

  测试(2):根据工艺加热过程对温度的需求,作出温度变化曲线,为方便观察,系统以5分钟表示12小时,对箱体温度进行控制,做好温度记录,并分析温度变化曲线,测试箱内温度控制得到的温度变化曲线,与实际需要的曲线进行比较。

  测试(2)的目的是分板箱内温度能够跟随预先设定的温度变化曲线。

  测试结果分析说明:

  ①根据测试(1)的测试结果分析显示,采集温度的线性相当好,采样精度能达到0.03℃,温度控制误差约为0.06℃,且在测试过程中,时间显示正常。

  ②根据测试(2)分析,将箱体内温度传感器采集的温度数据,与温度计采集的数据,绘制成温度变化曲线图,通过作图比较,温度在变限控制过程中能较好的跟随温度曲线的变化。

  ③通过测试分析,对于实际箱体内的温度控制,可以再提出以下2点方法:Ⅰ增加传感器个数,对各个温度传感器采集的数据进行求算术平均,可得到较为准确的温度值。

  Ⅱ对实际箱体内的温度控制,可采用功率较大的电炉,并且通过风扇对箱内温度进行充分搅和,降温设备可采用空气压缩机等制冷设备。

  ④通过实验测试和分析,发现虽然传感器的温度采集精度最高可得到0.06℃,但测试得到的数据最小间隔为0.03℃。通过分析,当对浮点数求平均处理时,遇到同一时刻两个传感头采集的温度相差不大,使0.06℃时求出平均温度变为0.03℃。为了解该数据是否真实,可采用一个高精度的数字温度计测试,发现读出的值与其基本一致,由此推断如果在同一时间增加采集温度的个数,则可以进一步提高温度的精度。




本文关键字:单片机  控制系统  温度控制电路电器控制 - 温度控制电路