【《具有语音播报的测温仪设计(任务书+开题报告+正文)》13000字(论文)】_第1页
【《具有语音播报的测温仪设计(任务书+开题报告+正文)》13000字(论文)】_第2页
【《具有语音播报的测温仪设计(任务书+开题报告+正文)》13000字(论文)】_第3页
【《具有语音播报的测温仪设计(任务书+开题报告+正文)》13000字(论文)】_第4页
【《具有语音播报的测温仪设计(任务书+开题报告+正文)》13000字(论文)】_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

任务书学生姓名专业班级指导教师工作单位设计(论文)题目具有语音播报的测温仪设计一、设计(论文)主要内容具有语音播报的测温仪设计的功能如下:本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字化、智能化方面有广泛的用途。温度显示基本范围0.0℃—99.9℃。精度误差小于0.1℃。所测温度值由四位数码管显示。可以设定温度的上下限报警功能。

1温度传感器:能够检测出当前温度,采用数字温度传感器DS18B20。

2显示模块:可以将待显示数据进行数据传输给显示处理模块:

3声光报警模块:当检测温度超过一定值时,模块自动报警:二、要求完成的主要任务及其时间安排要求完成的主要任务:(1)查阅资料,参考文献不少于10篇(其中至少有2篇外文文献);(2)提出设计方案,完成开题报告;(3)完成具有语音播报的测温仪的硬件和软件设计;(4)对系统或相关环节进行调试、仿真,验证设计的正确性、可行性;(5)完成万用板的焊接与调试;(6)撰写论文并准备答辩,要求论文语言通顺,整篇论文不少于10000汉字。时间安排:1、2020年11月15日前下毕业设计任务书。2、第1~2周(2020年12月21日~31日)学生完成开题报告,指导教师审阅、批复。3、第3周~第10周(2020-2021-2学期教学周第1周~8周)为系统设计与撰写论文时间。期间:(1)毕业设计的期中检查在2020-2021-2学期第6~7周;(2)2020-2021-2学期教学周第8周为指导教师评阅论文,学生修改论文;4、第11~12周(2020-2021-2学期教学周第9周~10周)为答辩小组内交换评阅论文,学生制作PPT进行答辩准备。5、第13周(2020-2021-2学期教学周第11周),学生准备毕业答辩。(一般第11周前半周为公开答辩,后半周为普通答辩)三、必读参考资料[1]李群芳、肖看、张士军.单片微型计算机与接口技术.北京:电子工业出版社,2014.[2]童诗白.模拟电子技术基础.北京:高等教育出版社,2014.指导教师签名:系主任签名:盖章 开题报告题目具有语音播报的测温仪设计1、目的及意义(含国内外的研究现状分析)1.目的及意义随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度测量是工业、农业、国防和科研等部门最普遍的测量项目。它在工农业生产、现代科学研究及高新技术开发过程中也是一个极其普遍而重要的测量参数。温度是表征物体冷热程度的物理量,是国际单位制中7个基本物理量之一,它与人类生活、工农业生产和科学研究有着密切关系。随着科学技术水平的不断提高,温度测量技术也得到了不断的发展。在温度测量方面各国均取得了许多可喜的成果,其中前苏联的压电石英频率温度计分辨能力可达0.0001℃,理论上可达0.00001℃,而且在-40℃~230℃范围内具有温度与频率的线性特性;日本利用所谓石英温度频率转换器-80℃~200℃的温度范围,最大分辨率达0.0001℃;美国标准局研制的电阻温度计25欧标准铂电阻温度计,电桥分辨0.00002℃;我国生产的石英温度传感器分辨率达到0.0001℃,误差在0.05℃以内,中国航天工业总公司702所研制的5901(STP-1000)型粘贴式测温片,其静态测温精度为0.5%,快速响应时间小于0.013s。虽然温度测量方法多种多样,但在很多情况下,对于实际工程现场或一些特殊条件下的温度测量,比如对极限温度、高温腐蚀性介质温度、气流温度、表面温度、固体内部温度分布、微尺寸目标温度、大空间温度分布、生物体内温度、电磁干扰条件下温度测量来讲,要想得到准确可靠的结果并非易事,需要非常熟悉各种测量方法的原理及特点,结合被测对象要求选择合适的测量方法才能完成。同时,还要不断探索新的温度测量方法,改进原有测量技术,以满足各种条件下的温度测量需求。2.国内外研究分析现状随着国内外工业的日益发展,温度检测技术也有了不断的进步,目前的温度检测使用的温度计种类繁多,应用范围也较广泛,大致包括以下几种方法。利用物体热胀冷缩原理制成的温度计。利用此原理制成的温度计大致分成三大类:玻璃温度计、双金属温度计、压力式温度计。利用热电效应技术制成的温度检测元件。利用此技术制成的温度检测元件主要是热电偶。热电偶发展较早,比较成熟,至今仍为应用最广泛检测元件之一。热电偶具有结构简单、制作方便、测量范围宽、精度高、热惯性小等特点,因此广泛作为温度传感器的敏感元件。利用热阻效应技术制成的温度计。用此技术制成的温度计大致可分成以下几种:电阻测温元件、导体测温元件、陶瓷热敏元件。利用热辐射原理制成的高温计。热辐射高温计通常分为两种:一种是单色辐射高温计,一般称光学高温计;一种是全辐射高温计,它的原理是物体吸收热辐射后,视物体本身的性质,能将它吸收、透过或反射。2、基本内容和技术方案数字温度传感器DS18B20输出信号全数字化,便于单片机处理及控制,省去传统测温方法的很多外围电路。且该芯片的物理性、化学性很稳定,能用做工业测温元件。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,硬件实现简单,体积小,安装方便。所以该系统利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可根据需要设定上下限报警温度,同时设置DS18B20输出时间使得读数模块1s输出一次数据并且读出。需要的器件:单片机芯片,DS18B20温度传感器,LCD显示屏,蜂鸣器,报警模块,语音模块。方案:系统硬件由电源供电模块,数据采集模块,LCD显示模块,报警模块,复位模块,语音模块数据采集模块由DS18B20温度传感器和wt588d语音芯片组成,其主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的当前温度值,与设定的报警温度比较,如果一旦出现过低或者过高的情况,便会触发报警系统,发出报警声。系统结构框图如下:Lcd显示屏单片机芯片供电模块Lcd显示屏单片机芯片供电模块蜂鸣器蜂鸣器语音模块DS18B20温度传感器语音模块DS18B20温度传感器报警模块报警模块3.进度安排:第1周(2019年11月15日)前熟悉课题内容,准备开题论证;第1~2周(2019年11月18日-29日)查阅资料,选择设计方案,熟悉开发环境、所需器件及其各个功能,完成开题报告;第3周~第10周(2019年11月30日--2020年4月10日)进行系统架构(包括系统的软件、硬件等)、设计各个模块的功能搭建;第7~9周(2020年3月16日--2020年4月3日)接受期中检查,实现系统并进行测试,完成毕业论文初稿;第10周(2020年4月6日--4月10日)为指导教师评阅论文,学生修改论文;第11周(2020年4月13日--4月17日)进一步地测试系统,修改并完成毕业论文;第12周(2020年4月19日--4月24日)整理材料,准备答辩,装订论文。第13周(2020年4月27日--5月2日)毕业设计答辩4、指导老师意见指导教师签名:年月日注:1.开题报告应根据教师下发的毕业设计(论文)任务书,在教师的指导下由学生独立撰写,在学院规定时间内完成;2.设计的目的及意义至少800字,基本内容和技术方案至少400字;3.指导教师意见应从选题的理论或实际价值出发,阐述学生利用的知识、原理、建立的模型正确与否、学生的论证充分否、学生能否完成课题,达到预期的目标。

