基于单片机的温度控制系统设计摘要:这次综合设计,主要是设计一个温度控制系统,用STC89C52单片机控制,用智能温度传感器DS18B20对温度进行采集,用LCD1602液晶显示屏将采集到的温度显示出来。系统可以有效的将温度控制在设定的范围内。如果实际温度超出了控制范围,则系统会有自动的提示信号,并且相应的继电器会动作。我们的实际生活离不开对温度的控制,在很多情况下我们都要对我们所处的环境进行温度检测,然后通过一定的措施进行调节,从而达到我们自己想要的温度,使我们的生活环境更加适宜。关键字:单片机;液晶显示屏;温度传感器;继电器;提示信号Abstract:Thisintegrateddesignisthedesignofatemperaturecontrolsystem.AsmarttemperaturesensorDS18B20isusedtocollecttemperatureandaLCD1602LiquidScreenisusedtodisplaythecollectedtemperature.ThesystemcontrolledbySTC89C52caneffectivelycontrolthetemperaturewithinthesettinglimits.Iftheactualtemperatureexceedsthesettingrange,thesystemwillautomaticallygivesignal,andthecorrespondingRelaywilltakerelatedactions.Itisnecessaryforustocontrolthetemperaturebecauseinmanysituationsthetemperaturearoundusisnotproperforus.Soweneedtodetectitandtakesomeactionstoadjustittothetemperaturewewanttomaketheenvironmentaroundusbetter.KeyWords:DS18B20;LCD1602;STC89C52;Relay;Signal引言目前,测控系统在工业生产中起着把关者和指导者的作用,它从生产现场到各种参数的获取,运用科学规律和系统工程的做法,综合有效地利用各种先进技术,通过自动手段和装备,使每个生产环节得到优化,进而保证生产规范化,提高产品质量,降低成本,满足需要,保证安全生产。传统的测控系统主要由“测控电路”组成,所具备的功能较少,也比较弱。随着计算机技术的迅速发展,使得传统的系统发生了根本性的变化,即采用微型计算机作为测控系统的主题和核心,代替传统测控系统的常规电子线路,从而成为新一代的微机化测控系统。目前,单片机在工业控制系统诸多领域得到了极为广泛的应用。特别是其中的C51系列的单片机的出现,具有更好的稳定性,更快和更准确的运算精度,推动了工业生产,影响着人们的工作和学习。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面,随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会.而今,空调等家用电器随着生产技术的发展和生活水平的提高越来越普及,一个简单,稳定的温度控制系统能更好的适应市场。为了满足当前社会市场需求,我设计了此温度控制系统,以STC89C52为核心,以及液晶显示器,电磁继电器,电阻,按键等元件作为辅助,以电路分析作为理论指导和理论基础,设计出此系统,将被控对象的温度控制在一定的范围内,通过液晶显示器直观的显示出来,并且通过发光二极管,蜂鸣器等不同的信号告诉我们现在的温度在什么范围内,以便于我们做出相应的处理措施。1设计方案及原理1.1系统总体的设计方案首先由智能传感器(DS18B20)采集到温度,通过单片机的P3.7口将采集到的数据信息输送到单片机中,经过微处理器对其进行运算,并且和设定的值进行比较,然后根据比较的结果,即根据温度信号所在的范围,微处理器执行相对应的操作。由于我们所处的环境对温度的这个系统还具有温度范围调节功能。例如:若检测到的温度在最高温度和最低温度之间,则黄灯亮,若检测到的温度比最低温度低,则绿灯闪烁,蜂鸣器发出声音,继电器闭合开始加热,若检测到的温度高于最高温度,则红灯闪烁,并且蜂鸣器发出警报。1.2系统组成框图本系统组成主要有以下部分:温度采集部分、数据运算处理部分、温度显示部分以及相应的提示信号部分。温度采集DS18B20STC89C52与设定值进行运算比较根据比较结果CPU执行相应指令图1总体结构图1.3系统原理组成和系统结构这个智能温度控制系统由温度采集模块、温度显示模块、温度比较模块、处理模块等四大模块组成。系统具体运行过程如下:首先由智能温度传感器DS18B20从外界环境中采集到被测温度信号,将此信号发送到STC89C52单片机,然后单片机执行相应的指令,使继电器,发光二级管,蜂鸣器做出相应的动作。2硬件设计此系统的硬件电路包括以下部分,STC89C52单片机、LCD1602液晶显示屏、DS18B20、蜂鸣器、发光二极管、电磁继电器、加热装置、电阻、直流电压源、贴片按键以及晶振、导线等部分组成。系统总体来说由四大部分构成:温度范围设定,温度采集,数据处理,温度显示,处理机构等。最初温度范围设定在软件中,但是可以通过按键对其进行调整。温度采集采用的是温度智能传感器(DS18B20),这个智能传感器和单片机接口只需要一个I/O口,硬件电路连接比较方便,并且具有极强的抗干扰纠错能力。数据处理采用的是STC89C52单片机,当温度低于设定温度时,绿灯会闪烁,并且蜂鸣器发出响声,继电器会闭合,进温度显示行加热;当温度高于设定温度时,红灯会闪烁,蜂鸣器发出警报;当温度在设定范围内时,黄灯亮。温度显示采用的是1602液晶显示器。显示器上会显示出当前温度、最高温度、最低温度。X1CRYSTALC130pFC130pF图2晶振电路:为单片机提供时钟信号R1410kC310ufR151k图3复位电路P2.4R171k+5vQ2PNPL15V+12vD4DIODERL1RLY-SPCO图4继电器电路原理:当单片机P2.4引脚输出低电平时,三极管导通,则继电器线圈中会有电流流过,电流会产生电磁场,在电磁场的作用下,开关会被吸合。当P2.4为高电平时,三极管处于截止状态,则线圈中没有电流流过,因此开关因失去磁场的吸合力而断开。继电器电路中二极管的作用:由于当P2.4由低电平突然变为高电平时,继电器线圈中的电流会突然消失,根据电磁感应原理以及楞次定理,线圈两边会产生一个瞬时的反向高压,为了防止线圈产生的瞬时高电压形成闭合回路,产生大电流,因此,在中间加一个反向二极管,起到抑制反向电流的作用。R13600R14600D1LED-REDD2LED-GREENR18600D5LED-YELLOW图5温度范围指示灯依次为绿、红、黄P1.0Q1PNPD3DIODER161kBUZ1BUZZER图6蜂鸣器电路图原理:当P1.0为低电平时,三极管导通,则蜂鸣器中有电流流过,因此蜂鸣器发声。当P1.0为高电平时,三极管截止,蜂鸣器由于没有电流通过,因此停止发声。50.0DQ2VCC3GND1U2DS18B20R110k图7温度传感器电路原理:DS18B20在出厂时默认配置为十二位,其中最高位是符号位,因此温度值共11位,单片机在读取数据时,一次会读2字节共十六位,读完后将低11位的二进制数转换成十进制数再乘以0.0625便为所测的真实值。另外,还需要判断温度的正负。前五位数字是符号位,这五位同时变化,我们只需要判断11位就可以了。前五位为1时,读取温度为负值,则测量到的数值需要求出补码(求反加一),再乘以0.0625才得到实际温度值。前五位为0时,读取温度为正值,只要将测得数值乘以0.0625即可得到实际温度值。D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016L图8显示部分原理:此温控系统的显示采用的是LCD1602液晶显示器,各个引脚的功能和作用如下:VSS连接电源地,VDD连接电源正极,VO是液晶显示对比度调节端,RS是数据/命令选择端,RW是读写选择端,E是使能信号端。D0~D7是数据端。通过RS确定是写数据还是写命令。写命令包括液晶光标显示不显示、光标闪烁不闪烁、需不需要移屏、在液晶的什么位置显示,等等。写数据是指要显示什么内容。读/写控制端设置为写模式,即低电平。将数据或命令送达数据线上。给E一个高脉冲将数据送入液晶显示器,完成写操作。R210kR310kR410k图9按键电路图原理:由电路图可知某个按键被按下的标志是这个按键所对应的引脚的电平由高电平变为低电平。因此,微处理器只需要检测P1.2、P1.3以及P1.4的电平变化然后经过去抖动后,若对应的引脚依然为低电平,则表示此键被按下。若电平由低变成高,则表示按键弹起。3软件设计开始获取温度温度显示判断按键去抖再次判断调节设定值温度比较相应提示动作结束YYNN4系统仿真及调试我的程序是在KeilC软件中编写的,经过在软件中不断地调试,修改,最终终于编译通过。编译通过后,生成hex文件。然后打开Proteus软件,将生成的hex文件下载到单片机中,液晶显示屏上就显示出了如图所示的效果。由于测到的温度是四十五度,而设定的范围是四十度到九十度,因此实际检测到的温度在设定温度范围之内,自己期望的效果是液晶屏上显示最高温度、最低温度、测到的实际温度,并且黄色的发光二极管发光。从仿真结果来看,实际效果达到了自己所期望的效果。P2.6P2.5P2.7P2.5P2.6P2.7P2.4P1.0P1.0P2.4XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC130pFC230pFC322uFR110kR210kR310kR410kD714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LR510kR610kR710kR810kR910kR1010kR1110kR1210kR13600R14600D1LED-REDD2LED-GREEN45.0DQ2VCC3GND1U2DS18B20R1510kQ1PNPD3DIODER161kR171k+5vBUZ1BUZZERQ2PNPL15V+12vD4DIODER18600D5LED-YELLOWRL1RLY-SPCO图10系统仿真结果总结本次单片机课程设计一共是两周的时间,在这忙碌的两周时间,我学到了很多东西。现在依然记得很清楚当时刚刚拿到题目时的那种茫然,感觉题目有一定的难度,而自己却无从下手,不知道从什么地方开始做起。在高老师的带领和指导下,我那种消极的情绪渐渐的消失了,渐渐的明白了应该去做哪些准备工作,应该去查阅哪方面的资料。就这样我又重新找回了自己的自信心,开始通过网络和书籍查找自己所需元件的特性和使用方法。查清楚所需要的元件资料大概花费了四天的时间,我便开始设计自己的电路图,搭建电路图可不是一件容易的事,不过在同学和老师的帮助以及自己的努力下,大概花了一天的时间,我的电路设计图就完成了。接下来的主要任务就是根据自己的电路编写程序,如果说