基于单片机的恒温控制系统设计论文.doc

上传人:哈尼dd 文档编号:3922480 上传时间:2019-10-10 格式:DOC 页数:12 大小:366.52KB
返回 下载 相关 举报
基于单片机的恒温控制系统设计论文.doc_第1页
第1页 / 共12页
基于单片机的恒温控制系统设计论文.doc_第2页
第2页 / 共12页
基于单片机的恒温控制系统设计论文.doc_第3页
第3页 / 共12页
基于单片机的恒温控制系统设计论文.doc_第4页
第4页 / 共12页
基于单片机的恒温控制系统设计论文.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《基于单片机的恒温控制系统设计论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的恒温控制系统设计论文.doc(12页珍藏版)》请在三一文库上搜索。

1、摘要:本设计采用了STC89C52单片机组成温度控制系统,可以实现对常温的水加热到最大100oC的较快而精确的控制。温度传感器采用了数字式温度传感器DS18B20,对温度进行实时采样。设置的键盘各显示模块可以预设加热的最终保持水温并进行实时显示预设温度和当前温度。单片机采用PID算法的控制输出宽度可调的PWM波方式控制双向可控硅的导通和关断用以调整输出加热功率,使之切断或接通加热器,从而控制水温稳定在预值上。根据温控的单回路PID数字调节器完成实时测量(传感采样),实时决策(PID控制运算)和实时控制(调功)三部分功能。一、 设计任务1 基本要求:设计制作一套单片机温度控制系统,包括:(1),

2、硬件原理图(2),印制板PCB图(3),硬件测试程序(4),元件焊接调试2主要性能指标: (1),温度设定在常温到100oC,最小区分度为1oC (2),温度控制的静态误差1oC (3),用LCD液晶显示水的实测温度和预设温度二、系统硬件原理设计1系统总体框图温度传感器DS18B20STC89C52单片机基本控制系统LCD显示键盘双向可控硅电炉加热器采集2 系统功能实现的设计(1)温度采集本设计采用数字传感器DS18B20,DS18B20是一种可组网的单线数字温度传感器,它采用单线总线结构,集温度测量和A/D转换于一体,直接输出数字量,用一根I/O线就可以传送数据与命令,其温度测量范围为-55

3、oC+125oC,精度为+/-0.5oC,使用中无需外部器件,可利用数据线或外部电源提供电能,供电电压范围为3.35.5V,通过编程实现912位分辨率读出温度数据。使用时,将DS18B20的数据DQ与单片机的一位具有三态功能的双向口连接就可以实现数据传输,为保证在有效的时钟周期内提供足够电流,采用外部电源单独供电,在数据线上加一个6.8K的上拉电阻。具体接线如下:(2)显示与键盘 设计中显示的实现采用LCD液晶集成模块TJDM1602,由STC 89C52单片机P0的8个数据端口与其连接,中间加上拉电阻来完成对实时采集温度的显示。1602为16位两行字符显示,所以设计中定义第一行显示设定温度S

4、T,第二行显示实测温度PT,下面是1602的RAM地址映射图:读时序:写时序:此设计中键盘使用STC 89C52单片机P1口,采用独立式7键结构(此次只使用4个按键),操作更具多样化且满足设计中设定温度的要求。 (3)输出控制 由于被控对象是水的温度,故算法控制采用P调节,由主控单片机运算输出脉冲宽度可调的PWM波用于双向可控硅在1s内的导通和关断数从而调节输出给电炉的功率,这样使得水温稳定在设定值上。设计中使用MOC3021光耦隔离输出给双向可控硅BTA06后与电炉串联。下面是接线图:(4)主控单片机 设计中选用STC 89C52单片机,共有四个8位的I/O口,外加12MHz晶振提供时钟信号

5、,采用上电复位模式,P2.2口号和温度采样与处理器件DS18B20通讯,直接输入12位数字量到89C51内进行处理,P2.0口输出控制信号与外接电源构成回路来控制固态继电器的输入信号,P0口与LCD液晶显示模块1602连接,用于实时温度和设定温度的显示。三、 系统软件原理设计控制系统加电后主控单片机、LCD显示、温度传感器DS18B20复位,然后初始化单片机和温度传感器,初始化完成之后,程序开始扫描键盘等待设定目标温度值,设定完成后,程序则立即开始通过扫描温度传感器DS18B20来实时采集当前水温并显示。控制算法中,当设定值与实际水温值相差大于10oC时,控制电炉的输出功率为全功率,当两者相差

