ImageVerifierCode 换一换
格式:DOC , 页数:25 ,大小:918.67KB ,
资源ID:846009      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-846009.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于51单片机的温度控制系统设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的温度控制系统设计.doc

1、摘要:4一、系统设计41.1 项目概要41.2设计任务和要求:5二、 硬件设计52.1 硬件设计概要52.2 信息处理模块52.3 温度采集模块62.3.1传感器DS18b20简介62.3.2实验模拟电路图72.3.3程序流程图82.4控制调节模块92.4.1升温调节系统92.4.2温度上下限调节系统102.5显示模块12三、仿真后,部分显示成果13四、两周实习总结15五、致谢16六、参考文献16七、附录177.1原理图177.2参考程序17摘要: 在现代工业生产中,温度是常用的测量被控因素。本设计是基于51单片机控制,将DS18b20温度传感器实时温度转化,并通过1602液晶对温度实行实时显

2、示,并通过加热片(PWM波,改变其占空比)加热与步进电机降温逐次逼近的方式,将温度保持在设定温度,通过按键调节温度报警区域,实现对温度在0-99控制的自动化。实验结果表明此结构完全可行,温度偏差可达0.1以内。关键字: 单片机;传感器;温控;DS18b20Abstract: In modern industrial production, the temperature is commonly measured controlled factors.The design is based on the 51 SCM control, the DS18b20 temperature sensor

3、 real time temperature transformation, and through the 1602 LCD on the temperature of the real-time display, and by heating the sheet (PWM wave, changing its duty cycle) heating and stepper motor cooling successive approximation approach, keeping the temperature at the set temperature, through the b

4、uttons adjust temperature alarm area, the temperature at 0 -99 control automation.The experimental results show that this structure is completely feasible, the deviation of temperature can reach 0.1 DEG C.Key word: monolithic integrated circuit ; Sensors; Temperature control; DS18b20 一、系统设计1.1 项目概要

5、温度控制系统无论是工业生产过程,还是日常生活都起着非常重要的作用,过低或过高的温度环境不仅是一种资源的浪费,同时也会对机器和工作人员的寿命产生严重影响,极有可能造成严重的经济财产损失,给生活生产带来许多利的因素,基于AT89S52的单片机温度控制系统与传统的温度控制相比具有操作方便、价价格便宜、精确度高和开展容易等优点,因此市场前景好。1.2设计任务和要求:(1) 采用DS18B20作为温度传感器进行温度检测。(2) 对采集温度进行显示(显示温度分辨率0.1);采集温度数值应采用数字滤波措施,保证显示数据稳定。(3) 设计相应的温度控制电路,根据测得的温度情况对加热器进行控制,将温度保持在设定

6、温度。(4) 通过按键设置温度上下限,超限通过LED、蜂鸣器报警。二、 硬件设计2.1 硬件设计概要根据需求,我们将系统分为五个模块,信息处理模块,温度采集模块、控制调节模块、报警电路模块,显示模块。2.2 信息处理模块 AT89S52是ATMEL公司的以8031核构成的8位Flash单片机系列。这个系列单片机的最大特点就是在片内含有Flash存储器,AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存。该器件采用Atmel公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。片内程序存储器允许重复在线编程,允许程序存储器在系统内通过SPI

7、串行口改写或用同用的非易失性存储器改写。通过把通用的8位CPU与可在线下载的Flash集成在一个芯片上,AT89S52便成为一个高效的微型计算机。它的应用范围广,可用于解决复杂的控制问题,且成本较低。单片机模块如图(1) 所示。图(1)单片机模块2.3 温度采集模块2.3.1传感器DS18b20简介 DALLAS最新单线数字温度传感器DS18b20简介新的“一线器件”,体积更小、适用电压更宽、更经济。Dallas半导体公司的数字化温度传感器DS18b20是世界上第一片支持“一线总线”接口温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新的概念。DS1

8、8b20、DS1822“一线总线”数字化温度传感器同DS1820一样,DS18b20也支持“一线总线”接口,测量温度范围为-55 +125,在-10 +85范围内,精度为0.5。DS18b20的精度较差为2。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测量类消费电子产品等。与前一代产品不同,新的产品支持3V 5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。DS18b20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18b20的实

