家庭智能报警器毕业设计_第1页
家庭智能报警器毕业设计_第2页
家庭智能报警器毕业设计_第3页
家庭智能报警器毕业设计_第4页
家庭智能报警器毕业设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

摘要在我们生活的四面到处潜伏着火灾隐患,为了防止火灾以及减少火灾导致的损失,我们必须要实时的对也许引起火灾的地方进行监控,将火灾消灭在萌芽状态,最大程度地减少社会财富的损失。火灾报警器可以更敏感的感觉到火灾隐患所在,及时给人们做出灾情报警。火灾报警器可以第一时间检测火灾隐患,防止火灾发生。本设计以单片机为关键结合传感器技术开发了一款简易的火灾声光报警器,实现对温度、烟雾的实时检测和监控并在危险状况下报警。本设计电路中所使用的DS18B20[1]数字温度传感器可将温度信号直接转换成数字信号送给单片机,同步可设置温度报警值,实现声光报警;MQ-5型半导体可燃气体敏感元件烟雾传感器[2]实现烟雾的实时检测,具有敏捷度高、响应快、抗干扰能力强等长处,并且价格低廉,使用寿命长。并且该设计电路中采用七段共阳数码管显示模块可以直观的显示实时温度和气体浓度。选用最常用的AT89C51[3]单片机对所采集的数据进行处理。该火灾自动报警系统对温度、烟雾实现双重检测,具有构造简朴、性能稳定、使用以便、价格低廉,具有一定的实用价值。该报警器在没有火灾隐患的时候,显示正常的室温和目前烟雾浓度等级;当温度到达报警预设值时,报警器显示报警温度和目前浓度等级并进行声光报警;当室内烟雾浓等级度到达报警预设等级时,报警器显示目前温度和报警烟雾等级并进行声光报警;当温度、烟雾浓度都到达报警预设值时,报警器显示报警温度和报警烟雾等级。这样的好处在于当报警器报警时人们可通过数码管看出是什么原因引起的报警,这样有助于采用补救或者逃生方案。关键词:单片机火灾报警传感器温度烟雾目录绪论 11.系统方案设计 22.硬件电路设计 32.1电路整体原理图 32.2单片机控制电路 32.2.1时钟电路的设计 42.2.2复位电路的设计 52.2显示电路的设计 52.3传感器信号采集电路设计 62.3.1温度采集电路设计 6方案1.AD590应用电路 6方案2.DS18B20应用电路 72.3.2烟雾信号采集及前置放大电路 72.4模数转换电路设计 8方案1.AD7705应用电路 9方案2.ADC0809应用电路 92.5按键、声光报警电路设计 103.软件设计 113.1系统主程序设计及流程图 113.2按键模块设计 123.3温度传感器模块设计 124.仿真与调试 144.1调试 144.2仿真 14结束语 17道谢 18参照文献 19附录 20绪论我国火灾报警系统起步较发达国家晚几十年,从上世纪70年代我国才开始研制生产火灾报警系统产品。进入80年代后,国内重要厂家也多是模仿国外产品,或是引进国外技术进行生产,没有真正意义上的关键技术,并且市场也刚刚开始发育。火灾报警产品真正发展是在90年代后来,伴随政府逐渐开放国门,国外企业开始大量进入中国消防市场,带来先进技术的同步也增进了市场的成熟。这时期,我国生产火灾报警产品的企业也得到了迅速发展,部分企业进行了合资生产、技术合作,获得了不菲的成绩,也造就了现今市场上许多有实力的商家,部分技术已靠近或赶上了国际水平。本设计重要有如下功能。1.正常状况下显示室温以及实时烟雾浓度。当温度或者是烟雾浓度到达预设值时,报警器进行声光报警并显示报警值,可以通过数码管显示判断是温度还是烟雾引起的报警来选择合适的应对方案。2.报警系统设有调整按钮,可以对预设温度值的调整。可根据需要选择合适报警温度。3.烟雾等级设定位4个等级,分别为0H-3H。设0H为无烟雾状态、1H为缓冲值、3H-4H为烟雾超标状态及报警指示值。4.报警器有着很好的实时行,有火灾隐患出现进行声光报警、火灾隐患消除声光报警停止,这样就减少了人工消除警报的麻烦。本报警器可以装在不一样的地方,也可以进行多点报警。将声光报警部分装在比较轻易看见或者人多的地方,如客厅、卧室里面。传感器则可以装在需要检测的地方,烟雾传感器可以装在卫生间、厨房,温度传感器放在比较轻易出现火情的地方。这样不仅可以很好的给人以提醒警情,更实现了多点检测、加大检测范围是报警器的实用度大大提高。1.系统方案设计火灾报警器是可以检测环境中的温度以及烟雾浓度,当到达报警预置时具有报警功能的仪器。该报警系统的最基本构成部分包括:传感器信号采集、前置放大电路、模数转换电路、单片机控制电路、字符显示电路、声光报警电路和安全保护电路等,其构造框图如图1-1所示。烟雾传感器烟雾传感器放大电路A/D转换单片机DS18B20温度传感器LED状态指示灯蜂鸣器数码管字符显示 换气扇/调整阀图SEQ图表\*ARABIC1-1报警器系统构造框图系统的工作原理为:由烟雾传感器采集信号送至放大电路将采集到的烟雾浓度信息转化为放大的模拟电信号;模数转换电路再将该模拟信号转换成单片机可识别的数字信号后送入单片机;单片机对该数字信号进行处理,并对处理后的数据进行分析并通过数码管显示出来;当烟雾浓度到达报警器所预订的报警值时,单片机启动报警电路进行声光报警。DS18B20温度传感器可直接输出单片机可识别的数字信号,不需要添加外围电路直接与单片机I/O口相连接。设计中为了以便检测与监控,使仪器测试人员及顾客可以直接懂得环境中的烟雾浓度,采用数码管显示字符来指示报警状态。正常状况下显示正常的值并通过绿色LED灯提醒环境安全。系统采用蜂鸣器声音报警和LED闪烁状态作为警报信号。这种报警措施是在声音报警基础上,加入光闪报警。由于变化的信号更能引起人们注意,弥补了在嘈杂环境中声音报警的局限,使得报警装置愈加完善。在报警启动的同步,单片机控制器还可以控制调整阀喷水灭火和换气扇排烟动作。为了保证其可靠性,在输出5V的电压的同步,进行故障监测。当传感器加热丝或电缆线和传感器断线或接触不良时,进行故障报警。以上是根据报警器应具有的功能,提出的整体设计思绪。2.硬件电路设计2.1电路整体原理图硬件电路如图2-1所示,图中主控电路是由AT89C51单片机、时钟电路、复位电路构成的单片机最小系统。温度传感器DS18B20以及滑动电阻器模拟烟雾传感器分别搜集温、烟雾浓度变化的信息送给单片机分析处理,通过数码管显示出来并判断与否到达预设报警值,到达报警预设值时启动声光报警提醒。AD0809作为模数转换,将烟雾的模拟量转换为8位的二进制数给单片机识别。图中的三极管电路作为数码管的驱动电路,以赔偿单片机输出电压的局限性,使数码管稳定显示。图2-1检测系统硬件电路图2.2单片机控制电路单片机控制电路是烟雾自动报警系统的心脏,用来处理传感器反馈的信号并启动报警装置显示和执行对应的保护和消防动作。本设计中采用AT89C51,它是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业原则的MCS-51指令集和输出管脚相兼容。单片机控制电路如图2-2所示,包括时钟电路和复位电路。图SEQ图表\*ARABIC2-2单片机主控制电路2.2.1时钟电路的设计单片机必须在时钟的驱动下才能工作。在单片机内部有一种时钟振荡电路,只需要外接一种振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如图2-3所示。图2-3外部振荡源电路一般选用石英晶体振荡器。此电路在加电大概延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率重要由石英晶振的频率确定。电路中两个电容C1,C2的作用有两个:一是协助振荡器起振;二是对振荡器的频率进行微调。C1,C2的经典值为30PF。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表达。2.2.2复位电路的设计单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2-3所示。图2-4复位电路图2-3中由按键RESET1以及电解电容C3、电阻R15构成按键及上电复位电路。由于单片机是高电平复位,因此当按键RESET1按下时候,单片机的9脚RESET管脚处在高电平,此时单片机处在复位状态。当上电后,由于电容的缓慢充电,单片机的9脚电压逐渐由高向低转化,通过一段时间后,单片机的9脚处在稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。2.2显示电路的设计显示电路具有提醒的功能,显示效果与硬件电路有极大的关系,合理的选择显示模块才能对的的显示出来,一般硬件固定后来其显示的信息全靠软件实现。显示模块有液晶显示屏,以及数码管。各有不一样的特点,LCD[4]显示模块虽然功能多,可以显示的内容丰富,但成本也高、技术复杂。尚有一种缺陷是由于大小以及亮度的问题,其可见度并不高。因此本次使用成本较低,技术简朴的数码管显示模块。也处理了LCD的需要靠近才能看清的问题。按发光二极管单元连接方式可分为共阳极数码管[5]和共阴极数码管。数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一种发光二极管单元(多一种小数点显示)。按能显示多少个“8”可分为1位、2位、3位、4位、5位、6位、7位等数码管,其引脚如图2-5所示。图2-5数码管引脚图本次使用数码管作为显示电路,需要处理的问题是,由于单片机输出的电压也许局限性与驱动数码管位选电压,因此本设计在位选端与单片机接口端增长三极管驱动电路,其电路如图2-6所示。图2-6三极管驱动电路图2.3传感器信号采集电路设计2.3.1温度采集电路设计方案1.AD590应用电路AD590[6]输出电流是以绝对温度零度(-273℃)为基准,每增长1℃,它会增长1μA输出电流,因此在室温25℃时,其输出电流Io=(273+25)=298μA。Vo的值为Io乘上10K,以室温25℃而言,输出值为2.98V(10K×298μA)。量测Vo时,不可分出任何电流,否则测量值会有误差,其应用电路如图2-7所示。图2-7AD590应用电路图原理分析:AD590的输出电流I=(273+T)μA(T为摄氏温度),因此量测的电压V为(273+T)μA

