下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、成 绩:_重庆邮电大学自动化学院综合实验报告题 目51系列单片机闭环温度控制学生姓名:_班 级:0841004_学 号:2010213316_同组人员:_指导教师:亨 _完成时间:2013年12月一、实验名称:51 系列单片机闭环温度控制实验- 基于 Protuse 仿真实验平台实现基本情况:1.1. 学生姓名:蒋运和2.2. 学号:201021331620102133163.3. 班级:084100408410044.4. 同组其他成员:序号姓名班级学号1 1李海涛08410040841004201021331520102133152 2陈超0841004084100420102133172
2、010213317二、实验内容(实验原理介绍)1 1、系统基本原理计算机控制技术实训,即温度闭环控制,根据实际要求,即加温速度、超调量、调 节时间级误差参数,选择 PIDPID 控制参数级算法,实现对温度的自动控制。闭环温度控制系统原理如图:计算机 PID数字输出温控测温TF- W-2 2、PIDPID 算法的数字实现本次试验通过 80318031 通过 OVENOVEN 是模拟加热的装置,加一定的电压便开始不停的升 温,直到电压要消失则开始降温。仿真时, U U 形加热器为红色时表示正在加热,发红时 将直流电压放过来接,就会制冷,变绿。 T T端输出的是电压,温度越高,电压就越高。80318
3、031 对温度的控制是通过可控硅调控实现的。可控硅通过时间可以通过可控硅控制 板上控制脉冲控制。该触发脉冲想 80318031 用软件在 P1.3P1.3 引脚上产生, 受过零同步脉冲后 经光偶管和驱动器输送到可控硅的控制级上。偏差控制原理是要求对所需温度求出偏差 值,然后对偏差值处理而获得控制信号去调节加热装置的温度PIDPID 控制方程式:式中 e 是指测量值与给定值之间的偏差TD 微分时间T积分时间AU K e+ + V V-e( ()1)1I |MlMl* *JIIKPKP 调节器的放大系数将上式离散化得到数字 PIDPID 位置式算法,式中在位置算法的基础之上得到数字PIDPID增量
4、式算法:3、硬件电路设计在温度控制中,经常采用是硬件电路主要有两大部分组成:模拟部分和数字部分, 对这两部分调节仪表进行调节, 但都存在着许多缺点,用单片机进行温度控制使构成的 系统灵活,可靠性高,并可用软件对传感器信号进行抗干拢滤波和非线性补偿处理,可 大大提高控制质量和自动化水平;总的来说本系统由四大模块组成,它们是输入模块、 单片机系统模块、计算机显示与控制模块和输出控制模块。输入模块主要完成对温度信 号的采集和转换工作,由温度传感器及其与单片机的接口部分组成。利用模拟加热的de装置来控制温度程序结构图如下:3 3、电路原理图OOOatcTEXTZ-一口11XTAL1XTA12PODTA
5、OaP0.MM1PD2TAOZFOJAWROWAfrFOSM05pmwPOJM073?2L_2/MOMS2卫2P22tA1OP23*11FZ.WA12FZIM13F24CAUP2JM15IDTT2 I1/TZEKP3IWX0 F3VTXOFaaSTPP33riiT7P1WTDF3STT1psemR3T/r1 R ,1-rUJX2-于;A=R6卜三、实验结果分析(含程序、数据记录及分析和实验总结等,可附页)1、51 系列单片机直流电机闭环调速实验程序/*-REG52.HHeader file for generic 80C52 and 80C32 microcontroller.Copyrigh
6、t (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.- */ #ifndef_REG52_H_#define _REG52_H/* BYTE Registers */sfr P0= 0 x80;sfr P1= 0 x90;sfr P2= 0 xA0;sfr P3= 0 xB0;sfr PSW= 0 xD0;sfr ACC= 0 xE0;sfr B= 0 xF0;sfr SP= 0 x81;sfr DPL= 0 x82;sfr DPH= 0 x83;sfr PCON = 0 x87;sfr
7、 TCON = 0 x88;sfr TMOD= 0 x89;sfr TL0= 0 x8A;sfr TL1= 0 x8B;sfr TH0= 0 x8C;sfr TH1= 0 x8D;sfr IE= 0 xA8;sfr IP0 xB8;sfr SCON = 0 x98;sfr SBUF= 0 x99;/* 8052 Extensions */ sfr T2CON = 0 xC8;sfr RCAP2L = 0 xCA;sfr RCAP2H = 0 xCB;sfr TL2 = 0 xCC;sfr TH2= 0 xCD;/* BIT Registers */* PSW */sbit CY=PSWA7;s
8、bit AC=PSWA6;sbit F0= PSWA5;sbit RS1= PSWA4;sbit RS0= PSWA3;sbit OV= PSWA2;sbit PPSWA0; /8052 only/* TCON*/sbit TF1= TCONA7;sbit TR1= TCONA6;sbit TF0= TCONA5;sbit TR0= TCONA4;sbit IE1 =TCONA3;sbit IT1 =TCONA2;sbit IE0 =TCONA1;sbit IT0 =TCONA0;/* IE */sbit EA= IEA7;sbit ET2= IEA5; /8052 onlysbit ES=
9、IEA4;sbit ET1= IEA3;sbit EX1= IEA2;sbit ET0= IEA1;sbit EX0= IEA0;/* IP */sbit PT2= IPA5;sbit PS= IPA4;sbit PT1= IPA3;sbit PX1= IPA2;sbit PT0= IPA1;sbit PX0= IPA0;/* P3 */sbit RD= P3A7;sbit WR= P3A6;sbit T1 sbitT0 sbitINT1 sbitINT0 sbitTXD sbitRXD /*SCON sbitSM0 sbitSM1 sbitSM2 sbitREN sbitTB8 sbitRB
10、8 sbit TIsbit RI=P3A5;=卩3人4;= P3A3;= P3A2;= P3A1;= P3A0;*/= SCONA7;= SCONA6;= SCONA5;= SCONA4;= SCONA3;= SCONA2;= SCONA1;= SCONA0;/* P1 */sbit T2EX = P1A1; / 8052 onlysbit T2 = P1A0; / 8052 only/* T2CONsbit TF2 sbitEXF2 sbitRCLK sbitTCLK sbitEXEN2 sbitTR2 sbitC_T2*/= T2CONA7;= T2CONA6;= T2CONA5;= T2
11、CONA4;= T2CONA3;= T2CONA2;= T2CONA1;sbit CP_RL2 = T2CONA0;#endif#ifndef WENDU_H_ #define WENDU_H_#define u8 unsigned char#define u16 unsigned int #define PULSE200/LCD/sbit RS = P2A5; sbit RW =卩2人6; sbit EN= P2A7;sbit LED = P3A0; sbit ENA = P3A7; sbit IN2= P3A6; sbit IN1 = P3A5;void delay_ms(u16 z);v
12、oid LCD_WriteData(u8 Dat);void LCD_WriteCOM(u8 com);void Show_Num(u8 x,u8 y,u8 n,u16 num);void Show_fNum(u8 x,u8 y,u16 num);void LCD_Init(void);void key_scan(void);/void key_scan(void);extern u16 read_tlc2543(u8 port);#endif#ifndef TLC2543_H_ #define TLC2543_H_/TLC2543/sbit SDO = P2A0;sbit SDI = P2A
13、1;sbit CS = P2A2;sbit CLK = P2A3;sbit EOC = P2A4;/u16 read_tlc2543(u8 port); #define u8unsigned char #define u16 unsigned intu16 read_tlc2543(u8 port); u8AD_deal(void);#endif#include#includetlc2543.h/n 为数字长度 num 小于等于 65535/#includewendu.h void delay_us(u16 z)u16 i;for(i=z;i0;i-);u16 read_tlc2543(u8
14、port)static u8 PORT = 0; u8 Temp,i,k=0; u16AD_value=0;Temp = port;CS = 1;CLK = 0; delay_us(1);Temp=4;CS = 0;while(1)for(i=0;i8;i+)CLK = 0; if(Temp&0 x80) SDI= 1;elseSDI = 0;AD_value=1;if(SDO)AD_value |= 0 x01;CLK = 1; delay_us(2);Temp=1;for(i=8;i12;i+)CLK = 0;AD_value=1; if(SDO)AD_value |= 0 x01
15、;delay_us(2);CLK = 1;CLK = 0;CS = 1;if(PORT = port) break;elseTemp = port;Temp2)PORT = port;return AD_value;u8 AD_deal(void)u16 AD_value;u16 temp;float temp1;AD_value = read_tlc2543(0 x00);temp1 =(AD_value*0.04069);temp =(u16)(temp1*10);if(temp%10)4)temp = temp/10+1; else temp =temp/10; temp = (u8)t
16、emp;return temp;#include#includewendu.h #includetlc2543.h u8S_Temp=100; / 设置温度 u8 P_Temp=25;/ 实际温度 u8 pulse = 0;u8 Kp=30,Ki=0;Kd=10;int uk=0;int num=0;struct FLAGu8 turn;myflag;/* 函数功能:延时*/ void delay_ms(u16 z)u16 i;u8 j;for(i=z;i0;i-) for(j=120;j0;j-);/*函数功能: LCD 写数据*/void LCD_WriteData(u8 Dat)RS =
17、 1;/ delay_ms(5);P1 = Dat;EN = 1;delay_ms(5);EN = 0;/*函数功能: LCD 命令*/void LCD_WriteCOM(u8 com)RS = 0;/ delay_ms(5);P1 = com;EN = 1;delay_ms(5);EN = 0;/*函数功能: Show_Num 初始化*/void Show_Num(u8 x,u8 y,u8 n,u16 num)u16 Temp=num;u8 a5,i;for(i=0;i0;i-)LCD_WriteData(ai-1+0 x30);/n 为数字长度 num 小于等于 65535/*函数功能:
18、Show_fNum 初始化*/void Show_fNum(u8 x,u8 y,u16 num)u8 a,b;a = num/10%10;b = num%10;if(y%2 = 1)LCD_WriteCOM(0 x80+x);elseLCD_WriteCOM(0 x80+0 x40+x);LCD_WriteData(a+0 x30);LCD_WriteData(b+0 x30);/*函数功能: Show_Num 初始化*/void Show_char(u8 x,u8 y,u8 ch)if(y%2 = 1)LCD_WriteCOM(0 x80+x);elseLCD_WriteCOM(0 x80+
19、0 x40+x);LCD_WriteData(ch);/*函数功能: LCD 初始化 */void LCD_Init(void)RW = 0;EN = 0;/delay_ms(20);LCD_WriteCOM(0 x38);LCD_WriteCOM(0 x0c);LCD_WriteCOM(0 x06);LCD_WriteCOM(0 x01);/*函数功能: LCD 初始化*/void LCD_display(void)Show_char(0,1,P);Show_char(1,1,T);Show_char(2,1,:);Show_char(9,1,S);Show_char(10,1,T);Sho
20、w_char(11,1,:);Show_Num(12,1,3,S_Temp);Show_char(0,2,P);Show_char(1,2,:);Show_Num(2,2,2,Kp);Show_char(5,2,I);Show_char(6,2,:);Show_Num(7,2,2,Ki);Show_char(10,2,D);Show_char(11,2,:);Show_Num(12,2,2,Kd);/* 函数功能:定时器 2 初始化*/void timer2_init()RCAP2H =(65536-100)/256;RCAP2L =(65536-100)%256;TH2 = RCAP2H;T
21、L2 = RCAP2L;ET2 = 1;TR2 = 1;EA = 1;void Temp_crl()static int ess3=0; static sum = 0;ess0=S_Temp-P_Temp;/100usuk=Kp*ess0+Ki*sum+Kd*(ess0-ess1);ess2=ess1;ess1=ess0; sum = sum+ess0;uk=(int)(uk/10); if(uk=0)if(uk=200) uk = 199;myflag.turn = 1;elseuk=-uk;if(uk=200)uk = 199;myflag.turn = 0;pulse = uk;int
22、main(void)u16 AD_value1=0; myflag.turn=0;ENA = 1; LCD_Init(); LCD_display();timer2_init();while(1)AD_value1 = read_tlc2543(0);P_Temp = AD_deal();Temp_crl();Show_Num(3,1,3,P_Temp); key_scan();return 0;void timer2() interrupt 5static u16 num1=0;TF2 = 0;num1+;if(num1=PULSE) num1=0;ENA=1;void key_scan(v
23、oid)u8 Temp=P0;static u8 Add_Ver=0,one_ten=0;static Tri=0,CON=0;Temp = TempAOxff;Tri = Temp&(TempPON);CON = Temp;if(Tri=0 x10)Add_Ver+;Add_Ver=Add_Ver%2;else if(Tri=0 x20)one_ten+;one_ten=one_ten%2;else if(Tri=0 x01)if(S_Temp+1=1&Add_Ver=1&one_ten=0)S_Temp-;else if(S_Temp+10=10&Add_V
24、er=1&one_ten=1)S_Temp=S_Temp-10;Show_Num(12,1,3,S_Temp);else if(Tri=0 x02)if(Kp+1=1&Add_Ver=1&one_ten=0)Kp-;else if(Kp+10=10&Add_Ver=1&one_ten=1)Kp=Kp-10;Show_Num(2,2,2,Kp);else if(Tri=0 x04)if(Ki+1=1&Add_V er=1&one_ten=0)Ki-;else if(Ki+10=10&Add_Ver=1&one_ten=1)Ki=Ki-10;Show_Num(7,2,2,Ki);else if(Tri=0 x08)if(Kd+1=1 &A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 研究生定向协议书盖章
- 维护生产协议书
- 2025劳动合同将实行备案制度
- 2025年短视频创作者打赏分成协议
- 2025年班车租赁合同范本
- 2025-2030年低空经济航空旅游市场前景预测与产业链研究报告
- 2025年工业厂房金刚砂耐磨地坪厚度检测技术报告
- 2025年宠物老年护理行业服务评估与改进方向
- 产品尚佳营销方案
- 联通相同营销方案
- 2025年远程医疗的法律规制与监管体系建设
- 龙岗区民政局离婚协议
- 妇产科VTE培训考核试题(附答案)
- 猪场工作应聘简历
- 2025年职业生涯规划师职业资格考试试题及答案
- 足浴转让合同协议书范本
- DB36T 2032-2024 高速公路养护工程安全管理规程
- 2024年中央机关遴选笔试案例分析一科B类笔试试题真题试卷答案解析
- 工程成本加酬金合同协议
- JJF 2247-2025井水埋深测量仪校准规范
- 国开电大软件工程形考作业3参考答案 (一)
评论
0/150
提交评论