系列单片机闭环温控制实验报告_第1页
系列单片机闭环温控制实验报告_第2页
系列单片机闭环温控制实验报告_第3页
系列单片机闭环温控制实验报告_第4页
系列单片机闭环温控制实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、 成 绩: 综合实验报告题 目:51系列单片机闭环温度控制 班 级: 小组成员: 指导教师: 完成时间: 2015年11月 一、实验名称: 51系列单片机闭环温度控制实验基于Protuse仿真实验平台实现基本情况:1.实验项目组长:2. 小组成员:序号姓 名班 级学 号分工系数1233.具体分工:负责程序编写,主要负责查询资料与实验报告撰写。4.实验要求: 设计硬件电路: 温度检测:采用热电偶或热电阻 温度给定:采用电位器进行模拟电压给定,05V AD转采用12位转换 显示采用8位LED,或者LCD1602显示 键盘4X4,PID等参数通过键盘设置。 软件 控制算法:数字PID,参数在线修改。

2、显示窗口:显示温度的设置值SV、温度的实际值PV。实际温度值,温度峰值、峰值时间等通过串口上传到上位机(选做)二、实验内容1、 系统基本原理(实验原理介绍)根据实验要求,温度闭环控制,即对加温速度、超调量、调节时间级误差参数,选择PID控制参数级算法,实现对温度的自动控制。闭环温度控制系统原理图如下:测温温控数字输出计算机PID2、 PID算法的数字实现本次试验通过8031通过OVEN 是模拟加热的装置,加一定的电压便开始不停的升温,直到电压要消失则开始降温。仿真时,U形加热器为红色时表示正在加热,发红时将直流电压放过来接,就会制冷,变绿。T端输出的是电压,温度越高,电压就越高。 8031对温

3、度的控制是通过可控硅调控实现的。可控硅通过时间可以通过可控硅控制板上控制脉冲控制。该触发脉冲想8031用软件在P1.3引脚上产生,受过零同步脉冲后经光偶管和驱动器输送到可控硅的控制级上。偏差控制原理是要求对所需温度求出偏差值,然后对偏差值处理而获得控制信号去调节加热装置的温度。PID控制方程式:式中e是指测量值与给定值之间的偏差TD 微分时间T 积分时间KP 调节器的放大系数将上式离散化得到数字PID位置式算法,式中在位置算法的基础之上得到数字PID增量式算法:3、 温度控制软件设计 程序结构图如下:4、硬件电路设计在温度控制中,经常采用是硬件电路主要有两大部分组成:模拟部分和数字部分,对这两

4、部分调节仪表进行调节,但都存在着许多缺点,用单片机进行温度控制使构成的系统灵活,可靠性高,并可用软件对传感器信号进行抗干拢滤波和非线性补偿处理,可大大提高控制质量和自动化水平;总的来说本系统由四大模块组成,它们是输入模块、单片机系统模块、计算机显示与控制模块和输出控制模块。输入模块主要完成对温度信号的采集和转换工作,由温度传感器及其与单片机的接口部分组成。 利用模拟加热的装置来控制温度。 该闭环温度控制系统采用AT89S51八位机作为微处理单元进行控制。采用4X4键盘把设定温度的最高值和最低值存入单片机的数据存储器,还可以通过键盘完成温度检测功能的转换。温度传感器把采集的信号与单片机里的数据相

5、比较来控制温度控制器。5、 电路原理图1、仿真完整电路图2、12位AD转换模块3、OVEN模型及信号调理电路4、单片机主电路三、实验结果分析(含程序、数据记录及分析和实验总结等,可附页):1、51系列单片机闭环温度控制实验程序Main.c#include includes.hchar measure_temperature6 = +,0,0,0,C,0;char setting_temperature6 = 0,1,0,0,C,0;char code_table16 = 7,8,9,T, 4,5,6,P, 1,2,3,I, +,0,-,D;char Pv6=P,0,9,0, ,0;char I

6、v6=I,0,0,0, ,0;char Dv6=D,0,0,5, ,0;int PWM_Period = 100;int PWM_Hight = 1;int PWM_Hights = 50;short m_temperature = 0;short s_temperature = 100;float pc = 090.0;float ic = 0.0;float dc = 5.0;float e1 = 0;float e2 = 0;char RX_Data5 = 0;int main()timer_init();lcd_init();while(1)ADCRead();keyscan();Da