×10K=(2.73+T/100)V。为了将电压量测出来又需使输出电流I不分流出来,我们使用电压追随器其输出电压V2等于输入电压V。由于一般电源供应较多零件之后,电源是带噪声的。因此我们使用齐纳二极管作为稳压零件,再运用可变电阻分压,其输出电压V1需调整至2.73V。接下来我们使用差动放大器其输出Vo为(100K/10K)×(V2-V1)=T/10V。假如目前为摄氏28度,输出电压为2.8V。方案2.DS18B20应用电路DS18B20不仅输出数字信号还具有独特的单线接口仅需一种端口引脚进行通讯,无需外部器件可通过数据线供电。供电范围为3.0V到5.5V,测温范围为-55~+125℃(-67~+257℉),在-10~+85℃范围内精确度为±5℃。顾客可定义的非易失性温度报警设置。其应用电路如图2-8所示。图2-8DS18B20应用电路图原理分析:DS18B20的集成度比较高,只需要接外部电源即可工作,并且输出数字信号。比较两种方案,1方案外围电路相比2方案较为复杂,然而2方案直接输出数字信号不需要进行信号处理可直接送往单片机。因此本次选择2方案。2.3.2烟雾信号采集及前置放大电路气体/烟雾采集模块是可以检测环境中的烟雾等气体的浓度,并将浓度的变化换为数字信号传送至主控芯片,最基本构成部分应包括:气体信号采集电路、模拟放大电路、模数转换电路、单片机控制电路。气体信号采集电路一般由气体传感器和模拟放大电路构成,将烟雾等气体信号转化为模拟的电信号。模数转换电路将从烟雾检测电路送出的模拟信号转换成单片机可识别的数字信号后送入单片机。一般烟雾传感器的输出信号比较微弱,有时也许由于环境或者其他原因的干扰,需要将信号放大与调整。本次设计采用LM324集成运放芯片,其芯片引脚如图2-9所示,LM324[7]的静态功耗小、价格低廉,可在较宽电压范围内的单电源或双电源下工作,其电源电流很小且与电源电压无关,四个运放一致性好;其输入偏流电阻是温度赔偿的,也不需外接频率赔偿,可做到输出电平与数字电路兼容。图2-9LM324引脚图原理分析:MQ-5烟雾传感器作为搜集信号器件,其接线如图2-10所示。IC2A作为电压跟随器,通过滑动变阻器Rp2产生的参照电压Vref接入IC2B的反相输入端,从传感器输出的信号通过运算放大器LM324的同相输入端,为保证电路引入负反馈,在IC2B中,输出电压Vo通过电阻R22接到反相输入端,由此构成差分比例运算电路。该电路的反馈组态为电压串联负反馈,可通过IN1/IN2的值来判断传感器与否正常工作或者损坏。图2-10信号采集与放大电路图2.4模数转换电路设计信号处理就是将有用的信号筛选出来或者对微弱的有用信号进行放大。由于烟雾传感器所反馈的信号为模拟信号,为了将烟雾浓度更好的显示出来需要对模拟信号进行A/D转换,才能通过单片机显示出来。方案1.AD7705应用电路运用52系列单片机作为主控芯片,采用AD7705[8]作为模数转换芯片,其应用电路如图2-11所示。.图2-11AD7705应用电路图原理论述:运用89系列的单片机做MCU,再通过外置一种AD7705芯片工作的时钟电路以及某些外围电路即可(其原理在芯片简介中已详细阐明,这里不再论述)。方案2.ADC0809应用电路运用52系列单片机作为主控芯片,采用ADC0809[9]作为模数转换芯片,其应用电路如图2-12所示,其数据转换过程和注意事项为:(1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。(2)初始化时,使ST和OE信号全为低电平。(3)送要转换的通道的地址到A,B,C端口上。(4)在ST端给出一种至少有100ns宽的正脉冲信号。(5)与否转换完毕,我们根据EOC信号来判断。(6)当EOC变为高电平时,这时给OE为高电平,转换的数据输出给单片机。图2-12ADC0809应用电路图综合比较,以上两种方案都可以完毕本次的A/D转换规定,由于ADC0809编程比较简朴,以及题目精度的规定(八位即可)。因此本次选择方案2。2.5按键、声光报警电路设计按键、声光报警电路是用来调整报警权限以及提醒报警,按键用来设置预设报警温度值并且可以调整数值的大小,当温度超过预设值时,发光二极管D1用来光显示报警,蜂鸣器用来声音报警,其应用电路如图2-13所示。图2-13按键、显示模块、声光报警电路3.软件设计3.1系统主程序设计及流程图主程序流程图如图3-1所示。首先要给传感器预热,由于MQ-5型半导体电阻式烟雾传感器在不通电寄存一段时间后,再次通电时,传感器不能立即正常采集烟雾信息,需要一段时间预热。程序初始化结束后,系统进入监控状态。主程序设计先对传感器预热,预热同步,对传感器进行故障检测,采用软件方式检测传感器加热丝或电缆线与否断线或者接触不良。传感器与否故障系统初始化传感器与否故障系统初始化传感器预热故障检测信号采集及放大A/D转换与否到达报警值进入报警子程序开始YN Y N 图3-1主程序流程图在整个报警器系统工作中,单片机[10]对传感器[11]检测的烟雾浓度信号进行信号放大、A/D转换处理后,由单片机进行分析处理,判断系统与否启动声光报警。主程序还包括LED八段式数码管浓度字符显示功能、消音按键功能、安全联动装置,中断子程序等,使报警器功能愈加完善,给顾客带来便利。3.2按键模块设计本报警器增长了按键模块,可以对温度报警预设值得调整。按键闭合一次预设报警值就增长一度,其变化范围为40—60度之间,其程序流程图如图3-2所示。开始开始按键与否闭合按键与否闭合NY调用延时子程序,延时10ms去抖动调用延时子程序,延时10ms去抖动按键与否闭合按键与否闭合 N Y提取键值提取键值调用键盘处理子程调用键盘处理子程结束结束图3-2按键程序流程图3.3温度传感器模块设计DS18B20的程序设置为初始化、DS18B20写数据、DS18B20读数据,程序流程图如图3-3所示。图3-3DS18B20程序流程图4.仿真与调试4.1调试本设计由于选择方案明确,原理清晰。很快就将实物仿真做出来了,开始时数码管没有显示。排查原由于传感器没有初始化成功,由于单片机I/O口输出高电平所致,最终处理问题,数码管显示正常。但误差明显,通过对DS18B20温度传感器用“多减少补”的措施选择一种合理的值将温度温差减小;烟雾传感器由于加了信号放大电路,在没有险情的状况下,将信号处理电路输出为0以减少其他原因的干扰。以及在模拟烟雾的状况下设定一种参照电压,将烟雾浓度提成不一样的等级可以精确提醒险情的等级以提醒人们选择应对措施。4.2仿真1.正常状况仿真电路当没有火灾隐患时及正常状况下的仿真电路如图4-1所示。图4-1正常状况下的仿真电路图2.温度到达设计值产生报警时仿真电路当检测到火灾隐患并且温度到达预设值产生报警的仿真电路如图4-2所示。图4-2温度到达预设值产生报警的仿真电路3.烟雾浓度到达报警预设时仿真电路图当检测到火灾隐患并且烟雾浓度到达预设值产生报警的仿真电路如图4-3所示。图4-3烟雾浓度到达预设值产生报警的仿真电路4.温度、烟雾双重报警仿真电路当检测到火灾隐患并且温度和烟雾浓度都到达预设值产生报警的仿真电路如图4-4所示。图4-4温度、烟雾双重报警仿真电路结束语本文在对烟雾传感器和报警技术进行深入研究的基础上,详细地论述了基于单片机控制的烟雾报警器的设计目的和实现措施。通过系统方框图、硬件电路图和软件流程图的表达,全面、详细地论述了系统中各个部分的原理和功能。设计简朴易懂,功能齐全,十分适合在家庭生活中使用。为期十周的岗前综合技能培训,使我对传感器以及报警系统有了深刻的理解。十周从定方案到选择传感器到最终完毕任务,期间查阅了诸多有关烟雾传感器、温度传感器的知识。由于传感器的处理信号要做到精确非常的不轻易,在制作的过程总会碰到诸多的困难,例如传感器反馈的信号接受不到、或者信号不对的等等诸多问题。看是简朴,做起来不易啊。本任务的完毕要非常的感谢我们的指导老师,何玲老师。在十周的时间内不厌其烦的指导着我们,给我处理了诸多问题。在传感器的选择上,老师以她丰富的传感器知识给我提议,使我们并没有花太多时间,正是老师的指导与鼓励我才得以圆满完毕任务。回忆这几周以来,从选题到定方案,再到画电路成程序,直到最终学论文。每一步做的很认真很仔细,不过问题还是诸多。记得最深刻的就是温度传感器18B20和AD0809这两个元器件都是第一次接触,虽然他们的应用电路都很简朴,不过编程一点也不简朴。开始在网上看了两个元器件的几篇驱动程序,觉得都是可以用的。将网上的程序对照自己画的电路图进行修改已到达我要的效果,并没有成功。网上的不可行,又看书上的芯片简介的然后自己编写,看起来所有程序差不多同样,最终还是没有实现想要的效果。在何玲老师的协助下,老师给我划出了也许有问题的函数,很快就发现了错误并改正。本次碰到的问题是,AD0809转换芯片没有起到转换作用,有两个原因。一种是初始化没写对,延时函数用得不对导致初始化高下电平间的转换不符合芯片阐明书的规定,一种是给AD0809提供的时钟频率没有在其规定范围。不过那一种原因都导致芯片不能工作,都是第一次使用因此在使用方法上没用经验,好在最终问题处理了。道谢大学三年的时光,在毕业设计的进行中慢慢靠近尾声。这段时间的成长,是大学三年的一次总结与升华。一起走过的三年,我学会了诸多,同步也收获了诸多。通过这次毕业设计,我的动手能力和分析处理问题的能力均有很大的提高。本次毕业设计从选题、研究过程到毕业论文的撰写都得到了何玲老师的悉心指导。何老师耐心的指导对我的毕业设计有很大协助。老师多次问询研究进程,并为我指点迷津,协助我开拓研究思绪,精心点拨、热忱鼓励。她严厉的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和鼓励着我,在此对老师表达衷心的感谢。大学三年年父母和朋友给了我无微不至的关怀与照顾,正是有了他们悉心的照顾才有了我今天顺利的完毕学业。在此我要感谢在我身边一直支持我并且从生活上予以我无微不至照顾的父母,朋友。在他们的关爱和呵护中,我读过了快乐、幸福、充实的大学三年年,让我收获了活泼,自信,善良的性格。他们的鼓励和关怀是我不停前进的不竭动力。最终对所有协助和支持我的老师,同学,家人,朋友送上我深深的谢意!参照文献[1]马云峰.数字温度传感器DS18B20的原理与应用[J].世界电子元器件.(01)[2]周熊.基于AT89C52单片机的烟雾报警器设计[J].电子设计工程(01)[3]雷思孝,冯育长.单片机系统设计及工程应用.西安电子科技大学出版社,5月第一版[4]崔振兵,曾碧.基于8位单片机的LCD显示设计[J].广东工业大学学报.(03)[5]胡全.51单片机的数码管动态显示技术[J].中国新技术新产品.(13)[6]蒋敏兰,胡生清,幸国全.AD590温度传感器的非线性赔偿及应用[J].传感器技术.(10)[7]王耿.集成运算放大器的应用[J].印刷技术.1994(10)[8]朱延钊.AD7705/AD7706的原理与应用[J].国外电子元器件.(06)[9]刘焕平,韩树新.ADC0809与AT89C51的一种接口措施[J].石家庄师范专科学校学报.(02)[10]何玲,蔡莉莎,曾维鹏主编.《单片机小系统的设计与制作》[M].北京:电子工业出版社。[11]冯成龙,刘洪恩.传感器应用技术项目化教程[M].附录程序清单:////////////////主程序及烟雾值A/D转换////////////////#include"DS18B20.h"#defineDisdataP0//段码入口#definediscanP2//数码管位选扫描sbitDIN=P0^7;//小数点sbitOE=P3^3; //AD0809使能端sbitEOC=P3^5;sbitST=P3^1;sbitCLK=P3^0;sbitLED=P3^4;sbitBEER=P3^7;sbitKEY=P3^2; //ADDCS=1通道IN0、ADDCS=0通道IN1ucharAD_DATA[2]; //保留IN0和IN1经AD转换后的数据uintZH_DATA[3];//保留转换后十进制电压的数据ucharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};ucharcodescan_con[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//列扫描控制字//ucharcodescan_con[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//列扫描控制字/*****************申明函数********************/voiddelayms(uchari);voidinit();voidAD();voidAD_Zhi();/*****显示开机初始化等待画面*****/voidDisp_init(){P0=0xbf;//显示-P2=0xff;delayms(200);}/*****显示温度子程序*****/voiddisplay(){ chark; for(k=0;k<5;k++)//4位LED扫描控制 { if(table[Dis_play[k]]!=0) { Disdata=table[Dis_play[k]];//数据显示 } if(k==2){DIN=0;}//小数点显示 if(k==4)discan=scan_con[0]; elsediscan=scan_con[k+3];//位选 delay(90);//延时 discan=0x00; } discan=scan_con[1];//位选 Disdata=0x89; //显示H delay(90); discan=0x00; discan=scan_con[7];//位选 Disdata=0xc6; //显示C delay(90); discan=0x00;}/*****主函数*****/voidmain(void){EA=1;//容许INT0中断EX0=1;IT0=1;//下降沿触发init();LED=0;BEER=0;Disp_init();//开机显示do{AD();AD_Zhi(); //AD_转换tmpchange();//温度转换tem_deal(tmp());//温度处理 display(); //显示温度值 if((Dis_play[6]==1)||(ZH_DATA[2]==1)) baojing(); elsetiaochu(); }while(1);}/**********延时函数************/voiddelayms(uchari){ucharj;while(i--){for(j=125;j>0;j--);}}/*********系统初始化***********/voidinit(){EA=1;//开总中断TMOD=0x02;//设定定期器T0工作方式TH0=216;//运用T0中断产生CLK信号TL0=216;TR0=1;//启动定期器T0ET0=1;ST=0;OE=0;}/***********T0中断服务程序************/voidt0(void)interrupt1using0{CLK=~CLK;}/***********AD转换函数**********/voidAD(){ST=0;//ADDCS=0;//选择通道IN0delay(10);ST=1;//启动AD转换delay(10);ST=0;while(0==EOC);OE=1;AD_DATA[0]=P1;OE=0;ST=0;//ADDCS=1;//选择通道IN1delay(10);ST=1;//启动AD转换delay(10);ST=0;while(0==EOC);OE=1;AD_DATA[1]=P2; //判断传感器与否正常工作OE=0;}voidAD_Zhi(){if(AD_DATA[1]*196==0) { //P0=table[0]; //传感器不正常工作显示- //黄灯亮、蜂鸣器报警 }ZH_DATA[0]=AD_DATA[0]*196;//烟雾浓度值放大,(0~255)*196分为四个等级if(ZH_DATA[0]<8000) {Dis_play[4]=0; ZH_DATA[2]=0;}if((ZH_DATA[0]>=8000)&&(ZH_DATA[0]<0)) {Dis_play[4]=1; ZH_DATA[2]=0;}if((ZH_DATA[0]>=0)&&(ZH_DATA[0]<30000)){Dis_play[4]=2; ZH_DATA[2]=1;}if(ZH_DATA[0]>=30000) {Dis_play[4]=3; ZH_DATA[2]=1;}}voidEX_INT0()interrupt0{intge,shi,k;if(KEY==0){delayms(10); if(KEY==0) { while(KEY); Dis_play[7]++; if(Dis_play[7]>=70) Dis_play[7]=30; shi=Dis_play[7]/10;ge=Dis_play[7]%10;for(k=10;k>0;k--) { P0=table[shi]; discan=scan_con[0]; delayms(10); discan=0x00; P0=table[ge]; discan=scan_con[1]; delayms(10); discan=0x00; discan=scan_con[2];//位选 Disdata=0xc6; //显示C delayms(10); discan=0x00; } }}}////////////////////////////////////////////////////////////////////DS18B20温度信号采集与处理/////////////////////////////封装头文献//////////////////////////////#ifndef_DS18B20_H_#define_DS18B20_H_#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintexternuchardataDis_play[8];externuchardataDis_ram[1];externvoiddelay(uint);externvoidInit_DS18B20(void);externReadOneChar(void);externvoidWriteOneChar(unsignedchar);externvoidtmpchange(void);externuinttmp();externvoidtem_deal(uint);externvoidbaojing();externvoidtiaochu();#endif//////////////////////////////////////////////////////#include"DS18B20.h"sbitDQ=P3^6; //温度输入口sbitLED=P3^4;sbitBEER=P3^7;//定义蜂鸣器uinttemp1; //variableoftemperature定义一种变量ucharflag1;//定义一种标志,标志温度是负还是正,1为负,0为正uchardatatemp_data[2]={0x00,0x00};//读出温度暂放uchardataDis_play[8]={0x00,0x00,0x00,0x00,0x0a,0x0c,0x00,0x2f};//显示单元数据,共6个数据和一种运算暂用第4个数据为空,第6个数据显示CuchardataDis_ram[1]={0x00};/***************************************//*延时子程序*//***************************************/voiddelay(uinti){while(i--);}/************************************************//*初始化ds18b2子函数**//************************************************/voidInit_DS18B20(void){ucharx=0;DQ=1;//DQ复位delay(8);//稍做延时DQ=0;//单片机将DQ拉低delay(80);//精确延时不小于480usDQ=1;//拉高总线delay(14);x=DQ;//稍做延时后假如x=0则初始化成功x=1则初始化失败 //(可在此处判断传感器与否正常)delay(20);}/*************************************************//*读字节子函数*//*************************************************/ReadOneChar(void){uchari=0;uchardat=0;for(i=8;i>0;i--){DQ=0;//给脉冲信号dat>>=1;//数据右移一位DQ=1;//给脉冲信号if(DQ)//DQ为1dat|=0x80;//读出数据delay(4);//延时}return(dat);}/*************************************************//*写字节子函数*//*************************************************/voidWriteOneChar(unsignedchardat){uchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;//写入一位数据delay(5);DQ=1;dat>>=1;//右移一位数据}}/******************************************//*发送温度转换命令*//******************************************/voidtmpchange(void)//DS18B20beginchange{Init_DS18B20();//初始化DS18B20delay(200);//延时WriteOneChar(0xcc);//跳过序列号命令WriteOneChar(0x44);//发送温度转换命令}/******************************************//*读

温馨提示

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

评论

0/150

提交评论