水温监控及水位越限报警系统( 本科E题)_第1页
水温监控及水位越限报警系统( 本科E题)_第2页
水温监控及水位越限报警系统( 本科E题)_第3页
水温监控及水位越限报警系统( 本科E题)_第4页
水温监控及水位越限报警系统( 本科E题)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、题目名称 水温监控及水位越限报警系统( 本科E题)摘要:本系统采用嵌入式微处理器作为核心部件,采用DS18B20集成温度传感器对温度进行实时采样,通过对采集到的温度值与人工设定的值进行比例积分微分算法并运用脉宽调制技术,控制电热器的加热功率和自动注入冷水来实现温度控制,并显示当前值与设定值。对于水位越限报警局部,那么采用电接触式液位控制,通过插入液体中的三根电极实现上下位报警,当超出设定的液位范围时,电路就会发出报警,同时单片机通过水泵控制抽水和放水,使液位到达规定范围。测试结果说明,该系统具有良好的可靠性、稳定性及温控能力。关键词: 微控制器;温度测量;PID控制;脉冲调宽技术; Abstr

2、act: This system takes core part by monolithic integrated circuit STC89C52. Regarding water temperature monitoring part,it uses DS18B20 to carry on the real-time sampling to the temperature and programed with the software which cllected on the temperature and artificial set of values PID processing

3、to control the generation of PWM wave, then control the heating or electric heater to the cold water into the container to realize temperature control, and on the real-time use display of equipment to display the two temperature Value . Regarding the warning part of water level overstep, uses the el

4、ectrode to make the height fluid position examination. When the liquid level exceeded the set range, the circuit will issue a report to the police, at the same time through the single-chip control of pumps and pumping water, so that the liquid level up to the required range.The test result indicated

5、 that this system has the good reliability, the stability and controls ability warm.Keyword: MCU;Temperature measurement ;PID control ; PWM; 目录前言4 TOC o 1-3 h z u HYPERLINK l _Toc113951468 1 方案论证与比拟4 HYPERLINK l _Toc113951469 1.1 温度采样方法方案论证4 HYPERLINK l _Toc113951470 1.2 水位越限报警的选择方案论证4 HYPERLINK l _

6、Toc113951471 1.3 显示方法方案论证5 HYPERLINK l _Toc113951474 2 系统设计5 HYPERLINK l _Toc113951475 2.1 总体设计5 HYPERLINK l _Toc113951476 2.2 单元电路设计7 HYPERLINK l _Toc113951477 2.2.1 测温控制电路设计7 HYPERLINK l _Toc113951478 2.2.2 液位报警电路设计8 HYPERLINK l _Toc113951479 2.2.3 数码管显示电路设计9 HYPERLINK l _Toc113951481 3 软件设计9 HYPE

7、RLINK l _Toc113951482 4系统调试及功能12 HYPERLINK l _Toc113951483 5 设计总结12 HYPERLINK l _Toc113951484 参考文献:12 HYPERLINK l _Toc113951485 附录:13 HYPERLINK l _Toc113951488 附1:电路图图纸13 HYPERLINK l _Toc113951489 附2:程序清单14前 言水温监控及水位越限报警系统在工业及日常生活中应用广泛,分类较多。不同水温控制系统的控制方法也不尽相同,其中以PID控制法最为常见。单片机控制局部采用STC89C52单片机为核心,采用

8、软件编程,实现用PID算法来控制PWM波的产生,进而控制电热器的加热来实现温度控制。然而,单纯的PID算法无法适应不同的温度环境,在某个特定场合运行性能非常良好的温度控制器,到了新环境往往无法很好胜任,甚至使系统变得不稳定,需要重新改变 PID 调节参数值以取得好性能,因此需要扩展EEPROM来存储不断整定的参数。水位控制的方式也多种多样,如电容式、差压式、电磁式、差压式等,在选用方式时根据具体情况而论,本系统采用一种简单的电接触式。方案论证与比拟1.1 温度采样方法比拟与选择方案1:采用热敏电阻。可满足35-95的测量范围,但热敏电阻精度、重复性和可靠性都比拟差,对于检测精度小于1的温度信号

