单片机在消防报警系统中的应用
林
巍,杨林冰
(福州大学数学与计算机科学学院福建福州350002)
摘要】【:介绍了一种以单片机AT89C51单片机,选用集成温度传感器和气体传感器作为探测元件,利用多传感器信息融合技术,当监测到火情信息后,该系统利用程控电话机实现自动拨号报警的功能,迅速向消防指挥中心报告火情信息。并给出了硬件框图和主程序流程图,适合中小型综合性建筑的报警消防。
软件设计关键词】【:单片机;消防报警系统;硬、
1.控制系统简介
消防报警系统是通过对传感器火情信息的检测,使用智能
识别算法实现对火灾的监测。本系统以AT89C51为控制核心,对传感器信号进行分析,当监测到火情信息后,通过火灾监控模块,发出声光报警,并通过程控电话机实现自动拨号报警的功能。
图1消防报警系统
2.系统硬件组成及工作原理
消防报警系统由温度、烟雾、水压信号采集模块、声光报警模块以及单片机与Modem通信模块组成。图中传感器,信号处理器,A/D转换组成数据采集模块,声光报警器、单片机组成声光报警模块,单片机,串行端口扩展芯片,电平转换电路组成与Modem通信模块。
2.1系统采用AT89C51单片机
在AT89C51中集成了4K的只读存储器,采用CHMOS工艺制造,且与MCS一51产品兼容。通过把通用的8位CPU与FlashRAM集成在一个芯片上。它的应用范围广,性能良好,可用于解决复杂的控制问题。2.2温度传感器
由于AD590是电流AD590是一种电流型二端温度传感器。
型温度传感器,他的输出同绝对温度成正比,即1μA/k,而数模转换芯片ADC0809的输入要求是电压量,所以在AD590的负极接出一个10kΩ的电阻R1和一个100Ω的可调电阻W,将电流量变为电压量送入ADC0809。通过调节可调电阻,便可在输出端VT获得与绝对温度成正比的电压量,即10mV/K。2.3气体传感器
煤气等多种气TGS202气体传感器能探测CO2,CO,甲烷、
体,他灵敏度高,稳定性好,适合于火灾中气体的探测。当TGS202探测到CO2或CO时,传感器的内阻变小,VA迅速上升。选择适当的电阻阻值,当气体浓度达到一定程度(如CO浓度达到0.06%)时,VA端获得适当的电压(设为3V)。2.4A/D转换电路
A/D转换电路采用了常用的8位8通道数模转换专用芯片ADC0809。温度、烟雾传感器的输出分别接到ADC0809的IN0和IN1。ADC0809的通道选择地址A,B,C分别由89C51的P0.0~P0.2经地址锁存器74LS373输出提供。当P2.7=0时,与写信
图中ALE信号与ST信号连在一起,号WR共同选通ADC0809。
在WR信号的前沿写入地址信号,在其后沿启动转换。例如,输出地址7FF8H可选通通道IN0,实现对温度传感器输出的模拟量进行转换;输出地址7FF9H可选通通道IN1,实现对烟雾传感
器输出的模拟量进行转换。图中ADC0809的转换结束状态信号EOC接到89C51的INT1引脚,当A/D转换完成后,EOC变为高
在中断服务程序中,将转换好的电平,表示转换结束,产生中断。
数据送到指定的存储单元。2.5声光报警模块
声光报系统电路在单片机P1口的控制下,可以根据不同情况(火灾、异常、故障)发出不同的声光报警信号。声音信号由专用语音芯片提供。通过给语音芯片的S1和S2端输入不同的逻辑电平(00,01,10,11),便可以获得4种不同的声音信号。由单片机的P1.0和P1.1控制。另外该芯片还需要一个选通信号,由P1.3提供。只有当该信号为高电平时,芯片才会根据S1和S2端的控
由P1口的P1.4~制信号发出不同的报警声,否则不会发声报警。
P1.7分别控制4个发光二极管,予以光报警。P1.4~P1.7控制的
黄色(故障信号灯)、红色(异常信号灯依次为绿色(正常信号灯)、
灯)和红色(火灾信号灯)。当这些输出端输出低电平时,对应的信号灯便会发光报警。
图2声光报警模块
2.6单片机与Modem通信模块
当报警系统监测到火灾信息后,除了在火灾现场产生声光报警信号外,还需要将火灾信息按事先预留的电话号码自动拨号通知单位有关人员,并迅速上报消防指挥中心,为此,系统设
串行端口扩计了单片机与Modem通讯模块,该模块由单片机、
展芯片和电平转换电路组成。
图3单片机与Modem通信模块
(下转第125页)
</id>
<many-to-onename="dept"class="sy.hibernate.Dept"lazy="false"><columnname="dept"></column></many-to-one>
<setname="roles"table="UserRole"lazy="false"inverse="false"><keycolumn="userName"/>
<many-to-manyclass="sy.hibernate.Role"column="roleId"/></set></class>
在此映射文件中,描述了持久化类User与表S_user的对应
此关系。其中,id对应表中的主键,并且定义了主键的生成方式。
外,还定义了User与Dept的多对一映射,以及与角色的多对多映射。
3.4持久化操作
Hibernate的核心接口一共有5个,分别为Session、Session-Factory、Configuration、Transaction和Query。通过这些接口,可以对持久化对象进行存取,并可进行事务控制。Hibernate支持多种检索方式,如HQL,QBC,QBE等,而Hibernate查询语言(HQL,HibernateQueryLanguage)是一种面向对象的查询语言,它功能强大且简单易学,是使用最多的检索方式。
下面以查询用户名为ss的用户信息为例,说明Hibernate的持久化操作。
3.4.1.连接数据库,可通过如下语句完成:
SessionFactorysf=newConfiguration().configure().buildSes-sionFactory();
Sessionsession=sf.openSession();3.4.2.利用HQL进行查询
Queryquery=session.createQuery("fromUserasuwhereu.userName=:uname");
//创建一个Query对象
query.setString("uname","ss");//动态绑定参数
Listlist=query.list();//执行查询语句,返回查询结果
3.4.3.对于当前处理的用户user可通过user.getDept().get-DeptName()输出该用户所属的部门名称,而user.getRoles()返回了该用户所属的角色信息,通过每一个角色的getFunctions()方
法可返回该角色的权限信息。
在本例中查询的信息取自系统中的六张表,若直接使用JDBC进行操作,需手工拼写复杂的SQL语句,但使用Hiber-nate,User相关信息的查询以及与对象的关联是由Hibernate根据配置文件自动完成的。3.5使用DAO设计模式
在企业级应用中,一般将业务逻辑分为服务层逻辑和持久化层逻辑。在实现业务层逻辑时,需要尽可能保持层次之间的松散耦合。持久化层逻辑可采用Hibernate作为中间件,并使用DAO设计模式实现。DAO模式是J2EE核心模式中的一种,主要是在业务核心方法和具体数据源之间增加一层,从而减少了两者的耦合。
在具体应用中可将每个持久化类对应一个DAO,它实现了持久化类的创建、查询、更新及删除方法,以及其他访问持久化机制的方法,在相应的DAO实现中,调用HibernateAPI访问持久层。这样只有特定于Hibernate的DAO实现需要依赖Hiber-nateAPI,当改用其他的持久化机制或持久化中间件时,只需创建新的DAO实现,无需更改应用中其他业务逻辑代码。
例如在上述应用中,对于用户类User应定义一个UserDAO类,在该类中,包含获得用户列表、通过用户名获取单个用户信息、根据用户名删除用户、更新用户信息、保存用户信息等通用操作。4.结束语
利用Hibernate对象持久化技术,可以有效地进行对象/关系映射,满足企业管理系统中的对象持久化要求,简化对数据库数据的操作过程,使开发者可以集中精力于业务对象的建模和业务逻辑的开发,并可利用Hibernate提供的缓存策略和并发机制,提高系统的性能。
参考文献:
1.计磊等编著.精通J2EE--Eclipse,Struts,Hibernate,Spring整合应用案例.人民邮电出版社,2006年。
2.杨飞等.Hibernate框架在权限管理系统中的应用.微电子学与计算机,2007,2:P206-208。
3.孙卫琴编著.精通Hibernate--Java对象持久化技术详解.电子工业出版社,2005年。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(上接第121页)
2.7火灾报警系统电源设计:
气体判断子程序、现场采集情况判断子程序、处理、报警判断子
该模块用于向硬件系统中的各个数字器件(如89C51、程序、INT0中断子程序、T0(水GM16C550、ADC0809等)和模拟器件(运算放大器LM741)提供压报警)中断子程序、报警程工作电源。序。
工作原理:市电电源220V输入,通过一个双18V的变压器3.结束输出交流36V电压,再经过桥堆的桥氏整流及一个2200uF的研制的用于小型防火建筑大电容滤波后,桥堆的1、负的直流18V电压的消防报警系统,利用程控电3两端各得到正、
负18V的电压分别加到两个话网作传输媒体,报警具有自(但仍包含有一定的纹波系数),正、
三端稳压器件7815、准确可靠的特点,且其7915的输入端,通过稳压输出得到稳定的动快速、正、负15V电压。为得到数字器件工作所需的工作电压,从7815成本低,家庭及办公室使用安的输入端拉出引线,加到7805的输入端,同样通过稳压得到稳全方便,有广泛的应用前景。现定的直流正5V电压。为减少市电的电网噪声对电源的影响,在场模拟实验表明,本系统安全三个稳压器件的输入和输出端各加一个0.33u和一个0.1u的瓷可靠,误报率低。且由于其体积
高频噪声,增强整个电源的抗干扰能小、操作维护方便、成本低廉介电容,以滤除电网噪声、
力。同时为进一步改善输出电压的纹波系数,在三个稳压器件的等,具有广阔的应用前景。图4消防报警系统
监控程序流程图输出端各再加一个470u的滤波电容。在实际制作中,由于三个
稳压器件的两端存在着几伏的压降,因此应该在7805、参考文献:7815、
1.王福瑞.单片微机测控系统设计大全【M].北京:北京航空航天大学出版7915背后各加一散热片,有利于它们更好的工作,也更安全。
社,2001.2.消防报警系统监控程序设计
M].北京:北京航空航天大学系统复位后,首2.李华.MCS-51系列单片机实用接口技术【消防报警系统监控程序流程图如图4所示。
先要进行初始化,包括对各个控制用寄存器的初始化、设置中断出版社,1999.
何立民.单片机应用技术选编【M].北京:北京航空航天大学出版社,
服务程序的入口地址、设置堆栈等。包括:报警器监控程序设计、3.
1999.
数据采集子程序、火灾判断与报警程序、以及温度判断子程序、
单片机在消防报警系统中的应用
林
巍,杨林冰
(福州大学数学与计算机科学学院福建福州350002)
摘要】【:介绍了一种以单片机AT89C51单片机,选用集成温度传感器和气体传感器作为探测元件,利用多传感器信息融合技术,当监测到火情信息后,该系统利用程控电话机实现自动拨号报警的功能,迅速向消防指挥中心报告火情信息。并给出了硬件框图和主程序流程图,适合中小型综合性建筑的报警消防。
软件设计关键词】【:单片机;消防报警系统;硬、
1.控制系统简介
消防报警系统是通过对传感器火情信息的检测,使用智能
识别算法实现对火灾的监测。本系统以AT89C51为控制核心,对传感器信号进行分析,当监测到火情信息后,通过火灾监控模块,发出声光报警,并通过程控电话机实现自动拨号报警的功能。
图1消防报警系统
2.系统硬件组成及工作原理
消防报警系统由温度、烟雾、水压信号采集模块、声光报警模块以及单片机与Modem通信模块组成。图中传感器,信号处理器,A/D转换组成数据采集模块,声光报警器、单片机组成声光报警模块,单片机,串行端口扩展芯片,电平转换电路组成与Modem通信模块。
2.1系统采用AT89C51单片机
在AT89C51中集成了4K的只读存储器,采用CHMOS工艺制造,且与MCS一51产品兼容。通过把通用的8位CPU与FlashRAM集成在一个芯片上。它的应用范围广,性能良好,可用于解决复杂的控制问题。2.2温度传感器
由于AD590是电流AD590是一种电流型二端温度传感器。
型温度传感器,他的输出同绝对温度成正比,即1μA/k,而数模转换芯片ADC0809的输入要求是电压量,所以在AD590的负极接出一个10kΩ的电阻R1和一个100Ω的可调电阻W,将电流量变为电压量送入ADC0809。通过调节可调电阻,便可在输出端VT获得与绝对温度成正比的电压量,即10mV/K。2.3气体传感器
煤气等多种气TGS202气体传感器能探测CO2,CO,甲烷、
体,他灵敏度高,稳定性好,适合于火灾中气体的探测。当TGS202探测到CO2或CO时,传感器的内阻变小,VA迅速上升。选择适当的电阻阻值,当气体浓度达到一定程度(如CO浓度达到0.06%)时,VA端获得适当的电压(设为3V)。2.4A/D转换电路
A/D转换电路采用了常用的8位8通道数模转换专用芯片ADC0809。温度、烟雾传感器的输出分别接到ADC0809的IN0和IN1。ADC0809的通道选择地址A,B,C分别由89C51的P0.0~P0.2经地址锁存器74LS373输出提供。当P2.7=0时,与写信
图中ALE信号与ST信号连在一起,号WR共同选通ADC0809。
在WR信号的前沿写入地址信号,在其后沿启动转换。例如,输出地址7FF8H可选通通道IN0,实现对温度传感器输出的模拟量进行转换;输出地址7FF9H可选通通道IN1,实现对烟雾传感
器输出的模拟量进行转换。图中ADC0809的转换结束状态信号EOC接到89C51的INT1引脚,当A/D转换完成后,EOC变为高
在中断服务程序中,将转换好的电平,表示转换结束,产生中断。
数据送到指定的存储单元。2.5声光报警模块
声光报系统电路在单片机P1口的控制下,可以根据不同情况(火灾、异常、故障)发出不同的声光报警信号。声音信号由专用语音芯片提供。通过给语音芯片的S1和S2端输入不同的逻辑电平(00,01,10,11),便可以获得4种不同的声音信号。由单片机的P1.0和P1.1控制。另外该芯片还需要一个选通信号,由P1.3提供。只有当该信号为高电平时,芯片才会根据S1和S2端的控
由P1口的P1.4~制信号发出不同的报警声,否则不会发声报警。
P1.7分别控制4个发光二极管,予以光报警。P1.4~P1.7控制的
黄色(故障信号灯)、红色(异常信号灯依次为绿色(正常信号灯)、
灯)和红色(火灾信号灯)。当这些输出端输出低电平时,对应的信号灯便会发光报警。
图2声光报警模块
2.6单片机与Modem通信模块
当报警系统监测到火灾信息后,除了在火灾现场产生声光报警信号外,还需要将火灾信息按事先预留的电话号码自动拨号通知单位有关人员,并迅速上报消防指挥中心,为此,系统设
串行端口扩计了单片机与Modem通讯模块,该模块由单片机、
展芯片和电平转换电路组成。
图3单片机与Modem通信模块
(下转第125页)
</id>
<many-to-onename="dept"class="sy.hibernate.Dept"lazy="false"><columnname="dept"></column></many-to-one>
<setname="roles"table="UserRole"lazy="false"inverse="false"><keycolumn="userName"/>
<many-to-manyclass="sy.hibernate.Role"column="roleId"/></set></class>
在此映射文件中,描述了持久化类User与表S_user的对应
此关系。其中,id对应表中的主键,并且定义了主键的生成方式。
外,还定义了User与Dept的多对一映射,以及与角色的多对多映射。
3.4持久化操作
Hibernate的核心接口一共有5个,分别为Session、Session-Factory、Configuration、Transaction和Query。通过这些接口,可以对持久化对象进行存取,并可进行事务控制。Hibernate支持多种检索方式,如HQL,QBC,QBE等,而Hibernate查询语言(HQL,HibernateQueryLanguage)是一种面向对象的查询语言,它功能强大且简单易学,是使用最多的检索方式。
下面以查询用户名为ss的用户信息为例,说明Hibernate的持久化操作。
3.4.1.连接数据库,可通过如下语句完成:
SessionFactorysf=newConfiguration().configure().buildSes-sionFactory();
Sessionsession=sf.openSession();3.4.2.利用HQL进行查询
Queryquery=session.createQuery("fromUserasuwhereu.userName=:uname");
//创建一个Query对象
query.setString("uname","ss");//动态绑定参数
Listlist=query.list();//执行查询语句,返回查询结果
3.4.3.对于当前处理的用户user可通过user.getDept().get-DeptName()输出该用户所属的部门名称,而user.getRoles()返回了该用户所属的角色信息,通过每一个角色的getFunctions()方
法可返回该角色的权限信息。
在本例中查询的信息取自系统中的六张表,若直接使用JDBC进行操作,需手工拼写复杂的SQL语句,但使用Hiber-nate,User相关信息的查询以及与对象的关联是由Hibernate根据配置文件自动完成的。3.5使用DAO设计模式
在企业级应用中,一般将业务逻辑分为服务层逻辑和持久化层逻辑。在实现业务层逻辑时,需要尽可能保持层次之间的松散耦合。持久化层逻辑可采用Hibernate作为中间件,并使用DAO设计模式实现。DAO模式是J2EE核心模式中的一种,主要是在业务核心方法和具体数据源之间增加一层,从而减少了两者的耦合。
在具体应用中可将每个持久化类对应一个DAO,它实现了持久化类的创建、查询、更新及删除方法,以及其他访问持久化机制的方法,在相应的DAO实现中,调用HibernateAPI访问持久层。这样只有特定于Hibernate的DAO实现需要依赖Hiber-nateAPI,当改用其他的持久化机制或持久化中间件时,只需创建新的DAO实现,无需更改应用中其他业务逻辑代码。
例如在上述应用中,对于用户类User应定义一个UserDAO类,在该类中,包含获得用户列表、通过用户名获取单个用户信息、根据用户名删除用户、更新用户信息、保存用户信息等通用操作。4.结束语
利用Hibernate对象持久化技术,可以有效地进行对象/关系映射,满足企业管理系统中的对象持久化要求,简化对数据库数据的操作过程,使开发者可以集中精力于业务对象的建模和业务逻辑的开发,并可利用Hibernate提供的缓存策略和并发机制,提高系统的性能。
参考文献:
1.计磊等编著.精通J2EE--Eclipse,Struts,Hibernate,Spring整合应用案例.人民邮电出版社,2006年。
2.杨飞等.Hibernate框架在权限管理系统中的应用.微电子学与计算机,2007,2:P206-208。
3.孙卫琴编著.精通Hibernate--Java对象持久化技术详解.电子工业出版社,2005年。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(上接第121页)
2.7火灾报警系统电源设计:
气体判断子程序、现场采集情况判断子程序、处理、报警判断子
该模块用于向硬件系统中的各个数字器件(如89C51、程序、INT0中断子程序、T0(水GM16C550、ADC0809等)和模拟器件(运算放大器LM741)提供压报警)中断子程序、报警程工作电源。序。
工作原理:市电电源220V输入,通过一个双18V的变压器3.结束输出交流36V电压,再经过桥堆的桥氏整流及一个2200uF的研制的用于小型防火建筑大电容滤波后,桥堆的1、负的直流18V电压的消防报警系统,利用程控电3两端各得到正、
负18V的电压分别加到两个话网作传输媒体,报警具有自(但仍包含有一定的纹波系数),正、
三端稳压器件7815、准确可靠的特点,且其7915的输入端,通过稳压输出得到稳定的动快速、正、负15V电压。为得到数字器件工作所需的工作电压,从7815成本低,家庭及办公室使用安的输入端拉出引线,加到7805的输入端,同样通过稳压得到稳全方便,有广泛的应用前景。现定的直流正5V电压。为减少市电的电网噪声对电源的影响,在场模拟实验表明,本系统安全三个稳压器件的输入和输出端各加一个0.33u和一个0.1u的瓷可靠,误报率低。且由于其体积
高频噪声,增强整个电源的抗干扰能小、操作维护方便、成本低廉介电容,以滤除电网噪声、
力。同时为进一步改善输出电压的纹波系数,在三个稳压器件的等,具有广阔的应用前景。图4消防报警系统
监控程序流程图输出端各再加一个470u的滤波电容。在实际制作中,由于三个
稳压器件的两端存在着几伏的压降,因此应该在7805、参考文献:7815、
1.王福瑞.单片微机测控系统设计大全【M].北京:北京航空航天大学出版7915背后各加一散热片,有利于它们更好的工作,也更安全。
社,2001.2.消防报警系统监控程序设计
M].北京:北京航空航天大学系统复位后,首2.李华.MCS-51系列单片机实用接口技术【消防报警系统监控程序流程图如图4所示。
先要进行初始化,包括对各个控制用寄存器的初始化、设置中断出版社,1999.
何立民.单片机应用技术选编【M].北京:北京航空航天大学出版社,
服务程序的入口地址、设置堆栈等。包括:报警器监控程序设计、3.
1999.
数据采集子程序、火灾判断与报警程序、以及温度判断子程序、