7、ta_update();LCD_Display(0x80+0x08,setting_temperature);LCD_Display(0x80+0x40,Pv);LCD_Display(0x80+0x45,Iv);LCD_Display(0x80+0x4A,Dv);return 0;PWM.c#include includes.huchar T_update = 0;uchar P_update = 0;uchar I_update = 0;uchar D_update = 0;void T0_time() interrupt 1 /PWMPWM_Hights-;if(PWM_Hights =

8、 0)PWM_EN = 0; PWM_Hights = 1; PWM_Period-;if(PWM_Period = 0)PWM_EN = 1;PWM_Period = 100;PWM_Hights = PWM_Hight;void pid()static long sum = 0;e2 = e1;e1 = s_temperature-m_temperature;sum += e1;if(e1 20)PWM_Hight = 100;else if(e1 100)PWM_Hight = 100;else if(PWM_Hight 1)PWM_Hight = 1;void Interrupt_T1

9、() interrupt 3static int count = 0;TH1 = 0x3C;/定时50msTL1 = 0xB0;count+;if(count = 20) pid(); count = 0;void update_Temp()short j = 0;short tmp = 0;for(j = 1;j=3;j+)tmp = tmp*10+(setting_temperaturej-0);if(setting_temperature0 = -)tmp = -tmp;s_temperature = tmp;void update_Pv()short j = 0;short tmp =

10、 0;for(j = 1;j=3;j+)tmp = tmp*10+(Pvj-0);pc = tmp;void update_Iv()short j = 0;short tmp = 0;for(j = 1;j=3;j+)tmp = tmp*10+(Ivj-0);ic = tmp;void update_Dv()short j = 0;short tmp = 0;for(j = 1;j0; i-)stri = (num % 10) + 0;num = num / 10;str5 = 0;void ADCRead()short num = 0;/无符号16位RC = 0;/启动转换RC = 1;/启

11、动读取while(BUSY = 0);num = 0;BYTE = 0; /读取高4位num = (num|P1)8;num = num & 0x0F00;BYTE = 1;/读取低8位num = num|P1;/12位数据完整取好if(num&0x0800) = 0x0800)measure_temperature0 = -;num = num&0xF7FF;num = (num0x07FF)+1;m_temperature = -(num/2047.0)*999.0);elsemeasure_temperature0 = +;m_temperature = (num/2047.0)*999

12、.0;itoa(num,measure_temperature);LCD_Display(0x80,measure_temperature);RC = 0;Delay.c#include includes.hvoid delay_ms(int n)/1ms延时uint i=0,j=0;for(i=0;in;i+)for(j=0;j 4) 0x0F; switch(i) case 1: keyno += 0;break; case 2: keyno += 4;break; case 4: keyno += 8;break; case 8: keyno += 12;break; while(P3

13、!= 0xF0);if(keyno=0 & keyno =15) if(update_flag = 1) key_code = code_tablekeyno; setting_temperatureupdate_index = key_code; update_index+; if(update_index = 4) update_flag = 0;update_index = 0;T_update = 1; else if(update_flag = 2) key_code = code_tablekeyno; Pv1+update_index = key_code; update_ind

14、ex+; if(update_index = 3) update_flag = 0;update_index = 0;P_update = 1; else if(update_flag = 3) key_code = code_tablekeyno; Iv1+update_index = key_code; update_index+; if(update_index = 3) update_flag = 0;update_index = 0;I_update = 1; else if(update_flag = 4) key_code = code_tablekeyno; Dv1+updat

15、e_index = key_code; update_index+; if(update_index = 3) update_flag = 0;update_index = 0;D_update = 1; else switch(keyno)case 3:update_flag = 1;break;case 7:update_flag = 2;break;case 11:update_flag = 3;break;case 15:update_flag = 4;break;default:update_flag = 0; 2、 实验结果100度设定温度仿真结果零下25度设定温度仿真结果3、 实

16、验总结温度控制广泛应用于人们的生产和生活中,人们使用温度计来采集温度,通过人工操51系列单片机直流电机闭环调速实验劳动强度大。即使有些用户采用半导体二极管作温度传感器,但由于其互换性差,效果也不理想。在某些行业中对温度的要求较高,由于工作环境温度不合理而引发的事故时有发生。对工业生产可靠进行造成影响,甚至操作人员的安全。为了避免这些缺点,需要在某些特定的环境里安装数字温度测量及控制设备。在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化,稳定性好,不振荡,对系统的快速要求不高。在报告中中简单分析了温度控制系统基于Protuse仿真实验,采用热电偶作为温度检测器,应用LED显示,通过键盘4X4来对PID进行参数控制。本实验设计使用8031作为主芯片进行控制,单片机具有集成度高

温馨提示

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

评论

0/150

提交评论