目录TOC\o"1-3"\h\u12603摘要 摘要在我们的工作生活中,单片机技术运用到方面越来越广,也变成为了一种十分成熟的技术,这篇文章主要讲述了研构具有语音播报的测温仪的设计,该设计基于STC89C52单片机和DS18B20温度传感器,对于传感器的硬件连接进行了重点介绍,同时也对各部分电路进行了介绍,并且在本文中还对于设计的系统流程和软件编程也进行了仔细分析,该系统可以实现实时温度监测并且将温度显示和播报出来,在我们的日常生活中应用十分广泛,该系统也具有很多优点,例如体积小携带便捷、大量程、高灵敏度、高精度、低功耗的特点,同时还能成为其他需要温度检测的主系统的辅助扩展模块。该系统设计采用的STC89C52和DS18B20十分简单方便的实现了温度的实时监测,而且这个系统的有很强的抗干扰能力,同时也加入了语言播报功能和报警功能,能让很多使用者在不方便看温度的时候可以听到温度的播报,有广泛的应用前景。关键词:单片机;温度监控;STC89C52;DS18B20;1绪论1.2国内外研究现状测温仪在国内的研究现状:测温仪在我国在起步较晚在上世纪的八十年代,才开始进行研究。在国外的测温仪有一定基础后,我国技术人员虚心学习其他西方国家的技术,并且对技术进行了消化理解还加入了自己的理解。我们国家的测温仪技术也在慢慢向使用便捷的方面发展。多数以单片机为核心,但是在技术层面上并没有实现真正意义上得到一个综合性质的测温仪的系统。对于西方国家来说,还是有很大的差距的。对于测温系统来说,我国对温度的控制比较弱,也达不到现实生产生活中比较高的水平。我们存在很多实际上的问题,就像工业化程度低、而且整套的系统也很少存在,同时各个厂家也存在硬件无法通用等缺点。测温仪在国外的研究现状:国外对测温仪的研究早在上世纪七十年代就开始了。采用了自己的方法进行了组合仪表和采集数据,并且多次实验记录采用模拟式的仪表盘。在上世纪八十年代末就实现了分布式控制。当前许多国家在测温仪的研究方向也渐渐向无人化和自动化发展。同时也在智能系统的控制和去除多因子的干扰上面不断努力。从国内外的研究来看,还是没有出现那种会自动检测温度并且报数的测温仪器的出现。也就是说市场上现存的测温仪的产品的功能只是侧重对使用者的温度的显示,并没有考虑到使用者可能存在的不方便,例如视力障碍。基于对国内外测温仪功能的单一性、局限性考虑,本论文提出了通过温度传感器进行测试温度,用数码管显示出来,并进行实时监控且每隔一段时间进行语音播报,且温度一旦超过上下限就会警报,来提醒使用者采取相关措施。研究意义:进行温度的实时监控并且隔一段时间播报一次温度,在超出温度上下限的时候会发出警报,来提醒使用者温度的高低。关键是能让使用者知道实时温度,并且能在温度高低做出判断和预防,提高人们对温度把控的准确性。1.3技术方案与设计要求技术方案:本次毕业设计系统采用宏晶科技公司设计的STC89C52单片机,作为测温仪的核心控制基础,利用DS18B20温度传感器测试出当前温度,当高于或者低于设定的温度上下限时。设定的安全临界值时,就会发出报警信号。报警信号由蜂鸣器和知识的发出。通过WT588D语音芯片转化为温度的语音信号,然后将信号转为语音信号并用扬声器播报出来;声光报警则通过三管驱动蜂鸣器,与发光二极管并联组成的电路而构成。设计要求:本设计介绍了基于ST89C52单片机的具有语音播报功能的测温仪。同时也介绍了系统软硬件的设计,而且也对各个模块一一介绍。这个系统主要功能是基于单片机系统采用DS18B20温度传感器来进行温度监测的系统。同时也要完成对数据的处理并且显示出来。接入5v电源后数码管会显示出当前监测的温度。通过按键可以调整温度的上下限,一但温度高于上下限就会声光报警。声光报警采用扬声器和指示灯,功能分别是发出声音和指示灯亮。温度显示基本范围0.0℃—99.9℃,精度误差小于0.1℃,每隔1s会自动读出温度,并具有掉电保存功能。掉电保存共呢会让数据保留在单片机内部,可以用来储存我们设定的温度上下限。通过按键可以进入设置界面进行温度上下限的调整。同时采用WT558D语音芯片来进行发声。1.1研究背景自2019年12月以来,在湖北省武汉市发现了不明原因的肺炎病例。同时也发现病例大多数有华南海鲜市场的接触史。现已表明为2019新型冠状病毒感染引起的急性呼吸道传染病。新冠病毒的初期症状和伤风相差无几,同时也会伴随体温升高胸闷的症状。至今2021年4月新冠疫情还在全球肆虐。大家想要更好的控制疫情,就要抓住新冠伴随体温升高的特点,在公共场合也就大量需要测温仪,测温仪也就在过去的一年中销量大幅度增加。同时温度是在工农业、国防等部门中十分重要的一种测试物理量。在很多方面上都需要用到温度传感器。同时也有数据说明,温度传感器在各种传感器中销售占比占到了将近一半。因此,测温仪在保证产品质量,提高生产效率,节约能源,安全生产,促进国民经济发展等诸多方面起到了至关重要的作用。在21世纪的今天,中国的科技、经济迅速发展,新冠疫情也还在持续,人们对自己的体温测试也是愈发的重要,同时工农业也在许多方面需要精准的测温,所以说如今测温仪的装置也会越来越重要。

