电热培养箱c51单片机PWM温度控制系统.docx
《电热培养箱c51单片机PWM温度控制系统.docx》由会员分享,可在线阅读,更多相关《电热培养箱c51单片机PWM温度控制系统.docx(34页珍藏版)》请在冰豆网上搜索。
电热培养箱c51单片机PWM温度控制系统
本文设计了一个基于AT89S52单片机的电热培养箱温度控制系统,阐述了系统的工作原理、硬件电路以及软件设计。
详细论述了数字PID控制器的原理及其在温度控系统中的应用,将增量式PID和PWM脉宽调制技术相结合.此外本系统采用DS18B20新型单总线数字温度传感器集温度测量和A/D转换于一体,直接输出数字量,与单片机接口电路简单。
该系统经过实验,取得了较为满意的控制效果。
本系统由核心处理模块、温度采集模块、键盘显示模块、及控制执行模块等模块组成
主要完成成对电热培养箱箱内的温度测量、显示;系统过热保护并报警;手动设置温度;温度智能调节等功能。
关键词:
温度控制;AT89C51单片机;DS18B20;PID控制;PWM波
ABSTRACT
ThispaperdesignedamicrocontrollerAT89S52-basedelectricincubatortemperaturecontrolsystem,describedtheworkingprincipleofthesystem,thehardwarecircuitandsoftwaredesign.DiscussedindetailtheprinciplesofdigitalPIDcontrolleranditsapplicationoftemperature-controlsystemwillbeincrementalPIDandPWMpulsewidthmodulationtechniquescombined.Furthermore,thissystemusesDS18B20newsingle-busdigitaltemperaturesensorsetoftemperaturemeasurementandA/Dconversioninone,thedirectoutputofdigitalwiththemicrocontrollerinterfacecircuitissimple.Thesystemisexperimental,andachievedrelativelysatisfactorycontroleffect.
Thissystemconsistsofthecoreprocessingmodule,thetemperatureacquisitionmodule,keyboarddisplaymodule,andcontroltheimplementationofmodulesmodules
Completedinpairsinsidethemainelectricincubatortemperaturemeasurement,display;systemover-temperatureprotectionandalarm;manuallysetthetemperature;temperatureofintelligentregulationandotherfunctions.
Keywords:
temperaturecontrol;AT89C51microcontroller;DS18B20;PIDcontrol;PWMwave
目录
第一章引言1
1.1课题的背景和意义1
1.2课题研究的内容1
第二章系统设计原理与方案论证2
2.1系统设计总体框图2
2.2总体方案的论证3
2.3各部分电路方案的论证3
第三章核心处理模块5
3.1AT89S52简介5
3.2核心处理模块电路的整体设计5
3.3I/O口的分配6
第四章键盘显示模块7
4.1显示电路部分7
4.2键盘电路部分10
第五章温度采集模块12
5.1温度传感器DS18B20内部结构12
5.2硬件连接13
5.3软件实现13
第六章控制执行模块14
6.1控制执行模块电路14
6.2控制执行程序设计15
6.2.1PWM波设计16
6.2.2PID控制算法16
6.2.3PID参数整定17
第七章其他电路设计19
7.1电源电路19
7.2系统过热保护电路19
7.3报警控制电路19
结论20
参考文献21
致谢22
附录23
第一章引言
1.1课题的背景意义
随着微电子技术和微型计算机的迅猛发展,微机测量和控制技术以其逻辑简单、控制灵活、使用方便及性能价格比高的优点得到了迅猛发展和广泛应用。
它不仅在航空、航天、铁路交通、冶金,电力、石油化工等领域获得了广泛应用,而且其技术在日常生活小诸如电梯、微波炉、电冰箱、智能照相机、电动玩具、全/半自动洗衣机、智能空调、携带式心脏监护机等高科技产品中也具有广阔的使用前景,尤其是许多智能仪表和测控系统中引入电脑控制技术后,使传统仪器、仪表设备发生了根本变化,为工业生产的自动化、智能化奠定了坚实的技术基础。
温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,过低的温度或过高的温度都会使资源失去应有的作用,从而造成资源的巨大浪费。
特别是在当前全球能源极度缺乏的情况下,我们更应该掌握好对温度的控制,把身边的能源好好地利用起来。
在现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一。
在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对温度进行测、显示、控制,使之达到工艺标准,以单片机为核心设计的箱温控制系统,可以同时采集多个数据,并将数据通过通讯口送至上位机进行显示和控制。
那么无论是哪种控制,我们都希望温度控制系统能够有很高的精确度(起码是在满足我们要求的范围内),帮助我们实现我们想要的控制,解决身边的问题。
在计算机没有发明之前,这些控制都是我们难以想象的。
而当今,随着电子行业的迅猛发展,计算机技术和传感器技术的不断改进,而且计算机和传感器的价格也日益降低,可靠性逐步提高,用信息技术来实现温度控制并提高控制的精确度不仅是可以达到的而且是容易实现的。
用高新技术来解决工业生产问题,以此来加强工业化建设,提高人民的生活水平和生活质量。
1.2课题研究的内容
培养箱是科研实验的必需设备,主要适用于医疗卫生、医药、生物、农业、科研单位等部门作储藏菌种、生物培养之用。
本课题对电热培养箱的控制更是要很好的把温度稳定在某个值或某个区间。
因此此课题采用以单片机AT89S52为控制核心。
并采用了数字PID控制算法结合PWM脉宽调制技术对培养箱温度进行控制,从而实现对电热培养箱的温度进行实时精确测量、自动检测和控制,有效的提高了控制系统的实时性和控制精度,大大改善了电热培养箱温度控制的自动化程度,具有高的实用价。
本课题以89S52单片机为核心配合传感器、显示器件、电加热器、报警器等外围器件,采集电热培养箱箱中的温度信号,通过控制双向可控硅的导通从而控制电加热器加热,并完温度显示,设定显示,报警等功能。
另外配有键盘,可以实现手动设置温度等功能。
本控制系统具有以下功能:
1能实时显示当前温度值和设定温度
2控制温度范围5℃~70℃
2温度波动±0.2,温度调节均匀度±0.5
3按键控制:
设置加0.5键、减0.5键
4系统过热保护并且报警
第二章系统设计原理与方案论证
2.1系统设计总体框图
基于PID算法的温度测控系统由核心处理模块、温度采集模块、键盘显示模块、及控制执行模块等模块组成。
控制执行模块采用PID数字控制算法。
温度采用3个七段数码管显示。
温度测控系统总框图如下图1所示
图1温度测控系统总体框
2.2总体方案论证
(一)、方案论证与比较
本题目是设计制作一个电热培养箱,加热器为200W的电热丝。
要求能在5℃--70℃范围内设定控制温度,并具有较好的快速性和较小的超调,以及十进制数码管显示等功能。
1、总体方案设计及论证
根据题目的要求,我们提出了以下的两种方案:
方案1:
此方案是采用传统的二位模拟控制方法,选用模拟电路,用电位器设定给定值,采用上下限比较电路将反馈的温度值与给定的温度值比较后,决定加热或者不加热。
由于采用模拟控制方式,系统受环境的影响大,不能实现复杂的控制算法使控制精度做得较高,而且不能用数码显示和键盘设定。
方案2:
采用单片机AT89S52为核心。
采用了温度传感器DS18B20产生数字信号并通过单片机处理产生PWM波后去控制温度,使其达到稳定。
使用单片机具有编程灵活,控制简单的优点,使系统能简单的实现温度的控制及显示,并且通过软件编程能实现各种控制算法使系统还具有控制精度高的特点。
比较上述两种方案,方案2明显的改善了方案1的不足及缺点,并具有控制简单、控制温度精度高的特点,因此本设计电路采用方案2
2.3各部分电路方案论证
本电路以单片机为基础核心由核心处理模块、温度采集模块、键盘显示模块、及控制执行模块等模块组成。
现将各部分主要元件及电路做以下的论证:
(1)、温度采样部分
方案1:
采用热敏电阻,可满足5℃--70℃的测量范围,但热敏电阻精度、重复性和可靠性都比较差,对于检测精度小于1℃的温度信号是不适用的。
方案2:
采用温度传感器DS18B20。
:
DS18B20具有体积小、质量轻、精密度高、全数字化、性能稳定等优点。
其测量范围在-50℃--+125℃,在-10℃至+85℃范围内精度为±0.5℃,当电源电压在5—10V之间,稳定度为1﹪时,其各方面特性都满足此系统的设计要求。
此外DS18B20可直接将温度转化成串行数字信号供处理器处理,可以简化电路连线。
经上述比较,方案2明显优于方案1,故选用方案2。
(2)、键盘显示部分
方案1:
采用可编程控制器8279与数码管及地址译码器74LS138组成,可编程/显示器件8279实现对按键的扫描、消除抖动、提供LED的显示信号,并对LED显示控制。
用8279和键盘组成的人机控制平台,能够方便的进行控制单片机的输出。
方案2:
采用单片机AT89S52与地址译码器74LS138组成控制和扫描系统,这种方案既能很好的控制键盘及显示,又为主单片机大大的减少了程序的复杂性,而且具有体积小,价格便宜的特点。
对比两种方案可知,方案1虽然也能很好的实现电路的要求,但考虑到电路设计的成本和电路整体的性能,我们采用方案2。
(3)、控制执行部分
方案1:
由单片机给出高低电平控制电加热的继电器采用双开关继电器,一个开关控制电加热器的火线,另一个控制零线。
当P1.0输出低电平时,三极管不导通,继电器无电流通过,开关开启,电加热器不工作。
当P1.0输出高电平时,三极管导通,继电器有较大电流通过,开关闭合,电加热器开始工作。
方案2:
首先采用单片机进行PID算法,实时的更新PWM脉冲的输出参数,来控制PWM波的产生,进而控制双向可控硅的道通和关断,进而控制电热丝的加热来实现温度控制。
用单片机实现了自适应控制,大幅度的减少了温度的抖动,弥补了传统直接输出高低电平。
有效的稳定了温度和减少了双向可控硅道通次数。
比较这2种方案,方案1虽然电路简单,控制容易,但无法满足系统要求温度波动±0.2℃,而且频繁的关掉和开通继电器产生较大的噪音和器件损坏。
因此我们采用方案2。
第三章核心处理模块
3.1硬件介绍
本系统采用ATMEL公司的51系列单片机AT89S52作为电路的控制核心,利用软件编程可实现各种控制算法和逻辑控制。
AT89C52芯片时钟频率最高33HZ运算速度快,控制功能完善。
其内部具有256字节RAM。
而且还带有8KB闪速式存储器,不需要外扩展存储器,可使系统整体结构更为简单、实用。
同时具有32条输入输出线,16位定时计数器,5个中断源,1个串行口。
其封装引脚如图2所示
图2AT89S52封装引脚图
3.2核心处理模块电路的整体设计
本核心处理模块的整体设计由单片机的最小系统组成。
由单片机、复位电路、晶振电路组成。
复位电路:
由电容串联电阻构成,并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。
晶振电路:
典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)。
图3核心处理模块电路原理图
3.3I/O口的分配
P0.0~P0.7为七段数码管的片选输出端
P2.0~P2.5为七段数码管的位选输出端
P1.0为温度信号输入端
P1.1为PWM脉冲输出端
P1.2为报警信号输出端
P1.3为过热保护输出端
P1.4为设定温度“+”键的输入端
P1.5为设定温度“-”键的输入端
第四章键盘显示模块
键盘和显示电路是电热培养箱温控系统与用户的接口,用户通过显示来观察温度等状态值,再根据观察到的值,通过键盘对电热培养箱进行控制。
本章设计了较为合理的键盘和显示电路完成这些功能。
4.1显示电路部分
4.1.1显示电路的硬件结构
显示及键盘电路如图4所示
图4键盘和显示电路
本系统采用因为本系统采用的是共阳极LED显示器,位选应接高电平,P2口输出的段选信号,通过74LS245芯片接LED段码引脚,74LS245的高电平输出电流在15毫安左右,可以驱动LED显示。
另外74LS245的输出接上拉电阻,帮助驱动显示器。
LED显示器是由发光二极管显示子段组成的显示器件。
在单片机系统中通常使用的是七段LED显示器,这种显示器有共阴极共阳极两种,在这次设计中选用阳极LED显示器。
共阳极七段LED显示器的管脚如图5所示
图5共阳极七段LED显示器的管脚
表1共阴极LED显示器七段码
显示字符
共阴极七段码
显示字符
共阴极七段码
0
C0
5
92
1
F9
6
83
2
A4
7
F8
3
B0
8
80
4
99
9
98
4.1.2显示电路工作原理
温度由来自单片机P2.0(RXD)口输出的数据,通过串入并出移位寄存器74L5164来驱动3位七段LED数码显示,显示温度值的十位、个位、小数位。
显示范围为0.0℃~99.0℃。
图6显示模块的组成框图
4.1.3显示扫描子程序
显示扫描子程序完成6位共阳数码管的扫描显示任务。
图7所示为显示扫描子程序的流程图。
图7显示扫描子程序的流程图
显示程序如下:
voiddis_temp(uintt)//显示温度数值函数t传递的是整形的温度值
{
uchari;
i=t/100;//除以100得到的商,为温度的十位
yi=1;
P0=table[i];//在第一个数码管上显示
delay(5);
yi=0;
i=t%100/10;//100取余再除以10得到商,为温度的个位
er=1;
P0=table[i+10];//在第二个数码管上显示
delay(5);
er=0;
i=t%100%10;//100取余再用10取余,为温度的小数位
san=1;
P0=table[i];//在第三个数码管上显示
delay(5);
san=0;
}
4.2键盘电路部分
为使用户使用界面尽量简单,本文采用两个按键,通过按键来实现温度设置。
键盘与单片机的连接如图4所示。
4.2.1独立式键盘工作原理
因为键盘较少所以用简单的独立式键盘,它的优点是编程简单,缺点是占用I/O口多,适用于键盘较少的电路。
键盘的工作原理是按键的一端高电平,另一端已单片机的某个I/O口相连,当按键闭合时,即相当于该I/O口通过按键已电源相连,变成高电平,程序一旦检测到I/O口变为高电平则说明在年间被按下,然后执行相应的指令。
这是基本原理,在具体实现时还要考虑键盘的延时去抖,去抖的原理是,当检测到有键按下时,单片机先不动作,延时10毫秒以后,单片机再次检测按键是否按下,如果还是按下,就说明此键确实是按下状态,单片机执行相应操作。
4.2.2键盘扫描电路程序
其中S1为温度加键,S2为温度减键,当按S1键时,设置温度加0.5度。
当按S2键时,设置温度减0.5度。
但是由于系统要求在5度至70度之间所有在减到5或加到70后就不在进行加减。
图8所示为键盘扫描子程序的流程图。
实现程序如下:
voidkeyscan()//键盘扫描
{
if(key_up==0)//数字加按键按下
{
delay(5);//延时消除按键抖动
if(key_up==0)//确认数字加按键按下
{
if(wendu_c>=700)//限定温度上限70度
wendu_c=700;
else
wendu_c=wendu_c+5;//温度初始值加0.5度
}
while(key_up==0)
{
dic_temp(wendu_c);//显示的方式等待按键松开
}
}
if(key_down==0)//数字减按键按下
{
delay(5);//延时消除按键抖动
if(key_down==0)//确认数字减按键按下
{
if(wendu_c<=50)//限定温度下限5度
wendu_c=50;
else
wendu_c=wendu_c-5;//温度初始值减值0.5度
}
while(key_down==0)
{
dic_temp(wendu_c);//显示的方式等待按键松开
}
}
dic_temp(wendu_c);//显示调整后的温度初始值
}
图7显示扫描子程序的流程图
第五章温度采集模块
本系统选用的是数字式的温度传感器DSl8B20。
DSl8B20是美国Dallas半导体公司生产
的新一代数字式温度传感器,采用TO一92封装。
它具有独特的单总线接口方式,将地址线、数据线、控制线复用为一根信号线。
输入输出均为数字信号。
这使得其与单片机接口变得十分简单,克服了模拟式传感器与微机接口时需要的AD转换器及其它复杂外围电路的缺点,由它组成的温度测控系统非常方便,而且成本低、体积小、可靠性高。
DSl8B20供电电压范围为3.0~5.5V。
测温范围:
-55℃—125℃,测量分辨率为0.0625℃,在-10℃—85℃范围内,精度为±0.5℃;从DSl8B20中读取数据和向DSl8B20写人命令仅需要一根信号线就可完成。
采用单根信号线,既可以传输时钟信号,又能传输数据,并且数据的传输是双向的;在温度采集的通道上省去了模数转换电路.可以直接让单片机与温度传感器的数据引脚相连,通过指令控制传感器测量温度。
采用这种方法简化了系统的硬件结构。
5.1温度传感器DS18B20内部结构
DS18B20内部结构如图8所示,主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL配置寄存器。
DS18B20的管脚排列如图9所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输人端(在寄生电源接线方式时接地)。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X^8+X^5+X^4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
图8DSI81320的内部结构
图9DS18B20的管脚排列
5.2硬件连接
图10以MCS一51系列单片机为例,画出了DS18B20与微处理器的典型连接。
图2(a)中DS18B20采用寄生电源方式,其VDD和GNG端均接地,图2(b)中DS18B20采用外接电源方式,
其VDD端用3V~55V电源供电。
本系统采用了b图的外接电源的方式。
图10DS18B20与微处理器的典型连接图
5.3软件实现
基于DS18B20的温度测控系统硬件电路简单,但是工作必须严格遵守单总线器件的工作时序。
因此程序比较复杂,详细见附录1。
第六章控制执行模块
AT89S52是整个系统的CPU.测量的温度由DSl8B20数字温度传感器检测并直接转换成数字信号,单片机将该温度值与被控制值(设定温度值)进行比较,计算出温度偏差,根据其偏差值的大小,然后采用PID控制算法并计算出相应的控制输出量,最后通过D/A转换电路(这里采用PWM调功方式,相当于D/A转换器)控制固态继电器在控制周期内的通断占空比(即控制电阻炉平均功率的大小),将控制输出量输出,控制加热器工作,进而达到对温度进行控制的目的。
6.1控制执行模块连接电路
为了简化输出通道的硬件结构,考虑到加热系统具有较大的热惯性,本系统采用脉冲宽度调制的控制方法(即PWM波控制)。
微机系统输出高电平时,使双向可控硅道通,电热丝通电,输出低电平时,双向可控硅截止,电热丝断电。
脉冲宽度T1与周期T的比值为ρ(占空比),他反映了系统的输出控制量,我们实质控制的就是这量。
当环境温度下降时,输出信号增大,输出脉宽增大,电热丝加热时间增长,环境温度上升。
反之,当环境温度上升时,输出减少,输出脉宽减少,电热丝加热时间减少,环境温度下降。
温控过程中功率电路输出的脉冲电流方波宽度始终受温度差信号的调节控制原理如图11所示
图11PWM控制原理图
执行信号输出通道的原理图如图12所示,AT89S52的输出信号经过光电耦合器,直接控制双向可控硅的门极,从而控制电热丝的平均加热功率。
这样使输出通道省去了D/A转换器和可控硅移相触发电路,大大的简化了硬件。
而且可控硅在工作在过零触发状态,提高了设备的功率因数,减轻了对电网的干扰。
光电耦合器的光敏三极管所能通过的电流足以触发5A的双向可控硅,其间不必功放环节。
可控硅门极回路与220V电源相通,光电耦合器的绝缘耐压,能有效地把微机系统与220V强电隔离。
图12执行控制原理图
6.2控制执行程序设计
控制执行程序设计主要包括:
PWM波的设计、PID控制算法设计等。
控制执行程序流程图如图13所示。
图13控制执行程序流程图
6.2.1PWM波的设计
PWM控制采用软件定时器实现,定时器以工频周期为基本计数周期进行加法定时。
定时器采用工作方式0,时基定为100毫秒。
这里假定PWM波的周期为10秒,把每个周期分成M=100份,由PID算法得到一个0~100之间整数形式的输出控制量