基于单片机的智能温度控制系统综述.docx
《基于单片机的智能温度控制系统综述.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能温度控制系统综述.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的智能温度控制系统综述
摘要
随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中使用较为广泛的控制器。
为了更好地推广单片机在实际生活和生产中的应用,本文介绍一种应用AT89S51单片机设计的空调智能温度控制系统。
该系统通过温度传感器多点采集温度取其平均值后反馈给单片机,单片机通过采集到的平均值与内设的温度值进行比较,来决定运行冬天模式还是夏天模式。
在智能模式下,系统启动后,会根据选择的冬天或夏天模式自动调节到人体最适温度,调节室温。
实现了温度的自动控制,同时也达到了一定的节能目的。
在手动模式下,系统启动后,在冬天或夏天模式中均可运行加热或制冷模式,温度的高低由设定值决定。
而加热和制冷模式的运行,取决于设定值与平均值的比较。
通过数码管实时显示出当前的温度。
本文根据任务要求从理论出发,设计思路,最终实现了任务要求。
关键词:
单片机,温度控制,智能化
ABSTRACT
Withthedevelopmentofelectronicproductsinintelligentializeandmicrominiaturization,singlechipmicrocomputerhasbecomethemostwidelyuesdcontrollerintheresearchanddevelopmentofelectronicproducts.Forpopularizingthesinglechipmicrocomputer’suseinourlivesandproducebetter,thisarticleintroducesonekindofintelligenttemperaturecontrolsystembasedonAT89S51.
Thissystemfeedbackdifferenttemperaturewhichcollectedbytemperaturetransmittertothesinglechipmicrocomputer.Thensinglechipmicrocomputercomparesthedifferenttemperaturetodesideusingwhichmode.Winterorsummerandheatingorrefrigerating.Whenthesystemworks,itwillcontrolsthetemperaturetomakepeoplefeelcomfortablebydifferentmodes.Bythiswaysystemcomestruethepurposethatintelligence.Ontheotherhanditcansavingenergy.Bynixietube,peoplecanknowthetemperatureatthesametime.Thisarticleaccordingtothemissionrequirement,designstheproject,finallyrealizedthemissionrequirement.
KEYWORDS:
singlechipmicrocomputer,temperaturecontrol,intelligentize
前言
本课题研究一种基于单片机的空调智能温度控制系统,该系统能根据环境温度自动调节室内温度,让人们有一个舒适的生活和工作环境。
随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。
特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。
针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义。
在日常生活中,人们为了拥有一个更舒适的生活环境,往往需要室内拥有一个合适的温度,而单片机的准确性高、价格低、功耗低等一系列优点,可结合升温和降温设备,有效的应用到实际生活中。
第一代空调温控器主要是电气式产品,空调温控器的温度传感器采用双金属片或气动温包,通过“给定温度盘”调整预紧力来设定温度,风机三速开关和季节转换开关为泼档式机械开关。
这类空调温控器产品普遍存在“温度设定分度值过粗”、“时间常数太大”、“机械开关易损坏”等问题。
第二代空调温控器为电子式产品,温度传感器采用热敏电阻或热电阻,部分产品的温度设定和风速开关通过触摸键和液晶显示屏实现人机交互界面,冷热切换自动完成,运算放大电路和开关电路实现双位调节。
这类智能空调温控器产品改善了人机交互界面,解决了“温度设定分度值过粗”等问题,但仍存在“控制精度不高”、“时间常数大”、“操作较复杂”等问题。
目前国内外生产厂家正在研究开发第三代智能型室温空调温控器,个厂家积极响应国家的政策,应用新型控制模型和数控芯片实现智能控制。
这一生产带动电子行业的发展。
本课题研究一种基于单片机的空调智能温控系统,该系统分为两种模式,即冬天模式和夏天模式。
在每种模式下再分为两种模式,即加热模式和制冷模式。
通过两个温度传感器多点采集温度,通过温度平均值与设定值比较选择模式,当温度低于某一温度时,实行冬天模式,当温度高于某一温度时,实行夏天模式。
第1章系统方案的确立
1.1系统方案的确立
考虑到本设计要使用温度传感器,在单片机电路设计中,最常见的一种方法是,使用多个DS18B20采集多点温度值,然后将各点温度值反馈给单片机,单片机读取温度值并进行相应运算,决定空调采用哪种模式,再对加热器或压缩机发出相应指令,即可满足设计要求。
1.2本设计采用的方案
本方案以AT89S51单片机为控制核心,以智能温度传感器DS18B20为温度测量元件,对多点进行温度测量。
对采集到的温度值取平均值,再与设定的人体最适温度进行比较,来决定空调采用哪种模式。
温度由两位数码管显示。
配有按键,可以改变空调的模式及温度。
1.3系统原理框图
初始方案原理框如图1-1所示。
图1-1最初方案原理框图
考虑到温度多变,不同的人群对温度需求不同的问题,故给系统加上了按键,以便于人们对空调的模式和温度的高低进行实时的个性化调节,满足个人的需求。
再加上温度显示,人们对于温度的调节可以更加精确。
最终方案原理框图如图1-2所示。
图1-2最终方案原理框图
第2章系统方案的设计
2.1系统的功能
本系统是基于单片机的空调智能温度控制系统,拥有冬天模式和夏天模式,在每种模式下又分为加热模式和制冷模式。
系统以AT89S51单片机为核心,DS18B20为温度测量元件,附有数码管显示当前温度值,有按键可改变当前模式以及温度。
系统通过DS18B20采集到多点温度值,取其平均值。
空调内设定两个温度值(18°C和28°C)。
当平均值低于18°C时,空调采用冬天模式,默认下运行加热模式,当加热至22°C时停止加热,延时五分钟后若平均值低于22°C,则继续加热到22°C时再停止,否则不加热并继续延时5分钟,如此循环下去。
当平均值高于28°C时,空调采用夏天模式,默认下运行制冷模式,当温度降至26°C时停止制冷,延时五分钟后若平均值高于26°C,则继续制冷到26°C时再停止,否则不制冷并继续延时5分钟,如此循环下去。
该系统配有按键,可改变空调的模式,以及温度高低。
当空调自动运行冬天模式或夏天模式时,若开关S1闭合则此时进入手动模式。
手动模式下,温度高低由人为设定,温度传感器采集到的数据平均值与设定值比较,当平均值高于设定值时,运行制冷模式,温度降至设定值后停止制冷,并延时5分钟,然后再判断温度是否高于设定值,否则停止制冷并继续延时5分钟,是则继续制冷,如此循环下去。
当平均值低于设定值时,运行加热模式,温度升至设定值后停止加热,并延时5分钟,然后在判断温度是否低于设定值,否则停止加热并继续延时5分钟,是则继续加热,如此循环下去。
系统原理图见附录Ⅰ
2.2单片机最小系统电路
因为该系统是以单片机为控制核心,故必有组成单片机最小系统的电路,即电源电路、复位电路、晶振电路。
2.2.1电源电路
电源模块使用L7805CV芯片,电源模块如图2-1所示。
图2-1单片机电源模块
2.2.2复位电路
AT89S51的复位输入端为RST,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
如图2-2,当摁下摁键S4时,RST输入高电平,单片机复位。
为了可靠,再加上一只0.luF的电容以消除干扰、杂波。
复位电路如图2-2所示。
图2-2单片机复位电路
2.2.3晶振电路
单片机的XTAL1和XTAL2分别为用作片内振荡器的反向放大器的输入和输出。
这个振荡器可以使用石英晶体,也可以使用陶瓷谐振器。
C1和C2的数值要一样,不管使用的是晶体还是谐振器。
最佳的数值与使用的晶体或谐振器有关,还与杂散电容和环境的电磁噪声有关。
数据手册中给出了针对晶体选择电容的一些指南。
对于陶瓷谐振器,应该使用厂商提供的数值。
本系统的晶振设计采用典型电路,晶振两端接30pf左右的电容。
晶振电路如图2-3所示。
图2-3单片机晶振电路
第3章系统硬件电路设计
3.1主控芯片
本系统采用AT89S51单片机作为主控芯片。
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。
外加ATMEL公司现在已经停产了89CXX系列的单片机,考虑到购买问题,故选择AT89S51单片机。
3.1.1AT89S51单片机的主要性能特点
(1)4kBytesFlash片内程序存储器;集成度高、体积小、可靠性高;
(2)128bytes的随机存取数据存储器(RAM);
(3)32个外部双向输入/输出(I/O)口;
(4)5个中断优先级、2层中断嵌套中断;
(5)6个中断源;
(6)2个16位可编程定时器/计数器;
(7)2个全双工串行通信口;
(8)看门狗(WDT)电路;
(9)片内振荡器和时钟电路;
(10)与MCS-51兼容;
(11)全静态工作:
0Hz-33MHz;
(12)三级程序存储器保密锁定;
(13)可编程串行通道;
(14)低功耗的闲置和掉电模式。
3.1.2AT89S51单片机的管脚说明
VCC:
电源电压输入端。
GND:
电源地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了作为普通I/O口,还有第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(T0定时器的外部计数输入)
P3.5T1(T1定时器的外部计数输入)
P3.6/WR(外部数据存储器的写选通)
P3.7/RD(外部数据存储器的读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
89C51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、P3口都还有其他的功能。
RST:
复位输入端,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
地址锁存允许/编程脉冲信号端。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号,低电平有效。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
外部程序存储器访问允许。
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
片内振荡器反相放大器和时钟发生器的输入端。
XTAL2:
片内振荡器反相放大器的输出端。
AT89S51管脚图如图3-1所示。
图3-1AT89S51单片机管脚图
3.1.3AT89S51单片机的中断系统
(1)中断:
程序执行过程中,允许外部或内部事件通过硬件打断程序的执行,使其转向为处理内部事件的中断服务程序中去;完成中断服务的程序后,CPU继续原来被打断的程序,这样的过程称为中断过程。
(2)中断源:
能产生中断的外部和内部事件。
89S51有5个中断源:
1)INT0:
外部中断0请求,低电平有效。
通过P3.2引脚输入。
2)INT1:
外部中断1请求,低电平有效。
通过P3.3引脚输入。
3)T0:
定时器/计数器0溢出中断请求。
4)TI:
定时器/计数器1溢出中断请求。
5)TXD/RXD:
串行口中断请求。
当串行口完成一帧数据的发送或接
收时,便请求中断。
每一个中断源都对应一个中断请求标志位,它们设置在特殊功能寄存器TCON和SCON中。
当这些中断源请求中断时,相应的标志分别有TCON和SCON中的相应位来锁存。
(3)89S51中断系统有以下4个特殊功能寄存器:
1)定时器控制寄存器TCON(用6位);
2)串行口控制寄存器SCON(用2位);
3)中断允许寄存器IE;
4)中断优先级寄存器IP。
其中,TCON和SCON只有一部分用于中断控制。
通过对以上各特殊功能寄存器的各位进行置位或复位等操作,可实现各种中断控制功能。
(4)中断的响应过程及中断矢量地址:
中断处理过程可分为3个阶段:
中断响应、中断处理和中断返回。
89C51的CPU在每个机器周期的S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志。
如查询到某个中断标志为1,则将在接下来的机器周期S1期间按优先级进行中断处理。
中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。
表2既是各个中断源对应的中断矢量地址。
由于89S51系列单片机的两个相邻的中断源中断服务程序入口地址相距只有八个单元,一般的中断服务程序是容纳不下的,通常是在相应的中断服务程序入口地址中放一条常跳转指令LJMP,这样就可以转到64KB任何可用区域了。
中断服务程序从矢量地址开始执行,一直到返回指令RETI为止。
RETI指令的操作一方面告诉中断系统该中断服务程序已执行完毕,另一方面把原来压入堆栈保护断点地址从栈顶弹出,装入程序寄存器PC,使程序返回到被中断的程序断点处继续执行。
在编写中断服务程序时应注意:
(1)在中断矢量地址单元处存放一条无条件转移指令(如LJMP××××H),使中断程序可灵活的安排在64KB程序存储器的任何空间。
(2)在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。
(3)若要在执行当前中断程序时禁止更高优先级中断,则可先用软件关闭CPU中断或禁止某中断源中断,在中断返回前在开放中断。
3.2各模块的硬件设计
3.2.1电源模块
AT89S51工作,需要为其提供5V电源。
本系统采用线性稳压电源,通过三端稳压管L7805CV,输出+5V直流电压。
L7805CV的基本参数为:
1.输出电压:
4.75-5.25V;
2.最大输入电压:
35V;
3.静态电流:
4.2-8mA;
4.输出噪音电压:
40uV;
5.纹波抑制比:
78dB;
6.输出电阻:
17mΩ;
7.输出电压温度系数-1.1mV/°C。
L7805CV的特征:
1.输出电流可达1.5A;
2.不需外接补偿元件;
3.内含限流保护电流,防止负载短路烧毁元件;
4.内含高温过热保护电路,防止结温过热烧毁器件;
5.内含功耗限制电路,防止烧毁输出驱动器晶体管。
电源模块原理图如图3-2所示。
图3-2电源模块
3.2.2温度采集模块
DS18B20是目前使用较为广泛的温度传感器,且其接线方便,适用于多种场合,故本系统中也使用DS18B20作为温度测量元件。
系统通过DS18B20采集到多点温度值,取其平均值。
空调内设定两个温度值(18°C和28°C)。
当平均值低于18°C时,空调采用冬天模式,默认下为加热模式,当加热至22°C时停止加热,延时五分钟后若平均值低于22°C,则继续加热到22°C时再停止,否则不加热并继续延时5分钟,如此循环下去。
当平均值高于28°C时,空调采用夏天模式,默认下为制冷模式,当温度降至26°C时停止制冷,延时五分钟后若平均值高于26°C,则继续制冷到26°C时再停止,否则不制冷并继续延时5分钟,如此循环下去。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
温度传感器可编程的分辨率为9~12位温度转换为12位数字格式最大值为750毫秒用户可定义的非易失性温度报警设置应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。
描述该DS18B20的数字温度计提供9至12位(可编程设备温度读数。
信息被发送到/从DS18B20通过1线接口,所以中央微处理器与DS18B20只有一个一条口线连接。
为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。
因为每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。
这使得温度传感器放置在许多不同的地方。
它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。
DS18B20采用一线通信接口。
因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。
主要首先提供以下功能命令之一:
1)读ROM,2)ROM匹配,3)搜索ROM,4)跳过ROM,5)报警检查。
这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。
若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。
一个控制功能指挥指示DS18B20的演出测温。
测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。
温度报警触发器TH和TL都有一字节EEPROM的数据。
如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。
在片上还载有配置字节以理想的解决温度数字转换。
写TH,TL指令以及配置字节利用一个记忆功能的指令完成。
通过缓存器读寄存器。
所有数据的读,写都是从最低位开始。
DS18B20有4个主要的数据部件:
(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
DS18B20的主要特性:
1.适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电。
2.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
3.DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
4.DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
5.温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。
6.可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
7.在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
8.测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
9.负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
DS18B20的应用范围:
1.该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域。
2.轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。
3.汽车空调、冰箱、冷柜、以及中低温干燥箱等。
4.供热/制冷管道热量计