2测温仪控制系统总设计2.1系统框图该系统主要有显示模块、报警模块、电源模块、语音模块和数据采集模块。温度测量采用了DS18B20传感器,语音系统使用了比较简单好用的WT588D语音芯片,这样就能得到研构具有语音播报功能的测温仪。该系统的主要的功能就是实时监测当前温度,并且将实时温度读出。通过软件设置将读出实时温度的时间设定为1秒一次,同时也将温度测量变成1秒一次。将实时温度读出并且于设定的温度上下限进行对比,如果一旦出现温度超出可测范围的情况,便会触发声光报警系统,发出报警声和指示灯发出亮光。系统框图如下:图2.1系统框图2.2设计方案的选择2.2.1主控制器模块采用STC89C52单片机作为整个系统的核心,用其控制测温仪中的各项功能,使得测温仪中的各项功能能各自实现。采用的单片机有很多优点,例如操作比较方便且精准性较高。该单片机一共有40个引脚,功能丰富且齐全。该单片机还有8K的程序空间,完全满足了我这次设计要使用的软件空间。而且该单片机十分便宜还特别好买到。2.2.2温度测量模块本设计用到的温度传感器是平时十分常见的DS18B20温度传感器。该传感器拥有十分稳定的性质,也能配合上文所选用的单片机进行很好的软硬件调控,能显示出高精准的数据和抗干扰的特点。该传感器也拥有体积小且使用方法简单的特点,十分符合我们设计的要求。同时我们能通过信号来输出到数码管进行直接显示,十分的简单明了并且达成我们需要的目标。DS18B20温度传感器有很多优点,能提高我们对于温度检测的准确性。同时还具有连接简单的特点,对于STC89C52单片机也有更好的适配性。2.2.3键盘模块采用四个按键来设置温度。按键分为了两种,一种是控制复位的按键,只有一个按键。另一种是控制功能的按键一共有三个,分别是用来设置功能键和温度的加减两个键。2.2.4显示模块采用十分简单四位数码管来进行显示,数码管有显示速度较快且方便,在设计中也体现了很大的优点。2.2.5电源模块电源模块采用VCC5V接入给整个系统供电,5v的稳定电压会让系统的单片机工作更加稳定,而且DS18B20温度传感器也需要稳定的电压,同时整个系统也会更加的稳定,所以就采用了VCC5V。2.2.6语音模块采用WT588D语音芯片来作为这次系统的语音模块,该芯片具有语音播报的功能。同时响应时间短、反应快且声音明亮清晰。满足本次毕设需要的语音播报要求。该芯片可以通过STC89C52单片机控制,通过一线串口模式读写。通过语音信号进行输出信号输出电路,同时完成语音播报和语音提示的功能,因此便选择了WT588D语音芯片作为语音模块的核心。

