基于单片机的温度自动控制.docx
- 文档编号:10923339
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:28
- 大小:341.01KB
基于单片机的温度自动控制.docx
《基于单片机的温度自动控制.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度自动控制.docx(28页珍藏版)》请在冰豆网上搜索。
基于单片机的温度自动控制
随着科技的不断进步,在工业生产中温度的调节起到了越来越重要的作用,而采用单片机来进行这些参数的控制也越来越受到人们的重视。
本文主要介绍了温度的数字检测系统和通过单片机输出控制信号来进行电机的控制从而带动风扇实现对温度的控制。
本文主要是以AT89C51单片机为核心进行信号的分析和处理,采用DS18B20温度传感器进行温度的采集,采用LM016L的LCD显示屏进行信息的显示,最终系统可以实现温度的实时显示,并且可以通过驱动电机的转动实现对温度的智能调节。
关键词:
AT89C51单片机;DS18B20温度传感器;温度控制
Abstract
Withthedevelopmentoftechnologyintheregulationoftemperatureinindustrialproductionhasplayedanincreasinglyimportantrole,whiletheuseofthemicrocontrollertothecontroloftheseparametersisalsogrowingattentionhasbeenpaid.Thispaperdescribesthetemperaturedigitaldetectionsystemsandmotorcontrolmicrocontrolleroutputcontrolsignalsoastodrivethefantocontrolthetemperature.
Inthispaper,basedonAT89C51microcontrollerasthecoreofthesignalanalysisandprocessing,DS18B20temperaturesensorfortemperatureacquisitionLM016LtheLCDmonitorinformationdisplay,thefinalsystemcanachievereal-timedisplayoftemperature,andbythedrivemotorrotationtoachievetheintelligentregulationofthetemperature.
Keywords:
AT89C51microcontroller;DS18B20temperaturesensor;Temperaturecontrol
绪论
1.1论文研究背景
温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。
在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。
比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。
没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。
因此,各行各业对温度控制的要求都越来越高。
可见,温度的测量和控制是非常重要的。
以前这些温度的控制都需要人工的参与,那么有没有一种方法能够实现对温度的自动控制。
单片机的出现为这种设想的实现提供了可能,随着单片机技术的发展,目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
在这种情况下,本文研究的基于单片机的温度自动控制系统就是温度自动控制的一个典型范例。
1.2论文研究的目的和意义
该论文的内容是温度测试控制系统,控制对象是温度。
温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。
而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。
针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。
通过对本系统的研究应用,可以用于对其他需要进行温度控制的场所进行温度的自动控制,因此具有一定的现实使用意义。
2系统硬件电路设计
2.1整体方案设计
本设计的整体思路是:
利用DS18B20温度传感器直接输出数字温度信号给单片机AT89S51进行处理分析,同时在LED数码管上显示出当前环境温度值。
如果温度高于预定的温度,单片机输出控制信号同时由PWM脉宽调制来改变直流电机的转速。
结构框图如图2-1所示
图2-1系统整体设计框图
2.2温度传感器的选择
温度传感器可由以下几种方案可供选择:
方案一:
选用热敏电阻作为感测温度的核心元件,通过运算放大器放大由于温度变化引起热敏电阻的变化、进而导致的输出电压变化的微弱电压变化信号,再用AD转换芯片ADC0809将模拟信号转化为数字信号输入单片机处理。
方案二:
采用数字式集成温度传感器DS18B20作为感测温度的核心元件,直接输出数字温度信号给单片机处理。
对于方案一,采用热敏电阻有价格便宜,元件易购的优点,但热敏电阻对温度的细微变化不敏感,在信号采集、放大、转换过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其本身电阻对温度的变化存在较大误差,虽然可以通过一定电路予以纠正,但不仅将使电路复杂程度降低,而且在人体所处环境温度变化过程中难以检测到小的温度变化。
故该方案不适合本系统。
对于方案二,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转化等电路的误差因数,温度误差很小,并且由于其感测温度的原理与上述方案的原理有着本质的不同,使得其温度分辨力极高。
温度值在器件内部转化成数字量直接输出,简化了系统程序设计,又由于改传感器采用先进的单总线技术,与单片机的接口变得非常简洁,抗干扰能力高,关于DS18B20的详细参数后面参看下面。
2.3控制核心的选择
采用市面上比较常见的应用比较广泛的AT89C51单片机作为控制核心,以软件编程的方法进行温度判断,并在端口输出控制信号。
这样的选择可以方便以后系统的制作的和维修,节省费用。
2.4显示电路的选择
方案一:
采用数码管显示温度,动态扫描显示方式。
方案二:
采用液晶显示屏LCD显示温度。
对于方案一,该方案成本低廉,显示温度明确醒目,功耗极低,显示驱动程序的编写也相对简单,但是这种扫描显示方式是使四个LED逐个点亮,因此会有闪烁,虽然可以通过增大扫描频率来消除闪烁感,但是这样会增大系统的负担,并且在对显示效果要求越来越严格的今天,这样的显示方式会显得比较简陋。
对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字符甚至图形的优点,这是LED数码管无法比拟的,考虑到人们对显示的效果要求越来越高,并且从人体视觉舒适度考虑本系统采用方案二。
2.5调速方式的选择
方案一:
采用数模转换芯片AD0832控制,由单片机根据当前温度值送出相应数字量到AD0832,由AD0832产生模拟信号控制晶闸管的导通角,从而配无级调速电路实现温控时的自动无级转速调节。
方案二:
采用单片机软件实现PWM调速的方法。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。
通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。
对于方案一,该方案能够实现在直流电机处于温控状态时能无级调速,但是D/A转换芯片价格较高,与其温控状态下无级调速功能相比性价比不高。
对于方案二,相对于其他用硬件或者硬软结合的方法实现对电机进行调整,采用PWM用纯软件的方法来实现调速过程,具有更大的灵活性和更低的成本,能够充分发挥单片机的效能,对于简易速度控制系统的实现提供了一种有效的途径。
综合考虑选用方案二。
3系统主要元器件介绍
3.1MCS-51系列单片机
MCS是Intel公司生产的单片机的系列符号。
MCS-51系列单片机既包括三个基本型8031、8051、8751,也包括对应的低功耗型80C31、80C51、87C51,因而MCS-51系列特指Intel公司的这几种型号的单片机。
20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给了许多半导体生产厂家,如ATMEL、PHILIPS、ANALOGDEVICES、DALLAS公司等。
这些厂家生产的芯片是MCS-51系列的兼容产品,准确地说是与MCS-51指令系统兼容的单片机。
这些兼容机与8051的系统结构(主要是指令系统)相同,采用CMOS工艺,因而常用80C51系列来称呼所有具有8051指令系统的单片机。
其中本文所采用的AT89C51,就是ATMEL公司在8051的基础上,扩充了部分功能,其功能和市场竞争力比8051更强。
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
3.2DS18B20数字温度传感器
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
技术性能描述
(1)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)测温范围-55℃~+125℃,固有测温分辨率0.5℃。
(3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
(4)工作电源:
3~5V/DC
(5)在使用中不需要任何外围元件
(6)测量结果以9~12位数字量方式串行传送
(7)不锈钢保护管直径Φ6
(8)适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温
(9)标准安装螺纹M10X1,M12X1.5,G1/2”任选
(10)PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
4各部分电路设计
4.1LCD显示电路设计
4.2时钟电路和复位电路
89C51单片机的各部分功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性,常用的时钟设计有两种方式,一种是内部时钟方式,另一种方式是外部时钟方式。
本文由于只使用到了一个单片机,不需要单片机之间的同步,因此使用了内部时钟电路。
89C51的复位是由外部的复位电路来实现的,复位电路通常采用上电自动复位和按钮复位两种方式,本系统根据实际的情况设计采用了上电自动复位的方式进行单片机的复位。
4.3温度采集电路设计
DS18B20测量温度采用了特有的温度测量技术,其测量电路如下图所示。
它是通过计数时钟周期来实现的。
低温系数振荡器输出的时钟信号通过由高温度系数振荡产生的门周期而被计数,计数器补预置在与-55℃相对应的一个基权值。
如果计数器在高温度系数振荡周期结束前计数到零,表示测量的温度值高于-55℃,被预置在-55℃的温度寄存器的值就增加1℃,然后重复这个过程,直到高温度系数振荡周期结束为止。
这时温度寄存器中的值就是被测温度值,这个值以16位形式存放在便笺式存储器中,此温度值可由主机通过发存储器读命令而读出,读取时低位在前,高位在后。
斜率累加器用于补偿温度振荡器的抛物线特性。
DS18B20在使用时,一般都采用单片机来实现数据采集。
只须将DS18B20信号线与单片机1位I/O线相连,且单片机的1位I/O线可挂接多个DS18B20,就可实现单点或多点温度检测。
在本次制作中将DS18B20接在P3.3口实现温度的采集。
其与单片机的连接如图4-1。
图4-1温度传感器与单片机连接
4.4电动机调速部分电路设计
本文采用了89C51通过软件编程产生PWM信号调节L298双H桥驱动集成电路,通过调节输入信号的占空比调节电机的转速。
当外界的温度高于一定的温度的时候(本文设定为45℃),温度采集系统把采集到的温度传送给单片机,单片机经过处理分析以后输出控制信号给电动机调速电路,完成对电动机的驱动。
当温度高于临界温度(本文设计的是75℃)时,单片机通过控制占空比调节电动机的转速,使电动机可以全速旋转,加快对温度的调节。
5软件设计
5.1开发工具及主要技术
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件。
Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境!
尤其重要的是ProteusLite可以完全免费,也可以花微不足道的费用注册达到更好的效果;功能最强的Proteus专业版也非常便宜,人人用得起,对高校还有更多优惠。
图5-1proteus使用截图
Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。
此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“TheRoutetoPCBCAD”。
Proteus产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。
用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
软件使用主界面如图5-2。
图5-2软件主界面
5.2KEIL8051开发工具
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
软件使用界面如图5-3:
图5-3keil软件使用截图
6系统调试
6.1软件调试
6.1.1传感器DS18B20温度采集部分调试
由于数字式集成温度传感器DS18B20的高度集成化,为软件的设计和调试带来了极大的简便,小体积、低功耗、高精度为控制电机的精度和稳定提供了可能。
软件设计采用P3.3口为数字温度输入口,但是需要对输入的数字信号进行处理后才能显示,从而多了温度转换程序。
通过软件设计,实现了对环境温度的连续检测,程序流程图如图6-1。
图6-1程序流程图
读取温度部分代码如下:
voidRead_Temperature()
{
if(Init_DS18B20()==1)//DS18B20故障
DS18B20_IS_OK=0;
else
{
WriteOneByte(0xCC);//跳过序列号
WriteOneByte(0x44);//启动温度转换
Init_DS18B20();
WriteOneByte(0xCC);//跳过序列号
WriteOneByte(0xBE);//读取温度寄存器
Temp_Value[0]=ReadOneByte();//温度低8位
Temp_Value[1]=ReadOneByte();//温度高8位
DS18B20_IS_OK=1;
}
}
6.1.2电动机调速电路部分调试
本文设计使用T0定时器输出PWM信号控制电机转速,部分C语言代码如下
voidT0_INT()interrupt1
{
TH0=-50000/256;
TL0=-50000%256;
Read_Temperature();//读取温度
if(!
DS18B20_IS_OK)return;//读错时退出
//读取正常且温度发生变化则刷新显示
if(Temp_Value[0]!
=Back_Temp_Value[0]||Temp_Value[1]!
=Back_Temp_Value[1])
{
Back_Temp_Value[0]=Temp_Value[0];
Back_Temp_Value[1]=Temp_Value[1];
Display_Temperature();
}
//设定温度
if(Signed_Temp>=75)Signed_Temp=75;
if(Signed_Temp<=0)Signed_Temp=0;
if(Signed_Temp>=45)
{
MA=1;MB=0;
if(Signed_Temp==45)
{
PWM1=0;DelayXus(30);return;
}
else
if(Signed_Temp==75)
{
PWM=1;DelayXus(30);return;
}
PWM1=1;
DelayXus(Signen_Temp-45);
PWM1=0;
DelayXus(75-Signed_Temp);
}
else
{
MA=0;MB=0
}
}
6.2硬件调试
6.2.1传感器DS18B20温度采集部分调试
将DS18B20芯片接在系统板对应的P3.3口,通过插针在对应系统板的右下侧三口即为对应的VCC、P3.3和GND,可将芯片直接插在该插针上,因此即为方便。
系统调试中为验证DS18B20是否能在系统板上工作,将手心靠拢或者捏住芯片,即可发现LED显示的前两位温度也迅速升高,验证了DS18B20能在系统板上工作。
由于DS18B20为3个引脚,因此在调试过程中因注意其各个引脚的对应位置,以免将其接反而是芯片不能工作甚至烧毁芯片。
6.2.2电动机调速电路部分调试
系统本部分的设计中重在软件设计,因为外围的驱动电路只是将送来的PWM信号放大从而驱动电机转动。
系统软件设置在P1.2口输出使电机正转的PWM占空比,当环境温度高于设置温度时,电机开始转动,若此时用高与环境温度的热源靠近测温芯片DS18B20时,发现电机的转速在升高,并越来越快,当达到一定值时,发现电机的转速不再升高;将热源离开测温芯片DS18B20时,发现电机的转速开始下降,转速达到一定值时,若将设置温度升高到环境温度以上,发现电机又停止了转动。
7系统功能
6.1系统实现的功能
本系统能实现单片机系统检测环境温度的变化,然后根据环境温度变化来控制直流电机输入占空比产生不同的转动速度。
当环境温度低于设置温度时,电机停止转动;当环境温度高于设置温度时,单片机对应输出口输出不同占空比的PWM信号,控制电机开始转动,并随着环境温度与设置温度的差值的增加电机的转速逐渐升高,系统还能使用LCD显示屏动态地显示当前温度。
6.2系统功能分析
系统总体上由五部分来组成,既时钟与复位电路、数码管显示电路、温度检测电路、电机驱动电路。
首先考滤的是温度检测电路,该部分是整个系统的首要部分,首先要检测到环境温度,才能用单片机来判断温度的高低,然后通过单片机控制直流电机的转速;其次是电机驱动电路,该部分需要使用外围电路将单片机输出的PWM信号转化为平均电压输出,根据不同的PWM波形得到不同的平均电压,从而控制电机的转速,电路的设计中,采用了L298芯片实现较好的控制效果;再次是LCD的动态显示电路,该部分的功能实现对环境温度的显示,其中DS18B20采集环境温度,通过单片机的处理分析,控制显示屏对环境温度实现了及时连续显示。
8结论
本次系统以单片机为控制核心,实现了根据环境温度调节不同的电机转速,从而带动风扇实现对温度的调节,同时LED能连续稳定的显示环境温度。
本系统设计可推广到各种电动机的控制系统中,实现电动机的转速调节。
在生产生活中,本系统课用于简单的日常风扇的智能控制,为生活带来便利;在工业生产中,可以改变不同的输入信号,实现对不同信号输入控制电机的转速,进而实现生产自动化,如在电力系统中可以根据不同的负荷的到不同的电压信号,再由电压信号调节不同的发电机转速,进而调节发电量,实现电力系统的自动化调度。
综上所述,该系统的设计和研究具在社会生产和生活中具有重要地位。
本系统设计实现了温度采集,单片机温控直流电机的转速。
但是由于以前做的实践性工作不是很多,系统设计并不能实现真正的智能控制,比如对于温度的设定不能进行手工的调节,显示屏没有进行设定温度的显示等,这些都是这次论文中不完美的地方,都需要在以后的工作和学习中继续努力,我一定会在以后的工作和学习中继续努力,不断完善自我,争取更大的成绩。
参考文献
[1]张毅刚、彭喜元、董继成.单片机原理及其应用.北京:
高等教育出版设,2003.
[2]王兆安、黄俊.电力电子学(第四版)北京:
机械工业出版社,2001.
[3]姚国强、钱锐、陆成鹰.机电设备的单片机控制技术.北京:
科学出版社,2006.
[4]杨振江、杜铁军.流行单片机实用子程序及应用实例[M].西安电子科技大学出版社,2002.
[5]张培仁.基于C语言编程MCS-51单片机原理与应用[M].北京:
清华大学出版社,2003.
[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 自动控制