基于单片机的智能温度控制系统_第1页
基于单片机的智能温度控制系统_第2页
基于单片机的智能温度控制系统_第3页
基于单片机的智能温度控制系统_第4页
基于单片机的智能温度控制系统_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的智能温度控制系统1.引言随着工业自动化程度的不断提高,各种智能控制系统的应用也越来越广泛。其中,温度控制系统在工业生产和日常生活中扮演着重要的角色。聪明的温度控制系统可确保发生在工业级进程和家庭较小的应用中的安全运行。在本文中,基于单片机的智能温度控制系统进行了详细的研究和设计。2.系统设计思路本文所设计单片机的智能温度控制系统基于STC89C52单片机,温度传感器用DS18B20数字温度传感器,电子加热器和风扇控制器使用PWM技术。系统操作的流程图如图1所示。图1系统操作流程图温度传感器通过巡回编址方式与单片机相连,完成对环境温度的感知,并将该数据存储在单片机内部存储器中。单片机将存储的环境温度值与预设的阈值进行比较,如果环境温度高于或等于设定温度值,则单片机发出PWM信号控制电子加热器开启,并控制风扇关闭;如果环境温度低于设定温度值,则单片机发出PWM信号控制电子加热器关闭,并控制风扇开启。通过不断循环该过程,完成对温度的控制和调节。3.系统硬件设计本文所采用的单片机是STC89C52型号,内部包含512字节RAM、8K字节在线程序存储器、64K字节闪存及32个IO端口。硬件电路设计主要包括温度传感器DS18B20电路、电子加热器控制电路和风扇控制电路。如图2所示。图2系统硬件电路图3.1温度传感器电路温度传感器采用DS18B20型号,可直接通过单片机的IO口读取温度值。具体电路连接方式如图3所示。图3温度传感器电路图我们需要将传感器的三根线分别连接到STC89C52单片机的对应IO口。其中,VDD和GND分别表示传感器的正负极,DQ为数字信号线。温度传感器和单片机之间的通讯采用巡回编址的方式完成。3.2电子加热器控制电路本文所设计的智能温度控制系统中,采用电子器件实现加热控制,PWM技术控制电子电路的开关状态。电子加热器控制电路图如图4所示。图4电子加热器控制电路图通过PWM技术生成的脉冲信号控制MOS管,电子电路开关状态可根据输出波形实时控制加热器的加热强度。本文中,采用的MOS管模型为IRF540N,VDD的电压通过电势分压电路产生,为直流24V。在控制电路中,我们采用一个光耦来实现单片机和MOS管之间的隔离,从而保证系统的安全性和稳定性。电阻R1的值取2.2K,可避免反向漏电流,提高光耦的灵敏度。3.3风扇控制电路风扇是调节温度的重要手段之一,通过控制风扇的开关状态,可以有效地调节环境温度。本文所设计的风扇控制电路如图5所示。图5风扇控制电路图在电路设计中,我们采用了一个三极管对风扇进行控制。以STC89C52的IO口为输入信号,输出控制信号控制三极管的导通和截止,从而实现控制风扇开关状态的功能。风扇的正极和负极连接到三极管的集电极和发射极上,而基极连接到STC89C52单片机的IO口上。4.系统软件设计本文系统软件设计主要使用C语言进行编写,实现系统温度监测和控制。具体实现过程如下。4.1初始化设置编写程序时,需要先对系统进行初始化,确定电子加热器和风扇的控制IO口,并对温度传感器进行初始化。初始化程序如下:voidInit(){intflag=0;TMOD=0x01;TH0=0xFC;TL0=0x18;TR0=1;ET0=1;EA=1;while(flag!=1){if(RST==0&&flag==0){flag=1;LED=1;delay(100);LED=0;delay(100);LED=1;delay(100);LED=0;delay(100);LED=1;delay(100);LED=0;delay(500);LED=1;delay(100);LED=0;delay(1000);}//一个初始化的指示灯}}其中的EA和ET0分别表示开启中断总控制和定时器T0中断,及开启温度传感器读取温度值。4.2读取温度值温度传感器模块采用巡回编址方式通讯,按照调制解调的步骤,将数据从传感器发送到单片机。温度传感器数据读取程序如下:voidDelay_us(unsignedchart)//0.5us延时函数{while(t--){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}}unsignedcharread_temperature()//读取温度程序{unsignedchartem;unsignedchari,j;DQ=1;Delay_us(2);DQ=0;Delay_us(80);DQ=1;Delay_us(20);j=DQ;if(j==0){while(!DQ);for(i=0;i<8;i++){DQ=0;tem>>=1;Delay_us(5);DQ=1;Delay_us(5);if(DQ!=0){tem|=0x80;}Delay_us(20);}}returntem;}因为DS18B20采用1-Wire总线通讯协议,该数据信号在单个管脚上传输,而且同一时间只使用一条总线。在程序中,我们采用一个8位无符号整型变量tem来存储数据。8位数据通过巡回编址传送到温度传感器中。4.3控制加热器和风扇系统控制加热器和风扇的核心程序是实现PWM技术对电路的控制。程序如下:voidHeat_System_Control()//加热控制程序{Init_PWM();delay_us(10);Init_Inter_Ultra();//初始化PI控制参数delay_us(10);SET_HEATER=1;//根据温度信号,开启或关闭加热器和风扇SET_FAN=0;Heat_Value_Read();//读取温度值R_value=Heat_value;Y_value=R_value;//通过传感器读取的实际温度值Y_value,将环境温度值映射到理论值E_value=P_value-Y_value;//误差即当前温度与目标温度的差S_value=S_period+E_value*Kp+(E_value-L_value)*Ki;//PI控制if(S_value<S_min)S_value=S_min;//阈值的控制if(S_value>S_max)S_value=S_max;DC_value=S_value/1000.0;//将控制后的信号变化值转换成占空比百分比PWM2_SetDC(DC_value);//通过定义PWMTimer.c}其中,P_value为想要达到的设定温度值;R_value为实际温度值;Y_value参数为反馈温度值。当系统检测到环境温度与设定温度差值达到一定数值时,开启加热器,并关闭风扇。反之,开启风扇,关闭加热器。控制系统同样采用PI控制策略,并且根据系统实际情况,调整控制参数,使系统响应更快,稳定性更好。采用PWM技术实现加热和风扇控制时,控制信号可由对应的占空比矩形波信号产生。通过对脉宽和周期的控制,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论