3硬件实现及单元电路设计3.1主控制器模块电路主控制器采用的是深圳宏晶科技的ST89C52单片机。该单片机拥有40个引脚,功能十分齐全。且还是只需要8Kbyte的低电压便可以运行,且运行过程过程可加入自己的编程的微处理器。STC89C52还具有很高的性能和稳定性。同时单片机内有自身的时钟,也可也有掉电保存功能,能储存我们需要设定的数据。该单片机运用也十分广泛,同时我们也能以比较低的价格入手,十分适合我们进行主控制器模块的选择和使用。主控制最小系统电路如下图所示。图3.1单片机最小电路3.2显示模块电路数码管采用SMG04_1四位数码管来显示,采用的是带小数点的八段数码管,并且是共阳极的四位数码管,这样的话显示简单明了,而且成本对于lcd显示屏来说价格较低。显示电路采用SMG04_1数码管,该数码延时十分低,在日常生活中人们不能发现其中的延时。在正常情况下来看就是数码管一起发出光,并且该数码管十分稳定。数码管显示电路如下图所示。图3.2数码管显示电路3.3数码管显示驱动电路数码管驱动电路采用三极管9012。由于直接拿单片机的引脚驱动共阳极的数码管,数码管的亮度会比较低,所以用NPN型三极管来驱动会有效的解决数码管的亮度问题,用三极管构建放大电路,放大单片机引脚信号,能让数码管更亮,人们看的更加清晰,驱动电路如下图所示。图3.3驱动电路3.4温度传感器(DS18B20)电路3.4.1DS18B20基本介绍DS18B20温度传感器是美国知名半导体公司推出的温度传感器。该温度传感器具有许多的优点,在很多场合具有巨大的用途。DS18B20具有低功耗但还是能有很高的性能和很强的抗干扰能力。同时该传感器还具有与单片机较好的适配性。DS18B20温度传感器需要稳定的电流才能进行稳定保持工作状态,也让我们选择用5v的稳定电源其实是对温度检测的精度的一个保证。同时在实物操作是也要反复确认输出口输出的电流是否稳定并到达一定数值。所以在温度传感器的电路的确定时,就采用了5v的vcc输入。这样能够提供一个十分稳定的电压和电流,能够让温度传感器更好的进行工作,得出更高精度的结果。传感器的接线图如下图所示。图3.4温度传感器电路接线图3.4.2DS18B20控制方法DS18B20有六条控制命令:1.温度转换44H启动DS18B20进行温度转换。2.读暂存器BEH读暂存器9个字节内容。3.写暂存器4EH将数据写入暂存器的TH、TL字节。4.复制暂存器48H把暂存器的TH、TL字节写到E2RAM中。5.重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节。6.读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU。3.4.3DS18B20供电方式DS18B20一共拥有两种供电方式,这次采用了电源供电的方法,主要原因在于该温度传感器想要高精度的温度结果需要有稳定的电压和电流,同时也能保证单片机的正常工作。另一种方法会导致温度不够精准且可能造成单片机无法正常运行的情况。在进行温度转化为电信号需要进行下面的三个步骤:1.初始化。2.ROM操作指令。3.存储器操作指令。单片机端口接单线总线如下图所示。图3.5单片机端口接单线总线3.5蜂鸣器、发光二极管报警电路报警电路本次设计采用了蜂鸣器和发光二极管来进行声光报警。我们要先设定温度上下限的报警值,当超出范围是便会进行声光报警。蜂鸣器、发光二极管报警电路如下图所示。图3.6蜂鸣器、发光二极管驱动报警电路图3.6WTD588D语音系统电路本次设计使用了WT588D语音模块,这款芯片拥有很多的优点,例如声音明亮清晰且声音延迟也比较低,比较符合我这次课设的要求。该芯片具有非常广泛的用途,能用于我们日常生活中的方方面面,在工业上也有广泛的用途。语音提示模块电路图如下图所示。图3.7语音提示模块电路图3.7按键电路按键模块电路采用四个按键,分别实现复位,功能设定和温度加减功能,复位按钮存于单片机的最小系统中,复位按键如下图所示。图3.8复位按键电路图s2,s3,s4分别为功能键、温度加键和温度减键,电路如下图所示。图3.9按键电路