6、小于10OC时采用比例控制,并在相差105oC时采用不同参数的比例控制,小于5oC时采用比例积分控制,直至实际水温与设定水温相同时停止控制,程序进入等待控制状态,如果水温降到设定值以下则又开始控制。(1),按键功能定义本次设计中定义4个按键:设定、加、减、复位键。复位键由主控单片机的复位来实现,其余各键由P1口采集控制,分别为:P1.4、P1.1、P1.2口。设定初始值时默认从高位到低位依次设定,用加减键实现数字的选择,按下设定键直接确认并跳到下一位,三位设定完成后主程序开始进行实时数据的采集和对输出的控制。(2),温度传感器实时数据采集设计中选用数字传感器DS18B20,其内部可自动完成对温

7、度模拟量到数字量的转换和放大,通过一根信号即可将实时温度参数读入主控单片机进行控制处理。本设计中通过P2.2口进行信号传输,控制程序中只要对DS18B20初始化完毕就可以实时读取采集温度信号。(3),LCD液晶集成模块TJDM1602初始化TJDM1602通过主控单片机的P0口连接,外接上拉电阻,其显示最多达16位,设计使用上下两行来分别实现设定值与实测值的共同显示,P2.3、P2.4、P2.5分别实现TJDM1602的复位、读写和使能,主程序中参考其时序来实现数据的显示。(4),调功输出控制主控单片机运算输出脉冲宽度可调的PWM波用于双向可控硅在1s内的导通和关断数从而调节输出给电炉的功率。

8、控制算法采用比例控制,当设定值与实际水温值相差大于20oC时,控制电炉的输出功率为全功率,当两者相差小于10oC时采用比例控制,当两者相差小于5oC时采用比例积分控制,直至实际水温与设定水温相同后间歇控制,程序进入等待控制状态,如果水温降到设定值以下则又开始控制。四、 主控程序在控制算法中采用比例和比例积分相结合的方法,温度设定值与实际水温相小于20oC就开始介入比例控制,这样可以很好的抑制住水温上升的惯性,并在相差105oC时采用不同参数的比例控制,最大限度的达到控制系统的快速性,小于5oC时采用比例积分控制,使得水温逐渐向设定值稳定地逼近。设计中采用位置式PID模型,将微分项置为0即可实现

9、PI控制。参考PID算法如下:SumError += Error; / 积分 dError = LastError - PrevError;PrevError = LastError; / 当前微分 LastError = Error; Final_error = (Proportion*Error+ Integral*SumError+ Derivative*dError);主控算法程序结合按键程序如下:#include#includedelay.h#includeLCD_1602.h#includeds18b20.h#define uchar unsigned char#define ui

10、nt unsigned intsbit kaitong=P20;int aa,set_value=500,cc,dd;int SetPoint=900,PrevError=0,LastError=0,Error=0,dError=0;long int SumError=0;float Proportion=0.1,Integral=0.005,Derivative=0.0;float Final_error;/*=PID计算部分=*/ void duty(int z)cc=z;void adjust(int set_p,int now_value) Error = set_p - now_va

11、lue; / 偏差 if(Error=200)duty(20); else if(Error=100) duty(Error/20+5); else if(Error=50) duty(Error/30+3); else if(Error20)dd=1; adjust(set_p,i);if(dd=cc)kaitong=0;elsekaitong=1;setPosition(2,1);i=readtemp();IntToStr(i,buffer,3);prints(* PT:);printc(buffer0);printc(buffer1);printc(.);printc(buffer2);printc(0xDF);printc(C); delayl(300);12参考资料林敏、丁金华、田涛.计算机控制技术及工程应用.北京国防工业出版社,2009刘翠玲、黄建兵.集散控制系统.北京大学出版社,2006金以慧.过程控制,1993附录温度控制系统硬件电路图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1