1、目录设计任务书 .11 引言22 报警器硬件设计 22.1硬件组成22.2单片机控制模块3 2.2.1AT89C51的简介 3 2.2.2单片机接线32.3 数码显示电路42.4声光报警电路42.5数据检测电路5 2.5.1烟雾检测模块5 2.5.2红外探测模块5 2.5.3温度采集模块62.6原理图及分析73软件设计93.1主体设计思路93.2主程序流程图104结束语11参考文献 11程序清单 121、引言我国的火灾自动报警控制系统经历了从无到有、从简单到复杂的发展过程,其智能化程度也越来越高,灵敏度也越来越高1。目前国内厂家多偏重用于大型仓库、商场、高级写字楼、宾馆等场所大型火灾报警系统的
2、研发,他们采用集中区域报警控制方式,其系统复杂、成本较高2。本系统则主要应用于居民住宅、机房、办公室等场所的小型防火报警器。廉价实用且可在火灾发生的初期就检测到并且发出声光报警,同时可实时显示该场所的环境温度3。2、报警器硬件设计设计原理:单片机巡回检测温度、红外辐射、烟雾并显示各自的值,当以上一项发生异常时系统认为发生了火灾,发出声光报警信号,直到异常被排除,系统才自动停止报警。2.1硬件组成 AT89C51控制模块温度采集模块红外检测模块烟雾探测模块声光报警模块数码管显示模块 图2-1硬件组成如图2-1,本系统主要由单片机控制模块、温度采集模块、烟雾探测模块、红外探测模块、数码管显示模块、
3、声光报警模块。2.2单片机控制模块 因本系统要求实时显示检测值,涉及到一些计算及BCD转化的处理,同时考虑到功耗等问题,综合考虑后选择AT89C51作为本系统的中央控制器。 2.2.1 AT89C51的简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的
4、MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51单片机 为很多嵌入式控制系统提供了一种灵活性高且价廉的方案42.2.2单片机接线图2-2 单片机接线如图2-2所示,晶振电路和复位电路。其中P0口用于数码管的显示。P1口用于传感器的数据采集。P2.0、P2.1、P2.7、P3.6、P3.7用于8255的片选。P2.2、P2.3用于控制声光报警。P2.4、P2.5、P2.6连接开关控制数码管显示。P3.0、P3.1、P3.2作为AD0808的控制端,P3.3、P3.
5、4用于ADC0808的地址端。2.3 数码显示电路图2-3 数码显示电路连接图本系统采用六位数码管来显示传感器采集数值,其接线如图2-3所示其中8255中PA口控制段选,PB口控制位选,数码管采用共阳接法。2.4声光报警电路因为本系统是应用在办公室、机房等小单位的防火场所,所已采用发光二及管电路及蜂鸣电路作为报警电路,其接线如图2-4所示 图2-4 声光报警电路2.5数据检测电路由于条件有限,在仿真过程中,有滑动变阻器以及直流电压表仿真模拟量,从而代替温度,烟雾以及红外采集的模拟量。如图2-5所示。而实际的数据采集电路在后面有介绍。图2-5 数据采集电路2.5.1烟雾检测模块 火灾中气体烟雾主
6、要是CO2和CO,TGS202气体传感器能探测到CO2,CO甲烷,煤气等多种气体,他灵敏度高,稳定性好,适合于火灾中奇特的探测。如图2-5所示,当TGS202探测到CO2或者CO时,传感器的内阻变小,VA迅速上升。选择适当的电阻阻值,使得当气体浓度达到一定程度(入CO浓度达到0.06%)时,VA端活的适当的电压(设为3V)。电路如图2-6。图2-6 TGS202检测电路2.5.2红外探测模块本系统的红外检测模块采用单光束反射取样式光电传感器ST178,该传感器是由南平旭光电子科技有限公司开发生产的主要应用于物体运动方向及正反转转速、行程测量等。其在本系统中的应用原理是,光电传感器接收孔探测到火
7、焰辐射的较强烈的红外线时,接收管导通输出一定的电压,辐射越强烈,则3脚输出的电压也越大,应此把3脚接与比较器LM339,当辐射达到一定时比较器输出高电平,当在无红外辐射或辐射较少时,比较器输出底电平,并且ST178对人体辐射的红外线波长不敏感,对火焰辐射的红外线可灵敏检测,价格实惠,因此本系统采用该传感器作为红外敏感元件。其检测电路如图2-7所示。图2-7 ST178检测电路2.5.3温度采集模块本系统要求要实时显示环境温度当温度高于常态时作出声光报警,为了能够更准确更快速地采集到环境温度,采用AD590温度传感器。AD590是美国模拟器件公司的电流输出型温度传感器,供电电压范围为330V,输
8、出电流223A(-50)423A(+150),灵敏度为1A/。当在电路中串接采样电阻R时,R两端的电压可作为喻出电压。注意R的阻值不能取得太大,以保证AD590两端电压不低于3V。AD590输出电流信号传输距离可达到1km以上。作为一种高阻电流源,最高可达20M,所以它不必考虑选择开关或CMOS多路转换器所引入的附加电阻造成的误差。适用于多点温度测量和远距离温度测量的控制。其检测电路如图2-8所示。图2-8 AD590检测电路2.6原理图及分析原理图如图2-9所示:图 2-9原理图分析:(1)、当开关1(P24)按下时,数码管显示的是温度值。此温度可调范围为0255,当温度超过50时,开始报警
9、;仿真图如图2-10所示。图 2-10 温度仿真图(2)、当开关2(P25)按下时,数码管显示的是烟雾值。此烟雾浓度可调范围为0510,当浓度超过100时,开始报警;仿真图如图2-11所示。图2-11 烟雾仿真图(3)、当开关3(P26)按下时,数码管显示的是辐射值。此辐射可调范围为0765,当辐射超过200时,开始报警;仿真图如图2-12所示。图2-12 辐射仿真图3.软件设计3.1主要设计思路主程序循环判断以上三项是否发生异常,当有一项异常时,则系统认为发生了火灾,发出声光报警,直到异常被排除。3.2主程序流程图如下所示初始化定时器0但是不打开中断开始关闭报警器温度开关是否关辐射开关是否关
10、烟雾浓度开关是否关选中ADC0808的IN_0通道,进行温度采集选中ADC0808的IN_2通道,进行烟雾采集选中ADC0808的IN_1通道,进行浓度采集温度值是否大于50浓度值是否大于100?浓度值是否大200?声光报警声光报警声光报警数码管显示浓度值数码管显示辐射值数码管显示温度值结束YYYNNNNNNYYY图3-1 主程序图4.结束语经过这次课程设计,我明白了一项设计的完成,必须要严谨的思路,并且要按部就班地去做,不骄不躁,要细心要认真,一步步地去调试,不断修改电路以及程序。最终一定会收获颇丰。学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识
11、在实际应用中其实并不是十分理想,各种参数都需要自己去调整。偶尔还会遇到错误的资料现象,这就要求我们应更加注重实践环节。此次课程设计是对大学三年所学知识的一次运用和检阅,同时对自学能力提出很高的要求,所以平时的学习离开思考,就是严重的错误,我们学习不应该有偏科现象,各方面的知识都应该要接触,这样做才能为毕业设计打下基石。最后,衷心地感谢我的同学。在两周的设计过程中,你们给了我很大的帮助和细心的指导。参考文献1 火灾自动报警系统设计规范-GB50116-98 中华人民共和国建设部 施行日期:1999年6月1日2 战卫东谈谈火灾统计 山东消防2003年9期-32-32页3 胡显华 火灾探测器误报警的
12、原因及改进方法电脑开发与应用2007年20卷11期60-624 李广弟单片机基础M北京:北京航空航天大学出版社,19945 陈海宴51单片机原理及应用M.北京:北京航空航天大学出版社,2010年7月6 谭浩强 C程序设计M. 北京:清华大学出版社,2005年程序清单:#include#include#include#include#define uint unsigned int#define uchar unsigned charuchar code tab16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6
13、,0xa1,0x86,0x8e;/7段共阳数码管编码表/*定义端口*/sbit START=P30;sbit EOC=P31;sbit OE=P32;sbit kait=P24;sbit kaiy=P25;sbit kaif=P26;sbit RED=P22;sbit SOUNDER=P23;sbit LEDG=P22;sbit LEDR=P23;sbit ADDA=P33;sbit ADDB=P35;sfr led=0x80;/定义特殊功能寄存器,地址是0x80/*定义变量*/uchar xdata duan _at_ 0x7cff;/PAuchar xdata wei _at_ 0x7df
14、f;/PBuchar xdata con _at_ 0x7fff;/控制字uint gw,sw,bw;uint str6;uint aa,count,tt,flag;uint temp2,temp0,temp1,temp;uchar t,num;/*延时程序*/void delay(uint i)uint j;for(j=0;j=i;j+);/*数据采集*/void display()/显示时间六位uint count;con=0x80; duan=0xff;/关闭数码管显示,防止显示跳变干扰/duan=str1;/要显示的第一位送8255PB口wei=0x01;/8255PA0=0,数码管0
15、显示for(count=0;count200;count+);/延时,大约200us是数码管保持足够的亮度同时亮灭时不被duan=0xff;/duan=str2;/要显示的第二位送8255PB口人眼分辨完成动态扫描wei=0x02;/8255PA1=0,数码管1显示for(count=0;count200;count+);duan=0xff;/duan=str3;/要显示的第三位送8255PB口wei=0x04;/8255PA2=0,数码管2显示for(count=0;count200;count+);duan=0xff;duan=str4;/要显示的第四位送8255PB口wei=0x08;/
16、8255PA3=0,数码管3显示for(count=0;count200;count+);duan=0xff;duan=str5;/要显示的第五位送8255PB口wei=0x10;/8255PA4=0,数码管4显示for(count=0;count200;count+); duan=0xff;duan=str6;/要显示的第六位送8255PB口wei=0x20;/8255PA4=0,数码管5显示for(count=0;count200;count+);void shujuxianshi()str4=tabtemp/100;str5=tab(temp%100)/10;str6=tab(temp%
17、100)%10;/*温度采集*/void wenducaiji()START=0;OE=0;START=1;START=0;if(EOC=1)/查询0808转换结束信号OE=1;delay(20);temp0=P1;OE=0;/*烟雾浓度采集*/void yanwunongducaiji()START=0;OE=0;START=1;START=0;if(EOC=1)/查询0808转换结束信号OE=1;delay(20);temp1=P1;temp1=temp1*2;OE=0;/*辐射采集*/void fushecaiji()START=0;OE=0;START=1;START=0;if(EOC
18、=1)/查询0808转换结束信号OE=1;temp2=P1;temp2=temp2*3;OE=0;/*定时器0中断*/void timer0() interrupt 1TH0=(65536-1000)/256;TL0=(65536-1000)%256;SOUNDER=SOUNDER;RED=RED;/*主函数*/void main()TMOD=0x01;TH0=(65536-1000)/256;TL0=(65536-1000)%256;EA=1;ET0=1;RED=1;SOUNDER=1;while(1)if(kait=0)ADDA=0;ADDB=0;wenducaiji();temp=temp0;if(temp50)TR0=0;RED=1;delay(10);elseTR0=1;delay(10);else if(kaiy=0)ADDA=1;ADDB=0;yanwunongducaiji();temp=temp1;if(temp100)TR0=0;RED=1;delay(10);elseTR0=1;delay(10);else if(kaif=0)ADDA=0;ADDB=1;fushecaiji();temp=temp2;if(temp200)TR0=0;RED=1;delay(10);elseTR0=1;delay(10);shujuxianshi();display();