




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、指导教师评定成绩: 审定成绩: 重庆邮电大学课程设计报告设计题目: 温度控制器的设计 学 院 名 称 : 自 动 化 学 院学 生 姓 名 : 张 昊 天专 业 : 自 动 化班 级 : 0811301学 号 : 2013212563指 导 教 师 : 蒋 健 春填表时间: 2016 年 5 月重庆邮电大学摘 要温度是许多领域控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足轻重的作用。随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片机应用在温度测量与控制方面,控制简单方便,测量范围广,精确度较高。它具有处理能力强,运
2、行速度快,功耗低等优点。温度控制器是一种提供温度显示、过温报警的装置。基于单片机设计,测温探头采用DS18B20数字温度传感器,测量现场温度,使用7段码显示器显示当前温度,蜂鸣器提供报警功能,运用PID算法进行温度控制。该装置可以实现上下位机通信,设置报警温度,实现控温目的,并且根据下位机测量的温度绘出温度变化曲线。本课题是设计一个温度控制系统。其原理是所测量的温度信号直接通过数字温度传感器检测到温度后,送到单片机中,单片机把检测的温度同上位机设定的温度进行比较,并显示在显示器上(如果温度高于设定值,语音提示且蜂鸣器报警),再由单片机将温度发送到上位机,绘制温度变化曲线,观察温度变化,根据控制
3、策略给出温度设定值,从而构成温度控制系统。【关键词】单片机 温度控制 PID控制 温度传感器I目 录第一章 设计题目及任务分工1一、设计题目1二、任务分工2第二章 总体方案设计3一、各模块电路的方案选择3一、温度控制系统硬件设计5第三章 个人设计工作8设计总结11参考文献12附 录13II第一章 设计题目及任务分工第一节 设计题目设计一个电路系统,通过温度传感器检测外界的温度,然后经放大接入A/D,和键盘设置的温度值进行比较,来调节控制器对加热器进行控制,使温度保持在设定温度附近,并通过LED显示温度值,如果出现温度异常,通过嗡鸣器进行报警。以实现温度设置输入、温度显示、温度异常报警、加热执行
4、器控制等功能。整个过程采用PID控制算法进行电路控制,使温度的超调量不超过0.5度 设计任务:1)掌握A/D转换与单片机的接口连线;2)掌握数据采集电路设计方法;3)掌握LED/LCD显示与键盘的设计方法;设计要求:1)画出控制系统结构框图;2)选择合适元器件进行电路设计,画出电路原理图;3)画出系统功能实现流程图。4)编写控制程序。第2节 任务分工本设计由八位同学组成,每位同学负责的主要任务如表1.1 所示。表1.1 任务分工表序号姓名学号主要负责任务1王浩宇2013213050加热电路2卿坤2013212448DS18B20芯片(传感器转换)3杨翔2013212449变压器4孙鲁琪2013
5、212477PID控制5张昊天2013212505电路的设计和材料6黄友成2013212525键盘和显示7王世渝2013212552报警和加热器、程序8刘然2013212563板子的焊接和PCB板的制作第二章 总体方案设计系统的控制对象是水温,水温经测温度传感器DSl820转换成数字信号,数字信号保存在89C52单片机采样值单元中;再利用键盘输入设定温度,经温度标度转换成二进制数,保存在单片机内设定值单元;然后,调用显示子程序,显示设定温度和采样温度,然后把采样值与设定值输入单片机内进行数字PID控制算法的运算,运算结果由单片机输出,通过可控硅交流调压装置来控制时间的导通和关断,在达到设定温度
6、后保持此温度。系统的主要部件有七个部分,分别是:温度传感器DS18B20、STC89C52单片机、LCD1602液晶、BTA12晶闸管(含光隔电路)、电热丝、按键、电源模块。整个系统的结构如下:被控对象执行器(电热丝)DS18B20温度信号采集BTA06(晶闸管)显示模块LM1602液晶按键(参数设定)单片机图1 系统结构图第一节 各模块电路的方案选择主机控制模块方案一:采用模拟放大器组成的PID控制系统。对于水温控制系统是足够的。但要附加显示,温度设置等功能,附加电路较多,且反应速度慢。方案二:采用STC89C52单片机作为控制器。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实
7、现各种算法和逻辑功能。本身带有定时/计数器,可以用来定时、计数,并且具有功耗低、体积小、技术成熟和成本低等优点。基于以上分析,拟定方案二,由STC89C52作为主机控制部分。电源电路部分电源电路部分包含电源变压器、整流滤波电路、稳压电路以及加热控制电路。变压部分其实就是一个变压器,变压器作用是将220V的交流电压变换成我们所需的电压9V。然后再送去整流和滤波。整流电路将交流电压变成单向脉动的直流电压;滤波电路用来滤除整流后单向脉动电压中的交流成份,合之成为平滑的直流电压。滤波电路常见的有电容滤波电路、电感滤波电路。在这的稳压电路中我使用的是“三端固定输出集成稳压器”,稳压电路的作用是当输入交流
8、电源电压波动、负载和温度变化时,维持输出直流电压的稳定。控制电路用于在闭环控制系统中对被控对象实施控制,被控对象为电热丝,采用对加在电热杯两端的电压进行通断的方法进行控制,以实现对水加热功率的调整,从而达到对水温控制的目的。温度采集模块方案一:采用热敏电阻。选用此类元件的优点价格便宜,但由于热敏电阻的非线性特性会带来较大的误差。方案二:使用带有A/D(模数转换)单片集成的DS18B20传感器。DS18B20数字温度计是DALLAS公司生产的即单总线器件,无需其他外加电路,直接输出数字量。可直接与单片机通信,读取测温数据。具有线路简单,性能稳定体积小的特点。比较以上方案,结合设计精度要求最小区分
9、度为1,所以选择方案二。显示模块方案一:采用三个LED八段数码管分别显示温度的十位、个位和小数位。数码管具有低能耗,低损耗,寿命长,耐老化,对外界环境要求低。但LED八度数码管引脚排列不规则,动态显示时要加驱动电路,硬件电路复杂。方案二、采用LCD1602作为显示温度值的器件。LCD1602是工业字符型液晶,能够同时显示16x2个字符,1602采用标准的16脚接口,其中包括8根数据线,三根控制线,电源、地、就液晶驱动电压引脚。使用方便,价格适中。比较以上方案,选择方案二。系统各模块的最终方案根据以上分析,结合器件和设备等因素,确定如下方案:1采用STC89C52单片机作为控制器,分别对温度采集
10、、LCD显示、温度设定、加热装置功率控制。2温度测量模块采用DS18B20,此器件经A/D转换可实现高分辨率测量。3电热丝有效功率控制采用双向晶闸管控制,实现电路简单实用,加上温度变化缓慢可以满足设计要求。4显示用LCD1602显示实时温度值,用MOD(模式)、TH(上升)、TL(下降)四个单键实现温度值的设定。第二节 温度控制系统硬件设计考虑到尽量降低成本和避免与复杂的电路,此系统所用到的元器件均为常用的电子器件。而主控器采用低功耗、高性能、片内含8k byte可反复檫写的Flash 、只读程序器CMOS8位单片机ST89S52;温度传感器采用DALLAS公司生产的单总线数字温度传感器DS1
11、8B20;采用控制端TTL电平,即可实现对继电器的开关,使用时完全可以用 NPN型三极管接成电压跟随器的形式驱动;单片机所需要的+5V工作电源是通过220V交流电压通过变压、整流、稳压、滤波得到。实时控制的显示器、键盘通过单片机来完成键盘扫描与输出动态显示。下面对硬件电路作具体的设计。图为电路原理图,分为:电源电路模块、单片机模块、温度传感器模块、液晶显示模块和蜂鸣器模块。图2 电路原理图图3 PCB板连接图电源电路部分电源电路部分包含电源变压器、整流滤波电路、稳压电路以及加热控制电路。变压部分其实就是一个变压器,变压器作用是将220V的交流电压变换成我们所需的电压9V。然后再送去整流和滤波。
12、整流电路将交流电压变成单向脉动的直流电压;滤波电路用来滤除整流后单向脉动电压中的交流成份,合之成为平滑的直流电压。滤波电路常见的有电容滤波电路、电感滤波电路。在这的稳压电路中我使用的是“三端固定输出集成稳压器”,稳压电路的作用是当输入交流电源电压波动、负载和温度变化时,维持输出直流电压的稳定。控制电路用于在闭环控制系统中对被控对象实施控制,被控对象为电热丝,采用对加在电热杯两端的电压进行通断的方法进行控制,以实现对水加热功率的调整,从而达到对水温控制的目的。单片机模块单片机模块主要实现硬件系统中各个模块功能之间的相互协调,数据的处理,输出执行,报警设置等功能。其中包括时钟脉冲产生电路、单片机复
13、位电路等。温度传感器模块温度测量转换部分是整个系统的数据来源,直接影响系统的可靠性。传统的温度测量方法是:温度传感器直接将采集到的信号转换成数字信号,单片机再对采集的数字信号进行处理。液晶显示模块在设计键盘/显示电路时,我们使用单片机STC89C52作为电路控制的核心,单片机STC89C52具有一个全双工的串行口,利用此串行口能够方便的实现系统的控制和显示功能。键盘部分,为了便于编程,采用独立键盘;显示部分采用LCD1602液晶显示。蜂鸣器模块蜂鸣器主要是用于温度加热到超过设置温度时报警。第三章 个人设计工作方案的设计方案一:图4 方案一系统图理论描述:该方案的控制对象为是水温,水温经过温度传
14、感器将温度转化为电信号,再将电信号经过放大器放大。放大器连接ADC0809将电信号转化为八位的数据信号,之后将数据信号传送给八位锁存器74HC573。锁存器连接单片机。单片机每次要读取数据时要先发送锁存信号给74HC573,之后从锁存器中读取数据,读取的数据进行两种处理1.传送给液晶显示模块,显示当前的温度。2.经过PID算法处理的到输出的八位数据。再将八位的数据信号传送给DAC0832,将数据信号转化为电压信号。再将所得的电压信号经过放大器放大加在加热器上。电路图仿真图5 方案一电路仿真图经过我们仿真电路模拟,单片机的I/O口资源不够,所以该方案被放弃。方案二被控对象执行器(电热丝)DS18
15、B20温度信号采集BTA06(晶闸管)显示模块LM1602液晶按键(参数设定)单片机图6 方案二系统结构图该方案的控制对象是水温,我们选用的器件主要的有:温度芯片DS18B20、单片机STC89C52、LCD1602液晶、MOC3022光耦、BTA12可控硅。电路原理图图7 方案二电路原理图该方案将温度控制系统分为六个模块:主机控制模块、电源电路部分、温度采集模块、显示模块、键盘模块、负载模块。温度采集模块:运用温度芯片DS18B20,进行温度的测量,为了防止工作时电流过大,在电源和DQ之间链接一个电阻。图7 方案二温度采集模块电路连接图主机控制模块:按照单片机最小系统搭建,提供复位按键和系统
16、时钟。图8 主机控制模块电路链接图电源电路部分:由于温度控制系统是一个独立的控制系统,同时负载加热器所需要的电源为220V,单片机所需电源为5V。所以需要一个电源电路来提供两种不同的电压,以满足控制系统不同的电压需求。图9 电源电路电路链接图插座提供220V的交流电通过变压器转变为12V的交流电。再通过整流桥转换成9V的直流电,之后再通过稳压电路将电压稳定在5V。得到5v电压给控制系统供电。显示模块:我们使用单片机STC89C52作为电路控制的核心,单片机STC89C52具有一个全双工的串行口,利用此串行口能够方便的实现系统的控制和显示功能。键盘部分,为了便于编程,采用独立键盘;显示部分采用L
17、CD1602液晶显示。图10 显示模块电路连接图28设计总结论文介绍了本次课程设计我们小组从开始讨论设计方案到选择各模块及电路的设计,程序的编写等,到板子的制作,元器件的焊接,做出实物之后的测试等。此次课程设计遇到的问题还是比较多的,开始在设计方案的选择上面纠结了一下,后来在蒋健春老师的指点下我们用PID算法进行控制升温,实现水温的更精确的控制;在元件的选择方面,我们也进行了比较;后来设计的过程中不免遇到一些问题,在板子的制作过程中需要注意一些问题,转印的时候可以多转印一两次,焊接元器件时在保证焊接正确牢固的同时也要注意美观。通过此次课程设计,我学到了很多,不仅加强了我对专业知识的掌握,熟悉了
18、板子的制作过程,焊接元器件的技术也有所提高,还明白了团队的合作力量有多大,以后的工作中离不开团队合作。参考文献1 向敏.微控制器原理及应用.人民邮电出版社,2012.42 杨素行.模拟电子技术基础.高等教育出版社,2006.53 胡向东.传感器与检测技术.机械工业出版社,2011.24 胡寿松.自动控制原理,北京:科学出版社,2012.4附 录程序:#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P37;/ds18b20与单片机连接口sbit F=P23;sbit RS=P25
19、;sbit RW=P26;sbit EN=P27;sbit OPEN=P22;/可控硅sbit SLED=P13;/指示灯#define TIMER0_HIGHT 0xd8f0/设置定时器0工作方式1自动装载初值,定时10ms,Fosc=12MHZ#define TIMER0_LOW 0x18 unsigned char code str1="Temp Set: "unsigned char code str2="Now Temp: "uchar data disdata5;uchar data setdata5;uint tvalue;/温度值unsi
20、gned char RH_OR_TEMP=0;uchar tflag;/温度正负标志float Error;sbit K1 =P10;/加热开关sbit K3 =P12;sbit K2 =P11;unsigned char HERAT=0;unsigned char Temp_SET=40;/温度值unsigned char Time5ms=0; unsigned char Ms_flag=0;unsigned int T_10S=0;unsigned char e10e=0;unsigned int teep4;unsigned int Ti_time=0;unsigned int PWM=
21、0;unsigned int PWM_count=100;typedef struct PID unsigned int SetPoint; / 设定目标 Desired Value float Proportion; / 比例常数 Proportional Const float Integral; / 积分常数 Integral Const float Derivative; / 微分常数 Derivative Const float LastError; / Error-1 float PrevError; / Error-2 float SumError; / Sums of Erro
22、rs PID;float rOut; / PID Response (Output)float rIn; / PID Feedback (Input) PID sPID; / PID Control Structure unsigned int temp;int j = 0;float aa20 = 0;unsigned char PIDDEL=0;/*-延时子程序-*/#define XTAL 12 /晶振频率,单位MHzvoid delay_1ms(void) /1ms延时函数 unsigned int i; for (i=0;i<(unsigned int)(XTAL*143-2)
23、;i+); void delay_nms(unsigned int n) /N ms延时函数 unsigned int i=0; for (i=0;i<n;i+) delay_1ms(); /*lcd1602程序*/void delay1ms(unsigned int ms)/延时1毫秒(不够精确的)unsigned int i,j; for(i=0;i<ms;i+) for(j=0;j<100;j+);void wr_com(unsigned char com)/写指令/ delay1ms(1); RS=0; RW=0; EN=0; P0=com; delay1ms(1);
24、 EN=1; delay1ms(1); EN=0;void wr_dat(unsigned char dat)/写数据/ delay1ms(1); RS=1; RW=0; EN=0; P0=dat; delay1ms(1); EN=1; delay1ms(1); EN=0;void lcd_init()/初始化设置/delay1ms(15);wr_com(0x38);delay1ms(5); wr_com(0x08);delay1ms(5); wr_com(0x01);delay1ms(5); wr_com(0x06);delay1ms(5); wr_com(0x0c);delay1ms(5)
25、;void display(unsigned char *p)/显示/while(*p!='0')wr_dat(*p);p+;delay1ms(1);init_play()/初始化显示 lcd_init();wr_com(0x80);display(str1);wr_com(0xc0);display(str2); /*ds1820程序*/void delay_18B20(unsigned int i)/延时1微秒 while(i-);void ds1820rst()/*ds1820复位*/ unsigned char x=0;DQ = 1; /DQ复位delay_18B20(
26、4); /延时DQ = 0; /DQ拉低delay_18B20(100); /精确延时大于480usDQ = 1; /拉高delay_18B20(40); uchar ds1820rd()/*读数据*/ unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-) DQ = 0; /给脉冲信号 dat>>=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/*写数据*/unsigned char
27、 i=0; for (i=8; i>0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata>>=1; read_temp()/*读取温度值并转换*/uchar a,b;EA = 0; ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xbe);/*读取温度*/ a=ds1820rd();b=ds1820rd();EA = 1;
28、tvalue=b;tvalue<<=8;tvalue=tvalue|a; if(tvalue<0x0fff) tflag=0; else tvalue=tvalue+1;tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数 temp=tvalue;if(Error >= 5) F=1;else F=0;return(tvalue);/-void Value_to_ASCII(unsigned char value,uchar add) unsigned char temp = "000" temp0 = v
29、alue/100 + 0x30; value = value%100; temp1 = value/10 + 0x30; value = value%10; temp2 = value + 0x30; wr_com(add); /光标起始地址 ,第一行地址是0x000x0F,第二行地址是0x400x4f display(temp);/*/void ds1820disp()/温度值显示 uchar flagdat; disdata0=tvalue/1000+0x30;/百位数 disdata1=tvalue%1000/100+0x30;/十位数 disdata2=tvalue%100/10+0x
30、30;/个位数 disdata3=tvalue%10+0x30;/小数位 if(tflag=0) flagdat=0x20;/正温度不显示符号 else flagdat=0x2d;/负温度显示负号:- if(disdata0=0x30) disdata0=0x20;/如果百位为0,不显示 if(disdata1=0x30) disdata1=0x20;/如果百位为0,十位为0也不显示 wr_com(0xc9); wr_dat(disdata0);/显示百位 wr_com(0xcA); wr_dat(disdata1);/显示十位 wr_com(0xcB); wr_dat(disdata2);/
31、显示个位 wr_com(0xcC); wr_dat(0x2e);/显示小数点 wr_com(0xcD); wr_dat(disdata3);/显示小数位 wr_com(0xcE); wr_dat(0xdf);/显示温度的小圆圈符号,0xdf是液晶屏字符库的该符号地址码 wr_dat(0x43);/显示温度的小圆圈符号,0xdf是液晶屏字符库的该符号地址码 void PIDdea(void)int i;float sum = 0;float del;float dError;int control;sPID.Proportion = 3; /-sPID.Integral = 0.1;sPID.D
32、erivative = 0.1;if(PIDDEL=1) PIDDEL = 0; Error = (float)sPID.SetPoint - (float)temp; / 偏差 if(Error<30) Ti_time+; if(Ti_time=4) Ti_time=0; sPID.SumError += Error; / 积分 if(sPID.SumError>1000)sPID.SumError=1000; if(sPID.SumError<-1000)sPID.SumError=-1000; elsesPID.SumError=0; dError = sPID.Las
33、tError - sPID.PrevError; / 当前微分 sPID.PrevError = sPID.LastError; sPID.LastError = Error; rOut = (sPID.Proportion * Error / 比例项 + sPID.Integral * sPID.SumError / 积分项 + sPID.Derivative * dError); / 微分项 / if (sPID.SetPoint <= temp)/ /PWM = 0;/ / else/ if(Error >= 100)/设定温度与当前相差10度,则全功率加热 PWM=100;
34、 else if(rOut >= 0)/正常范围内,PID计算 if(rOut>100)rOut=100; PWM = rOut ; elsePWM=0; / PWM_count=100; void tempget(void)unsigned char i=0; for(i=0; i<60; i+) read_temp();/读取温度 /*主程序*/void main() tempget();SLED=1;/-中断配置- TMOD &= 0xF0;TMOD |= 0x01;/设置定时器0,方式1:16位定时器TH0 = TIMER0_HIGHT;/设置定时器0高字节初值TL0 = TIMER0_LOW;/设置定时器0低字节初值TR0 = 1;/启动定时器0 ET0 = 1;/开定时器0中断EA = 1; /开总中断 OPEN=1; init_play();/初始化显示 Value_to_ASCII(Temp_SET,0x8A);sPID.SetPoint
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络文学出海2025年:跨文化传播与版权保护机制创新实践案例分析报告
- 低空旅游项目在2025年市场前景与发展策略研究报告
- 地热能供暖在北方农村地区的应用现状与2025年发展前景报告
- 税收优惠政策筹划实例及稽查应对
- 2025年工业互联网平台网络流量整形技术在工业控制系统中的节能效果报告
- 2025年医疗器械行业国产化:市场潜力与投资风险研究报告
- 2025年农业产业结构调整与新型经营主体培育策略研究报告
- 针对2025年城市污水处理厂扩建项目的风险评估与风险评估成果创新研究报告
- 船长教学设计美术课件
- 咖啡连锁行业2025年扩张战略布局与品牌战略创新研究报告
- 竞聘工程主管课件
- 中国精神障碍分类与诊断标准第3版
- DB21-3907-2023-海水养殖尾水排放标准-辽宁省
- 黄简书法初级课程讲座笔记(第31-51课)
- 光伏施工项目危险源辨识与风险评价清单(LEC法)
- 制造业企业招股说明书范文示例
- 2025年施工现场质量员继续教育考试题库(继续教育)含答案
- 2024-2025年中国新生代妈妈群体触媒行为及营销趋势报告
- 钢结构施工的应急预案(3篇)
- 粮食运输安全保障措施
- JTG H30-2015 公路养护安全作业规程
评论
0/150
提交评论