4系统软件程序的设计4.1软件的设计本次设计采用C语言来进行编程,本次毕业设计选用的是keil5软件进行C语言程序的编写。写完之后,点击运行按键,能够查看有无错误并且方便更改。同时也可在程序上直接修改比较方便,并成功得到HEX文件。采用Keil5进行c语言编辑过程如下图所示。图4.1Keil5进行c语言编辑Keil5生成hex文件如下图所示。图4.1Keil5生成hex文件本次设计完成了hex文件后就是要在仿真软件Proteus7.8的运用了。通过对原理图的认识和理解作出自己的仿真电路,但是由于没有wt588d语音模块所以在proteues7.8软件中并没有出现,所以在仿真的时候就没有放入语音模块,最后用Keil5软件生成的hex文件利用仿真软件Proteus7.8烧录到单片机的芯片之中,进行仿真以及调试的过程。Proteus7.8仿真电路图如下图所示。图4.3Proteus7.8仿真电路图4.2程序的设计程序的编写是十分复杂的,但是也有着很好的方法来应对。那就是通过模块化将众多的程序分为一个一个的小的组成部分,然后通过绘制程序流程图来清楚地反映我们所需要编写的程序,环环相扣,最终顺利完成程序地编写任务。(1)定义问题。首先要学会归类,分成不同的部分。分类解决问题,以免造成问题的混淆那就是得不偿失了。(2)先确定出程序的各个组成模块,将需要的各个模块一一分类并且归纳出来,优先确定必须要用的元器件和主要的模块。有些比较模糊的模块可以放在后面我们需要使用的时候来进行考虑,可以留有一定的摇摆位置出来让设计能更加完善和便捷。(3)然后我们就要开始画出设计需要的流程图了,也就是在这一步,是很重要的一步。它可以把上面的没确定好的模块一一落实,同时也是给下面的步骤提供方便的方法,有明确的流程和目标能将问题的处理变得更加简单直白,且更加高效的去完成这个具有语音播报的测温仪的设计。(4)通过绘制各个部分的程序结构图来推出整个程序的一个流程框图。将主程序中所需要的各个部分全部用图来表达出来,同时给也要对图进行调整,尽量做到让大家能看到觉得简单易懂,并且每个步骤井井有条。(5)现在要为各个程序进行编程,提炼出核心逻辑,并且将程序结构图中所要到达的内容一一实现。(6)最后就是要检测程序的正确性,要经过各个模块的检测,同时更要注意主模块的逻辑顺序,直到无法发现错误且能正常运行才能停止。电路正常工作条件:小于上限温度,大于下限温度。不符合任一条件都会触发声光报警,来提醒使用者。该程序的主要功能就是进行温度的实时监测、在检测的同时并且将温度显示和读出,设定一个检测时间的间隔,将时间设定为一秒,每隔一秒就会自动检测温度并且将实时温度读出,同时也要与设定的报警温度比较。如果不在范围要进行声光报警功能。DS18B20温度流程图如下图所示。调用显示子程序调用显示子程序初始化1s到?初次上电发温度转换开始命令读出温度值温度计算处理显示数据刷新图4.4DS18B20温度流程图