9、是不适用的。 方案2:采用温度传感器AD590。AD590具有体积小、质量轻、线形度好、性能稳定等优点。其测量范围在-50- +150,满刻度范围误差为,当电源电压在510V之间,稳定度好,其各方面特性都满足此系统的设计要求。此外AD590是温度-电流传感器,对于提高系统抗干扰能力有很大的帮助。但增加程序的长度,占用大量CPU的时间。方案3:采用温度传感器DS18B20。它是一种数字式的温度传感器,直接将被测温度转换成串行数字信号,具有微型化,低功耗,高性能,抗干扰能力强等优点。从微处理器到DS18B20仅需连接一条信号线和地线。它可以实现912位的温度读数,测量范围为-55+125,在-10

10、+85范围内误差为0.5 ,将12位的温度值转换为数字量所需时间不超过750ms。读写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。经上述比拟,方案3明显优于1、2,应选用方案3。1.2 水位越限报警的选择方案论证方案1:利用浮球在上下限的受力变化经过放大器放大控制电机开启水泵和放水阀的开闭。由于采用模拟控制及浮球作液位传感器,系统受环境的影响大,不能实现复杂的控制算法,也不能使控制精度做得较高,而且不能用数码显示和键盘设定。方案2:采用超声波液位传感器。虽然可以实现非接触测量,但它对被测液体的纯洁度,容器的选择要求较高,并且适合远距离测量,最短测量距离为20cm, 本系统中

11、的水容量仅为1左右,不适合用此类传感器。方案3:采用电接触式液位控制。因为水是导电液体,将一根导线放入水中,另两根导线分别置于容器的上下限水位处。当水位低于下限值时下限电路截止,单片机对应控制端口收到低电平信号,立即控制水泵进水和发出报警;当水高于上限值时,上限电路导通,经运放为单片机对应控制端口送入低电平,单片机立即控制水阀放水并发出越限警告。综上考虑,方案3的各方面性能较好,应选择方案3。1.3 显示方法方案论证方案1:采用1602液晶。体积扁平、轻巧,但编程较复杂,且显示屏幕太小,不适合远距离观测。 方案2:采用点阵LED。LED显示屏可以显示变化的数字、文字、图形图像,亮度高、工作电压

12、低、寿命长、耐冲击和性能稳定。但本系统要求显示的内容较少,只需能显示数字就行。方案3:采用数码管。控制简单,只需选中相应的段码和位码就能显示。亮度好,适合远距离观测。从经济方面考虑,也较方案1和方案2好。因此,对于显示方法那么采用方案三的数码管来显示。2 系统设计2.1 总体设计根据控制要求,本水温监控及水位越限报警系统主要由STC89C52单片机最小控制系统、测温控制电路、液位报警电路、键盘及显示电路和PC控制电路五大局部组成,其总体设计框图如下列图所示。图1 总体设计框图1用键盘设定水温,范围是4090,用温度传感器DS18B20检测水的实时温度,单片机对两温度进行比拟,根据差值输出一脉冲

13、信号控制固态继电器对水进行加热,加热时间的长短取决于两温度的差,差值越大,加热时间越长,通过PID调节使实际温度最终与设定值一致,水温控制的结构框图如图二所示图2 水温控制结构框图2用数码管实时显示当前的水温值。3为防止容器中的水烧干或溢出,即实现水位越限报警功能,用三根导线组成电极放入水中,一根放到水底部,另外两根分别至于上下水位限处,当水位低于下限位时,下限位报警器报警,单片机输出一信号控制水泵抽水;同样,当水位高于上限位时,上限位报警器报警,单片机输出一信号控制水泵放水。4用串口实现单片机与上位机之间的通信。串口将数据发送给上位机后,上位机接收到数据并将信息反映出来。 水温控制的关键点在

14、于采用PID算法来控制PWM波的输出。其中P为比例控制,I为积分控制,D为微分控控制,PID控制即比例积分微分控制,这是一种较理想的控制规律。它是在比例的根底上引入积分,可以消除余差,再参加微分作用,又能提高系统的稳定性,它适用于控制通道时间常数或容量滞后较大、控制要求较高的场合,如此题中的水温控制。数字PID的控制算法 将积分与微分项分别改写成差分方程,得 式中T为采样周期,k为采样序号,e(k-1)、e(k)分别为第k-1和第k次采样所得的偏差信号 ,由此可得k时刻的控制增量为式中 Kc是比例增益,值为;Ki是积分增益,值为;Kd是微分增益,值为采用增量型PID算式,第k时刻的实际输出为,

