温度控制系统终稿_第1页
温度控制系统终稿_第2页
温度控制系统终稿_第3页
温度控制系统终稿_第4页
温度控制系统终稿_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书题目:温度控制系统产品设计工艺设计方案设计√类型:学生姓名:学号:学院:专业:应用电子技术班级:学校指导教师:企业指导教师:______2015年12月15日摘要温度控制是工业自动控制的一个重要组成部分。在许多领域如工业、电子、化学实验都有重要的应用,而度测量是度控制的一个重要环节。将温度控制在一定范围内是各种实际应用的重要保证和前提。所以温度控制系统在工业控制领域是很重要的。随着电子技术的发展和应用需求,单片机技术已迅速发展,并已在高集成、高速度、低功耗等方面取得了很大的进步。随着科学技术的发展,电子技术更高的飞跃,现在我们可以使用单片机和电子温度传感器对温度对温度进行实时检测,我们可以很容易地实现多点温度检测,和控制不同的位置。所以我们使用单片机作为核心部件进行逻辑控制及信号的产生,用单片机本身的优势节约成本,为了解决繁琐复杂的电路对温度检测控制的问题,我们的设计在传统电路的基础上,对控制系统加以改良。我们通过设计一个程序来实现对温度的检测,用户可以自行设置温度的上下限,一旦温度超限,便会发出警报。这个系统就目前而言有很多应用方向,例如:仓库测温、生产过程温度检测、楼宇空调控制等等。随着社会的进步,这个设计也能应用到人们工作生活的各个方面,有力的推动个行业的产品更新和计划改造,充分体现了这项技术的应用前景。关键词:单片机;温度报警;上下限温度设置目录TOC\o"1-3"\h\u1.设计的意义及目标 31.1设计的背景 31.2设计的意义 32.硬件的设计 32.1主要器件的选择 32.1.1主控制器的选择 32.1.2DS18B20温度传感器 32.1.3蜂鸣器的报警原理 32.2最小系统电路设计 32.3温度传感器DS18B20电路图设计 32.4显示电路设计分析 33.软件的设计 33.1主程序 33.2读出温度子程序 33.3温度转换命令子程序 34.结论 3参考文献 3致谢 3附录 31.设计的意义及目标1.1设计的背景测量和控制的作用是从生产现场获取各种参数,采用科学的计算方法,综合各种先进技术,生产过程的各个环节都可以得到有效的控制,不仅保证了生产的标准化,提高了产品质量,降低了成本,而且还可以保证安全生产。因此,测量控制技术已广泛应用于炼油、化工、冶金、电力、电子、轻工、纺织等行业。单片机的集成化程度高,运行速度快,体积小,运行可靠,价格低廉的优势,在过程控制,数据采集,机电一体化,智能化仪器仪表,家用电器和网络技术得到了广泛的应用,特别是在发展和单芯片技术的应用,标志着计算机的发展,一个新的里程碑的历史。温度控制系统已广泛应用于工业生产,科学研究和人民生活的领域。在工业生产过程中,大量的时间需要是温度的严格监控,以便生产可顺利地进行,对产品的质量得以充分保证。温度控制系统可以用于控制生产环境的温度,以保证生产自动化,智能可以是光滑的,安全的,从而改善了企业的生产效率。1.2设计的意义随着社会的发展,社会的进步,并在各个领域的测量仪器的应用,智能化是现在温度控制系统发展的主流方向。温度测量与控制系统,温度控制对象。温度控制被广泛应用于日常生活和工业领域,如温室池塘发酵罐,电源和温度控制等场所。温度控制是通过手,没有引起足够的重视,许多地方需要监控,以防止事故温度下进行,实际上。为了解决这个问题,系统设计的目的是实现了连续高温调节温度控制系统精度,它被广泛的应用,功能强大,外形小巧美观,便于携带是一种实用和廉价的控制系统。特别是近年来,在温度控制系统已经应用到人们生活的各个方面,温度控制和人们的工作和生活的发展密切相关。2.硬件的设计2.1主要器件的选择2.1.1主控制器的选择低电压高性能CMOS8位单片机STC89C52,平板电脑具有8K字节的可反复擦写闪存程序存储器只读和256字节的随机存取数据存储器(RAM)设备采取高密度,非易失性存储生产技术,标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位CPU(CPU)和Flash存储单元,功能强大的单片机STC89C52在许多更复杂的控制应用。STC89C52单片机为40脚双列直插式芯片,有四个I/O端口P0,P1,P2,P3,每个I/O线是独立的输出或输入的。STC89C52PDIP管脚封装,如图2.1所示。\o"点击查看大图"图2.1STC89C52PDIP管脚封装STC89C52包含以下部分:一个8微处理器CPU片内数据存储器RAM和特殊功能寄存器SFR片内程序存储器ROM两个定时/计数器T0、T1,可用作定时器,也可用作以对外部脉冲进行计数四个8位编程的并行I/O端口,让每个端口既可以作输入,也可作输入一个串行端口,用于数据的串行通信中断控制系统内部时钟电路2.1.2DS18B20温度传感器(1)DS18B20的主要特征全数字温度转换及输出;先进的单总线数据通信;最高12位的分辨率,精度可达0.5摄氏度;12位分辨率的最大工作时间为750毫秒;可选择寄生工作方式检测温度范围为-55℃~+125℃;内置EEPROM,限温报警功能;64位光刻ROM,内置产品序列号,方便多机挂接;多样封装形式,适应不同硬件系统;(2)DS18B20内部结构DS18B20内部结构如图2.2所示。图2.2DS18B20内部结构DS18B20温度传感器的内部存储器还包括一个暂存RAM和非易失性可擦除的EEPROM。内存结构暂存RAM为8字节,结构如图2.3所示。图2.3DS18B20结构其中,测得的温度信息字节包含第2,第三册,TH和TL的第四字节,是挥发性的,刷新每次上电复位。对配置寄存器第五个字节,其内容被用来确定数字转换分辨率的温度值。在DS18B20工作寄存器的分辨率被转换为相应的精度的温度值。暂存存储器的第5个字节是配置寄存器,可以通过相应的写命令进行配置,其内容如下图2.4所示。图2.4寄存器码表其中R0和R1是温度值分辨率,可按图2.5进行配置。图2.5温度值分辨率当DS18B20接收温度转换命令后,开始启动转换。转化温度值到16位带符号的扩展二元补码形式存储在1,2字节的暂存器完成后。SCM可以通读单线接口的数据,时间是低中高,在后高,数据格式,以0.0625度/LSB形式。温度值格式如下图2.6所示:图2.6温度值格式这是12位的数据,存储在DS18B20两个8位的RAM12位的转换,在五正面二进制为符号位。如果测得的温度大于0,五为0,只要乘以值将被测量0.0625可以得到的实际温度。如果温度小于0,这5比1,测量值需要采取防加1乘以0.0625可以得到的实际温度。格式,S表示。对应于该计算的温度:当符号位是0,则测得的温度值是正的,二进制到十进制的转换;当s=1时,测得的温度值是负的,第一补变换的原代码,然后计算十进制值。(3)DS1820测温原理晶体的低温度系数的振荡频率图形受温度影响是用于生产固定频率的脉冲信号的非常小的打击1,晶体的高温度系数的温度变化振荡频率的变化,作为计数器的脉冲数2,图中也有一个门数,计数当门打开所产生的信号,在低温度系数振荡器产生的时钟脉冲的DS18B20后计数,然后完成温度测量由振荡器的高温度系数的门数的开馆时间是确定的,在每次测量之前,对应于该基地-55℃分别布置在计数器1和温度寄存器,计数器1和温度寄存器是一个对应于-55℃。数值设定。DS18B20温度测量原理如图2.7图2.7DS18B20温度测量原理图晶振信号减法计数的低温度系数,当减法计数器1的预置值减到0时温度寄存器加1的值,减计数器1的预置将被重新加载,减计数器1开始计数的减法计数器用脉冲信号的低温度系数的晶体,如此循环,直到减法计数器2计数为0时,停止累积温度寄存器值,在温度寄存器值这一点上是所测量的温度。在常温下,为0.5℃,温度DS18B20分辨率,由以下获得的方法的温度下测量的结果的分辨率高:首先使用DS18B20提供读暂存器命令(BEH)读数至0.5℃下为温度测量的结果的分辨率,然后修剪从测量结果中的至少显著位结果(LSB),通过测量TZ的整数部分的实际温度下得到,然后BEH指示为1残留的计数计数器取CS的每米数值CD值。实际温度Ts可用式(2-1)计算:Ts=(Tz-0.25℃)+(CD-Cs)/CD(2-1)2.1.3蜂鸣器的报警原理(1)三极管驱动的蜂鸣器报警电路如下图2.8所示。图2.8三极管驱动的蜂鸣器报警电路用三个独立键报警系统可以温度计上,下限报警设置单独调节,蜂鸣器电路可以是温度要在上限和下限,尖叫声音报警不测量,而红色LED闪烁,实现报警功能。复位是通过单片机复位电路复位和手动复位,使用更方便,在节目中飞可手动复位运行,因此你不必单芯片电源,即可实现复位。2.2最小系统电路设计本系统使用的基于单片机的温度计的设计所以首先设计单片机的最小系统,所谓最小系统是一个真正可用的单片机的最小配置系统。由于本次设计是用的STC89C52单片机片内不能集成时钟电路所需的晶体振荡器,也没有复位电路,在构成最小系统时必须外接这些部件。电路设计如图2.9所示,其中电容为30PH、10UF,晶振为11.0592MHZ.图2.9最小系统2.3温度传感器DS18B20电路图设计主要由四部分组成:64位光刻ROM,温度传感器,非易失性温度报警触发器TH和TL,配置寄存器。DS18B20的管脚排列,多种封装形式,如图所示3.4。用于数据输入/输出管脚,DQ也可以用作开漏总线接口引脚,在寄生电源模式下使用时,可以向设备提供电力;GND为地信号;VDD为可选择的电源引脚,当工作于寄生电源时,此引脚必须接地,其电路图如图2.10所示。图2.10传感器电路2.4显示电路设计分析采用动态节能四位共阳极数码管显示,由四个三极管驱动,三极管是位选,和数码管共的那个阳串联控制开和关,数码管别的连段选,和控制器连接。为什么要用三极管驱动,因为它的功率相对大,并且数码管显示几段是不定的,这里要通过足够的电流。由于不定,所以每段要分别串联限流电阻。3.软件的设计3.1主程序主程序的主要功能是负责温度的实时显示,读出并处理DS18B20测量,温度测量每1秒一次的当前温度值。这可以在一个单一的第二测得的温度来测量,程序流程如图3.1所示。图3.1程序流程图3.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图3.2所示。图3.2温度子程序流程图3.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图3.3所示。图3.3温度转换命令子程序流程图4.结论经过一段时间的设计、焊接、调试,终于能够达到预定的功能,此次设计让我们对单片机有了初步的认识,了解了单片机的工作模式和具体过程,明白了怎样利用单片机来设计满足自己设定功能的作品,怎样利用单片机来控制系统,怎样进行单片机编程,掌握了焊接的技巧,通过对单片机最小系统的研究,掌握了单片机各引脚的功能与各种外部扩展器件的链接,能够自己运用单片机来解决实际问题。通过这次学习,让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。在焊接过程中我曾将温度传感器的电源、地焊反了,导致温度器传感器急剧发热,后经观察和查询资料才得以矫正。在这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中去,学习单片机更是如此,程序只有在经常地写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。参考文献[1]彭军艾永乐、付子义模拟电子技术基础中国电力出版社2008[2]郑郁正单片机原理与应用四川大学出版社2003[3]谭浩强C程序设计清华大学出版社2010[4]谭浩强单片机实用教程北京航空航天大学出版社1993[5]赵负图国内外传感器手册辽宁科学技术出版社1997[6]彭军传感器与监测技术西安电子科技大学出版社2003致谢大学三年就会在这最后的毕业设计总结上画上一个圆满的句点。我曾经以为时间是一个不快不慢的东西,但现在我才发现时间过得是多么的快,三年了,感觉在一眨眼间结束了我的大学生涯。毕业,最重要的一个过程,最能把理论知识运用到实践当中去的过程就数毕业设计了。这也是我们从一个学生走向社会的一个转折,另一个生命历程的开始。着手毕业设计的一个多月,我学到了很多,也成熟了很多。该毕业设计的成功完成离不开我的指导老师的帮助,从课题的选择、资料的准备、开题报告的写作到课题的研究,最后到论文的修改、答辩等各个环节,都得到了我们电子信息学院张艳阳老师的悉心指导。在每个环节,老师都是认真、耐心的给予指导,在整个过程中我学到了很多很多,我觉得能够在这次毕业设计中学到很多东西,以往不注意的细节,在这一次设计中自己也慢慢地变得细心起来。这也是这四年来所学到知识的一个体现。在感谢老师的同时我还要感谢我同学给予我的大力支持和帮助,感谢所有关心和帮助过我的人,你们的支持与鼓舞使我不断向前的动力,让我的知识在短暂的时间里得到了升华。附录附录一总原理图附录二主程序#include<reg52.h>#include"eeprom.h"#defineucharunsignedchar#defineuintunsignedintsbitwei1=P2^1; //数码管位选sbitwei2=P2^2;sbitwei3=P2^3;sbitwei4=P2^4;sbitDQ=P1^0; //温度sbitk1=P3^1; //功能按键sbitk2=P3^2; //增加键sbitk3=P3^3; //减少建ucharTL,TH,TN,TD;sbitbeep=P2^0;ucharcount,num,m,s1num=0; //温度值ucharhtemp=33,ltemp=15; //温度上下限初始化floatf_temp;intkey_delay=0;constintkey_count=200;bityyp=1,halarm=0,lalarm=0;ucharcodeTAB[]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};ucharcodeTAB1[]={0xbf,0x89,0xc7,0xa7}; //三个依次是-HL 后面两个是温度符号/****毫秒级延时函数*****/voiddelay(uintx){uinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}voiddelay1(uchari){ucharj=100; for(i;i>0;i--) for(j;j>0;j--) {;}}voiddi(){ beep=0; delay(100); beep=1;}/***********ds18b20延迟子函数(晶振12MHz)*******////////////////////////////////////////////////////voiddelay_18B20(unsignedinti){ while(i--);}////////////////////////////////////////////////////**********ds18b20初始化函数**********************/////////////////////////////////////////////////////voidInit_DS18B20(void){ unsignedcharx=0; DQ=1; //DQ复位 delay_18B20(8); //稍做延时 DQ=0; //单片机将DQ拉低 delay_18B20(80); //精确延时大于480us DQ=1; //拉高总线 delay_18B20(14); x=DQ; //稍做延时后如果x=0则初始化成功x=1则初始化失败 delay_18B20(20);}/////////////////////////////////////////////***********ds18b20读一个字节**************////////////////////////////////////////////unsignedcharReadOneChar(void){ uchari=0; uchardat=0; for(i=8;i>0;i--) { DQ=0; //给脉冲信号 dat>>=1; DQ=1; //给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); } return(dat);}///////////////////////////////////////////////////*************ds18b20写一个字节****************///////////////////////////////////////////////////voidWriteOneChar(uchardat){ unsignedchari=0; for(i=8;i>0;i--) { DQ=0; DQ=dat&0x01; delay_18B20(5); DQ=1; dat>>=1;}}/**************读取ds18b20当前温度************///////////////////////////////////////////////voidReadTemp(){ Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x44); //启动温度转换 Init_DS18B20(); delay(1); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度 TL=ReadOneChar();//先读的是温度值低位 TH=ReadOneChar();//接着读的是温度值高位 TN=TH*16+TL/16;//实际温度值=(TH*256+TL)/16,即:TH*16+TL/16 //这样得出的是温度的整数部分,小数部分被丢弃了 TD=(TL%16)*10/16;//计算温度的小数部分,将余数乘以10再除以16取整, //这样得到的是温度小数部分的第一位数字(保留1位小数) }////////////////////////////////////////////////voidget_wendu(ucharm){ ucharws,wg; ws=m/10; wg=m%10; wei2=0; //读取温度的十位和个位 P0=TAB[ws]; delay(5); wei2=1; P0=0xff; wei3=0; P0=TAB[wg]&0x7f; delay(5); wei3=1; P0=0xff; }voidget_wendu2(ucharm){ wei4=0; P0=TAB[m]; delay(5); wei4=1; P0=0xff; }/////////调最高温度调用的函数//////voidhdisplay(uchardat) { ucharfs,fg; wei1=0; //读取最高温度符号“H-” P0=TAB1[1]; delay(5); wei1=1; P0=0xff; wei2=0; P0=TAB1[0]; delay(5); wei2=1; P0=0xff; fs=dat/10; fg=dat%10; wei3=0; P0=TAB[fs]; delay(5); wei3=1; P0=0xff; wei4=0; P0=TAB[fg]; delay(5); wei4=1; P0=0xff;}/////////调最低温度调用的函数//////voidldisplay(uchardat) { ucharfs,fg; wei1=0; //读取最低温度符号“L=” P0=TAB1[2]; delay(2); wei1=1; P0=0xff; wei2=0; P0=TAB1[0]; delay(2); wei2=1; P0=0xff; fs=dat/10; fg=dat%10; wei3=0; P0=TAB[fs]; delay(2); wei3=1; P0=0xff; wei4=0; P0=TAB[fg]; delay(2); wei4=1; P0=0xff; }/****按键扫描******/voidkeyscan(){ if(k1==0) { delay(10); if(k1==0) { yyp=0; s1num++; while(!k1); //等待按键释放 di(); htemp=byte_read(0x2200); ltemp=byte_read(0x2000); switch(s1num) { case1:break; case2:break; case3:if(s1num==3)s1num=0;yyp=1; break; } } } if(s1num!=0) { if(k2==0) { delay(10); if(k2==0) { do { delay1(10); } while((!k2)&(key_delay++<key_count)); ///等待按键释放 di(); switch(s1num) { case1:htemp++; if(htemp==99)htemp=0; hdisplay(htemp); SectorErase(0x2200);//擦除扇区 byte_write(0x2200,htemp);//重新写入数据 break; case2:lte

温馨提示

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

评论

0/150

提交评论