4.2.1DS18B20初始化程序流程图DS18B20传感器在工作之前还是需要进行初始化设计,以便于更精准的测量温度。流程图如下:发复位命令发复位命令发跳过ROM命令初始化成功结束图4.5初始化程序流程图4.2.2读温度子程序流程图要读出温度需要先发送一个复位命令,然后发跳过ROM命令最后读取温度并将其移动到暂存器中来进行储存数据的方法。其程序流程图如下:发复位命令发复位命令发跳过ROM命令发读取温度命令移入温度暂存器结束图4.6温度子程序流程图

5调试与仿真5.1调试在系统的整体设计完成之后,我们需要进行对所系统设计进行硬件方面以及软件方面的调试,目的是为了通过一系列的调试来找出硬件和软件设计上的问题甚至缺陷。同时调试还可以用来检验所设计系统的稳定性能,看看是否能经得起调试操作的考验和使用时的稳定性与寿命。首先是对于单片机的硬件方面的调试,最开始就是要先自己画一个正确原理图,然后根据原理图的清单来进行元器件的购买,借用实验室与同学的工具和器材,进行逐一的焊接。在拿到电路板子的时候,想到老师讲到的焊接注意事项。在焊接的过程中要注意元器件的各个引脚对应焊接,也要注意元器件焊接时的引脚的正反面。对着电路图一点一点焊接完成,如果一旦焊反元器件可能会导致电路不可使用甚至烧坏元器件。我们在焊接芯片的时候要注意底座的焊接,在焊接底座的过程中,也要注意底座的正反,保持和芯片引脚的一致,在插入芯片的时候,也还是要注意和底座的引脚一致。当元器件全部焊完,确定没有焊接错误的地方之后,然后我们接通电源,如果发现电路不通的话,那么这个时候就要利用到万用表,旋钮打到蜂鸣档,对照原理图,用两根表笔依次检测每两个元器件之间的连线。用蜂鸣器是否发出响声来判断电路是否接通,如果一旦发现存在没有接通的电路,我们就要看两者之间是不是有没有虚焊或者锡断的情况,或者说是单片机的引脚的问题,还是其他,那就要进行进一步的测量。硬件调试的内容大概就是这些了。对于单片机的软件方面的调试。首先,就是关于C语言程序的编写。在我编写完成之后用keil5对程序进行检验,查看检测的结果,如果有错误的话会发现错误,然后找到错误的程序并且修改程序。如果修改完还是错误的话,就要通过查阅资料,和室友老师说明问题并一起解决问题。然后,我们在仿真软件中同样也要进行调试。要以STC89C52单片机为基础,一个电路一个电路的依次进行仿真,逐一排查。通过仿真过程中,各元器件,各芯片之间连线的一个实时状态,可以看出当前电路的通畅情况。通过与程序地比较来判断电路调试的结果与否。调试是一个必须且非常重要的步骤,同样也是一个考验自己的耐心和检查失误的重要环节。我们要在这个期间有勤劳吃苦的精神,要找出自己的错误,同时也要发现自己做的软硬件的问题,出现问题是很正常的一件事情,难的是我们到底能不能发现并且解决问题,在此期间我一直在去努力的发现和解决问题。我在这次本次毕业设计中的软硬件调试过程中,并没有分先后的顺序。软硬件的调试几乎同时进行,在硬件没到的时候我努力的修改调试自己的软件,在硬件到了以后就软硬件结合一起调试,所以并没有很明确的先后顺序。我这次保证系统调试的完整性,并且达到它的要求,也就是说这次的调试是成功的。5.2仿真因为最开始设置的温度上线为35℃,所以当温度为35.1℃时,其他条件正常,就会有声光报警,如下图所示。图5.1高于35℃报警程序温度下限为10℃,所以当温度为9.1℃时,其他条件正常,就会有声光报警,如下图所示。图5.2低于10℃报警当温度处于设定正常范围内时,电路正常工作且不声光报警。图5.3正常运行状态5.3测试结果及误差分析对所要求测量范围10℃到50℃内的温度做了10次测量测试结果如下表。表5.1测试结果实际温度(℃)10.515.622.826.731.935.538.240.143.450.0测试温度(℃)10.415.422.926.732.135.838.140.343.549.8数据分析:通过对上表的实验数据来看,在测量范围10℃到50℃时的误差在±0.2℃以内,并且误差次数比较少,可以满足一定的温度测量和报数。±0.2℃的误差可能是因为测量过程中有气温影响也有可能是温度计之间有一定误差,也有可能是测量时电路的不稳定性等等造成的结果。总的来说,本次毕业设计的内容和功能要求基本完美达到,当然小小的误差不可避免,但是这些细微的误差对于我们本次毕业设计来说是没有影响的,所以说本次设计的基于单片机的语音播报测温仪可以为一些需要测试监控实时温度的工具。