15、 由式可知,计算和u(k)也仅需用到第k-1、(k-2)时刻的历史数据 e(k-1)、e(k-2)和u(k-1),编程序简单,占用存储单元少,运算速度快,因此本系统采用增量型PID算式。设PWM波的周期为400ms, 通过改变它的占空比来改变加热时间,当PWM输出低电平时,固态继电器接通,给水加热;当PWM输出高电平时,固态继电器断开,不给水加热。假设一个时刻u(k)的最大值为AK,此时PWM的低电平为整个周期,即对水进行全功率加热,计算第k时刻的实际输出u(k)与AK的比值,再乘以周期,所得的值就是 PWM输出低电平的时间,即对水进行脉冲式加热的时间。此后PWM输出高电平,直到下一个周期的到

16、来。2.2 单元电路设计测温控制电路设计 图3 DS18B20的接法 图4 固态继电器的驱动电路如上图的图3所示是DS18B20在Protel的原理图,它是8引脚SOIC的封装,但有5个是空引脚,所以图中只画有用的三脚。DS18B20采用单线技术,单根信号线即可传输时钟,又能传输数据,而且数据传输是双向的,这需要一定的协议来对读写数据提出严格的时序要求。当主机操作单线器件DS18B20必须遵循下面的顺序:初始化ROM操作命令内存操作命令数据处理。它采用的是单线技术,单线协议由复位脉冲、应答脉冲、写1、写0、读1和读0几种信号类型组成。 图4是固态继电器的驱动电路,通过单片机的IO口输出一信号来

17、驱动固态继电器工作,实现对水进行加热,为满足题目中要求到达的快速性,应选用功率大些的,本系统所用的功率为1850W。液位报警电路设计图5 液位检测图6 越限报警 图7 液位检测报警电路图5、图6、图7实现了液位超限报警的功能,三根金属丝放水中形成三个电极,通过水的导电性能将两信号通过电压比拟器进行比拟,以此来驱动发光二级管的亮灭以及蜂鸣器报警。 数码管显示电路设计图8 数码管显示采用两个四位八段共阴的数码管实现实时温度及PID参数的显示。由于是共阴型,单片机输出的电流缺乏以驱动数码管工作,因此,在单片机的I/O端增加一PNP三极管,将电流放大,就可使数码管正常工作。当显示温度时,前四位显示的是

18、实际的温度值,后两位显示的是设定的温度值,由此可以直观的比拟出两者的偏差。另外,当配合按键使用时,数码管还可显示出PID的参数值。3 软件设计本系统的主控制芯片为STC89C52单片机,采用C语言编程,软件流程图主要分为:主程序、按键的外部中断、定时器中断、串口中断。主程序中只是对一些系统的初始化和显示函数的处理,根据要求,理清编程思路。 以上两外部中断的按键程序流程图实现加1和减1的功能。将其设为外部中断可使系统快速响应中断,到达实时控制的目的。通过按键可以设定温度的初始值,调整PID参数,功能切换等。定时中断流程图如上图所示,实现20ms的定时,等时间采样温度,同时对加热时间进行严格的控制

19、,以使实际与设定温度的误差减小。单片机与上位机之间通讯时,单片机按以上的通信流程图进行。在编程时应注意模块化编程,将各子功能模块编好后,再整合为一完整程序代码。注意区分各变量之间的关系,分清局部和全局变量。系统调试及功能在系统调试之前,应先把硬件做好,并保证系统的稳定性和可靠性,防止浪费时间和精力。本系统调试的关键在于PID参数的整定,取适宜的PID参数,可使系统到达良好的性能。经屡次试验,每次试验后,仔细分析 PID参数的变化对系统的影响效果,总结变换规律,并在此根底上进行计算,最终找到适宜的值。经过屡次调试比拟,本系统根本上完成了题目的所有功能要求,由于系统架构设计合理,功能电路实现较好,

