版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE41PAGE语音报警系统的研究与设计摘要在21世纪20年代的今天,人们的生活水平已经提高到了一定的层次,电子产品层出不穷,城市中的楼房也越建越高,但随之而来的问题就是居民用火用电频率升高,带来的火灾安全隐患也越来越大。火灾发生时,其会产生大量对我们身体有害的烟雾,并且火苗温度极高,这种情况下火灾对我们的生命与财产都是致命的,为了能够更好地将火灾的种子扼杀在摇篮之中,我们心中必须要有防范于未然,未雨绸缪的概念,只有这样才能设计和更好的完善火灾语音报警系统,在火灾初始阶段将其消灭,这样不仅仅可以降低了我们的财产损失,更重要的是保护了我们的人身安全。所以设计一款易于使用,具有快速报警功能,并且可以被广泛使用的价格低廉的智能火灾报警系统是当下社会不容拖延的需求。本课题主要进行基于单片机的语音报警系统的设计,主要的作用首先是可以检测环境内的烟雾浓度和室内温度,如果烟雾浓度或室内温度超过一定范围就会发出警报。之后本课题会将火灾报警单片机与传感器的技术相统一的结合了起来,其中单片机传感器是火灾语音报警传感器系统的主要技术核心,其他的传感器模块主要包括一个LCD的显示传感器模块、按键传感器模块、温度变化检测传感器模块、烟雾浓度检测传感器模块等。系统除了可以进行上述的功能外,还可以将检测的烟雾浓度,温度值显示在LCD液晶显示屏上。在语音报警系统设计开始时,只需要将检测火灾报警的室内温度及空气烟雾变化浓度的阈值都设置好,在这之后便不需要进行其他操作,系统便会自动监测,这里体现出了系统易于操作的优点。关键词:语音报警系统;单片机;传感器ABSTRACTToday,inthe2020s,people'slivingstandardhasbeenimprovedtoacertainlevel,electronicproductsemergeinendlessly,andbuildingsinthecityarebuilthigherandhigher.However,theconsequentproblemisthatthefrequencyofresidentsusingfireandelectricityincreases,whichbringsmoreandmorefiresafetyhazards.Whenthefirebrokeout,itwillproducealotofourbodyharmfulsmoke,andtheflametemperatureistoohighforthiskindofcircumstanceoffireisfataltoourlivesandproperty,inordertobeabletobetterthefirekilledinthebud,theseedsofourheartsmusthavepriorrestraint,theconceptofsaveforarainyday,onlyinthiswaycandesignandbetterimprovethevoicealarmsystem,fireintheinitialstageoffirewillbedestroyed,suchnotonlycanreduceourpropertylosses,themoreimportantistoprotectourpersonalsafety.Thissubjectmainlycarriesonthedesignofthevoicealarmsystembasedonthesinglechipmicrocomputer.Themainfunctionistodetectthesmokeconcentrationandindoortemperatureintheenvironment.Ifthesmokeconcentrationorindoortemperatureexceedsacertainrange,analarmwillbeissued.Thistopicwillfirealarmafterthecombinationofsinglechipmicrocomputerandsensortechnologyunifies,themicrocontrollersensorfirevoicealarmsensorsystemisthemaincoretechnology,othersensormodulemainlyincludesaLCDdisplaymodule,keysmodule,temperaturesensorchangedetectionsensormodule,theconcentrationofthesmokedetectionsensormoduleandfirealarmtemperatureindicatingmodule..Atthebeginningofthedesignofthevoicealarmsystem,itisonlynecessarytosettheindoortemperatureandthethresholdofthechangeconcentrationofairsmokeforthedetectionoffirealarm.Afterthat,nootheroperationisneeded,andthesystemwillautomaticallymonitor.Thisshowstheadvantageofeasyoperationofthesystem.Keywords:Voicealarmsystem;MCU;Transducer目录摘要 IABSTRACT II目录 IV第1章绪论 11.1课题背景及研究的意义 11.2语音报警系统的研究现状 21.3本文完成的主要工作 3第2章语音报警系统总体方案设计 32.1火灾产生的原理与过程 42.2火灾探测器的原理 52.3系统设计要求 72.3.1硬件设计要求 72.3.2软件设计要求 72.4硬件总体构架 82.5软件总体构架 9第三章语音报警系统硬件设计 113.1系统核心芯片选择 113.1.1单片机的选型 113.1.2DS18B20温度传感器简介 143.1.3MQ-2烟雾传感器简介 153.1.4A/D转换芯片简介 163.1.5LCD1602显示屏简介 173.2系统硬件电路设计 193.2.1单片机外围接口电路 193.2.2测温电路 203.2.3烟雾检测电路 213.2.4按键电路 213.2.5LCD显示电路 223.2.6报警指示电路 23第四章语音报警系统软件设计 254.1软件开发环境 254.2语音报警系统程序设计 254.2.1数据采集子程序 264.2.2数据显示子程序 274.2.3火灾报警子程序 28结论 29参考文献 30致谢 32附录参考程序 33第1章绪论1.1课题背景及研究的意义1.1.1课题背景随着科技与经济的快速发展,半导体,微电子,光电,计算机和信息技术等当下的热点科技也随之发展前进,而以上述技术为基础的火灾语音报警系统更是已经发展了多年之久。火灾语音报警系统是把市场的需求定为风向标的,并且结合当下的新型高新技术,在不改变基础的以探测火灾、提高系统可靠性、增加实时灵敏度和扩大监测范围为根本目的的前提下,来进行研发设计的,并且也需要将基础理论和现实情况不断进行融合,以便更好的发展。为了能够更加快速的检测火灾发生,更好的保护人们的生命与财产,语音报警系统不仅需要大大提高可靠性,并且也需要很大程度上减少误报率[1]。早在1840年左右,美国便已经研发出了火灾报警装置,从这时起,火灾报警系统便开始受到了人们的关注。在1890年,英国就成功研制出了感温式火灾探测器,这是划时代的一步[2]。在这之后,各种各样的新型技术接踵而来,随着将这些新型技术一步一步应用到火灾报警系统之后,系统的性能获得很大的提升,其内部的功能也渐渐完善了起来。火灾语音报警系统作为火灾报警系统的升级版,对其进行研究更是至关重要的[2]。在科学技术不断进步和经济快速增长的同时,人们对生活环境的安全的关注也越来越多,这样便导致了安防类产品在人们生活中的利用越来越广泛,而语音报警系统作为新型的安防产品,其性价比很高,且能很好的保障我们的安全。语音报警系统最主要的便是应用在个人住宅,商业建筑和厂房等有人员存在或财产较为贵重且易发生火灾的区域。以商业建筑为例,由于其人员结构及货物堆放密集,易燃因素极其复杂等原因,很容易引发火灾。近年来,全国每年发生的火灾数量数不胜数,并且发生数量的趋势是上升的,其中不乏有一些让人不寒而栗的大型火灾,例如广东汕头华南宾馆特大火灾、广州市在建中的富力盈泰广场火灾、福建省长乐市拉丁网吧火灾等,这些火灾的规模都比较大,并且相当一部分都造成了人员伤亡和巨额财产损失[3]。从以上的具体事实可以看出,在经济快速发展,但火灾隐患处处存在的今天,火灾造成的影响已经呈几何倍数增加,如果火灾发生在人员密集的大型商场等公共场所内,会有大量的人员伤亡,造成财产损失更是难以想象,后果是不能让人接受的。所以尽早地认识到监测火灾隐患的重要性是极为重要的。它不仅仅可以让人们及早逃生,也可以让消防方面及早做出反应,尽力弥补财产损失。因此,火灾语音报警系统的重要作用不言而喻,其发展空间也是极为广阔的,对其的研究更是有重要意义。第一,在如今的社会,城市化建设加快,一座座原地拔起的高楼越来越多,但是火灾发生的隐患也越来越大。而且火灾一旦发生,在高楼人员密集的情况下,人是难以逃生的,这样火灾便会造成极大生命财产危害[7]。采用成本很低的火灾语音报警系统不仅仅可以保护生命和财产安全,也降低了购买维护的费用。第二,智能语音火灾报警器对烟雾和温度变化敏感,它可以察觉人们不能快速感受到的状况变化,及时通知周围人,这样可以大大的减少生命财产损失。在火灾刚刚发生是,火苗对物体进行燃烧,产生无色无味的一氧化碳,这就会导致人们会在没有察觉的情况下便一氧化碳中毒,四肢无力从而无法逃生,火灾自动报警系统的优点便是可以灵敏的监测到一氧化碳气体浓度的变化,如超过极限值就会进行报警,人们便会主动作出反应,快速逃生。第三,火灾语音自动报警系统虽然会及时做出报警,但系统也会出现误报的情况。这种漏洞的危害也是很大的,如果发生误报,将会造成人员恐慌,甚至发生踩踏事件,误报则会使火灾的危害范围大大提升。之所以会出现这样的漏洞,一是因为设计还不是完美的,二是因为环境中不利因素如气流、灰尘,水蒸气,电磁场、静电等对系统的影响很大,所以会出现这种误报漏报的现象[4]。因此,将系统的误码率和漏码率降低是至关重要的。1.2语音报警系统的研究现状近些年来,采用无线通信方式的火灾语音报警系统快速兴起,这种系统是把无线电通信技术引用进来,即把有线通信方式替换掉,采用更加实用性的无线电通信技术,这种技术可以将大多的电设备通过无线连接方式进行信息传输,可以使系统适应很多的场合[5]。无线火灾自动报警系统起初仅用于如博物馆等不宜布线特殊场合,但其造价较高。随着时代的进步,科技也逐渐高端,而元器件的造价也逐渐下降,这就使得无线电通信方式的火灾报警系统在性能和价格上都具有很强的竞争力,在市场上的销售能力也大幅度上升。相反的,我国在火灾报警系统方面进行的研究时间是较晚的,研制且生产相关产品是在20世纪70年代才开始进行的。随着我国经济的不断进步,高层建筑甚至超高层建筑如同雨后春笋,接连不断地出现在人们的现实生活当中,这便导致当火灾发生时,人员不宜逃生,死亡率会大幅度上升,于是火灾语音报警系统的需求量便迅速增加,需求量的增加也促进着对火灾语音报警系统的技术创新[10]。近些年来,我国火灾语音报警系统的研发、生产和应用等方面不断进步,并不断地吸引了许多人力、物力、财力和科技的投入,取得了令人称赞的成就[6]。1.3本文完成的主要工作本系统主要采用的传感器和芯片包括烟雾传感器、温度传感器、AT89S51单片机以及LCD1602显示屏,本系统需要实现的功能为语音报警功能、气体浓度显示功能、报警阈值设置功能以及与上位机串口通信的功能等,在实现功能的基础上,还要具有造价便宜,使用方便,误报率低等不可缺少的优势。本系统选用AT89S51单片机作为核心芯片主要完成的工作如下:(1)首先对火灾报警系统进行设计;(2)完成各个电路的内部芯片选择以及将电路与单片机进行连接;(3)了解编程软件,通过文献和书籍学习编程语言,编写程序;(4)完成采集模块,显示模块,报警模块等与单片机的通信任务。进行系统模拟,观测电路连接是否正确。
第2章语音报警系统总体方案设计2.1火灾产生的原理与过程火灾是当今最常见的一种自然或人为灾害,它在产生之后便不受人为的控制,自由燃烧,如果不能及时发现,那么便会对周围的所有事物产生危害。这些火灾的产生需要的具有三个基本的要素,分别为可燃物、助燃物和点火源。可燃物可以以三态的可燃物形式存在,助燃物一般在大多数情况下都认为是存在于空气中的氧气。根据可燃气体与其他空气的混合燃烧方式的不同,我们大致可以把其燃烧的方式主要分为以下两类,第一类指的是预混燃烧;第二类是扩散燃烧,先是进行预混燃烧在之后产生扩散燃烧,这种则称之为扩散混合燃烧。由于可燃液体和其他固体都是两种处于凝聚态的物质,它们与空气均匀混合是很困难的,因此它们混合燃烧的基本方式和过程都指的是从自身之外的空气获取一定的能量,液体或其他固体就会蒸发成可燃蒸汽或分解出可燃气体的分子团、灰烬和未经空气燃烧的其他物质形成颗粒,这些燃烧物质往往可以在周围的空气中继续停留,形成的可溶性物质为我们通常所熟知的液体和气溶胶[7]。但是在分子小的气溶胶燃烧产生的热量同时,分子较大(直径为)的可溶性液体或者是固体的微粒,便使我们可以将其称为烟雾。可燃气体与周围的空气在进行预混燃烧前已经进行了混合,经过强大压力和火源的作用便有可能会在空气中发生预混扩散燃烧。若预混燃烧在火灾发生后,燃烧产生的热量使得液体或固体的微粒表面继续地释放出可燃性的气体,那便可能会在空气中形成突发性的扩散燃烧。同时,以上两种可溶性的燃烧物质也会在空气中散发出大量的热。这些产生的热量往往会将周围的气体作为可燃物继续点燃,使得火势逐渐地向周围的可燃物蔓延,随着其火势的越来越大,最后便会发展成为了人们口中的可燃性火灾。在看到火灾的发生时,可以通过对其周围环境的气溶胶,烟雾浓度进行测定,来帮助确定周围环境是否可能存在类似的火灾。另外,根据各类火灾事件发生时可能产生的各种物理现象,又我们可以将火灾发生时区分为慢速阴燃、明火和快速发展可燃性的火焰等。慢速阴燃指的就是缓慢地进行的一种热解反应和氧化反应,它的条件可以自行地维持很长的时间,并在合适的条件情况下在空气中进行快速传播,转换为可燃性的明火,如果这种条件突然变的不利于它的条件继续维持,那么它就可能会自行地熄灭。经过大量的科学研究,我们已经可以清楚地看出诱发阴燃性火灾的重要物理原因之一便是不易被生活中的人们所察觉得到的快速阴燃。明火则是指阴燃性火灾发生时巨大的热量使得液体可燃物或者其他固体可燃物的表面部分释放出很多可燃性的气体,并由此产生剧烈的燃烧。快速地发展阴燃性火焰则指的是阴燃性火灾发生时扩散的速度特别快,这种发展火焰类型的阴燃性火灾一般是因为空气中混有大量可燃性的气体[8]。总而言之,普通的可燃物在火焰中燃烧时的表现主要为:首先是燃烧产生大量可燃性的气体,然后是产生大量的烟雾,想要在火焰中实现全部的燃烧,需要助燃物中的氧气非常充足,这样才能有产生大量火焰的时间和条件,火焰燃烧时发出大量的可见光和不可见光,并在火焰中散发出大量的热,同时火焰燃烧周围的温度也会明显升高。在燃烧气体起火的过程中,所需要占用的持续时间比较长的两个阶段是燃烧气体起始阶段和阴燃阶段,此时虽然燃烧环境的温度不高,但燃烧气体会在火焰中产生大量的烟雾,探测器从此两个阶段开始对产生烟雾的范围进行了探测,如果这个范围达到了烟雾的界限,就是可以快速的进行火灾报警,人为的进行火灾扑灭,可以有效的减少和控制其损失。火焰气体在燃烧后其烟雾的范围会迅速蔓延到其他的区域,这时燃烧气体产生大量的热会从而使得燃烧环境的温度也会有着明显的升高,这时探测器可以通过温度传感器对其进行温度探测,如果传感器能及时的探测,虽然此时火灾已经发生,但仍然是可以尽可能小的程度减少其损失和伤亡。2.2火灾探测器的原理在发生火灾的过程中,烟雾、高温和火光这些物理现象是存在的,探测器对这些物理现象很敏感。当烟雾、高温、火光发生变化时,火灾探测器就会不再是平时的正常状态[9],其内部的电流、电压或机械部分会发生变化或移动,再通过放大电路、传输电路等芯片做出对应的响应,发出警报声,提醒人们发生火灾尽快报警和逃离。火灾探测器主要可分为三大类:感烟探测器,感温探测器和光辐射探测器。具体原理及功能如表2-1所示表2-1火灾探测器的种类及原理火灾探测器种类具体原理和功能感烟探测器一种名为离子感烟探测器,在平时的环境下,电流、电压都是稳定的。但是当烟雾渗入到外电离室时,带电粒子的正常运动就会被干扰,此时电流、电压就有所改变,于是就发出了报警信号。一种叫光电感应探测器,如果有烟雾阻隔到光,到达光敏元件上的光就显著减弱,于是,光敏元件就把光强的变化变成电的变化,通过放大电路向人们报警。一种叫管道抽吸式感烟探测器,他的工作原理与光电感应探测器中另一种散射型相似,通过烟雾的反射或散射产生光敏电流,主要用在船舶上。近年来还出现了激光感烟探测器,它也是利用光电感应原理,不同的是光源改用激光束。感温探测器一种是运用金属热胀冷缩的特性。正常的情况下,探测器的电路断开,当温度升到一定值时,由于金属膨胀、延伸,导体接通,于是发出了信号。一种是利用某些金属易熔的特性,在探测器里固定一块低熔点合金,当温度升到它的熔点(70~900C)时,金属熔化,借助弹簧的作用力,使触头相碰,电路接通,发出信号。光辐射探测器一种是红外光辐射探测器。物质在燃烧时,由化学反应产生闪烁的红外光辐射使硫化铅红外光敏元件感应,转变成电信号,经放大后,就能向人们报警。一种是紫外光辐射探测器,利用有机化合物燃烧时,火光中的紫外光,使紫外光敏管的电极激发出离子,通过继电器等,就能打开开关电路报警。火灾报警器是我们现实生活中最重要的安全设备之一,在所有人员密集且有贵重物品的场合,是必须要存在的物品,有了它的存在,才能更好的保证我们的安全,同时它也可以与其他设备相连,如自动报警系统,当监测到有火灾发生时,它会通知自动报警系统进行报警,这样可以更好更快的扑灭火灾。2.3系统设计要求2.3.1硬件设计要求在硬件要求上主要从以下几个方面来考虑:设备的选型在设备选择方面,其可靠性与实用性为首要关注目标,在此基础上进行选择较为新型且价格低廉的设备。(2)设备的正确配置为了使设备可以最快最好的的发挥它们的作用,应根据所使用设备的实时环境对其进行正确配置,使设备可以最快的检测出火灾的发生,保护人和财产的安全。(3)系统的供电为了能保证系统的可靠性,系统的供电极为重要,必选选用合理经济的手段对其进行供电,且不会出现断电的可能性。(4)系统的接地为了提高电子设备电磁兼容性,需要将设备良好的接地,只有正确的接地才能抑制干扰的影响,而错误的接地可能会起到相反的效果,使系统的可靠性变差。2.3.2软件设计要求对火灾报警系统软件的要求如表2-2所示。表2-2对火灾报警系统软件的要求要求性质性质解释实时性由于火灾随时随地都可能发生,所以火灾报警系统对实时性的要求异常的高,这便对对程序执行的速度要求很高,介于以上原因,软件的编写将会采用C语言编写[10]。灵活性和通用性为了使子程序节省大量的内存和具有较高的环境适应能力,在设计和编写程序的时候,将整个子程序的软件操作系统和子程序划分为若干个应用软件的功能模块,然后针对每一个软件功能模块进行编写相应的子程序。以后如果子程序需要重新添加子程序的功能或需要修改子程序的现有软件功能,只需要在程序中添加或重新修改若干个子程序的功能即可。2.4硬件总体构架本文中最小系统的核心电路设计的主体内容之一便是将各种芯片与电路进行了连接,其中AT89S51单片机控制器作为系统的核心电路控制器,其他电路主要由测温控制器电路、按键控制器电路、烟雾检测控制器电路、报警和指示控制器电路、LCD显示电路等部分组成。最小系统的电路给单片机正常的工作和运行提供必要的条件,测温控制器电路主要用于对当前检测环境的温度做出实时采集,以便对当前检测温度进行实时的监测,按键电路主要用于显示和设定当前检测温度和烟雾浓度的测温和报警指示阈值,烟雾检测控制器电路主要用于实时采集和设定烟雾转换检测环境的温度和烟雾检测浓度信号,报警指示电路主要用于对检测值温度超过上限时的烟雾浓度报警和提示,LCD1602显示控制器电路主要用于实时显示当前单片机检测的环境温度和检测烟雾的浓度值以及显示和设定的烟雾浓度报警指示阈值[11]。系统的工作原理主要是:当系统启动时,系统工作人员会通过相应的数字温度传感器和相应的烟雾气体温度传感器对单片机周围环境的相应烟雾温度以及其相应烟雾气体的浓度等数据进行实时的采集和监测,当相应的温度或气体浓度达到一定的界限值,系统便自动会对单片机做出自动响应。因为单片机对烟雾的浓度传感器与温度传感器之间所采集的烟雾温度信号转换模式为数字模拟信号,为了更好的将模拟数据从传感器传送出来到整个单片机中进行信号处理,需要使用A/D转换电路对其进行了数字的转换,最后单片机采集得到的烟雾温度数值信号会通过LCD1602显示器上的屏幕进行了显示,按键控制电路是主要用于为单片机设定周围环境温度及相应烟雾浓度的阈值的。并且系统启动后必须尽量保证最小的时钟系统正常,这样才能更好的使得单片机正常的工作,晶振控制电路可以为单片机工作提供时钟系统的周期,对系统进行重启,电源晶振控制电路为整个单片机系统工作提供了稳定的工作电压。复位电路晶振电路复位电路晶振电路LCD1602显示器测温电路烟雾检测电路报警指示电路AT89S51单片机LCD1602显示器测温电路烟雾检测电路报警指示电路AT89S51单片机电源电路按键电路电源电路按键电路图2-1系统初步框架图2.5软件总体构架本系统的设计方法采用了模块化程序的方式,目的是便于系统维护和扩大使用的功能范围,系统各个模块的具体功能都是通过程序调用从而来实现的,而主函数的功能就是对程序设计的变量及模块进行初始化操作并调用具有各个功能的子模块。本系统主要包括的程序为:火灾判断子程序、数据采集子程序与报警子程序等,系统的程序流程图如图2-2所示。图2-2程序流程图主程序的进行流程主要是:首先在系统开启之后首先对各个组成部分如包括单片机接口在内的各个端口的输入和输出都进行了设置,并且对外围的驱动控制电路和外围的数据存储通信电路等重要的电路都进行了初始化的操作,之后主程序还要对整个芯片里面的每一个程序都进行了初始化,在初始化的每一个步骤都基本实行了完毕后,接下来便要对主程序进行了数据采集的工作,数据存储通信的工作和查询数据判断处理工作。第三章语音报警系统硬件设计3.1系统核心芯片选择3.1.1单片机的选型本系统处理信号的核心部分便是单片机,并且由于单片机需要具有发出报警信号等功能,因此所选用单片机的特点需要与火灾报警等功能进行匹配,这样才能有较高的工作效率,并且让系统的可靠性相对较好。在CPU的选择方面,不仅仅要考虑系统性价比和系统运行速率,同时也要对电路设计的复杂性进行考虑,因为传感器的输出信号类型为电压信号,所以为了达到降低电路的复杂程度的目的,选择的单片机应该内部带有A/D转换芯片。鉴于以上的要求,最后决定选用AT89S51单片机。AT89S51单片机具有的特点包含以下部分:具有40个引脚,4kBytesFlash片内的程序数据存储器,128bytes的随机存取器和外部数据程序存储器(RAM),32个外部双向数据输入/输出(I/O)口,5个外部嵌入中断优先级2层的中断嵌入配套中断,2个16位的可编程定时计数器,2个全双工串行通信口,看门狗(WDT)控制电路,片内时钟振荡器。在掉电模式下通过冻结时钟振荡器而自动保存所有关于RAM的外中断数据,停止芯片其它的功能工作直至外中断系统激活或硬件自动复位[12]。图3-1单片机实体图片各个引脚的功能将在以下部分进行阐述:电源引脚VCC和GND:其引脚及功能如表3-1所示表3-1电源引脚及功能电源引脚引脚功能VCC(40脚)供电电压,接+5V电源正端GND(20脚)接地外接晶振引脚XTAL1和XTAL2:表3-2外接晶振引脚XTAL1和XTAL2引脚名称功能及连接XTAL1
(19脚)接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。XTAL2
(18脚)接外部晶体的另端,在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。(3)控制信号或与其它电源复用引脚:控制信号或与其它电源复用引脚有RST、ALE/PROG、PSEN和EA/VPP等4种形式。表3-3复用引脚引脚名称引脚的功能及连接RST(9脚)RST即为RESET,所以该引脚为单片机的上电复位。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。ALE/PROG(30脚)当访问外部程序存储器或数据存储器时,地址锁存使(ALE)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的l/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。PSEN(29脚)片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。EA/VPP(31脚)当EA保持低电平时,则在此期间访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意:如果加密位LB1被编程,复位时内部会锁存EA端状态。当EA端保持高电平时,在此期间访问内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。输入/输出(I/0)引脚P0口、P1口、P2口及P3口:表3-4输入输出引脚及其功能输入输出引脚引脚功能P0口(32脚~39脚)P0.0~P0.7统称为P0口。P0口为地址/数据分时复用口。P1口(1脚~8脚)P1.0~P1.7统称为P1口,可作为准双向I/0接口使用。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口(21脚~28脚)P2.0~P2.7统称为P2口,一般可作为准双向I/0接口。当接有外部程序存储器或扩展1/0接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。P3口(10脚~17脚)P3.0~P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/0接口,也可以将每一位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。其中P3口的第二功能见表3-5。表3-5P3口第二功能表端口引脚其他功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计数器0外部输入)P3.5T1(定时/计数器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)3.1.2DS18B20温度传感器简介DS18B2温度传感器是研发中比较常用的数字温度传感器,其输出的信号类型为数字信号,其特点主要为传感器体积小,抗环境干扰能力强,具有较高的精度。DS18B20数字温度传感器很方便接线,便于应用在各种不同的场合,并且为了适应环境,可以根据环境状态来主动改变其外观。DS18B20其温度转换时的延时时间由之前的2s减到了750ms。DS18B20内部有三个比较重要的数据部件:
一是
64位光刻只读存储器,二是温度灵敏元件,三是非易失性温度告警触发器TH和TL。DS18B20可以使用外部电源VCC,也可以使用内部的寄生电源。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻[13]。DS18B20电路原理图如图3-2所示。图3-2温度传感器引脚示意图DS18B20有如下技术特点:表3-6DS18B20技术特点技术特点特点解释接口方式独特它具有独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。具有测温范围测温范围-55℃~+125℃,固有测温误差1℃。支持多点组网支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。电源易适配工作电源为3.0~5.5V/DC(可以数据线寄生电源)。使用简单在使用中不需要任何外围元件。结果串行传输测量结果以9~12位数字量方式串行传送。3.1.3MQ-2烟雾传感器简介MQ-2型的烟雾气体传感器特别适合对苯、烷、酒精、氢气、烟雾等物理化学有害物质气体进行的探测,准确的来说就是MQ-2它是一个多气体的探测器,因此这种新型的烟雾气体传感器普遍广泛适用于可以监测各个家庭和工厂的烟雾气体泄漏的设备和装置中。MQ-2有着很广泛的探测和应用范围。并且由于它具有很高的探测灵敏度、很快的自动响应、极好的运行稳定性,它的使用寿命相对比较长,驱动的电路也比较简单。MQ-2型二氧化锡烟雾气敏传感器内部的半导体材料为N型二氧化锡半导体气敏原料,它为一种表面离子式的N型二氧化锡半导体。当二氧化锡烟雾气敏报警器内部处在200~300摄氏度的高温环境下时,二氧化锡便自然会在空气中吸附大量氧气,形成氧的负离子吸附,这样便可能会直接导致二氧化锡半导体晶粒中的电子密度的减少,最终的结果可能就是其内部的输出电阻值随之增加。所以当与二氧化锡烟雾传感器接触时,如果晶粒间离子交界处的势垒因接收到烟雾的电子密度而发生变化,就可能会直接引起其表面离子导电率的周期性变化。利用这一点就可以直接获得这种烟雾存在的模拟信息,烟雾的离子浓度越大,导电的功率越大,输出电阻越低,则烟雾输出的模拟信号就越大。MQ-2型烟雾传感器的特性如表3-5所示:表3-7MQ-2型烟雾传感器的特性烟雾传感器特性特性解释具有高灵敏度MQ-2型传感器对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感且具有良好的抗干扰性,可准确排除有刺激性非可燃性烟雾的干扰信息。具有良好的稳定性MQ-2型传感器具有良好的重复性和长期的稳定性。初始稳定,响应时间短,长时间工作性能好。需要注意的是:在使用之前必须加热一段时间,否则其输出的电阻和电压不准确。检测范围固定其检测可燃气体与烟雾的范围是100~10000ppm。(ppm为体积浓度)电压范围宽电路设计电压范围宽,24V以下均可,加热电压5±0.2V。这里需要对其特别注意的是,如果加热电压过高,那么其内部的信号线会自行熔化断裂,最终导致器件报废。3.1.4A/D转换芯片简介在单片机的控制系统中,大多数单片机并不能处理模拟量,只能对数字量进行识别处理,因此需要经过从模拟量到数字量的转换,即A/D转换,只有经过了模数转换,单片机才可以识别和处理传送给它的信号。A/D转换器的主要性能参数如表3-8所示:表3-8A/D转换器参数主要性能参数参数意义分辨率分辨率表示A/D转换器对输入信号的分辨能力。A/D转换器的分辨率以输出二进制数的位数表示。转换时间转换时间指A/D转换器从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间。不同类型的转换器转换速度相差甚远。转换误差转换误差:转换误差表示A/D转换器实际输出的数字量和理论上的输出数字量之间的差别,常用最低有效位的倍数表示。线性度线性度指实际转换器的转移函数与理想直线的最大偏移。目前A/D转换芯片的类型在市场中有很多的类型,它们在转换速度和精度、分辨率以及应用价值上都有各自的特点,在进行各个因素的考量之后,本系统决定决定采用ADC0832芯片。它是一种8位分辨率,双通道A/D转换芯片。它的优点为具有很小的体积,易于与其他部分适配,且性价比很高。芯片引脚图如图3-3所示。图3-3A/D转换芯片引脚芯片接口说明如表3-9所示:表3-9A/D转换芯片接口芯片接口接口作用CS片选使能,低电平芯片使能。CH0模拟输入通道0,或作为IN+/-使用。CH1模拟输入通道1,或作为IN+/-使用。GND芯片参考0电位(地)。DI数据信号输入,选择通道控制。DO数据信号输出,转换数据输出。CLK芯片时钟输入。VCC/REF电源输入及参考电压输入(复用)。3.1.5LCD1602显示屏简介液晶被动式显示器,缩写为LCD(LiquidCrystalDisplay),它的意思是一种被动式的液晶显示器,被动式液晶显示器即为液晶本身并不可以发光,而是经液晶处理后一种能够改变的光线通过方向的特性,而且可以达到传统的白底黑字或传统的黑底白字色彩显示的效果和目的。由于液晶被动式显示器消耗的能源很低,同时由于它还有较强的发光和抗干扰能力,因此它被广泛的应用在了仪器仪表和远程控制系统中。1602液晶同时也被广泛称为1602字符型点阵液晶,它其实是一种专门设计的用来显示英文字母、数字、符号等的嵌入式点阵型数字液晶模块。LCD1602是指显示的内容为16X2,即可以同时进行两行的显示,每行16个字符液晶模块。接口电路如下图所示。图3-4显示器引脚1602显示器的各个脚的功能如表3-10所示表3-101608显示器脚的功能脚脚的作用第1脚VSS为地电源。第2脚VDD接5V正电源。第3脚VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。第6脚E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7-14脚D0~D7为8位双向数据线。第15脚背光源正极。第16脚背光源负极。3.2系统硬件电路设计3.2.1单片机外围接口电路(1)晶振电路AT89S51中存在一个主要用于构成内部自激振荡器的高功率增益反相自激放大器,引脚XTAL1和引脚XTAL2分别看作是该自激放大器的一个输入端和一个输出端。这个自激放大器与一个可以作为反馈振荡器元件的片外陶瓷石英自激晶体或片外陶瓷自激谐振器一起用来构成自激振荡器。晶振电路参见图3-5。晶振电路对外接石英晶体所连的电容C1、C2虽然没有十分严格的电容容量要求,但如果使用石英晶体,更推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。单片机系统的复位方式有:手动按钮复位和上电复位,本设计采用的是上电复位,该复位电路的原理是在单片机的复位引脚RST上外接电阻和电容。当复位电平持续两个机器周期以上时复位有效。在此系统工作过程中若出现异常报警,则可以通过人为重启系统实现复位。复位电路如图3-5。图3-5晶振及复位电路3.2.2测温电路由于温度传感器的DS18B20具有单总线的接口,而我们日常使用的数字单片机则基本不具备此单总线接口,因此,我们需要将单片机与传感器通信的管脚模拟单总线进行通信的时序。此测温电路主要是将系统中数字温度传感器DS18B20的数据输出口连接到AT89S51的P28管脚上,通过此管脚并依据模拟单总线通信的时序与DS18B20进行数据通信。在这个测温系统的电路中还在数据口上加了一个10k的上拉电阻,这个上拉电阻的主要原理和作用之一就是为了保证系统的总线能在空闲的任何时候为高电平,防止总线受到外界信号的干扰。测温电路如图3-6所示。图3-6测温电路3.2.3烟雾检测电路根据电路在系统中的应用,在设计时,我主要使用了一个气敏型的MQ-2烟雾浓度传感器来直接进行气体烟雾浓度的检测和采集,MQ-2作为气敏型的烟雾传感器,其工作原理和特点就是:该传感器的阻值随着传感器补测气体的气体烟雾浓度的增大而有所减小,把这种传感器电阻的减小和变化再通过变换电路转换成传感器上所加电压的减小和变化,即可把烟雾浓度的变化转换成传感器电压的变化。而由于protuse仿真中没有MQ-2模型,因此在报警系统的仿真过程中可以考虑采用一个划线的变阻器接上一个直流电源来直接代替烟雾浓度传感器。由于烟雾传感器采集后的烟雾信号都是根据模拟量变化的,而单片机只能处理数字信号,因此单片机不能直接处理烟雾传感器采集的模拟信号,还需要使用一个A/D转换芯片或者设计一个数/模转换的电路才能正常处理所采集的烟雾量。因此在进行烟雾浓度检测电路的设计时,我采用了一个ADC0832芯片来进行模拟信号的转换。先将烟雾浓度传感器模拟信号的输出管脚接在了A/D转换芯片的通道0及的通道1上,再将A/D转换芯片的通信数据管脚分别接在AT89S51的P14、P15、P16和P17引脚上,通过这4个通信管脚就可以使单片机实现对应用环境中的烟雾浓度检测数据的转换及将数据送入单片机的功能。电路如图3-7所示。图3-7烟雾浓度电路3.2.4按键电路按键控制电路的目的是为了使应用人员能够预先设定环境中发生火灾时需要报警的参数,而简单的按键电路就能实现设定温度及空气中烟雾浓度的报警阈值,当温度检测值参数超过了按键电路设定的阈值后就表示系统会自动触发语音报警,该语音报警就可以帮助人们尽早的处理已经发生的火灾灾情。由于该系统中所需设定的参数不需太多,因此按键的个数一般也不需太多,使用4个独立按键进行切换即可,一个是用来控制系统进行模式的切换,一个是用来控制进行该模式的数据加,一个使用来控制进行该模式的数据减,还有一个确认按键。该确认按键是为了有效的防止外部产生的人为失误,只有在确认后重新设置的火灾报警阈值才有效。在系统设计中我采用的方法是独立的进行按键的连接,即将4个独立按键的一端共地,一端分别接在了单片机的一个I/O口上,当其中一个按键按下的时候单片机的管脚电平就可能会被拉低,因此只需要判断单片机对应的管脚是否为低电平信号输入即可。在进行电路设计时将单片机的按键K1、K2、K3、K4分别接在AT89S51的P3、P4、P5及P6引脚上。其中,K1是模式切换功能,按一下是设置温度阈值,按两下是设置烟雾浓度阈值;K2和K3是加减功能;K4是确认设置功能。具体电路如图3-8所示[14]。图3-8键盘电路3.2.5LCD显示电路液晶显示器LCD1602每次能同时显示2行,每一行只能显示16个字符。如果控制管脚想要在显示器第一行显示,则需要在其第一行的地址写入要显示的第一行数据,对应的第一行首个字符的地址应该是0x80,而由于显示器每行只能显示16个字符,因此第一行最后一个字符的地址应该是0x8f。在该系统的设计中一般使用AT89S51的P0口控制LCD的数据口,LCD上的D0-D7口对应AT89S51的P00-P07管脚,
RS管脚接在AT89S51的P21脚,
RW管脚接在AT89S51的P22脚,E口接在AT89S51的P23脚。液晶显示电路如图3-9所示,其中上拉排阻的主要作用是给信号线提供一个驱动电压,使数据传输更加稳定。图3-9LCD显示电路3.2.6报警指示电路报警指示电路在语音报警系统的设计中使用的蜂鸣器是一个有源的蜂鸣器,将其作为对报警系统进行指示的装置。由于单片机管脚输出的用于驱动蜂鸣器的电流驱动能力有限,需要进行电流的放大,因此一般在报警指示电路中会选择使用一个PNP三极管来进行电流的放大,然后用放大后的电流来驱动系统中的蜂鸣器。在该系统的电路设计中,三极管与AT89S51的P27引脚相连,当单片机输出低电平时,三极管导通,蜂鸣器响;单片机输出高电平时,三极管阻断,蜂鸣器不响。报警指示电路如图3-10所示。图3-10报警指示电路综上所述,语音报警系统的整体仿真电路图如图3-11所示。图3-11整体仿真电路图第四章语音报警系统软件设计4.1软件开发环境本系统将较为传统的汇编所抛弃,决定采用C语言对程序进行设计,这是因为C语言是由一个或几个函数组合在一起实现所要求的功能,它是一种结构化的编程语言,更容易实现模块化。其优点为具有很好的可读性,并且移植较为简单,与此同时它还具有和汇编语言一样的位操作功能的硬件详细控制指令。本软件系统的开发中采用的编程开发软件主要是由美国Keil
Software公司出品的一套Keil
C51编程开发软件,它采用的是一种能够完全兼容51系列处理器和单片机,并且采用C语言进行软件开发的系统。Keil
C51软件系统中包含了较为丰富的库函数和集成开发调试工具。4.2语音报警系统程序设计AT89S51单片机对烟雾浓度测量传感器中所检测出的空气中的烟雾量信号进行了A/D转换后将温度值与烟雾值送入单片机中并与其中所存储的报警阈值进行比较,判断是否需要输出报警信号,同时将检测值送入LCD液晶屏显示此时的实际值以及报警器的阈值信息。主处理程序还包括通过按键电路设置报警阈值等,使得语音报警系统的监控功能更加的完善,给普通用户的操作带来便利[15]。主函数流程图如图4-1所示。图4-1主函数流程图4.2.1数据采集子程序数据采集工作是语音报警系统设计过程中的重要环节。每次传感器采集到温度烟雾数据后,将温度烟雾数据直接存入单片机的数据寄存器,然后在AT89S51的火灾报警判断程序中,将每次采集的温度烟雾数据与单片机设定的温度烟雾阈值数据进行综合分析比较,来判断现场环境是否可能发生火灾。具体流程是:系统和程序初始化后,采集温度和烟雾模块传入的数据,此时需要驱动ADC0832芯片对烟雾信号进行A/D转换,单片机接受转换好的温度和烟雾数据,并存入寄存器。其中,DS18B20温度传感器部分需要实现的功能是,初始化、读字节、写字节与读取温度。初始化如果不成功则调用延时子程序后继续初始化,再进行温度转换,写入DS18B20。延时子程序执行后,读温度命令使写入并读入温度值数据,循环执行该程序直至实验结束。//DS18B20初始化
voidInit_DS18B20(void){unsignedcharx=0; DQ=1; delay_18B20(8); DQ=0; delay_18B20(80); DQ=1; delay_18B20(14); x=DQ; delay_18B20(20);}4.2.2数据显示子程序显示部分在该系统中的作用是能够直观反映出火灾现场的温度及烟雾参数,因此LCD1602部分需要实现初始化,单片机写入温度和烟雾数据,并分行显示阈值和实际值,其中A/D转换后的烟雾值要用百分数形式表示。//换算采集的烟雾浓度AD值,转换为百分制voidcovert_scope_data(uchartemp_data){ uchartemp=0; temp=(temp_data<<1)/5; if(temp_data>127)temp+=50; smoke[0]=temp/100; smoke[1]=temp%100/10; smoke[2]=temp%10; temp=temp/1.5; if(temp>=99)temp=100; LCD_Print(12,1,""); write_secondline(13,data_to_hex(temp)); real_smokescope=temp;}4.2.3火灾报警子程序系统对采集的温度和烟雾数据进行判断,即与系统最初设定的阈值相比较,若某一时刻测定的实际值大于阈值则系统通过单片机给报警模块一低电平,触发蜂鸣器报警;否则蜂鸣器不报警,系统继续进行数据的采集。//正常情况下进行比较报警if((mode==0)&&(first_read_tempe)) { if((real_smokescope>=set_smokescope)||(real_tempure>=set_tempure)) { BUZZ=0; //打开报警 } else { BUZZ=1; //关闭报警 } }结论在经过了多日的学习与设计后,终于完成了本课题的设计,火灾报警器是我们日常生产与生活安全的重要保障,它是避免火灾和爆炸事故发生的必要装置,它的发展具有广阔的空间,前景很好,本论文在对单片机进行的基础上,同时对温度传感电路,烟雾传感电路,晶振电路,键盘电路等进行了系统的研究,再将各个电路进行连接,最后使之可以达到预想的效果,即实现火灾预防,保护人身财产安全的目的。本系统主要采用AT89S51单片机作为系统核心芯片,在单片机其的周围进行其他辅助电路的连接。在硬件电路方面,首先采用DS18B20芯片作为温度传感电路的核心芯片,目的是更高效的对系统周围温度进行监测。接着采用MQ-2烟雾传感器作为烟雾传感电路的核心,其作用与DS18B20相似,只是对系统周围的气体浓度进行监测。在这之后又对A/D转换电路进行了设计,目的是为了使模拟信号转换成数字信号,使信号可以正确无误的出入单片机内。最后进行了显示屏的合适选取与按键电路,晶振电路的设计。本次课题设计的基于单片机的智能火灾语音报警系统性价比很高,操作简易,其功能也很齐全,非常适合安装在家庭,公司等场合,它不仅仅可以保护我们的财产安全,更能保护我们的人身安全。虽然它的优点有很多但是也同时存在着一些不足需要未来对其进行改进。
如受环境电压等因素的影响可能会造成误报警,这样也是会造成很大的人员恐慌和资源浪费。所以本系统并不是百分百完美的,它是需要未来继续进行改进的通过这次设计,我更加深入的理解和掌握了这方面的知识,对单片机等电路的认识也更加深入,它将我这四年学到的知识进行了很好的整合,让我对未来的目标有了更明确的方向。虽然在设计过程中,我也遇到了很多的困难,但是我都一一的克服了下来,这对未来的工作和学习都奠定了很好的基础。参考文献S.M.Lo,C.M.Zhao,,A.Coping.Asimulationmodelforstudyingtheimplementationofperformance-basedfiresafetydesignbuildings[J].AutomationsConstruction,2016,17(7):852~863.buildingreview[J].AutomationConstruction,2005,14(l):143~159.张向亮.(硕士学位论文.武汉理工大学,2010.Bradshaw.TheBuildingEnvironment:ActiveandPassiveControlsystems[M].John&Sons,2006..基于C8051F单片机的火灾智能报警控制系统的设计.大连海事大学,2017.[J].2:62~64.2009.孙健.基于ARM7的电气火灾自动报警控制器研制:(硕士学士论文).浙江大学,2007.雍静,李北海,杨岳.建筑智能化技术[M].北京:科学出版社,2008.[J].煤矿现代化,2007,(4):29~31.包航,基于单片机的智能火灾报警系统的设计[J].福建电脑,2017,(9):12-19.鲁西坤,基于单片机的智能火灾报警系统的设计[J].电子测试,2018,3(5):7-9.甘艳,基于单片机的火灾报警系统设计[J].通信电源技术,2018,35(5):117-121.刘磊,智能建筑火灾自动报警与消防联动系统设计研究[J].工程建设与设计,2019,9(23):258-259.焦金伟.单片机智能火灾报警器[J].科学技术创新,2020,(10):132-133.致谢四年的大学时光转瞬即逝,在这篇文章结束之时,我的内心有着万千感慨,回首过去的岁月,心里感到很充实。感谢四年的所有任课教师,正是你们敬业奉献的将知识授予给我。我才能慢慢的变得更优秀,在这里我要特别感谢我本次毕设的指导老师,谢红辉老师,在课题开始时,老师便与我进行了沟通,让我对文章的架构的有了一定的理解。并且在这之后老师对我的课题进度进行了监督,并且也进行了一定的指导。没有谢红辉老师的帮助,本篇论文就不能更好的完成。最后,也要感谢大学四年里默默支持我的父母和陪伴在我身边的朋友,正是有了他们,我才不会孤单。
附录参考程序#include<reg52.h>#include<stdio.h>#include<intrins.h>#include<absacc.h>#include<ctype.h>#include<math.h>#include<string.h>//#include"I2C.h"#include"lcd1602.h"#include"adc0832.h"sbitK1=P1^2;sbitK2=P1^3;sbitK3=P1^4;sbitK4=P1^5;sbitK5=P1^6;sbitK6=P1^7;sbitDQ=P2^7;sbitBUZZ=P2^6;uchartmpdisplay[8];//定义显示缓存数组bitread_flag=0; //定义读时钟标志位bitmode=0; //显示模式0正常1设定ucharsmoke[]="000";ucharset_position=0;ucharset_tempure=0;//设定温度ucharset_smokescope=0; //设定浓度intreal_tempure=0; //实际温度ucharreal_smokescope=0;//实际烟雾浓度ucharcursor_position=0;//光标位置uchartime_counter_50ms=0;ucharsmokescope=0;ucharfirst_read_tempe=0;//第一次读取温度数值unsignedchart[2],*pt; //用来存放温度值,测温程序就是通过这个数组与主函数通信的unsignedcharTempBuffer1[10]={0x2b,0x30,0x30,0x30,0x2e,0x30,0x30,0xdf,0x43,'\0'};//{0x2b,0x31,0x32,0x32,0x2e,0x30,0x30,0xdf,0x43,'\0'};//显示实时温度,上电时显示+122.00C/*unsignedcharTempBuffer0[16]={0x54,0x48,0x3a,0x2b,0x31,0x32,0x35,0x20, 0x54,0x4c,0x3a,0x2b,0x31,0x32,0x34,'\0'}; */ //显示温度上下限,上电时显示TH:+125TL:+124C unsignedcharcodedotcode[4]={0,25,50,75};/***因显示分辨率为0.25,但小数运算比较麻烦,故采用查表的方法*******再将表值分离出十位和个位后送到十分位和百分位********************/voidcovert1(void) //将温度转换为LCD显示的数据{unsignedcharx=0x00,y=0x00;t[0]=*pt;pt++;t[1]=*pt;if(t[1]>0x07)//判断正负温度{TempBuffer1[0]=0x2d; //0x2d为"-"的ASCII码 t[1]=~t[1]; /*下面几句把负数的补码*/ t[0]=~t[0]; /*换算成绝对值*********/ x=t[0]+1; /***********************/ t[0]=x; /***********************/ if(x>255)/**********************/ t[1]++; /*********************/}elseTempBuffer1[0]=0x2b; //0xfe为变"+"的ASCII码t[1]<<=4; //将高字节左移4位t[1]=t[1]&0x70; //取出高字节的3个有效数字位x=t[0]; //将t[0]暂存到X,因为取小数部分还要用到它x>>=4; //右移4位x=x&0x0f; //和前面两句就是取出t[0]的高四位 t[1]=t[1]|x; //将高低字节的有效值的整数部分拼成一个字节TempBuffer1[1]=t[1]/100+0x30; //+0x30为变0~9ASCII码if(TempBuffer1[1]==0x30)TempBuffer1[1]=0xfe;//百位数消隐TempBuffer1[2]=(t[1]%100)/10+0x30; //分离出十位TempBuffer1[3]=(t[1]%100)%10+0x30; //分离出个位t[0]=t[0]&0x0c; //取有效的两位小数t[0]>>=2; //左移两位,以便查表x=t[0]; y=dotcode[x]; //查表换算成实际的小数TempBuffer1[5]=y/10+0x30; //分离出十分位TempBuffer1[6]=y%10+0x30; //分离出百分位}//十进制转为十六,比如把10转为0x10,注意区分uchardata_to_hex(uchartemp_data){ return(temp_data/10*16+temp_data%10);}/*********************************************************************名称:Delay_1ms()*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无***********************************************************************/voidDelay_1ms(uinti)//1ms延时{ ucharx,j; for(j=0;j<i;j++) for(x=0;x<=148;x++); }//*********************************//按键扫描程序//mode:0,不支持连续按;1,支持连续按;//*********************************ucharKEY_Scan(ucharmode){ staticucharkey_up=1;//按键按松开标志 if(mode)key_up=1;//支持连按 if(key_up&&(K1==0||K2==0||K3==0||K4==0||K5==0||K6==0)) { Delay_1ms(5);//去抖动 key_up=0; if(K1==0)return1; elseif(K2==0)return2; elseif(K3==0)return3; elseif(K4==0)return4; elseif(K5==0)return5; }elseif(K1==1&&K2==1&&K3==1&&K4==1&&K5==1&&K6==1)key_up=1; return0;//无按键按下}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){ unsignedchari=0; unsignedchardat=0; for(i=8;i>0;i--) { DQ=0;//给脉冲信号 dat>>=1; DQ=1;//给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); } return(dat);}/*************ds18b20写一个字节****************/voidWriteOneChar(unsignedchardat){ unsignedchari=0; for(i=8;i>0;i--) { DQ=0; DQ=dat&0x01; delay_18B20(5); DQ=1; dat>>=1;}}/**************读取ds18b20当前温度************/unsignedchar*ReadTemperature(charTH,charTL,unsignedcharRS){ unsignedchartt[2]; Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x4E); ////写入"写暂存器"命令,修改TH和TL和分辩率配置寄存器 //先写TH,再写TL,最后写配置寄存器 WriteOneChar(TH); //写入想设定的温度报警上限 WriteOneChar(TL); //写入想设定的温度报警下限 WriteOneChar(RS); //写配置寄存器,格式为0R1R01,1111 //R1R0=00分辨率娄9位,R1R0=11分辨率为12位 delay_18B20(80);//thismessageisweryimportant Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x44); //启动温度转换 delay_18B20(80);//thismessageisweryimportant Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度 delay_18B20(80); tt[0]=ReadOneChar(); //读取温度值低位 tt[1]=ReadOneChar(); //读取温度值高位 return(tt);}voidTime0_init(){ TMOD|=0x01; //使用模式1,16位定时器 TH0=(65536-50000)/256; //定时器装入初始值10ms TL0=(65536-50000)%256; EA=1;//总中断 ET0=1;//定时器0初始化 TR0=1;}//************************************//定时器初始化//初始化为10MS定时器 //************************************voidTime1_init(){ TMOD|=0x10; //使用模式1,16位定时器 TH1=(65536-10000)/256; //定时器装入初始值10ms TL1=(65536-10000)%256; EA=1;//总中断 ET1=1;//定时器1初始化 TR1=1;}//换算采集的烟雾浓度AD值,转换为百分制voidcovert_scope_data(uchartemp_data){ uchartemp=0; temp=(temp_data<<1)/5; if(temp_data>127)temp+=50; smoke[0]=temp/100; smoke[1]=temp%100/10; smoke[2]=temp%10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年外科护理学二试题及答案
- 2025年护理权利试题及答案
- 2025年2024护理中级试题及答案
- (2025年)采购管理复习重点考点试题带答案
- 育婴员中级模拟考试题(含参考答案)
- 《一级建造师之一建民航机场工程实务》资格考试50题真题附参考答案
- 电子乐器相关法律法规与知识产权考核试卷(附答案)
- 病历书写考核试题(附答案)
- 综合解析人教版八年级物理《运动和力》综合练习试题
- 旅游业务回顾及前瞻
- 塞尔达玩家测试题及答案
- 2025-2030中国单反数码相机市场现状深度剖析及需求预测研究报告
- 施工质量检查制度
- 2025年粮油集团笔试试题及答案
- 个人成长目标设定与实现路径
- 化学发展史课件
- 尿路感染的护理常规
- 应急计划评审表
- 配电房岗位职责
- 2024-2025华为ICT大赛(实践赛)-网络赛道理论考试题库大全-上(单选题)
- 应急第一响应人理论考试试卷(含答案)
评论
0/150
提交评论