6总结本次毕业设计是基于单片机系统采用DS18B20温度传感器来进行温度监测的系统。同时也要完成对数据的处理并且显示出来。接入5v电源后数码管会显示出当前监测的温度。通过按键可以调整温度的上下限,一但温度高于上下限就会声光报警。声光报警采用扬声器和指示灯,功能分别是发出声音和指示灯亮。温度显示基本范围0.0℃—99.9℃,精度误差小于0.1℃,每隔1s会自动读出温度,并具有掉电保存功能。掉电保存共呢会让数据保留在单片机内部,可以用来储存我们设定的温度上下限。通过按键可以进入设置界面进行温度上下限的调整。同时采用WT558D语音芯片来进行发声。在这次的设计之中,也出现了一些技术上的问题以及知识上的盲区。比如说:在编写C语言的程序的时候因为自己不是很熟练也不是很精通,本次毕业设计有的要求以我的能力实现的并不完全。就在这个时候,我谦逊的向学习成绩好的学生和我的指导老师讨教,在他们的共同帮助下,最终完成了对程序的编写。本次毕业设计的最大目的是为了能实时检测温度,但在科技飞速发展的今天,温度的测量越来越精准,但是测温仪的功能还不够智能化,这是我们需要进步的地方,所以我就加入了语音播报和警报的功能,为了更加完善测温仪在各个方面的用途。也希望大家能够一起加油,创造更美好的未来。

参考文献1孟萧振;宁秋月;姜宁;裴若男;谢印庆编.基于DS18B20的智能温度控制系统.电子世界,2021.22许艳惠;上官博文编.人体健康数据采集系统设计,吉林工程技术师范学院学报,2020.123徐雷;崔子晨;刘俊俊;王浩然;李文娟编.基于DS18B20温度监测报警系统的设计与实现.,安庆师范大学学报(自然科学版),2020.24宗培源编.基于DS18B20的多路温度采集报警系统设计.化学工程与装备,2019.115郑三婷编.温度传感器DS18B20在温度计设计中的应用,电子制作,2019.66向敏等编.单片机原理与工程应用,电子工业出版社,2021.37王春武,刘春玲编.单片机应用技术项目化教程.清华大学出版社,2021.38吴文明著.单片机应用技术(C语言版),西安电子科技大学出版社,2021.39ChanghaoLiu;LiuChanghao;ZhuShunbing;WuJiameng;TaoLujia;WangWenhao著,Studyonthespontaneouscombustionriskandthermaldecompositioncharacteristicsofnitrocellulose,IOPConferenceSeries:EarthandEnvironmentalScience,2020.910SSarma;IFekas;KFilintoglou;JArvanitidis;DChristofilos;EHatzikraniotis;OLidor;YMastai;AUnal;PPatsalas著,LayerbylayerdepositionofalternatecarbonnanotubesandNifilmsforefficientmultilayerthinfilmtemperaturegauges,JournalofPhysicsD:AppliedPhysics,2019.211陈桂友等编.单片机基础与创新项目实战(新工科建设之路电子信息类规划教材),电子工业出版社,2021.312张群慧编.单片机原理及应用,西安电子科技大学出版社,2021.213丁向荣编.STC单片机应用技术——从设计、仿真到实践(第2版),电子工业出版社,2021.1