20、系统性能优良、稳定,较好地到达了题目要求的各项指标。设计总结参加此次电子设计大赛,让我们受益匪浅,真正领悟到了,学有所为,学以致用。在本次设计的过程中,遇到了一些突发事件和各种困难,但通过仔细分析和不断调适解决了问题。大家各方面能力有了进一步的提高,在这个过程中我们深刻的体会到共同协作和团队精神的重要性,提高了自己解决问题的能力,在以后的日子里,我们也会更加努力地提高自己、充实自己。参考文献:1 童诗白, 华成英著 .模拟电子技术根底.北京: 高等教育出版社,2003年2 阎石著.数字电子技术根底. 北京:高等教育出版社, 2003年3 邵裕森,戴先中著.过程控制工程.机械工业出版社4 程鹏主

21、编.自动控制原理.高等教育出版社5 张毅刚主编.单片机原理附录:附1:电路图图纸附2:程序清单#include#include#include#define uint unsigned int#defineucharunsignedchar uint time=25,heattime=1,cooltime=0;uchartplsb,tpmsb;/保存温度的上下字节 uint xs;ucharsum,shi,ge,xs1,xs2;/定义温度十位个位小数点的存储单元uchardigbit;/定义数码管显示字位ucharnum1,num2,num3,num4;/定义设定温度存储单元 ucharnum

22、=40;/设定温度的初值为50ucharcount;/定义检测温度循环次数uinttime1;/定义定时器1的初值存储单元ucharKc=9000,Ki=10,Kd=1000;/设定PID参数 uint cnt=20,count1; uintsjtemp,sdtemp,diftemp,ek1=0,ek2=0,ek3=0,uk_1=0,difuk; unsigned long AK=100000; signed long difek=0,uk=0;sbitup=P32;/上键的控制位sbitdown=P33;/下键的控制位 sbit enter=P34; /确定键的控制位sbitchange=P

23、35;sbitheat=P25;/PWM开/关控制位sbitDQ=P20;/温度传感器的数据通信位sbitwaterL=P21; /当P21为低电平那么水位低于设定下限sbitwaterH=P37;/当P37为低电平那么水位高于设定上限sbitalarm=P24;/超限报警 sbit Inwater=P27; sbit Outwater=P26;bitshowflag;/定义数码管显示标志位bitheatflag;/定义是否加热标志位bittempcmpflag;/定义是否进行比拟的标志位 bit flag;bitupflag1,upflag2;bitdownflag1,downflag2;b

24、itenterflag1,enterflag2;ucharcodetable=0 xeb,0 x28,0 xb3,0 xba,0 x78,0 xda,0 xdb,0 xa8,0 xfb,0 xfa,0 x00;/数码管的段码void delay1ms(uint t)/延时大约1ms子程序uinti;while(t-)for(i=0;i125;i+);void delay(uint t)/延时大约1ms子程序uinti;while(t-)for(i=0;i0)i-;DQ=1;/产生上升沿;i=4;while(i0)i-;voidRxwait(void)/等待应答脉冲;uinti;while(DQ

25、);while(DQ);/检测到应答脉冲? i=4;while(i0)i-;bitRdbit(void)/读取数据的一位,满足读时隙要求;uinti;bitb;DQ=0;i+;/保持低至少一微秒;DQ=1;i+;i+;/延时15微秒以上;b=DQ;i=8;while(i0)/读时隙不低于60微秒;i-;return(b);ucharRdbyte(void)/读取数据的一个字节;uchari,j,b;b=0;for(i=1;i=8;i+)j=Rdbit();b=(j1);return(b);voidWrbyte(uchar b)/写数据的一个字节;满足写1和写0的时隙要求;uinti;uchar

