毕业课程设计电加热水温控制系统.docx
- 文档编号:25390606
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:22
- 大小:839.29KB
毕业课程设计电加热水温控制系统.docx
《毕业课程设计电加热水温控制系统.docx》由会员分享,可在线阅读,更多相关《毕业课程设计电加热水温控制系统.docx(22页珍藏版)》请在冰豆网上搜索。
毕业课程设计电加热水温控制系统
(此文档为word格式,下载后您可任意编辑修改!
)
湖南文理学院课程设计报告
系部:
电气与信息工程学院
报告成绩:
摘要…………………………………………………………………………………..2
Abstract…………………………………………………………………...………3
第一章系统设计…………………………………………………………………4
1.1项目概要………………………………………………………………………4
1.2设计任务和要求………………………………………………………………4
第二章硬件设计…………………………………………………………….….5
2.1硬件设计概要…………………………………………………………………5
2.2信息处理模块…………………………………………………………………5
2.3温度采集模块…………………………………………………………………6
2.3.1传感器DS18B20简介…………………………………………………….6
2.3.2实验模拟电路图………………………………………………………….6
2.3.3程序流程图……………………………………………………………….7
2.4控制调节模块…………………………………………………………………9
2.4.1升温调节系统………………………………………………………...….10
2.4.2温度上下限调节系统……………………………………………..….….10
2.5显示模块…………………………………………………………………...…12
第三章仿真显示成果…………………………………………………...……13
实习总结………………………………………………………………………….15
致谢………………………………………………………………………………..16
参考文献…………………………………………………………………….……17
附录…………………………………………………………………………….….18
1、原理图………………………………..………………………………….……..18
2、源程序……………………………….……………………………….…….…..19
摘要:
在现代工业生产中,温度是常用的测量被控因素。
本设计是基于51单片机控制,将DS18b20温度传感器实时温度转化,并通过1602液晶对温度实行实时显示,并通过加热片(PWM波,改变其占空比)加热与步进电机降温逐次逼近的方式,将温度保持在设定温度,通过按键调节温度报警区域,实现对温度在0℃-99℃控制的自动化。
实验结果表明此结构完全可行,温度偏差可达0.1℃以内。
关键字:
单片机;传感器;温控;DS18b20
Keyword:
monolithicintegratedcircuit;Sensors;Temperaturecontrol;DS18b20
第一章系统设计
1.1项目概要
温度控制系统无论是工业生产过程,还是日常生活都起着非常重要的作用,过低或过高的温度环境不仅是一种资源的浪费,同时也会对机器和工作人员的寿命产生严重影响,极有可能造成严重的经济财产损失,给生活生产带来许多利的因素,基于AT89S52的单片机温度控制系统与传统的温度控制相比具有操作方便、价价格便宜、精确度高和开展容易等优点,因此市场前景好。
1.2设计任务和要求:
1、采用DS18B20作为温度传感器进行温度检测。
2、对采集温度进行显示(显示温度分辨率0.1℃);
3、采集温度数值应采用数字滤波措施,保证显示数据稳定。
4、设计相应的温度控制电路,根据测得的温度情况对加热器进行控制,将温度保持在设定温度。
5、通过按键设置温度上下限,超限通过LED、蜂鸣器报警。
第二章硬件设计
2.1硬件设计概要
根据需求,我们将系统分为五个模块,信息处理模块,温度采集模块、控制调节模块、报警电路模块,显示模块。
2.2信息处理模块
AT89C52是ATMEL公司的以8031核构成的8位Flash单片机系列。
这个系列单片机的最大特点就是在片内含有Flash存储器,AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存。
该器件采用Atmel公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。
片内程序存储器允许重复在线编程,允许程序存储器在系统内通过SPI串行口改写或用同用的非易失性存储器改写。
通过把通用的8位CPU与可在线下载的Flash集成在一个芯片上,AT89S52便成为一个高效的微型计算机。
它的应用范围广,可用于解决复杂的控制问题,且成本较低。
单片机模块如图
(1)所示。
图
(1)单片机模块
2.3温度采集模块
2.3.1传感器DS18b20简介
DALLAS最新单线数字温度传感器DS18b20简介新的“一线器件”,体积更小、适用电压更宽、更经济。
Dallas半导体公司的数字化温度传感器DS18b20是世界上第一片支持“一线总线”接口温度传感器。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新的概念。
DS18b20、DS1822“一线总线”数字化温度传感器同DS1820一样,DS18b20也支持“一线总线”接口,测量温度范围为-55℃~+125℃,在-10℃~+85℃范围内,精度为0.5℃。
DS18b20的精度较差为2℃。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测量类消费电子产品等。
与前一代产品不同,新的产品支持3V~5V的电压范围,使系统设计更灵活、方便。
而且新一代产品更便宜,体积更小。
DS18b20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18b20的实验板原理接线图如图
(2):
图
(2)DS18b20的实验板接线图
其中:
DQ为数字信号输入输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)
2.3.2实验模拟电路图
温度检测控制模拟电路图ds18b20原件及其连线如图(3)温度此传感器上显示的温度同步显示到LED显示器上,并有加温,减温按钮。
图(3)温度检测控制模拟电路图
2.3.3程序流程图
图(4)主程序流程图
图(5)初始化子程序流程图
图(6)读按键的程序流程图
2.4控制调节模块
2.4.1升温调节系统
通过继电器的开合来控制加热片电路的通断,来达到设温效果,我们预设温度为25度,当温度低于25度时,单片机P3.6引脚输出高电平,继电器导通,对温度传感器加热,加热模块如图(7)所示。
图(7)加温控制电路
2.4.2温度上下限调节系统
通过按键控制键选着调节对象,通过上升下降调节值大小,模拟电路图如图(78主控电路:
我们设定温度为0--30度,为表示方便,这里让,控制开关,升温开关,降温开关分别为,k1,k2,k3,开始显示的是当前温度,K1主控开关,用来控制进入的是当前温度,温度上限,下限的调节界面。
按k1,一次进入三个界面。
按K2为加1开关,按一下,加1,k3减1开关,按一下,减1.
例如:
开始时显示的是当前温度界面,按下k1进入高温设定界面,显示器上显示当前温度和温度上限,按k2,上限加1,按k3,上限减1,再按k1进入显现设定界面,显示器显示当前温度,和温度下限,按k2,下限加1,按k3,下限减1,再按k1,进入显示当前温度界面。
如图(8)
2.4.3报警电路系统
通过led灯的闪烁以及蜂鸣器的鸣叫实现报警,如果温度超过上限灯D4亮,蜂鸣器鸣叫,低于下限灯D2亮,蜂鸣器鸣叫。
常温D1亮如图(9)(10)。
图(8)温度设定开关
图(9)报警模块
图(10)P3.7接蜂鸣器
2.5显示模块
通过采集ds18b20的温度,同步显示到LED显示器上,精确到小数点后第一位。
如下图
图(11)显示电路
第三章仿真显示成果
3.1运用proteus仿真
图(13)显示当前温度
图(14)温度低于低温下限,低温报警灯亮,蜂鸣器鸣叫
图(15)温度高于温度上限,高温报警灯亮,蜂鸣器鸣叫
实习总结
刚开始接触到题目,一头雾水,第一周,我从网上下载了,《基于8051+PROTEUS仿真100实例》这个文档,从最简单的点亮一个流水灯,让数码管显示数字开始,第一周就做了这些简单的例子,100例做了20多个。
刚开始很慢,仿真模型里的原器件都不会找,编的程序编译时总出现报警、错误。
一遇到错误我们就慌了神了,所以起步很难。
后来在老师和同学的帮助下,慢慢积累,知道了常见的报警和错误的解决方法,编完调试成功20个例子后,算是对单片机有了一定的基础。
但这时一周已经过去了,别的小组已经仿真通过,开始实际运行了,而我们这组才开始。
第二周开始了,第一天我们没做设计,把各个小组的程序,电路图都拿来看,不懂得就请他们帮忙讲解。
由于前面有了知识,一些模块都看得懂,学得很快了。
发现主要是把各个模块融合到一起,头文件写到最前面,通过函数的调用!
给单片机接口高低电平,来实现功能。
这正好是我们的强项,一星期20个例子的功劳。
第二天我们开始自己编程,但是融合的过程中总出现错误,要嘛是变量没定义,要嘛是头文件重复!
还有一个,报警电路的数码管总是不亮,但单片机对应的接口有高低电平的变化,实际电路板上也成功,这个问题困扰了我们很久,怎么办都不亮,当时有想砸电脑的冲动,后来还是解决了,原来,是标号标错了位置,一点小问题,困扰了我们2天。
当解决这个问题时,那心灵的喜悦是这辈子都忘不了的!
通过两周的实习,我们从一个小白成长为一个对单片机入了门,并能实现简单的编程,还能解决实际问题的小人物了!
虽然过程很苦,每天对着电脑,就吃饭和上洗手间离开板凳!
一直盯着屏幕看!
不过2周熬过来了,收获蛮大的!
例如后来我又在我们的程序中加入了降温程序!
温度高,调动电动机吹风降温!
感觉无论做什么事都要吃得了苦受得了罪,天下没有什么事是难的,只有懒惰的人,只要用心去做,什么事都能成功!
致谢
两周的实习中,我遇到了许许多多的困难,但我能走过来,这和我组成员共同研究,共同讨论问题的辛勤是分不开的,灰心时我们相互鼓励,相互打气,。
感谢同组成员。
开始接触单片机,我是一个小白级人物,谢谢把我领入门的同班同学们,当我有问题请教时,他们会放下手头的工作,倾心为我解答,程序编译错误时,他们会帮我一起看提示,该错误!
谢谢同班同学们!
当然,我们实习时,老师一直陪伴着我们,尽管我没有问过老师问题,老师也没有帮我调试程序,但还是要谢谢刘老师,吕老师,你和我们在一起,无形中给了我们莫大的动力!
同时也起到了监督我们的作用,使我们不能够偷懒,不会出现有一组同学完成了,那么全班都完成了的情况!
正由于你们的严格的要求,我们这次实习才能圆满的完成,同学们都做出了想要的结果。
参考文献
[1]郭天祥.新概念51单片机C语音教程——入门提高开发拓展攻略[M].北京:
北京:
电子工业出版社,2009.
[2]韩广兴.电子元器件与实用电路基础[M].北京:
电子工业出版社,2005.
[3]方大千,朱丽.电子控制系统装置制作入门[M].北京:
国防出版社,2006.
[4]刘向举,刘丽娜.基于单片机的智能温度测控系统的设计[J].齐齐哈尔大学学报(自然科学版).2012(03)
[5]黄文力,邓小磊.DS18B20数字温度传感器接口程序的时序[J].仪器仪表用户.2011(06)
[6]黄晓林.一种实用型智能恒温控制系统设计[J].自动化技术与应用.
2011(11)
[7]王文,王直.基于ARM和DS18B20的温度监测系统[J].电子设计工程.2011(20)
[8]陈锡华,贾磊磊.温度传感器DS18B20序列号批量搜索算法[J].单片机与嵌入式系统应用.2011(09)
附录:
Proteus系统原理图:
图(16)系统原理图
源程序:
#include sbitled_yellow=P2^4; sbitled_red=P2^5; sbitshengwen=P3^6; sbitjiangwen=P3^5; sbitBEEP=P3^7; ucharcodestr1[]={"Temperatureis"}; ucharcodestr2[]={""}; ucharcodestr3[]={"set_(dat); } voidds1820wr(ucharwdata)*写数据* { uchari=0; for(i=8;i>0;i--) { DQ=0; DQ=wdata&0x01; delay_18B20(10); DQ=1; wdata>>=1; } } read_temp()*读取温度值并转换* { uchara,b; ds1820rst(); ds1820wr(0xcc);*跳过读序列号* ds1820wr(0x44);*启动温度转换* ds1820rst(); ds1820wr(0xcc);*跳过读序列号* ds1820wr(0xbe);*读取温度* a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue<<=8; tvalue=tvalue|a; if(tvalue<0x0fff) tflag=0; else { tvalue=~tvalue+1; tflag=1; } tvalue=tvalue*(0.625);温度值扩大10倍,精确到1位小数 return(tvalue); } ******************************************************************* voidds1820disp()温度值显示 { ucharflagdat; disdata[0]=tvalue1000+0x30;百位数 disdata[2]=tvalue%10010+0x30;个位数 disdata[3]=tvalue%10+0x30;小数位 if(tflag==0) flagdat=0x20;正温度不显示符号 else flagdat=0x2d;负温度显示负号: - if(disdata[0]==0x30) { disdata[0]=0x20;如果百位为0,不显示 if(disdata[1]==0x30) { disdata[1]=0x20;如果百位为0,十位为0也不显示 } } wr_com(0xc0+4); wr_dat(flagdat);显示符号位 wr_com(0xc1+4); wr_dat(disdata[0]);显示百位 wr_com(0xc2+4); wr_dat(disdata[1]);显示十位 wr_com(0xc3+4); wr_dat(disdata[2]);显示个位 wr_com(0xc4+4); wr_dat(0x2e);显示小数点 wr_com(0xc5+4); wr_dat(disdata[3]);显示小数位 } voidkey_count(uintok) { wr_com(0x80); if(ok==1)display(str3);elsedisplay(str4); wr_com(0x8d); wr_dat(aa[0]); wr_com(0x8e); wr_dat(aa[1]); if(keyadd==0) { delay1ms(5); if(keyadd==0) { if(ok==1)set_(void) { uchari; shengwen=0; if(tvalue10<=20) { for(i=0;i<10;i++) { shengwen=1; delay1ms(100); } } } ***********************升温程序 voidled_temp() {if(tvalue10 { led_red=1; led_green=1; led_yellow=0; delay1ms(10); baojing(); } elseif(tvalue10>set_=1; led_yellow=1; delay1ms(10); baojing(); } elseif((set_lowtemp<(tvalue10))&&(tvalue10) led_yellow=1; delay1ms(10); } } ********************主程序*********************************** voidmain() { P2=0xff; init_play();初始化显示 while (1) { read_temp();读取温度 ds1820disp();显示 keyboard(); led_temp(); if(tvalue10<=20) led_shengwen(); if(tvalue10>=30) led_jiangwen(); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业 课程设计 加热 水温 控制系统
![提示](https://static.bdocx.com/images/bang_tan.gif)