附录附录1整体电路原理图附录2实物图附录3源程序#include<reg52.h> //调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义 变量范围0~255#defineuintunsignedint //无符号整型宏定义 变量范围0~65535#include<intrins.h>//数码管段选定义012345 6 7 8 9 ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //断码//数码管位选定义ucharcodesmg_we[]={0xef,0xdf,0xbf,0x7f};uchardis_smg[4]={0}; ucharsmg_i=3;//显示数码管的个位数sbitdq=P2^4; //18b20IO口的定义sbitbeep=P2^3;//蜂鸣器IO口定义bitflag_lj_en; //按键连加使能bitflag_lj_3_en; //按键连3次连加后使能加的数就越大了ucharkey_time,flag_value;//用做连加的中间变量bitkey_500ms;uinttemperature;//bitflag_300ms;ucharmenu_1;//菜单设计的变量uintt_high=350,t_low=100; //温度上下限报警值 /***********************语音模块控制IO口的定义************************/sbitVSDA=P2^7;sbitVCS=P2^6;sbitVSCL=P2^5;sbitVBUSY=P3^2;/***********************1ms延时函数*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/***********************小延时函数*****************************/voiddelay_uint(uintq){ while(q--);}/***********************语音子程序************************/voidSend_threelines(unsignedcharaddr){unsignedchari; VCS=0;for(i=0;i<8;i++) { VSCL=1; if(addr&0x01==0x01) { VSDA=1; } else VSDA=0; addr<<=1; VSCL=0; } VCS=1; while(VBUSY==0); //忙等待}/***********************数码显示函数*****************************/voiddisplay(){ staticuchari; i++; if(i>=smg_i) i=0; P1=0xff; //消隐 P3=smg_we[i]; //位选 P1=dis_smg[i]; //段选 }/***********************18b20初始化函数*****************************/voidinit_18b20(){ bitq; dq=1; //把总线拿高 delay_uint(1); dq=0; //给复位脉冲 delay_uint(80); dq=1; //把总线拿高等待 delay_uint(10); q=dq; //读取18b20初始化信号 delay_uint(20); dq=1; //把总线拿高释放总线}/*************写18b20内的数据***************/voidwrite_18b20(uchardat){ uchari; for(i=0;i<8;i++) { //写数据是低位开始 dq=0; //把总线拿低写时间隙开始 dq=dat&0x01;//向18b20总线写数据了 delay_uint(5); dq=1; //释放总线 dat>>=1; } }/*************读取18b20内的数据***************/ucharread_18b20(){ uchari,value; for(i=0;i<8;i++) { dq=0; //把总线拿低读时间隙开始 value>>=1; //读数据是低位开始 dq=1; //释放总线 if(dq==1) //开始读写数据 value|=0x80; delay_uint(5); } returnvalue; //返回数据}/*************读取温度的值读出来的是小数***************/uintread_temp(){ uintvalue; ucharlow; //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序 init_18b20(); //初始化18b20 write_18b20(0xcc); //跳过64位ROM write_18b20(0x44); //启动一次温度转换命令 delay_uint(50); //500us init_18b20(); //初始化18b20 write_18b20(0xcc); //跳过64位ROM write_18b20(0xbe); //发出读取暂存器命令 EA=0; low=read_18b20(); //读温度低字节 value=read_18b20();//读温度高字节 EA=1; value<<=8; //把温度的高位左移8位 value|=low; //把读出的温度低位放到value的低八位中 value*=0.625; //转换到温度值小数 returnvalue; //返回读出的温度带小数}/*************定时器0初始化程序***************/voidtime_init() { EA=1; //开总中断 TMOD=0X01; //定时器0、定时器1工作方式1 ET0=1; //开定时器0中断 TR0=1; //允许定时器0定时}/********************独立按键程序*****************/ucharkey_can; //按键值voidkey() //独立按键程序{ staticucharkey_new; key_can=20;//按键值还原 P2|=0x07; if(key_500ms==1) //连加 { key_500ms=0; key_new=1; } if((P2&0x07)!=0x07) //按键按下 { delay_1ms(1); //按键消抖动 if(((P2&0x07)!=0x07)&&(key_new==1)) { //确认是按键按下 key_new=0; switch(P2&0x07) { case0x06:key_can=3;break; //得到k2键值 case0x05:key_can=2;break; //得到k3键值 case0x03:key_can=1;break; //得到k4键值 } flag_lj_en=1; //连加使能 } } else { if(key_new==0) { key_new=1; flag_lj_en=0; //关闭连加使能 flag_lj_3_en=0; //关闭3秒后使能 flag_value=0; //清零 key_time=0; } } }/****************按键处理数码管显示函数***************/voidkey_with(){ if(key_can==1) //设置键 { menu_1++; if(menu_1>=3) { menu_1=0; smg_i=3; //数码管显示3位 } } if(menu_1==1) //设置高温报警 { smg_i=4; //数码管显示4位 if(key_can==2) { if(flag_lj_3_en==0) t_high++; //按键按下未松开自动加三次 else t_high+=10; //按键按下未松开自动加三次之后每次自动加10 if(t_high>990) t_high=990; } if(key_can==3) { if(flag_lj_3_en==0) t_high--; //按键按下未松开自动减三次 else t_high-=10; //按键按下未松开自动减三次之后每次自动减10 if(t_high<=t_low) t_high=t_low+1; } dis_smg[0]=smg_du[t_high%10]; //取小数显示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取个位显示 dis_smg[2]=smg_du[t_high/100%10]; //取十位显示 dis_smg[3]=0x89; //H } if(menu_1==2) //设置低温报警 { smg_i=4; //数码管显示4位 if(key_can==2) { if(flag_lj_3_en==0) t_low++; //按键按下未松开自动加三次 else t_low+=10; //按键按下未松开自动加三次之后

温馨提示

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

评论

0/150

提交评论