26、j;bitbtmp;for(j=1;j1;/取下一位由低位向高位;if(btmp)DQ=0;i+;i+;/延时使得15微秒以内拉高;DQ=1;i=8;while(i0)i-;/整个写1时隙不低于60微秒;elseDQ=0;i=8;while(i0)i-;/保持低在60120微秒之间;DQ=1;i+;i+;voidconvert(void)/启动温度转换;TxReset();/产生复位脉冲;初始化DS18B20;Rxwait();/等待DS18B20给出应答脉冲delay1ms(1);/延时Wrbyte(0 xcc);/跳过读ROM存放器命令Wrbyte(0 x44);/温度转换命令;voidR

27、dtemp(void)/读取温度值;TxReset();/产生复位脉冲;初始化DS18B20;Rxwait();/等待DS18B20给出应答脉冲delay1ms(1);/延时Wrbyte(0 xcc);/跳过读ROM存放器命令Wrbyte(0 xbe);/读暂存器命令;tplsb=Rdbyte();/温度低位字节tpmsb=Rdbyte();/温度高位字节voidresolve_10(void)/把温度传感器设定为10位分辨率;Wrbyte(0 xcc);/发跳过ROM命令;Wrbyte(0 x4E);/写暂存器命令Wrbyte(0 x00);/设定传感器检测温度上限值;Wrbyte(0 x0

28、0);/设定传感器检测温度下限值Wrbyte(0 x3f);/选11位温度分辨率;/*.数值转换函数.*/voidconvert_value(void)ucharp;uchart;/保存小数位的单元p=tplsb;sum=(tpmsb & 0 x07)*16+(tplsb & 0 xf0)/16;/不带小数点的实际温度处理表达式t=(p & 0 x0f);/小数点的实际温度处理表达式shi=sum/10;/十位处理ge=sum%10;/个位处理switch(t) case 0 x00: xs=0;break; case 0 x04: xs=25;break; case 0 x08: xs=50

29、;break; case 0 x0c: xs=75;break; default: break; xs1=xs/10;xs2=xs%10;num1=num/1000; /显示设定温度的十位个位处理num2=num%1000/100; num3=num%1000%100/10; num4=num%1000%100%10;/*.实际温度与设定温度的比照与处理函数.*/voidtempcmp(void)sjtemp=sum*100+(xs/10);/实际温度与设定温度均放大100倍sdtemp=num*100;if(sdtempsjtemp)/如果设定温度大于实际温度diftemp=sdtemp-s

30、jtemp;/计算温差并减去一定的保持功率 if(diftemp350) heattime=time; cooltime=0; heatflag=1; else if(count=0) ek3=ek2; ek2=ek1; ek1=diftemp;/保存第一次温差 difek=Kc*(ek1-ek2)+Ki*ek1+Kd*(ek1+ek3-2*ek2); /增量PID计算公式 uk=uk_1+difek; if(uk=0) heattime=0; else heattime=uk*time/AK; cooltime=time-heattime; uk_1=uk; else cooltime=ti

31、me; /*.显示子函数.*/voiddisplay(void) uchari;switch(digbit)case 1:i=tableshi;break;case 2: i=(tablege|0 x04);break;case 4: i=tablexs1;break;case 8: i=tablexs2;break; case 16:i=tablenum1;break;case 32:i=tablenum2;break;case 64:i=tablenum3;break; case 128: i=tablenum4; break;default:break;P0=0 xff;/关闭所有数码管

32、P1=i;/送段码P0=digbit;/送字位if(digbit0 x80)digbit=digbit*2;/如果判断不超过第六位数码管移向下一位数码管elsedigbit=0 x01;/重新从第一位数码管开始/*.主程序.*/voidmain() resolve_10();/初始化暂存器 P0=0 xff;/先关闭所有数码管TMOD=0 x11;/设置两个计数器的工作方式均为10 TH0=-10000/256;/设置定时器0的初值TL0=-10000%256; ET0=1;/允许定时器0中断 TR0=1;/开启定时器0IT0=1;IT1=1; EX0=1; EX1=1; EA=1; /开总中断delay1ms(1); /延时约1ms convert();/启动温度转换;Rdtemp();/读取温度convert_value(); /转换温度 flag=0; digbit=0 x01;count1=time; while(1) display(); if(flag=1) convert(); Rdtemp(); flag=0; delay1ms(1); convert_value(); tempcmp(); if(heatflag=1) heat=0; else heat=1; if(up=1)

温馨提示

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

评论

0/150

提交评论