




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、系统设计1.1 项目概要 温度控制系统无论是工业生产过程,还是日常生活都起着非常重要的作用,过低或过高的温度环境不仅是一种资源的浪费,同时也会对机器和工作人员的寿命产生严重影响,极有可能造成严重的经济财产损失,给生活生产带来许多利的因素,基于AT89S52的单片机温度控制系统与传统的温度控制相比具有操作方便、价价格便宜、精确度高和开展容易等优点,因此市场前景好。1.2设计任务和要求:采用DS18B20作为温度传感器进行温度检测。对采集温度进行显示(显示温度分辨率0.1);采集温度数值应采用数字滤波措施,保证显示数据稳定。设计相应的温度控制电路,根据测得的温度情况对加热器进行控制,将温度保持在设定温度。通过按键设置温度上下限,超限通过LED、蜂鸣器报警。二、 硬件设计2.1 硬件设计概要根据需求,我们将系统分为五个模块,信息处理模块,温度采集模块、控制调节模块、报警电路模块,显示模块。2.2 信息处理模块 AT89S52是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)报警模块 图(9)P3.7接蜂鸣器2.5显示模块 通过采集ds18b20的温度,同步显示到LED显示器上,精确到小数点后第一位。如下图图(9)显示电路 三、仿真后,部分显示成果 图(10)开始启动时,显示学号 图(11)显示当前温度 图(12)温度低于低温下限,低温报警灯亮,蜂鸣器鸣叫 图(13)温度高于温度上限,高温报警灯亮,蜂鸣器鸣叫四、两周实习总结 这次单片机实习我们小组做的是温度检测。之前老师给了3个题目,让选择,但为了避免大家不撞车,按学号来,我是02号,分到了做温度检测的题目,刚开始接触到题目,一头雾水,因为我们组的成员都是大三才接触到单片机,都是菜鸟级的任务,第一周,我从网上下载了,基于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)七、附录 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 keyadd=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 str6=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; /点亮D00 和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_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);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()/*读数据*/ uchar 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);/*跳过读序列号*/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 flagdat;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(flagdat);/显示符号位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_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(keyok=0)delay1ms(5);if(keyok=0)ok+;while(!keyok);p=1;whil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快递站点抵押合同范本
- 钢结构签合同范本
- 染料销售合同范本
- 监理合同范本 酬金
- 开公司 投资 合同范本
- 办公座椅购买合同范本
- 施工企业施工合同范本
- 员工集资合同范本
- 面地板装修合同范本
- 联合中标epc合同范本
- GB/T 9871-2008硫化橡胶或热塑性橡胶老化性能的测定拉伸应力松弛试验
- GB/T 26480-2011阀门的检验和试验
- GB/T 19861-2005丙烯酸系阴离子交换树脂强碱基团、弱碱基团和弱酸基团交换容量测定方法
- GB/T 11085-1989散装液态石油产品损耗
- GB 30000.3-2013化学品分类和标签规范第3部分:易燃气体
- 《材料力学》说课-课件
- (完整版)沪教牛津版小学一至六年级英语单词汇总(最新)
- JJF 1587-2016 数字多用表校准规范-(高清现行)
- 完整课件-西方经济学下册(第二版)
- 机械制图教学通用课件(全套)
- 天星择日的基本原理
评论
0/150
提交评论