9、验板原理接线图如图(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度时,单片机

10、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

11、,上限减1,再按k1进入显现设定界面,显示器显示当前温度,和温度下限,按k2,下限加1,按k3,下限减1,再按k1,进入显示当前温度界面。如图(8)2.4.3 报警电路系统 通过led灯的闪烁以及蜂鸣器的鸣叫实现报警,如果温度超过上限灯D4亮,蜂鸣器鸣叫,低于下限灯D2亮,蜂鸣器鸣叫。常温D1亮如图(9)(10)。 图(8)温度设定开关图(9)报警模块 图(9)P3.7接蜂鸣器2.5显示模块 通过采集ds18b20的温度,同步显示到LED显示器上,精确到小数点后第一位。如下图图(9)显示电路 三、仿真后,部分显示成果 图(10)开始启动时,显示学号 图(11)显示当前温度 图(12)温度低于低

12、温下限,低温报警灯亮,蜂鸣器鸣叫 图(13)温度高于温度上限,高温报警灯亮,蜂鸣器鸣叫四、两周实习总结 这次单片机实习我们小组做的是温度检测。之前老师给了3个题目,让选择,但为了避免大家不撞车,按学号来,我是02号,分到了做温度检测的题目,刚开始接触到题目,一头雾水,因为我们组的成员都是大三才接触到单片机,都是菜鸟级的任务,第一周,我从网上下载了,基于8051+PROTEUS仿真100实例这个文档,从最简单的点亮一个流水灯,让数码管显示数字开始,第一周就做了这些简单的例子,100例做了20多个。刚开始很慢,仿真模型里的原器件都不会找,编的程序编译时总出现报警、错误。一遇到错误我们就慌了神了,所

13、以起步很难。后来在老师和同学的帮助下,慢慢积累,知道了常见的报警和错误的解决方法,编完调试成功20个例子后,算是对单片机有了一定的基础。但这时一周已经过去了,别的小组已经仿真通过,开始实际运行了,而我们这组才开始。 第二周开始了,第一天我们没做设计,把各个小组的程序,电路图都拿来看,不懂得就请他们帮忙讲解。由于前面有了知识,一些模块都看得懂,学得很快了。发现主要是把各个模块融合到一起,头文件写到最前面,通过函数的调用!给单片机接口高低电平,来实现功能。这正好是我们的强项,一星期20个例子的功劳。第二天我们开始自己编程,但是融合的过程中总出现错误,要嘛是变量没定义,要嘛是头文件重复!还有一个,报

14、警电路的数码管总是不亮,但单片机对应的接口有高低电平的变化,实际电路板上也成功,这个问题困扰了我们很久,怎么办都不亮,当时有想砸电脑的冲动,后来还是解决了,原来,是标号标错了位置,一点小问题,困扰了我们2天。当解决这个问题时,那心灵的喜悦是这辈子都忘不了的! 通过两周的实习,我们从一个小白成长为一个对单片机入了门,并能实现简单的编程,还能解决实际问题的小人物了!虽然过程很苦,每天对着电脑,就吃饭和上洗手间离开板凳!一直盯着屏幕看!不过2周熬过来了,收获蛮大的!例如后来我又在我们的程序中加入了降温程序!温度高,调动电动机吹风降温! 感觉无论做什么事都要吃得了苦受得了罪,天下没有什么事是难的,只有

15、懒惰的人,只要用心去做,什么事都能成功!五、致谢 两周的实习中,我遇到了许许多多的困难,但我能走过来,这和我组成员共同研究,共同讨论问题的辛勤是分不开的,灰心时我们相互鼓励,相互打气,。感谢同组成员。开始接触单片机,我是一个小白级人物,谢谢把我领入门的同班同学们,当我有问题请教时,他们会放下手头的工作,倾心为我解答,程序编译错误时,他们会帮我一起看提示,该错误!谢谢同班同学们!当然,我们实习时,老师一直陪伴着我们,尽管我没有问过老师问题,老师也没有帮我调试程序,但还是要谢谢刘老师,吕老师,你和我们在一起,无形中给了我们莫大的动力!同时也起到了监督我们的作用,使我们不能够偷懒,不会出现有一组同学

16、完成了,那么全班都完成了的情况!正由于你们的严格的要求,我们这次实习才能圆满的完成,同学们都做出了想要的结果。六、参考文献1 郭天祥.新概念51单片机C语音教程入门提高开发拓展攻略M.北 京:北京:电子工业出版社,2009.2 韩广兴.电子元器件与实用电路基础M.北京:电子工业出版社,2005.3 方大千,朱丽.电子控制系统装置制作入门M.北京:国防出版社,2006.4 刘向举,刘丽娜. 基于单片机的智能温度测控系统的设计J. 齐齐哈尔大 学学报(自然科学版). 2012(03)5 黄文力,邓小磊. DS18B20数字温度传感器接口程序的时序J. 仪器仪表 用户. 2011(06)6 黄晓林.

17、 一种实用型智能恒温控制系统设计J. 自动化技术与应用. 2011(11)7 王文,王直. 基于ARM和DS18B20的温度监测系统J. 电子设计工程. 2011(20)8 陈锡华,贾磊磊. 温度传感器DS18B20序列号批量搜索算法J. 单片机与 嵌入式系统应用. 2011(09)七、附录 7.1原理图7.2参考程序#include#include #define uchar unsigned char#define uint unsigned intsbit DQ=P33;/ds18b20与单片机连接口sbit RS=P20;sbit RW=P21;sbit EN=P22;sbit key

18、add=P14;sbit keydel=P15;sbit keyok=P16;sbit led_green=P23;sbit led_yellow=P24;sbit led_red=P25;sbit shengwen=P36;sbit jiangwen=P35;sbit BEEP = P3 7;uchar code str1= Temperature is ;uchar code str2=;uchar code str3=set_hightemp: ;uchar code str4=set_lowtemp: ;uchar code str5=studentN0: ;uchar code st

19、r6=32209102 9104;uchar data disdata5;uchar set_hightemp=33,set_lowtemp=0;uchar p=0;uchar aa2;uint tvalue;/温度值uchar tflag;/温度正负标志/*lcd1602程序*/void delay1ms(uint ms)/延时1毫秒uint i,j;for(i=0;ims;i+)for(j=0;j114;j+);void delay1s(uint s)uint i;for(i=0;i 0; j-)/响30ms BEEP = BEEP; /输出频率800Hz P0 = 0x7E; /点亮D0

20、0 和D07 delay1ms(10); /延时310us delay1ms(10); /延时310us /1111111111111111111111111111111111111 报警程序void wr_com(uchar com)/写指令/ delay1ms(1);RS=0;RW=0;EN=0;P0=com; /delay1ms(1);EN=1;delay1ms(1);EN=0;void wr_dat(uchar dat)/写数据/ delay1ms(1);RS=1;RW=0;EN=0;P0=dat; delay1ms(1);EN=1;delay1ms(1);EN=0;void lcd_

21、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);void display(uchar *p)/显示/while(*p!=0)wr_dat(*p);p+;delay1ms(1);void init_play()/初始化显示lcd_init();wr_com(0x80);display(str5);wr_com(0xc0);display(str6

22、);delay1s(3);lcd_init();wr_com(0x80);display(str1);wr_com(0xc0);display(str2);/*ds18b20程序*/void delay_18B20(uint i)/延时1微秒 while(i-);void ds1820rst()/*ds1820复位*/ uchar x=0;DQ = 1; /DQ复位delay_18B20(4); /延时DQ = 0; /DQ拉低delay_18B20(100); /精确延时大于480usDQ = 1; /拉高delay_18B20(40); uchar ds1820rd()/*读数据*/ uc

