22001122年年电电子子设设计计竞竞赛赛课题:水温控制系统设计成员连文金、李宗艺、陈立镔2012年7月27日2摘要:为了实现水温控制系统的设计要求,通过对各模块电路方案的比较及论证,最后确定了这种以STC89C52单片机为核心的硬件电路,选用不锈钢封装/防水型DS18b20温度传感器测量水温,该传感器具有9~12位可调分辨率,感温范围在:-55℃~125℃,采用单总线连接,测量精度高,转换时间快,就有极强抗干扰纠错能力,在加上算法的精确控制,其精度足以满足题目要求。显示模块采用1602字符型液晶,并行接口,容易编程。除单片机可实现的恒值自动控制外,该系统还可通过键盘设定水温,在短时间内迅速加热。本系统实现了对一升净水的温度控制,即在40℃—90℃量程范围内对每一点温度的自动控制以保持设定的温度基本不变。关键词:STC89C52单片机、DS18B20温度传感器、1602液晶、继电器前言随着人们生活水平的提高,对生活环境的要求也越来越高,家用电器越来越趋向于自动控制控制乃至于智能控制,针对目前家庭的实际需要,自动控制水温系统比较方便实用,本文就通过51系列单片机来实现一种家用自动控制水温系统的设计。该家用自动控制水温系统能及时反映当前系统工作区的温度信息,温度信息通过液晶屏直观的显示给用户,用户可根据自己对水温的实用要求,通过键盘自行设定温度。3一、方案设计与论证1、任务设计并制作一个水温自动控制系统,控制对象为1升净水,容器不限。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。2.基本要求(1)温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。(2)环境温度降低时(例如用电风扇降温)温度控制的静态误差≤1℃。(3)显示模块仅限1602液晶显示器或者数码管,用十进制显示水的实际温度。3.发挥部分(1)采用适当的控制方法,当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。(2)温度控制的静态误差≤0.2℃。(3)在设定温度发生突变(由40℃提高到60℃)时,每秒自动将水温随时间变化的值发送到PC机的RS232串口,在PC端采用串口精灵软件接收水温变化数值。44.各种方案比较与选择对题目进行深入的分析和思考,可将整个系统分为以下几个部分:显示模块、输出控制模块、温度采集模块、按键控制模块、CPU、供电模块。4.1显示模块依据题目要求,只能从1602与数码管两种法案之间进行选择:而对这两种方案进行比较,1602的显示明显的比较美观、大方;而且能够让它显示一些控制参数,给用户更直观的体验。所以在此,我们选择1602作为我们的显示模块。4.2输出控制模块对于水温的控制,我们需要一个加热的装置,而我们选用功率一大一小的两个加热棒(板)分别对水温进行粗调和微调,可根据调温量选择不同功率的加热装置,所以我们用两个继电器作为开关量来控制加热装置的开启与关闭。4.3温度采集模块水温控制系统是一个过程控制系统,在设计的过程中,必须明确它的组成部分。过程控制系统的组成部分有:控制器、执行器、被控对象和测量变送单元,其框图如图1所示。图1过程控制组成框图5由图可知,在这个系统的设计中,主要设计如图几个部分。除此之外,根据题目要求,还要选取合适的控制算法来达到系统参数的要求。对于执行器件、测量变送元件将在部分电路设计中有说明。在这个部分我主要是对控制器的确定和控制算法的选择作一个详细的介绍。因为这两部分是实现本系统控制目的的关键。它们选取的好坏将直接影响着整个系统实现效果的优劣,所以这是一项不容怱视的工作。温度传感器方面,由于要在水下测温,我们首先想到的是:pt100、pt1000或DS18B20这三种芯片,采用pt100或pt1000,但使用时往往有可能因为某些原因导致整体系统不能达到pt100或pt1000自身所能实现的精度,且需配套使用AD7705A/D转换器,大大增加了复杂性和成本。况且在应用时,调理过程相当的复杂。价格比较贵。而采用DS18B20,该传感器测温范围为-55℃-+125℃,12位可编程测量分辨率为0.0625℃,在40~90℃的绝对精度也大多满足1℃。最重要的是,DS18B20传输方式为数字式,采用单总线专用技术,非常节约I/O口。既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)适配各种单片机或系统机,内含寄生电源,这大大降低了操作和编程的难度。相对于Pt100或Pt1000,DS18B20的价格低廉。所以我们选择DS18B20作为我们的温度采集芯片。64.4按键控制模块键盘功能:模式按键:可切换调试温度的幅度值(1,5,10);调温度加键,递增温度值;温度减键,递减温度值。所以我们设定三个按键作为我们温度控制按键4.5对于单片机的型号有如下两个方案:方案一:采用凌阳公司的SPCE061A单片机作为控制器的方案。该单片机I/O资源丰富,并集成了语音功能。芯片内置JTAG电路,故价格较高,相对性价比较低,且需要一定基础。方案二:采用STC89C52单片机实现系统中数据采集及处理,它是MCS-51系列单片机的派生产品,在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051兼容均为Pin-to-Pin,使用时容易掌握。将两个方案一比较便可得出一个结论,采用STC89C1单片机来实现本题目,电路简单,成本较低,经实验运行证明工作可靠,所以最后决定用STC89C52作为该控制系统的核心。74.6供电模块方案一:市场上成品电源,优点电流大,电流稳定,缺点重量太沉,价格太高。方案二:经变压器变压,整流,滤波,稳压后输出,节省资金,方便简单。所以我们采用第二个方案作为我们的供电模块。4.7温控模块加热装置:由于温度加热的过程中,会有一个热惯性,这无形当中加大了我们的控制难度,所以我们采用一大一小两个功率的加热片(棒)来使水温上升,在加热的过程中,我们通过继电器控制两个加热片(棒)的过程中,对于大功率加热棒及小功率加热片的上电模式进行适当的控制,一次来减小超调量。制冷装置:开始我们打算用市场上的制冷片来控制我们的水温下降,经调查发现,功率较高的制冷片普遍都比较贵,不符合我们的设计需求,而功率较小的制冷片制冷效果又很不理想,而且也不能在水下工作,所以我们只能放弃这个方案;然后我们就采用了家用迷你型小风扇来作为我们的制冷装置。最终方案的选择经过上述各个模块的分别讨论,本着简单、实用的原则,综合考虑硬件构成、软件编程的复杂程度以及价格和题目所要求的8精确度等因素,最后决定选用了一个比较典型的硬件方案:采用STC89C52芯片测温电路选用DS18B20集成数组测温电路加热装置采用继电器控制一大一小两个功率的加热片(棒)制冷装置采用继电器小型电风扇显示方式采用1602液晶键盘采用3个独立按键电源则采用经变压器变压,整流,滤波输出的两组12V。电源则采用经变压器变压,整流,滤波,稳压后输出的一组5V电源来完成该选题。二.系统的硬件设计2.1系统的整体设计:系统的设计思想:本系统STC89C52单片机为核心,采用温度传感器DS18B20,MAX232芯片及PID算法实现了对温度的精确控制。系统框图如图2-1实现对范围、温度值的设定,执行、显示实时温度。9图2-12.2仿真设计在做实际电路板之前,我们先对它进行软件仿真,以确保该方案的可行性,仿真电路如图2.2所示:图2.2经软件仿真调试,确定了该方案的可行性,所以我们开始下一步的硬件设计!2.3硬件原理图(protel)10电源部分:温度采集部分:11MCU部分:显示部分:12按键控制部分:继电器控制部分:13PCB板:三、调试、测试3.1测试参数测试环境:室内(常温),室内(风扇),室外(光照),室外(阴天)。测试过程:对于不同的环境,我们分别进行测试,记录在不同的环境中,我们对温度变化的粗调量及微调量,以便能够更精准地对水温进行控制。测试结果分析:如图14图中T为系统温度,Ta为设定温度。控温过程分三个阶段进行:快速加热、温度调节和恒温保持。其中第一阶段只有快速升温过程,后两阶段均由升温和降温过程即温度调节过程组成。根据设计需要对各阶段如下:在快速加热阶段即在温度达到Tr之前,加热速度要快,使系统温度在尽量短的时间内达到温度Ta。在达到Ta使就停止加热,之后由于热惯性,系统温度继续升高,使得系统温度超过Ta达到最高点A点。在温度调节阶段,以T1、T2为分界点,降温与升温过程重复出现。进入恒温维持阶段,要求系统温度T能稳定在设定温度Ta附近并保持足够的时间。曲线上A、B、C为极大值点,D、E、F为极小值点,他们的绝对值随时间增加都在减小,进入恒温维持阶段阶段后在误差允许的范围内趋于稳定。模型曲线中控制参量的确定:模型曲线中的控制参量值是在反复多次试验的基础上确定的。在模型曲线中,Ta是预设的温度值,Tr和T2是系统停止加热的起始点,T1是系统开始加热的起始点.15T1=Ta-T1=2℃,△T2=T2-Ta=-2℃是系统加热和调节过程中的两个门限值。在快速加热的过程中,当系统的温度第一次达到预置的某个阶段的设定温度即达到Tr时,系统就立刻停止加热。之后系统由于热惯性会继续升温到最大值A点,尔后开始降温;在降温过程中,T达到T1点即T-Ta=2℃时,系统开始预加热,即缓冲缓冲系统的温度下降的幅度;在升温过程中,当达到T2时即T-Ta=-2℃时,停止加热,防止由于热惯性导致的温度极大值过大。由此可见,Tr、T1和T2点的温度值是软件设计过程中需要考虑的重要参量。显示温度和实际温度的校准:水银温度的最小刻度为0.1℃,我们可以利用水银温度计的读数来校准液晶显示器1602的温度值。实验测量所得的数据如下表实际温度/℃显示温度/℃偏差/℃24.324.50.225.325.3029.129.00.132.432.30.11635.335.3044.144.00.155.455.30.1由上表可以发现显示温度始终比实际温度相差不大,符合题目要求。误差分析在加热的过程中,在某个时刻设置温度与实测温度之间的误差,其测量结果如下表所示设置温度/℃实测温度/℃超调量4039.31.75%55541.82%6060.30.5%7070.81.14%7575.70.93%8585.60.71%8988.80.22%分析:温度计的摆放位置和温度传感器的摆放位置不同,导致它们的误差大。175.结论在本系统的设计当中,硬件电路并不是很复杂,但开关电源电路需要很大负载电流的设计上,花了一些功夫。软件的设计稍微难点,在PID参数的设定上需要注意。本设计的任务是设计一种水温控制系统,究其实质是一个嵌入式应用软件的开发。通过了解现阶段各个领域中温度控制系统的应用方案以及使用场合,国内外嵌入式发展的现状,对比各种嵌入式处理器的性能和结构,最终选择了基于STC89C52的嵌入式控制系统。本文在嵌入式处理器的基础上设计了基于STC89C52的水温控制系统,硬件部分设计了外围扩展的DS18B20测温模块、按键模块、加热模块以及显示模块四个部分,测温模块主要包括DS18B20温度电路,按键模块主要由一位功能键和两位控制键组成,加热模块是在A口一个引脚上扩展的电源信号,显示模块由1602软件部分由主函数,温度控制,显示温度,等几部分组成。主要完成识别与采集温度数据,识别按键,显示当前温度以及设定温度和加热控制等任务。经过测试,程序基本达到了所需功能,程序运行安全可靠。在本设计中还有很多需要完善的地方:1.硬件采用一个DS18B20数字温度传感器,可以在单总线上扩展多个DS18B20,实现多点温度检测和控制。另外系统设计是18针对水体的温度控制,许多参数都是在水体的情况下设定的,有一定的应用局限性,可以在后续的完善工作中继续研究。2.系统可以采用远程控制的方式实现控制,那样应用将会更加普遍,当然需要了解较多的通信协议技术和相关的控制算法。这点我会在今后的学习和研究中注