电子信息工程专业本科生毕业论文.doc_第1页
电子信息工程专业本科生毕业论文.doc_第2页
电子信息工程专业本科生毕业论文.doc_第3页
电子信息工程专业本科生毕业论文.doc_第4页
电子信息工程专业本科生毕业论文.doc_第5页
免费预览已结束,剩余26页可下载查看

下载本文档

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

文档简介

XXXXXXXXXXXX本科生毕业论文温差警报器设计院系名称信息科学与工程系姓名XXX学号201001030162专业电子信息工程指导教师XX 讲师2014年05月8日摘要近年来, 温差这个词在人们的日常生活中出现的越来越频繁,可见其重要性也是越来越高。医学专家强调室内外温差不可高于7。可是,人们平时无法依靠自己的感觉而准确的判别温差大小,因此,一个可以准确方便的帮助人们判别温差大小的产品的研究已经成为了一个重要的课题。对此,本论文设计了一种能够及时的反馈出室内外温度情况并发出温差过大警报信号的装置。该装置采用STC89C52单片机作为控制器,两个DS18b20温度传感器作为温度数据采集系统,LCD1602作为显示系统,LED灯作为警报提示系统,能够实现数据采集,数据处理,数值显示,报警等功能。该装置具有简单、方便、精确、实用 、成本较低等特点。本论文从组成框图、硬件设计以及程序流程及代码等几方面对该装置进行了介绍。关键词:温差;单片机;传感器AbstractIn recent years, the temperature difference between the word appearing in peoples daily lives more and more frequently, and its importance is also increasing. Medical experts emphasize indoor and outdoor temperature does not exceed 7 . However, people usually can not rely on their feelings and accurately determine the size of the temperature difference, therefore, an accurate and convenient to help people determine the temperature difference between the size of the products research has become an important issue. In this regard, this paper designs a timely feedback on the situation and the temperature difference between the indoor and outdoor temperature is too large device emits an alarm signal. The device uses STC89C52 microcontroller as controller, two DS18b20 temperature sensor for temperature data acquisition system, LCD1602 as a display system, LED lights as an alarm reminder system, to achieve data acquisition, data processing, numerical display and alarm functions. The device has a simple, convenient, accurate, practical, low cost and so on. In this paper, from the block diagram, hardware design and program code and other aspects of the process and the devices were introduced.Keywords: temperature difference ; Single-Chip Microcomputer ; sensor目录摘要I 1 引言11.1 研究的背景和意义11.2 研究本课题所涉及的文献综述11.3 研究本课题的主要内容和方法11.3.1 研究的主要内容11.3.2 研究方法22 方案总体设计32.1设计方案的选择32.1.1控制器模块32.1.2电源模块32.1.3 温度采集模块42.1.4 显示模块42.1.5 警报模块43硬件实现及单元电路设计53.1微控制器模块的设计53.2电源电路的设计53.3 DS18b20温度传感器温度采集模块的设计63.4 LCD1602显示模块电路的设计73.5 警报模块电路的设计73.6复位电路的设计83.7电路总图94.软件设计104.1程序流程图104.2关键模块程序及其代码114.2.1 DS18b20温度采集模块程序114.2.2 LCD1602显示模块程序134.2.3 LED灯警报模块程序164.3 源代码164.4软件仿真时序图225.设计报告总结25参考文献26致 谢27II1 引言1.1 研究的背景和意义随着全球气候的变化和经济以及科技的快速发展,空调已经成为了人们日常生活中重要的一部分,它给人们带来了舒适环境的同时也带来了诱发人体常见疾病的条件过大的温差。近年来, 温差这个词在人们的日常生活中出现的越来越频繁,可见其重要性也是越来越高。在炎热的夏季以及寒冷的冬季,我们经常会从媒体上看到各种因空调照成的温差过大而导致的感冒发烧、头痛咳嗽以及高血压等疾病。为此,很多医学专家都提醒人们不要太过贪凉(贪暖),应保持温差在5左右,不要超出7。可是,我们平时并不能依靠自己的感觉而准确的判别温差大小。针对这种情况,我提出了关于温差警报器的设计制作。使人们可以通过这种产品准确方便的判别温差大小,从而预防温差过大对自身的危害。1.2 研究本课题所涉及的文献综述温度是人类生存环境的必要条件之一。温差则是在不同时间或者不同地点之间温度的差异。医学专家表明,当人体处于温差过大的环境中时会造成血压不稳定和免疫力下降,容易引起高血压、流行性感冒等相关疾病。随着全球气候的变化,经济以及科技的快速发展,空调和暖气已经在人们日常生活中普及开来。然而,因为人们太过贪凉(贪暖)而造成室内外温差过大的问题也越来越严重。所以,人们怎样及时对温差准确方便的判断在目前成为了研究的必要。要及时准确的判断温差,就要先及时准确的判断温度,想要及时准确的判断温度,就要能够及时准确的测量温度。目前,温度测量的方法已达数十种之多。根据温度测量所依据的物理定律和所选择作为温度标志的物理量,测量方法可以归纳成下列几类:膨胀测温法,压力测温法,电学测温法,磁学测温法,声学测温法,频率测温法,辐射测温法 。考虑到家用型的成本及测量精度,本次设计采用的是电学测温法。由单片机来处理数字温度传感器的数据并控制显示系统进行显示和警报系统发出警报。1.3 研究本课题的主要内容和方法1.3.1 研究的主要内容本文要求设计具有自动检测温度,显示温度,以及发出警报的功能,即:显示室内外温度及温差过大时警报灯亮起。首先要进行系统的总体方案设计,在总体方案设计中一般应考虑以下三点:1、遵循从整体到局部的设计原则。设计时,先考虑整体设计,由整体分为多个局部模块。即把复杂的问题分解为多个简单的问题,分部去解决。2、可靠性的要求。所谓可靠性是指产品在规定的条件下和规定的时间内实现规定功能的能力。可靠性除了用完成功能的概率表示外,还需要考虑平均无故障时间、故障率、失效率及平均寿命。3、方便适用和经济性的要求。在设计方案的过程中,要考虑此方案实际的操作是可实现,简单,元件尽量少,走线简单方便以及经济合算。1.3.2 研究方法根据课题要求,本系统主要由控制器模块、复位模块、电源模块、温度采集模块、显示模块及警报模块等构成。本系统的方框图如下图所示:警报模块复位模块显示模块控制器模块温度采集模块电源模块图1-1系统方框图2 方案总体设计2.1设计方案的选择为较好的实现各模块的功能,我分别设计了几种方案并分别进行了选择。2.1.1控制器模块方案1:采用STC公司的STC89C52RC单片机作为主控制器。STC89C52RC是一个低功耗,高性能的51系列内核的CMOS 8位单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256 bytes的随机存取数据存储器(RAM),32个I/O口,2个16位可编程定时计数器。且该系列的51单片机可以不用烧写器而直接用串口或并口就可以向单片机中下载程序。方案2:采用可编程逻辑器件CPLD作为控制器。CPLD可以实现各种复杂的逻辑功能、I/O资源丰富、体积小、稳定性高、规模大、密度高。一般作为大规模控制系统的控制核心。本系统是一个小规模的控制系统,主要是进行温度传感器DS18b20的数据收集处理以及警报LED的控制,对数据的处理速度的要求不是非常高,不需要相对复杂的逻辑判断,且从系统的稳定性,编程的简洁性,方便适用及经济成本的角度考虑我选择了方案1。2.1.2电源模块由于本系统需要58V直流电源供电,我考虑了如下3种方案为系统供电:方案1:采用4节干电池为系统供电,经过稳压管7805的电压变换后为单片机和传感器供电。方案2:采用2节3.7V可充电式锂电池串联为系统供电,经过稳压管7805的电压变换后为单片机和传感器供电。方案3:采用7V直流充电器为系统供电,经过稳压管7805的电压变换后为单片机和传感器供电。经过对比,3种方案都能够满足系统的要求。但是,方案1太过麻烦,而且使用过程中比较浪费,还不环保;方案2相对经济划算,但使用过程中需要经常更换电池充电,比较麻烦;方案3不但经济划算,使用方便,而且环保安全。综上考虑,我选择了方案3。2.1.3 温度采集模块本设计采用体积小、经济、灵活、测量温度范围在-10+85范围内精度为0.5的热电偶式电子数字温度传感器DS18b20。对其我考虑了以下几种供电方案:方案1:寄生电源供电方式。无须本地电源,可以在没有常规电源的条件下读取ROM。电路更加简洁,仅用一根I/O口实现测温。但只适应于单一温度传感器测温情况下使用,不适于采用电池供电系统中。方案2:寄生电源强上拉供电方式。在强上拉供电方式下可以解决电流供应不足的问题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。方案3:外部电源供电方式。DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,可以充分发挥DS18B20宽电源电压范围的优点,不存在电源电流不足的问题,即使电源电压VCC降到3V时,依然能够保证温度量精度。(注意:在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85。传诚科技DS18B20中文资料,2008)。经过对比,外部电源供电方式是DS18B20温度传感器最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。因此我选择了方案3。2.1.4 显示模块由于本设计有实现显示温度数值的功能,所以选择一个合适的显示模块设计方案对系统来说非常重要。常用的显示模式有LCD液晶显示 、LED数码管显示 、点阵显示。对于显示模块我考虑了以下2种方案:方案1:LCD液晶显示屏具有轻薄短小,低耗电量,几乎没有辐射危险,平面直角显示以及形象稳定不闪烁等优势,大面积显示,画面效果好,分辨率高,抗干扰能力强等特点,其缺点便是成本偏高。方案2:LED数码管(LEDSegmentDisplays)是由七段发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,根据LED的接法不同分为共阴和共阳两类,使用时只需引出它们的各个笔划,公共电极。控制简单,但硬件电路接线所需的I/O较多且本体体积较大。考虑到该设计的产品在实际使用时大小要适合安装、美观以及抗干扰的能力,我选择了方案1。2.1.5 警报模块对于本系统的警报模块我考虑了以下2种方案:方案1:采用蜂鸣器发出有声警报。方案2:采用LED发出无声警报。考虑到采用有声警报可能会对人们的日常生活产生一些不必要的困扰(如:夜晚休息时突然发出警报影响休息等),故此我选择了方案2。3硬件实现及单元电路设计3.1微控制器模块的设计STC公司的STC89C52是51内核的单片机。不用专用烧写器而只需要串口或者并口就可以往单片机中下载程序。采用的晶振为11.052HZ。图3-1 STC889C52RC接线电路3.2电源电路的设计由于本次为了使单片机和传感器等工作稳定、互不影响,故采用7V直流充电器经过稳压芯片7805转换后的电压作为单片机和传感器供电。其转换电路如下:图3-2 电源电路3.3 DS18b20温度传感器温度采集模块的设计采用外部供电方式。图3-3 DS18b20接线电路3.4 LCD1602显示模块电路的设计采用10的变阻器调节其对比度。图3-4 LCD1602接线电路3.5 警报模块电路的设计二极管正向工作电流为2mA10mA,正向饱和压降为1.6V2.1V,计算其搭配的电阻阻值R=(5V-2V)/10mA=300。图3-5 警报灯LED接线电路3.6复位电路的设计计算电容值=6F。图3-6 复位电路3.7电路总图图3-7 电路总图4.软件设计4.1程序流程图设计的软件的程序流程图如下图所示:读取室外DS18b20测得的温度数值读取室内DS18b20测得的温度数值系统初始化NLCD1602显示读取到的温度值YLCD1602显示读取到的温度值NY计算两个数值的差值差值是否大于7?NY警报灯LED亮起图4-1 程序流程图4.2关键模块程序及其代码4.2.1 DS18b20温度采集模块程序/*ds1820程序*/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=0;i=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar dat)/*写数据*/ uchar i=0; for (i=0; i=1; void b20_Matchrom(uchar a) /匹配ROMchar j;ds1820wr(0x55); /发送匹配ROM命令if(a=1)for(j=0;j8;j+)ds1820wr(str1j);/发送18B20的序列号,先发送低字节 if(a=2)for(j=0;j8;j+)ds1820wr(str2j);/发送18B20的序列号,先发送低字节 read_temp(uchar z)/*读取温度值并转换*/uchar a,b;float tt;ds1820rst(); ds1820wr(0xcc);/读序列号ds1820rst(); if(z=1)b20_Matchrom(1); /匹配ROM 1if(z=2)b20_Matchrom(2); /匹配ROM2ds1820wr(0x44);/*启动温度转换*/delay1ms(5);ds1820rst(); ds1820wr(0xcc);/读序列号ds1820rst(); if(z=1)b20_Matchrom(1); /匹配ROM 1if(z=2)b20_Matchrom(2);/匹配ROM2ds1820wr(0xbe);/*读取温度*/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1;tflag=1; tt=tvalue*0.0625;tvalue=tt*10;return(tvalue);4.2.2 LCD1602显示模块程序/*lcd1602程序*/void delay1ms(uint ms)/延时1毫秒 uint i,j; for(i=0;ims;i+) for(j=0;j100;j+);void wr_com(uchar com)/写指令/ delay1ms(1); RS=0; RW=0; EN=0; P2=com; delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_dat(uchar dat)/写数据/ delay1ms(1); RS=1; RW=0; EN=0; P2=dat; delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_new()/写新字符uchar i;wr_com(0x40);for(i=0;i7|b-a7)LED=0;/点亮LEDelseLED=1;/熄灭LED4.3 源代码#include #include #define uchar unsigned char#define uint unsigned intsbit LED=P06;sbit RS=P01;sbit RW=P02;sbit EN=P03;sbit DQ=P04;uchar code str1=0x28,0x08,0xA7,0xBA,0x02,0x00,0x00,0x18;/ROM1uchar code str2=0x28,0x0C,0xBA,0xBA,0x02,0x00,0x00,0x54;/ROM2 uchar code table8=0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00;/ 摄氏温度符号uchar data disdata5;uint tvalue;/温度值uchar tflag;/温度正负标志/*lcd1602程序*/void delay1ms(uint ms)/延时1毫秒(不够精确的) uint i,j; for(i=0;ims;i+) for(j=0;j100;j+);void wr_com(uchar com)/写指令/ delay1ms(1); RS=0; RW=0; EN=0; P2=com; delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_dat(uchar dat)/写数据/ delay1ms(1); RS=1; RW=0; EN=0; P2=dat; delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_new()/写新字符uchar i;wr_com(0x40);for(i=0;i8;i+)wr_dat(tablei);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);wr_new();wr_com(0x80); wr_dat(A);wr_com(0x81); wr_dat(:); wr_com(0x89); wr_dat(0x00);wr_com(0x8a); wr_dat(C);wr_com(0xc9); wr_dat(0x00);/摄氏温度字符wr_com(0xca); wr_dat(C);wr_com(0xc0); wr_dat(B);wr_com(0xc1); wr_dat(:);/*ds1820程序*/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=0;i=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar dat)/*写数据*/ uchar i=0; for (i=0; i=1; void b20_Matchrom(uchar a) /匹配ROMchar j;ds1820wr(0x55); /发送匹配ROM命令if(a=1)for(j=0;j8;j+)ds1820wr(str1j);/发送18B20的序列号,先发送低字节 if(a=2)for(j=0;j8;j+)ds1820wr(str2j);/发送18B20的序列号,先发送低字节 read_temp(uchar z)/*读取温度值并转换*/uchar a,b;float tt;ds1820rst(); ds1820wr(0xcc);/读序列号ds1820rst(); if(z=1)b20_Matchrom(1); /匹配ROM 1if(z=2)b20_Matchrom(2); /匹配ROM2ds1820wr(0x44);/*启动温度转换*/delay1ms(5);ds1820rst(); ds1820wr(0xcc);/读序列号ds1820rst(); if(z=1)b20_Matchrom(1); /匹配ROM 1if(z=2)b20_Matchrom(2);/匹配ROM2ds1820wr(0xbe);/*读取温度*/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue7|b-a7)LED=0;/点亮LEDelseLED=1;/熄灭LED/*主程序*/void main() lcd_init();/初始化显示 while(1) read_temp(1);/读取温度ds1820disp(1);/显示read_temp(2);/读取温度ds1820disp(2);/显示/delay1ms(10000); LD();/警报; 4.4软件仿真时序图图4-2 软件仿真时序图图4-3 软件仿真时序图图4-4 软件仿真时序图5.设计报告总结通过此次论文设计,使我对电子电路以及C语言的编程有了更深一步的理解。让我对单片机、protel DXP 2004、传感器、电子电路基础、C语言编程等课程有深度进行再次学习,增强了自己运用理论知识的能力,同时使自己逐渐学会并掌握了有关电路设计的思想以及软件

温馨提示

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

评论

0/150

提交评论