23、har i=0;uchar dat = 0;for (i=8;i0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/*写数据*/uchar i=0;for (i=8; i0; i-) DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata=1;read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst(); ds1820wr(0xcc);/*

24、跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0xbe);/*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue0x0fff)tflag=0;elsetvalue=tvalue+1;tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数return(tvalue);/*/void ds1820disp()/温度值显示 uchar flagda

25、t;disdata0=tvalue/1000+0x30;/百位数disdata1=tvalue%1000/100+0x30;/十位数disdata2=tvalue%100/10+0x30;/个位数disdata3=tvalue%10+0x30;/小数位if(tflag=0)flagdat=0x20;/正温度不显示符号elseflagdat=0x2d;/负温度显示负号:-if(disdata0=0x30)disdata0=0x20;/如果百位为0,不显示if(disdata1=0x30)disdata1=0x20;/如果百位为0,十位为0也不显示wr_com(0xc0+4);wr_dat(fla

26、gdat);/显示符号位wr_com(0xc1+4);wr_dat(disdata0);/显示百位wr_com(0xc2+4);wr_dat(disdata1);/显示十位wr_com(0xc3+4);wr_dat(disdata2);/显示个位wr_com(0xc4+4);wr_dat(0x2e);/显示小数点wr_com(0xc5+4);wr_dat(disdata3);/显示小数位void key_count(uint ok)wr_com(0x80);if(ok=1)display(str3);else display(str4);wr_com(0x8d);wr_dat(aa0);wr_

27、com(0x8e);wr_dat(aa1);if(keyadd=0)delay1ms(5);if(keyadd=0) if(ok=1) set_hightemp+; else set_lowtemp+; while(!keyadd);else if(keydel=0)delay1ms(5);if(keydel=0) if(ok=1) set_hightemp-; else set_lowtemp-; while(!keydel);void keyboard() char ok=0;/if(p=0) set_hightemp=tvalue/10,set_lowtemp=tvalue/10;if(

28、keyok=0)delay1ms(5);if(keyok=0)ok+;while(!keyok);p=1;while(ok=1)aa0=set_hightemp/10+0x30;aa1=set_hightemp%10+0x30;key_count(1);if(keyok=0)delay1ms(5);if(keyok=0)ok+;while(!keyok);delay1ms(10);while(ok=2)aa0=set_lowtemp/10+0x30;aa1=set_lowtemp%10+0x30;key_count(2);if(keyok=0)delay1ms(5);if(keyok=0)ok

29、=0;while(!keyok);delay1ms(10);wr_com(0x80);display(str1);/*/ 升温程序 void led_shengwen(void) uchar i;shengwen=0; if( tvalue/10=20) for(i=0;i10;i+) shengwen=1; delay1ms(100); /*/升温程序void led_temp() if(tvalue/10 set_hightemp)led_red=0;led_green=1;led_yellow=1;delay1ms(10);baojing();else if(set_lowtemp(tvalue/10)&(tvalue/10) set_hightemp) led_red=1;led_green=0;led_yellow=1;delay1ms(10); /*主程序*/void main() P2=0xff;init_play();/初始化显示while(1) read_temp();/读取温度 ds1820disp();/显示keyboard();led_temp();if( tvalue/10=30) led_jiangwen();25

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922