智能火灾报警系统的研究_第1页
智能火灾报警系统的研究_第2页
智能火灾报警系统的研究_第3页
智能火灾报警系统的研究_第4页
智能火灾报警系统的研究_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

摘要智能火灾报警系统在现代智能建筑中起着极其重要的平安保障作用。随着传感器技术、无线通信技术、集成电路和微电子技术日臻完善,火灾自动报警系统迎来了良好的开展契机。本智能火灾报警系统设计采用STC89C52芯片,结合温度传感器DS18B20和MQ-2型烟雾传感器以及模数转换器ADC0832,在考虑经济适用的前提下,整合单片机与传感器技术,将火灾报警系统进一步智能化。本设计还参加了常用的LCD1602液晶显示屏显示电路,可以及时显示当前温度状态和浓度状态,使得整个设计更加完整,更加灵活。该设计可应用于个人建筑或公共场所,随时对室内温度和烟雾浓度进行智能监控,也可以用于其他需要进行火灾监控的场合。关键词:单片机;A/D转换器;传感器;仿真AbstractIntelligentfirealarmsysteminthemodernintelligentbuildingplaysanextremelyimportantroleinsecurity.Asthesensortechnology,wirelesscommunicationtechnology,improvingintegratedcircuitandmicroelectronictechnology,automaticfirealarmsystemisthegoodopportunityofdevelopment.ThissmartfirealarmsystemwasimplementedbasedonSTC89C52chip.Withthecombi-nationoftemperaturesensorDS18B20andfogsensor,Icanendeavourtosaveourbudgetandtoensurethewholedevicecannormallyoperate.Henceweincorporatesingle-chipmachinestech-nologywithsensortechnologyinordertomakethisdevicemoreintelligent.Accordingtothecriterionofthecompletenessforconstructinganintactandflexiblesystem,IalsoaddupadigitalLEDdisplayingcircuit,whichcanimmediatelyunveiltemperatureandfogthicknessstatus.Thissmartdevicecanfinditsapplicationsnotonlywererestrictedunderthepersonalbuildingsandpublicareaswhichmaketheintelligentdetectionavailable,italsocanbeusedformonitoringotherhigh-conflagration-occurringfields.Keywords:Single-chipMachines,A/Dconvertor,Sensors,Simulation目录摘要IAbstractII目录II1绪论11.1选题背景及现状11.2课题研究的目的及意义11.3智能火灾报警系统亟待解决的问题以及要完成的功能22设计方案32.1智能火灾报警系统简介32.2系统设计思想32.3方案论证42.3.1单片机的选择42.3.2模数转换器的选择52.3.3传感器的选择53硬件设置73.1单片机STC89C52的原理73.1.1STC89C52的引脚说明73.1.2工作特性103.2时钟电路143.3电源模块143.4温度采集局部153.4.1DS18B20数字集成温度传感器15测温模块电路原理图193.5浓度采集模块193.6A/D转换器203.6.1A/D转换器的主要参数203.6.2A/D转换器与CPU的接口方法203.6.3A/D转换器与CPU之间传送数据的方法203.6.4A/D转换芯片ADC0832及其接口213.7显示模块253.8报警模块263.8.1蜂鸣器263.8.2发光二极管263.8.3报警模块电路原理图274软件编程284.1主程序流程图285系统仿真305.1仿真软件—KeilC51简介305.2系统电路功能仿真305.3Keiil和Proteus对系统联调315.4各状态仿真结果显示32参考文献34结束语35致谢36附录A系统硬件原理图37附录B源程序代码381绪论1.1选题背景及现状随着社会经济的飞速开展,城市化进程的加快和人口的迅速增长,我国的火灾发生的次数、造成的损失呈上升趋势。据统计,在众多灾难中,火灾造成的直接经济损失约为地震的五倍,仅次于干旱与洪涝,而且发生的频度居各种灾害之首。智能化火灾报警系统已并非传统意义上的简单的报警设备,而是融入了计算机技术、电子技术、自动控制技术、传感器的应用等各领域知识。伴随着科学技术的不断进步,火灾报警系统必将得到更快的开展。火灾自动报警系统(FAS)起着十分重要的消防平安保障作用。常言道:“预防重于救火”,但预防却无法完全防止火灾发生,如果火灾发生时,能被及时发现,并采取有效的控制措施,那么可将火灾造成的损失降到最低限度。随着经济的开展,火灾自动报警设备的生产和应用得到了较大的开展,据调查研究,国内的生产商达数百家,品牌近千个,类型繁多。我国火灾报警系统起步较兴旺国家晚几十年,从上世纪70年代我国才开始研制生产火灾报国内主要厂家也多是模仿国外产品,或是引进国外技术进行生产,警系统产品。进入80年代后,没有真正意义上的核心技术,并且市场也刚刚开始发育。火灾报警产品真正开展是在90年代以后,随着政府逐渐开放国门,国外企业开始大量进入中国消防市场,带来先进技术的同时也促进了市场的成熟。这时期,我国生产火灾报警产品的企业也得到了快速开展,局部企业进行了合资生产、技术合作,取得了不菲的成绩,也造就了现今市场上许多有实力的商家,局部技术已接近或赶上了国际水平。我国的火灾自动报警控制系统经历了从无到有、从简单到复杂的开展过程,其智能化程度也越来越高。目前国产火灾自动报警系统价格低廉,适合我国国情,但是火灾自动报警系统由于多数没有分布智能,可靠性低,且产品没有形成系列化、品种不全,产品的外观也较差,编程复杂,调试不方便,设备兼容性差。国外产品多数具有分布智能,可靠性高,产品具有系列化、品种,产品外观美观。缺点是多数操作维护不便,价格较高,设备兼容性差。智能火灾探测技术的宗旨就是要在火灾发生的早期,准确地判断火警、预报火警,从而保障人民的生命财产平安。1.2课题研究的目的及意义随着我国经济建设的开展,高层建筑成了城市的主要标志,高层建筑中的各种通讯线路、动力和照明线路、以及各种系统中的线路纵横交错,致使火灾的发生概率也在大幅度的增加。加之现代建筑的封闭性较强,一旦发生火灾,整个大楼就像一个大的火炉,给灭火带来了巨大的难度,对火灾发生后及时的发现、及时控制的要求促使了火灾自动报警产品的应运而生。加之现代计算机技术、通讯网络技术和自动控制技术的飞速开展又为人类实现更加理想化的生活提供了可能。智能型火灾报警应运而生了,智能型火灾报警系统是一个集信号检测、传输、处理和控制于一体的控制系统,代表了当前火灾报警系统的开展方向。所以随着科学技术的迅猛开展以及国内外经济的迅速增长,市场上迫切而需要一种容量大、性能优越、可靠性高、便于安装、使用和维护的智能型火灾报警控制系统。本文所研究的智能火灾报警系统主要实现以下功能:通过温度传感器和气体传感器对室内温度和烟雾浓度进行实时监测,并将所得值与设定值相比拟。当室内温度高于设定温度以及烟雾浓度大于设定浓度时就接通电源开始鸣声报警,如果在设定时间内,以上测量值没有降下来并且无人手动关闭报警系统,系统将会自动通过网络将信号传送给火警消防部门。该功能主要通过单片机实现,此智能火灾报警系统的出现,既能保证室内有人情况下的声音报警,又能保证在室内人员没采取措施或者无人情况下的网络报警,所以有较高的实用性。1.3智能火灾报警系统亟待解决的问题以及要完成的功能目前国内的智能建筑火灾自动报警系统中仍存在许多问题,主要问题亟待解决:(1)火灾自动报警系统存在误报、漏报问题。(2)火灾自动报警系统的智能化水平有待提高。(3)无线通信技术有待进一步开展。(4)火灾自动报警系统的应用领域有待进一步扩大。本文所研究的智能火灾报警系统主要实现以下功能:(1)用户可以根据实际情况修改温度和烟雾浓度的预设值。(2)对监测环境的温度和烟雾浓度进行实时监控与显示。(3)通过检测到的温度和烟雾浓度与预设值进行比拟,系统自动判别是否处于火灾状态。(4)本设计采用的声光报警,当温度和浓度超过预设值时,即自动报警。2设计方案2.1智能火灾报警系统简介火灾自动报警系统属于楼宇自动化范畴,是当前楼宇自动化的一个主要构成系统。其设置目的是为了防止和减少火灾危害,保护人身和财产平安。火灾报警技术是预防火灾的一项根底工作,应用范围广泛。报警早,损失少,不仅对发生火灾的单位和个人具有重要作用,而且对公安消防监督机构及时扑灭火灾、减少人员伤亡和财产损失同样具有十分重要的现实意义。火灾自动报警系统由触发器件、火灾报警装置及具有其他辅助功能的装置组成。随着电子技术和计算机技术的迅速开展,火灾自动报警系统的结构、形式越来越灵活多样,很难精确划分为几种固定的模式。火灾自动报警技术趋向于智能化系统,这种系统可组合成任何形式的火灾自动报警网络形式,既可以是区域报警系统,又可以是集中报警系统或控制中心报警系统形式。所谓智能火灾自动报警系统,应当是:使用探测器件将火灾发生期间所产生的烟、温、光等信号以模拟量形式,连同外界相关的环境参数一起传送给报警器,报警器再根据获取的数据及内部存储的大量数据,利用火灾模型判据来判断火灾是否存在,这样的系统称为智能火灾自动报警系统。由于该系统为解决火灾报警系统存在的两个难题〔误报、漏报〕提供了新的方法和手段,并在处理火灾真伪方面表现出明显的有效性和创新性,这是火灾自动报警系统在技术上的飞跃。从传统型走向智能型,是国内外火灾自动报警系统技术开展的必然趋势。2.2系统设计思想因为要到达设计系统的简单、经济及实用性,所以本设计使用温度传感器、烟雾传感器,结合STC89C52芯片,采用一只DS18B20温度传感器和MQ-2型烟雾传感器,直接读取被测温度值和烟雾浓度值,之后通过软件编程到达控制要求。本系统的电路设计方框图如图2.1所示,它由六局部组成:〔1〕时钟电路;〔2〕电源局部,采用3节AA电池稳定供电;〔3〕控制局部,主芯片采用单片机STC89C52;〔4〕显示局部,采用LCD1602液晶显示屏;〔5〕温度采集局部,采用DS18B20温度传感器;〔6〕浓度采集局部,采用MQ-2型烟雾传感器;〔7〕报警局部,采用蜂鸣器和发光二极管实现声光报警。按键和显示模块按键和显示模块报警模块STC89C52电源模块时钟电路温度检测模块浓度检测模块图2.1系统设计方框图2.3方案论证单片机的选择8031和STC89C52芯片特性的比照。8031片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器多为EPROM的2764系列。用户假设想对写入到EPROM中的程序进行修改,必须先用一种特殊的紫外线灯将其照射擦除,之后再可写入。写入到外接程序存储器的程序代码没有什么保密性可言。由于上述类型的单片机应用的早,影响很大,已成为事实上的工业标准。后来很多芯片厂商以各种方式与Intel公司合作,也推出了同类型的单片机,如同一种单片机的多个版本一样,虽都在不断的改变制造工艺,但内核却一样,也就是说这类单片机指令系统完全兼容,绝大多数管脚也兼容;在使用上根本可以直接互换。我们统称这些与8051内核相同的单片机为“51系列单片机”。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改良使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构〔兼容传统51的5向量2级中断结构〕,全双工串行口。另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。由于内部RAM的存在,可以减少I/O扩展芯片、锁存器及片外RAM等等,使整个设计显得简单明了,所以在本设计中我选择使用STC89C52。模数转换器的选择A/D转换器的种类很多,就位数来分,有8位、10位、12位、16位等。位数越高,其分辨率也越高,但价格也越贵。而就其结构而言,有单一的A/D转换器,有内含多路开关的A/D转换器。根据本设计的需要,我选择的A/D转换器是ADC0832。ADC0832是NS(NationalSemiconductor)公司生产的串行接口8位A/D转换器,通过三线接口与单片机连接,功耗低,性能价格比拟高,适宜在袖珍式的智能仪器仪表中使用。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。芯片具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件连接和处理器控制变得更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。传感器的选择DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改良型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度。这一局部主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口局部组成。数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P1.0口,单片机接受温度并存储。半导体烟雾传感器包括用氧化物半导体陶瓷材料作为敏感体制作的烟雾传感器以及用单晶半导体器件制作的烟雾传感器,它具有灵敏度高,反响快、体积小、结构简单,使用方便、价格廉价等优点,因而得到广泛应用。本设计选用MQ-2型烟雾传感器,这种型号的传感器不但具备一般半导体烟雾传感器的优点,并且它的抗干扰能力强、寿命长。MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低本钱传感器。3硬件设置3.1单片机STC89C52的原理STC89C52的引脚说明(1)主要性能参数STC89C52管脚图[1],如图3.1。图3.1STC89C52管脚图·与MCS-51产品指令系统完全兼容·1000次擦写中期·8K字节可重擦写Flash闪速存储器·三级加密程序存储器·全静态操作:0Hz——24MHz·32个可编程I/O口线·512字节内部RAM·6个中断源·3个16位定时/计数器·可编程串行UART通道·低功耗空闲和掉电式(2)功能特性概述STC89C52提供以下几个标准功能:8K字节Flash闪存存储器,512字节内部RAM,32个I/O口线,3个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,STC89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容。但振荡器停止工作并禁止其它所有工作直到下一个硬件复位。(3)引脚功能说明·:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对断口写“1”可作为高阻抗输入端用。在Flash编程时,P0接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。在访问外部数据存储器或程序存储器时,这组口线分时转换地址〔低8位〕和数据总线复用,在访问期间激活内部上拉电阻。·P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号来低电平时会输出一个电流〔I〕。Flash编程和程序校验期间,P1口接受低8位地址。·P2口:P2口是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号来低电平时会输出一个电流〔I〕。在访问外部程序存储器或16位地址的外部数据存储器〔例如执行MOVX@DPTR指令〕时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器〔例如执行MOVX@RI指令〕时,P2口行上的内容〔也即特殊功能存放器〔SFR〕区中R2存放器的内容〕,在整个访问期间不改变。Flash编程或校验时,P2亦接受高位地址和其它控制信号。·P3口:P3是一组带内部上拉电阻的8位双向I/O口,P3口的输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,被外部拉低的P3口将用上拉电阻输出电流〔I〕。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能[2],见表3.1。表3.1P3口的第二功能端口引脚第二功能P3.0RXD〔串行输入口〕P3.1TXD〔串行输出口〕P3.2〔外中断0〕P3.3〔外中断1〕P3.4T0〔定时/计数器0〕P3.5T1〔定时/计数器1〕P3.6〔外部数据存储器写选通〕P3.7〔外部数据存储器读选通〕P3口还接受一些用于Flash闪速存储器编程和程序校验的控制信号。·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。·ALE/:当访问外部程序存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲〔〕。如有必要,可通过对特殊功能存放器〔SFR〕区中的8EH单元的D0位置位,可禁止ALE操作,该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。·:程序储存允许〔〕输出是外部程序存储器的读选信号,当STC89C52由外部程序存储器取指令〔或数据〕时,每个机器周期两次有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的信号不出现。·EA/Vpp:外部访问允许。欲使CPU仅访问外部程序存储器〔地址为0000H——FFFFH〕,EA端必须得保持低电平〔接地〕。需注意的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。如EA端为高电平〔接端〕,CPU那么执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源,当然这必须是该器件是使用12V编程电压。·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。·XTAL2:振荡器反相放大器的输出端。工作特性(1)时钟振荡器[3]STC89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反响元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图3.2。外接石英晶体〔或陶瓷谐振器〕及电容C1、C2接在放大器的反响回路中构成并联振荡电路,对外电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的上下、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF〔±10pF〕,而如使用陶瓷谐振器,建议选择40pF〔±10F〕。用户也可以采用外部时钟。采用外部时钟的电路如以下图所示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2那么悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,电脑最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。石英晶体时:C1,C2=30pF±10pF陶瓷谐振器:C1,C2=40pF±10pF图3.2振荡电路(2)空闲节电模式STC89C52有两种可用软件编程的省电模式,它们是空闲模式和掉电模式。这两种方式是控制专用存放器PCON〔即电源中指存放器〕中的PD〔PCON.1〕和IDL〔PCON.0〕位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。IDL是空闲等待方式,当IDL=1时,激活空闲工作模式,单片机进入睡眠状态。如需同时进入两种工作模式,即PD和IDL同时为1,那么先激活掉电模式。在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内RAM和所有特殊功能存放器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。终止空闲工作模式的方法有两种,其一是任何一条被允许的中断的事件被激活,IDL被硬件清零,即可终止空闲工作模式,程序会首先响应中断,进入中断效劳程序,执行完中断效劳程序并紧随RET1指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。其二是通过硬件复位也可将空闲工作模式终止。需要注意的是,当由硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口,为了防止可能对端口产生意外写入,即或空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。(3)掉电模式在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能存放器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能存放器但不包括RAM中的内容,在恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。(4)程序存储器的加密STC89C52可使用对芯片上的3个加密位LB1,LB2,LB3进行编程〔P〕或不编程〔U〕来得到如下表3.2所示的功能:表3.2加密位保护功能表程序加密位保护类型LB1LB2LB31UUU没有程序保护功能2PUU禁止从外部程序存储器中执行MOVC指令读取内部程序存储器的内容3PPU除上表功能外,还禁止程序校验4PPP除以上功能外,还禁止外部执行注:表中的U——表示未编程,P——表示编程当加密位LB1被编程时,在复位期间,EA端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,那么锁存器的初始值是一个随机数,且这个随机数会一直到真正复位为止,为单片机能正常工作,被锁存的EA电平值必须与该引脚当前的逻辑电平一致,此外,加密位只能通过整片的方式擦除。(5)芯片擦除利用控制信号的正确组合并保持ALE/PROG引脚10Ms的低电平脉冲宽度即将PEROM阵列〔4K字节〕和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”(6)读片内签名字节STC89C52单片机内有三个签名字节,地址为030H,031H和032H。用于声明该器件的厂商,型号和编程电压。读签名字节的过程和单元030H,031H及032H的正常效验相仿,只需将P3.6和P3.7保持低电平,返回值的意义如下:〔030H〕1EH声明产品由ATMEL公司制造;〔031H〕51H声明为STC89C52单片机;〔032H〕FFH声明12V编程电压;〔032H〕05H声明为5V编程电压。(7)编程接口[4]FLASH编程和校验特性=0℃-70℃,=5.0±表3.3Flash编程和校验特性符号参数最小值最大值单位编程电压11.512.5V编程电流1mA时钟频率324MHz建立地址到变低48变低后地址保持不变48建立数据到变低48变低后数据保持不变48ENABLE变高到48加到变低10后保持10宽度1110地址到数据有效48ENABLE低到数据有效48表3.3续表ENABLE后数据浮空048变高到BUSY变低1.0字节写入周期2.0采用控制信号的正确组合可对FLASH闪速存储阵列中的每一代码字进行写入和存储器的整片擦除,写操作周期是自身定时的,初始化后他将自动定时到操作完成。3.2时钟电路时钟电路〔如图3.3所示〕用于产生单片机工作时所必需的时钟控制信号。单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。单片机内部有一个高增益反向放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片外部XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。电路中的两个电容通常选用30pF左右,对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的上下、振荡器的稳定性和起振的快速性。晶振的振荡频率的范围通常是1.2MHz~12MHz之间。晶体振荡频率高,那么系统的时钟频率也高,单片机运行速度也就快,但反过来运行速度快对存储器的速度要求就高,对印制电路板的工艺要求也高,所以,这里使用振荡频率为6MHz的石英晶体。图3.3时钟电路3.3电源模块电源电路可分为三大块:变压局部、整流滤波局部、稳压局部。变压局部其实就是一个变压器,变压器作用是将220V的交流电压变换成我们所需的电压。然后再送去整流和滤波。整流电路的任务是将交流电变换成直流电。完成这一任务主要是靠二极管的单向导电作用,因此二极管是构成整流电路的关键元件。由于四只二极管的连接方式及其单向导电作用,不管输入的电压正负极如何,总有两只二极管是导通的,故通过该整流电路都能输出一个相对稳定的电压。稳压器是一种能自动调整输出电压的供电电路或供电设备,其作用是将波动较大和不合用电器设备要求的电源电压稳定在它的设定值范围内,使各种电路或电器设备能在额定工作电压下正常工作。因为我考虑到整个设计的实用、简单以及物美价廉,所以我直接使用3节AA电池供电。3.4温度采集局部测量温度的关键是温度传感器,温度传感器的开展经历了三个开展阶段:〔1〕、传统的分立式温度传感器,〔2〕、模拟集成温度传感器,〔3〕、智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化方向飞速开展。本设计中选用是DALLAS公司生产的一线式数字温度传感器DS18B20作为温度探测电路的传感器。3.4.1DS18B20数字集成温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改良型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度。这一局部主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口局部组成。数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P1.0口,单片机接受温度并存储。此局部只用到DS18B20和单片机,硬件很简单。(1)特点·独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。·DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。·DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。·适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电。·温度范围-55℃~+125℃,在-10~+85℃时精度为·零待机功耗。·可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃·在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。·用户可定义报警设置。·报警搜索命令识别并标志超过程序限定温度〔温度报警条件〕的器件。·测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。·负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。(2)内部结构DS18B20内部结构如图3.4所示,主要由4局部组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置存放器。图3.4DS18B20内部结构3.引脚功能介绍DS18B20的管脚排列如图3.5所示,DQ为数字信号输入/输出端,GND为电源地,VDD为外接供电电源输入端,各引脚的功能如表3.4所示。表3.4DS18B20引脚功能序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。图3.5DS18B20管脚图4.测温原理DS18B20的测温原理如图3.6所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,而高温度系数晶振的震荡频率随温度变化明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门翻开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度存放器中,减法计数器1和温度存放器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度存放器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数。如此循环直到减法计数器2计数到0时,停止温度存放器值的累加,此时温度存放器中的数值即为所测温度。图3.7中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度存放器值到达被测温度值,这就是减法计数器1减法计数器1斜率累加器减到0减法计数器2预置低温度系数振荡器高温度系数振荡器计数比拟器预置温度存放器减到0图3.6DS18B20的测温原理图另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)——发ROM功能命令——发存储器操作命令——处理数据。5.测温流程图测温流程图如图3.7所示。初始化初始化DS18B20跳过ROM匹配温度变换延时1S跳过ROM匹配读暂存器转换成显示码数码管显示图3.7DS18B20测温流程6.DS18B20供电方式DS18B20可以通过从VDD引脚接入一个外部电源供电,也可以工作于寄生电源模式。在硬件上,外接电源供电是VDD接外部电源,GND接地,I/O与单片机的I/O线相连;用寄生电源供电是VDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。寄生电源模式允许DS18B20工作于无外部电源需求状态,该模式非常适用于远距离测温。本设计中所采用的是外接电源供电。3.4.2测温模块电路原理图测温模块电路原理图如图3.8所示。图3.8测温模块电路原理图3.5浓度采集模块一般选用接触燃烧式烟雾传感器和半导体烟雾传感器。使用接触燃烧式传感器,其探头的阻缓及中毒,是不可防止的问题。阻缓是当在烟雾与空气的混合物中含有硫化氢等含硫物质的情况下,那么有可能在无焰燃烧的同时,有些固态物质附着在催化元件外表,阻塞载体的微孔,从而引起响应缓慢反响滞缓,灵敏度降低。虽然将阻缓的传感器再放回新鲜空气环境中有得到某种程度的恢复的可能,但是如果长期暴露在这样的环境中,其灵敏度会不断下降,导致传感器最终丧失检测烟雾的能力。中毒是如果环境空气中含有硅烷之类的物质时,那么传感器将使催化元件产生不可逆转的中毒,以致灵敏度很快就丧失。当疑心检测环境中存在这些物质时,经常对探头进行标定,是必须且有效的方法。因此,经常对传感器进行标定,是保证其准确性的必要的途径。一般连续使用两个月后应对传感器进行量程校准,这种经常性对传感器的维护,无形中加大了工作人员的工作量,同时增加了报警器的维护本钱。半导体烟雾传感器包括用氧化物半导体陶瓷材料作为敏感体制作的烟雾传感器以及用单晶半导体器件制作的烟雾传感器,它具有灵敏度高,响应快、体积小、结构简单,使用方便、价格廉价等优点,因而得到广泛应用。半导体烟雾传感器的性能主要看其灵敏度、选择性(抗干扰性)和稳定性(使用寿命)。经过比照上述两种烟雾传感器的应用特性,发现半导体烟雾传感器的优点更加突出:灵敏度高、响应快、抗干扰性好、使用方便、价格廉价,且不会发生探头阻缓及中毒现象,维护本钱较低等。因此,本设计采用半导体烟雾传感器作为报警器烟雾信息采集局部的核心。而在众多半导体气体传感器中,本设计选用MQ-2型烟雾传感器,这种型号的传感器不但具备一般半导体烟雾传感器灵敏度高、反响快的优点,而且其抗干扰能力强、寿命长。MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低本钱传感器。3.6A/D转换器A/D转换器的功能是将模拟量电信号转换成数字量。在本设计中,我采用了ADC0832转换器,ADC0832是NS(NationalSemiconductor)公司生产的串行接口8位A/D转换器,通过三线接口与单片机连接,功耗低,性能价格比拟高,适宜在袖珍式的智能仪器仪表中使用。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。芯片具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件连接和处理器控制变得更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。3.6.1A/D转换器的主要参数(1)分辨率:是指A/D转换器可转换成二进制数的位数。(2)转换时间:指从输入启动转换信号开始到转换结束,得到稳定的数字输出量为止的时间其他参数与D/A转换器类似。3.6.2A/D转换器与CPU的接口方法(1)ADC转换好的数据必须经过三态缓冲器件与CPU数据总线相连接〔在芯片内部没有三态输出缓冲器时〕;(2)为了输入正确的转换结果,必须解决好A/D转换器和CPU取数之间的时间配合问题。(3)启动转换信号〔START〕:是由CPU提供应ADC芯片的,在正脉冲的下降沿转换开始;(4)转换结束信号〔EOC〕:一旦启动转换,EOC立即变低,直至转换结束,EOC输出高电平,通知CPU转换已结束;(5)允许输出信号〔OE〕:ADC转换结束后,转换结果存放在输出锁存器中,并没有送入数据总线上。CPU取数时,发出OE信号选通芯片内部三态输出缓冲器将数据输出。3.6.3A/D转换器与CPU之间传送数据的方法(1)延时等待法延时法是利用CPU执行一条输出指令,启动ADC转换,然后CPU执行延时程序,延时时间大于所选用的ADC芯片转换时间,延时结束,CPU执行输入指令,翻开三态门获取ADC转换好的数据。(2)查询法查询法是由CPU来检查EOC信号。当CPU启动ADC芯片开始转换之后,再通过状态端口读取EOC信号,检查ADC是否转换结束。假设转换结束,那么读取转换结果,否那么继续查询。(3)中断法用中断法可提高CPU的利用率,当ADC转换结束,由EOC信号上升沿通过8255A中断控制逻辑向CPU发出中断请求,CPU响应中断在效劳程序中读取结果。3.6.4A/D转换芯片ADC0832及其接口(1)主要性能·8位分辨率,逐次逼近型,基准电压为5V;·5V单电源供电;·输入模拟信号电压范围为0~5V;·输入和输出电平与TTL和CMOS兼容;·在250KHZ时钟频率时,转换时间为32us;·具有两个可供选择的模拟输入通道;·功耗低,15mW。〔2〕外部引脚及其说明ADC0832有DIP和SOIC两种封装,DIP封装的ADC0832引脚排列如图3.9所示。各引脚说明如下:·CS——片选端,低电平有效。·CH0,CH1——两路模拟信号输入端。·DI——两路模拟输入选择输入端。·DO——模数转换结果串行输出端。·CLK——串行时钟输入端。·Vcc/REF——正电源端和基准电压输入端。·GND——电源地。〔3〕单片机对ADC0832的控制原理图3.9ADC0832引脚图一般情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应该为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK提供时钟脉冲,DO/DI端那么使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲到来之前DI端必须是高电平,表示启动位。在第2、3个时钟脉冲到来之前DI端应该输入2位数据用于选择通道功能,其功能见表3.5。表3.5ADC0832配置位输入形式配置位选择通道CH0CH1CHOCH1差分输入00+-01-+单端输入10+11+如表3.5所示,当配置位2位数据为1、0时,只对CH0进行单通道转换。当配置2位数据为1、1时,只对CH1进行单通道转换。当配置2位数据为0、0时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当配置2位数据为0、1时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。到第3个时钟脉冲到来之后DI端的输入电平就失去输入作用,此后DO/DI端那么开始利用数据输出DO进行转换数据的读取。从第4个时钟脉冲开始由DO端输出转换数据最高位D7,随后每一个脉冲DO端输出下一位数据。直到第11个脉冲时发出最低位数据D0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个时钟脉冲输出D0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。图3.10为ADC0832时序图。图图3.10ADC0832时序图4.ADC0832典型应用〔1〕单片机串行口方式0与ADC0832接口:图图3.11ADC0832与单片机接口如图3.11所示,STC89C52的P1.7为片选信号端,TXD是时钟信号输出端,RXD为启动信号,模拟通道选择信号发送端以及A/D转换后输出数据的接收端。ADC0832的时钟频率最高为400KHZ,单片机STC89C52晶振选用4MHZ,在TXD端的输出频率为4MHZ/12=333KHZ,符合要求。ADC0832输出的串行数据共15位,由两段8位数据组成,前一段是最高位在先,后一段是最高位在后,两段数据的最低位共用。只有在时钟的下降沿,ADC0832的串行数据才移出一位。由单片机控制时钟信号进行发送,并由TXD发出,以到达控制ADC0832输出数据位的目的。为了得到一列完整的8位数据,单片机分两次采集含有不同位的数据,再合成一列完整的8位数据。当REN=0时,STC89C52连续一次向ADC0832发送8个时钟脉冲,前3个脉冲发送的是启动位和模拟通道选择位,共计3位;从第4个脉冲下降沿开始,ADC0832发出转换数据D7~D4〔在脉冲上升沿单片机方可接收〕。但由于REN=0,单片机不予接收,丧失D7~D4数据。当REN=1时,单片机又向ADC0832连续发出8个时钟脉冲,其输出转换数据D3,D2,D1,和d0,d1,d2,d3,d4,存入累加器A形成如下结构:累加器Ad4d3d2d1d0D1D2D3MSBLSB上述数据右移3位,并屏蔽掉高3位,暂存于存放器B,得到如下结构:存放器B000d4d3d2d1d0MSBLSB单片机第二次接收,可得到以下数据:累加器AXXXXXd7d6d5MSBLSB以上数据左移5位,并屏蔽低5位,送入累加器A,得到如下结构:累加器Ad7d6d500000MSBLSB进行〔A〕+〔B〕→〔A〕运算,得到如下结构:累加器Ad7d6d5d4d3d2d1d0MSBLSB从而得到一个完整的8位A/D转换结果。〔2〕SPI串行接口方式SPI是MOTOROLA公司推出的一种同步串行外设接口,允许MCU也各个厂家生产工具的标准外围设备直接接口,以串行方式交换信息。SPI使用4条线与主机〔MCU〕连接:串行时钟SCK,主机输入/从机输出数据线SO,主机输出/从机输入数据线SI和低电平有效的从机选择线CS。SPI串行扩展系统的主器件单片机,可以带有SPI接口,也可以不带SPI接口,但从器件必须具有SPI接口。图3.12单片机与ADC0832的SPI方式连接ADC0832具有SPI接口,图3.12为AT89S51与ADC0832的SPI串行接口方式,将DO和DI分别连接于P1.0和P1.1。对CH0通道的模拟信号进行A/D转换,转换结果存于累加器A中。3.7显示模块显示局部我选择的是LCD1602液晶显示器,其原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样就可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动和易于实现全彩色显示的特点,目前已经被广泛应用在便携电脑、数字摄像机和PDA移动通信工具等众多领域。其特点:〔1〕显示质量高由于液晶显示器的每一个点抽到信后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器那样需要不断刷新亮点,因此,液晶显示器的画质高且不会闪烁。〔2〕数字式接口液晶显示器都是数字式的,与单片机系统接口更加简单可靠,操作更加方便。〔3〕体积小、重量轻液晶显示器通过显示屏上的点击控制液晶分子状态来到达显示的目的,在重量上臂相同显示面积的传统显示器要轻的多。〔4〕功耗低相对而言,液晶显示器的功耗主要消耗在内部的电极和驱动IC上,因而耗电量比其他显示器要少的多。字符型模块的性能:·重量轻:<100g;·体积小:<11mm厚;·功耗低:10—15mW;·显示内容:192种字符〔5×7点字型〕;·32种字符〔5×10点字型〕;·可自编8〔5×7〕或许〔5×10〕种字符;·指令功能强:可组合成各种输入、显示、移位方式以满足不同的要求;·接口简单方便:可与8位微处理器或微控制器相联;·工作温度宽:0—50oC·可靠性高:寿命为50,000小时〔25oC〕液晶显示器的根本原理:液晶板上排列着假设干5×7或5×10点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类。3.8报警模块3.8.1蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、机、定时器等电子产品中作发声器件。蜂鸣器有两种,一种是有源蜂鸣器,另一种是无源蜂鸣器。这里的“源”不是指电源,而是指振荡源。也就是说,有源蜂鸣器内部带有振荡源,所以只要一通电就会叫,但其声音频率是不可调的。而无源蜂鸣器内部不带振荡器,所以如果用直流信号那么无法令其鸣叫,必须用2KHz~5KHz的方波去驱动它。本设计中所选用的是无源蜂鸣器,选择无源蜂鸣器的原因有两点:〔1〕无源蜂鸣器因为其内部不带振荡器,所以比有源蜂鸣器廉价。〔2〕无源蜂鸣器声音频率是可控的,可以做出多种声音效果。3.8.2发光二极管(1).发光原理发光二极管是半导体二极管的一种,可以把电能转化成光能,常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。(2).选择使用LED灯报警的原因·使用低压电源:供电电压在6-24V之间。·低耗能:消耗能量较同光效的白炽灯减少80%。·速度快:LED灯响应时间为纳秒级。·无有害金属汞,对环境污染小,价格廉价。3.8.3报警模块电路原理图电路原理图如图3.13所示。图3.13报警模块电路原理图4软件编程系统程序主要包括主程序和多个子程序,例如单片机初始化程序、DS18B20初始化程序、按键扫描处理子程序、显示数据子程序等。4.1主程序流程图系统的主要功能是负责温度和浓度的实时显示,将DS18B20和MQ-2烟雾传感器测量的当前值与默认值相比拟并使系统做出相应响应,以保证实时监控是否有火灾发生。其程序流程见图4.1所示。开开始初始化DS18B20以及MQ-2型烟雾传感器显示当前温度或浓度判断当前温度值或者浓度值超出默认值设定温度和浓度默认值一定时间内是否被终止否是否报警是数据正常蜂鸣器继续报警STC89C52的初始化图4.1主程序流程图5系统仿真5.1仿真软件—KeilC51简介KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编语言、PLM语言和C语言的程序设计,界面友好,易学易用。(1)Kei的µVision4可以进行纯粹的软件仿真(仿真软件程序,不接硬件电路);也可以利用硬件仿真器,搭接上单片机硬件系统,在仿真器中载入工程程序后进行实时仿真;还可以使用µVision4的内嵌模块KeilMonitor-51,在不需要额外的硬件仿真器的条件下,搭接单片机硬件系统对工程程序进行实时仿真。(2)uVision4调试器具备所有常规源极调试,符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能。DDE界面和shift语言支持自动程序测试。5.2系统电路功能仿真利用Proteus绘制仿真图。整个仿真图的绘制过程主要有以下几部组成:首先新建一个Proteus的工程,在元件库里面搜索所需要的元器件,在元器件上单击右键选中,再单击左键对其进行命名和赋值,接着在编辑器左边的一栏中,找出绘制各种需要的线条和其他一些相关的线条和器件,进行节点出是否连接好进行检查,为下一步的系统仿真做准备。画出的仿真电路图如图5.1。图5.1智能火灾报警系统仿真电路图5.3Keiil和Proteus对系统联调Proteus与Keil两个软件可以进行联调,这一强大功能是其他软件无法办到的,仿真时通过KeilC51和Proteus结合实现的。首先,要将KEILC51中调试成功的程序生成.HEX文本并保存,在Proteus中的主芯片STC89C52中导入此文本,即可在Proteus环境中实现系统的仿真。(1)Keil与Proteus联调,如图5.2所示。图5.2联调图(2)无故障正常时,即正常,LCD1602正确显示,测试图如图5.3所示。图5.3正常工作时仿真电路图5.4各状态仿真结果显示根据功能要求分别仿真各种情况下的显示情况,具体如下:按下默认值设置按钮,可更改当前温度和浓度的报警默认值,会出现以下界面,如图5.4。图5.4默认值设置仿真图按下时间设置按钮,便可更改当前时间年月日以及星期,显示结果如图5.5。图5.5显示时间设置仿真图当前实时温度监控可根据增大减小按钮调节,显示如图5.6。图5.6当前实时温度仿真图当前实时浓度监控可滑动调节,显示如图5.7。图5.7当前实时浓度仿真图参考文献[1]徐爱卿.MCS-51/96单片机原理及应用[M].北京:北京航空航天大学出版社,2006.[2]夏继强.单片机实验及实践教程[M].北京:北京航空航天大学出版社,2002.[3]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2003.[4]李刚.新型单片机接口器件与技术[M].西安:西安电子科技大学出版社,2005.[5]余成波.传感器与自动检测技术[M].第2版,北京:高等教育出版社,2009.[6]李瑜芳.传感器原理及其应用[M].成都:电子科技大学出版社,2008.[7]楼顺天,周佳社.微机原理与接口技术[M].北京:科学出版社,2006.[8]李广弟.单片机根底[M].北京:北京航空航天大学出版社,2005.[9]李苑.单片机实用教程[M].北京:清华大学出版社,2006.[10]李广弟.单片机根底[M].第3版,北京:北京航空航天大学出版社,2007.[11]胡辉.单片机原理及应用设计[M].北京:中国水利水电出版社,2005.[12]李学海.PLC单片机实用教程[M].北京:北京航空航天大学出版社,2005.[13]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2001.[14]树杜春.单片机C语言和汇编语言混合编程实例详解[M].北京:北京航空航天大学出版,2006.[15]徐爱钧.单片机高级语言C51应用程序设计[M].北京:电子工业出版社,2002.结束语本文所设计的智能火灾报警系统结构简单、测温度和浓度准确、经济本钱低、比拟人性化,具有一定的实际应用价值。该系统可用于家庭用户的火灾监测报警,也可用于工厂建筑火灾报警监控。不过该系统功能还有待完善,我们可以根据用户的实际情况增加一些其他功能,例如:添加自动灭火功能,或者增加详细实时监控,如具体到每分每秒的温度和浓度情况记录,以便于日后查验与总结。本文最大的缺乏就是由于知识的欠缺性,仅仅完成了系统的仿真而无法完成系统的联网局部功能。致谢经过自己不断的搜索努力以及冯老师的耐心指导和热情帮助,本设计已经根本完成。在这段时间里,老师严谨的治学态度和热忱的工作作风令我十分钦佩,她的指导使我受益非浅在此对老师们表示深深得感谢。通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练,但是我将在以后的工作和学习中继续努力、不断完善。这个设计是对过去所学知识的系统提高和扩充的过程,为今后的学习和开展打下了良好的根底。回首在宁理的学习生活,有苦有乐,感谢很多老师给予我的关心,保护和栽培。四年来和同学朝夕相处,在即将毕业的前夕祝愿大家把这段回忆永远存在心中。由于自身水平有限,设计中一定存在很多缺乏之处,敬请各位老师批评指正。附录A系统硬件原理图附录B源程序代码#include<reg52.h>//#include<stdio.h>//#include<intrins.h>#include"ds1302.h"#include"lcd1602.h"#include"keyscan.h"#include"iodef.h"//#include"mimasuo.h"#include"24c02.h"#include"adc0832.h"//#include"jisuanqi1.h"#include"18b20.h"unsignedcharstate=1;//1代表报警器bitds18is=1;//18b20在不在main(){unsignedchari;JON_OFF();//mms_Ring();LABA=0;InitLcd();//初始化LCDDelayMs(15);//延时用于稳定功能 ADC_Init();Init_DS18B20();ds1302_init();while(1){ Baojingyi();//实时测量} }//初始化adcvoidADC_Init(void){unsignedcharadc_val1; ADC_CSN=1; ADC_CLK=1; ADC_DAT=1;//UART_Init(); while(1) {ADC_CSN=0; DelayUs(250); DelayUs(250); adc_val[0]=adc_getone();//adc读取一位 adc_val[1]=adc_getone();//adc读取一位 adc_val[2]=adc_getone();//adc读取一位 ADC_CSN=1; ADC_CLK=1; //ADC_DAT=1;/* SBUF=adc_val[0]; DelayMs(100); SBUF=adc_val[1]; DelayMs(100); SBUF=adc_val[2]; DelayMs(100); */adc_val1=(adc_val[0]+adc_val[1])&0xfe; if(adc_val1==adc_val[2]) { break;}}}//ADC读取一位unsignedcharadc_getone(void){unsignedcharadc_u=0,adc_a;//临时存放器 for(adc_a=1;adc_a<=8;adc_a++) {ADC_CLK=0;//产生ADC时钟下降沿 adc_u<<=1;//移动 if(ADC_DAT==1) {adc_u|=0x01;//读数据} else {adc_u&=~0x01; }ADC_CLK=1;//时钟上升沿 DelayUs(100); } returnadc_u;}//双路adc测量voidadc_test(void){unsignedlongadc_t1=0,adc_t2=0;//存放采样高8位 unsignedcharadc_ok=0;//记录采样成功 for(;;) {unsignedcharadc_3;//存放采样第9、10位 ADC_CSN=0;//启动采样 DelayUs(250);//延时等待采样成功 DelayUs(150);//延时等待采样成功 adc_1=adc_getone();//adc读取第一位 adc_2=adc_getone();//adc读取第二位 adc_3=adc_getone();//adc读取第三位 ADC_CSN=1;//停止采样 ADC_CLK=1;//时钟恢复 if(((adc_1+adc_2)&0xfe)==adc_3) {//=============================== //转换数据格式,取出10位AD数据 /* adc_1<<=2;adc_2<<=2;adc_3>>=4;adc_2|=(adc_3&0x0003); adc_3>>=2; adc_1|=(adc_3&0x0003);*/ //================================ adc_t1+=adc_1;//存当前采样数据 adc_t2+=adc_2;//存当前采样数据 adc_ok++;//采样成功数+1 } if(adc_ok==5) {//取5次采样平均数 adc_1=adc_t1/5; adc_2=adc_t2/5; break;//跳出整个for循环}}}//报警仪显示的程序voidBaojingyi(void){unsignedcharkey_temp;//键值 key_temp=keyscan(); if(state_1==0) {//气体报警器 unsignedintbai_w,shi_w,ge_w;//显存 unsignedlongadc_3,gas_2;//把二进制转换BCD adc_test();//进行adc测量 adc_3=adc_1;//计算气体的BCD bai_w=adc_3/100; //计算气体百位 shi_w=(adc_3%100)/10;//计算气体十位 ge_w=adc_3%10;//计算气体个位 LCD_write_char(0,1,''); //Spacebar LCD_write_char(1,1,'G'); //G LCD_write_char(2,1,'a'); //a LCD_write_char(3,1,'s'); //s LCD_write_char(4,1,':'); //: LCD_write_char(5,1,bai_w+0x30); //显示气体百位 LCD_write_char(6,1,shi_w+0x30); //显示气体十位 LCD_write_char(7,1,ge_w+0x30); //显示气体个位 LCD_write_char(8,1,''); //Spacebar LCD_write_char(9,1,''); //Spacebar //disp_ds18();//刷新温度 //显示时间的 Time_Now(); if((adc_3>gas_1)||(disp_ds18()>wen_1)) { JON_ON();//继电器闭合 LED1_ON();//LED发亮 mms_Ring(1);//喇叭告警 _nop_(); LED1_OFF();} else {JON_OFF();//解除警报了 _nop_(); LED1_OFF();} if(key_temp==1) {state_1=1;//设置报警 WriteCommand(0x0c);//显示开及光标设置} elseif(key_temp==5) {state_1=2;//设置时间 state_wnl1=2; state_wnl2=4; LCD_wannianli(2);//刷新显示的 WriteCommand(0x80+2);//光标位置的 }}elseif(state_1==1) {unsignedintbai_w,shi_w,ge_w;//显存 unsignedlongadc_3,gas_2;//把二进制转换BCD //增加减少气体告警阈值 if(key_temp==2) {gas_1++; } elseif(key_temp==3) {gas_1--;} elseif(key_temp==6) {wen_1++;} elseif(key_temp==7) {wen_1--;} gas_2=gas_1;//计算告警阈值的BCD bai_w=gas_2/100; //计算告警阈值百位 shi_w=(gas_2%100)/10;//计算告警阈值十位 ge_w=gas_2%10;//计算告警阈值个位 LCD_write_char(0,1,''); //Spacebar LCD_write_char(1,1,'G'); //G LCD_write_char(2,1,'a'); //a LCD_write_char(3,1,'s'); //s LCD_write_char(4,1,''); //Spacebar LCD_write_char(5,1,'S'); //S LCD_write_char(6,1,'e'); //e LCD_write_char(7,1,'t'); //t LCD_write_char(8,1,':'); //: LCD_write_char(9,1,''); //Spacebar LCD_write_char(10,1,bai_w+0x30); //显示气体告警阈值百位 LCD_write_char(11,1,shi_w+0x30); //显示气体告警阈值十位 LCD_write_char(12,1,ge_w+0x30); //显示气体告警阈值个位 LCD_write_char(13,1,''); //Spacebar LCD_write_char(14,1,''); //Spacebar LCD_write_char(15,1,''); //Spacebar //gas_2=gas_1;//计算告警阈值的BCD bai_w=wen_1/100; //计算告警阈值百位 shi_w=(wen_1%100)/10;//计算告警阈值十位 ge_w=wen_1%10;//计算告警阈值个位 LCD_write_char(0,0,''); //Spacebar LCD_write_char(1,0,'T'); //G LCD_write_char(2,0,'e'); //a LCD_write_char(3,0,'p'); //s LCD_write_char(4,0,''); //Spacebar LCD_write_char(5,0,'S'); //S LCD_write_char(6,0,'e'); //e LCD_write_char(7,0,'t'); //t LCD_write_char(8,0,':'); //: LCD_write_char(9,0,''); //Spacebar LCD_write_char(10,0,bai_w+0x30); //显示气体告警阈值百位 LCD_write_char(11,0,shi_w+0x30); //显示气体告警阈值十位 LCD_write_char(12,0,ge_w+0x30); //显示气体告警阈值个位 LCD_write_char(13,0,''); //Spacebar LCD_write_char(14,0,''); //Spacebar LCD_write_char(15,0,''); //Spacebar if(key_temp==1) {state_1=1;//设置报警 WriteCommand(0x0c);//显示开及光标设置 } elseif(key_temp==5) {state_1=2;//设置时间 state_wnl1=2; state_wnl2=4; LCD_wannianli(2);//刷新显示的 WriteCommand(0x80+2);//光标位置的} elseif(key_temp==4) {state_1=0; //测量 WriteCommand(0x0c);//显示开及光标设置 }}elseif(state_1==2) {if(k

温馨提示

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

评论

0/150

提交评论