摘 要
传统的公共场所中火灾消防应急疏散系统,是在场所中建设指定位置的应急逃生通道和安全出口指示灯以及火
灾报警器的告警相配合,令场所中的群众进行有序疏散,但往往现实情况下,群众的危机风险意识不高,以及消防
安全知识的不足会导致疏散效果难以与理想的疏散方案达成一致。
本设计应用于智能疏散,所谓智能疏散就是通过先进的技术性能手段,打破传统疏散系统的瓶颈,通过下位机
与上位机的信号通讯,实时的跟踪场所中火情信号和相关数据,下位机主要采用51系列单片机所形成的控制电路,
由STC89C52构成的最小系统电路,烟雾检测电路,温度检测电路,风向检测电路、液晶显示电路、声光报警电路、
RS485通讯传输电路组成。消防主机上位机通过RS485传输过来的灾情信号及时启动最佳应急疏散方案,并通过相应
媒介展现于现场群众,使现场群众有序根据预定疏散指示路线来进行逃生。
关键词:应急疏散;火灾报警;信号传输;STC89C52单片机;RS485通讯
第1章 绪论
1.1 选题背景、研究目的及意义
1.1.1 选题背景
近些年来,因火灾造成的人民生命和财产损失的事件时有发生,对于火灾的防控情况不容乐观。除了对于火灾
隐患的排查和人们防灾减灾意识提升之外,利用科技手段对火灾进行实时监控报警并通过智能疏散指示通道来疏散
受灾人群十分必要而且非常有效。特别是人员密集场所,发生的火灾事故不计其数,而由于人员慌乱,拥挤而阻塞
疏散通道是导致人员伤亡且是灾难发生的重要因素,内外利用科技手段对大型企事业单位及商场等公共场所进行火
灾实时监控报警的系统已经有一定应用,但是火灾中的应急疏散环节却是疏散人群逃生的重中之重。对于建筑物及公共场所的火灾频发以及报警系统难以有效解决人员疏散的相关问题。提出通过单片机来实现烟雾火灾报警并给予
显示疏散指示,使受灾人群快速逃离的课题是具有积极意义的。随着现代社会公众的消防安全意识的提升,以及国家
大力投资建设消防设施,楼层内安装火灾报警和烟雾检测系统等手段,实现及时探测火情,及时疏散逃生,大大保
障了人民群众的生命财产安全。
火灾相较于地震、泥石流等次生灾害,发生的概率很大,用火过程中的疏忽乃至输电线路短路以及高负荷都极
容易酿成大型火灾事故。在1980-1989年,中国因火灾造成的损失达到3.2亿元;1990-1999年间,随着我国经济总量
的增大,由火灾造成的损失增加到10.2亿元;特别是1994年11月27日的辽宁阜新歌舞厅火灾以及12月8日的克拉玛依
市友谊馆特大火灾事故,总共造成了500多人死亡,其中200多位是年仅10岁左右的孩子,消防设施安装措施不到
位,逃生通道形同虚设是造成惨剧发生的罪魁祸首。进入21世纪后,由于火灾造成的经济损失更是以每年惊人的速
度增长。虽然火灾造成的损失极为惨重,但相比于自然灾害,火灾的防御和可控性较高,除了社会公众提高相应的
消防安全意识和掌握逃生技能,配备高科技的火灾报警及人群智能疏散系统设备,就能够大大减少和避免火灾事故
的发生。
1.1.2 研究目的及意义
与传统的火灾疏散系统相比,疏散指示为固定的疏散方向,对于火灾发生的位置不同,预先设置的疏散方案往
往无法有效组织密集的人群进行疏散。特别当火灾事故发生时,现场充满了多种不确定性,火场中的电源往往容易
切断,如果不提前探测火灾的预警浓度和检验温度设置预警,则无法在火灾事故发生前组织人群有序撤离。而当人
民在黑暗的火场环境中逃生,还会大大增加二次事故的发生,因此,设计一种检测烟雾浓度和室内温度的火灾报警
系统以及能够为人员进行疏散指示的智能疏散动态指示灯,则为火场中的人员逃生起到了举足轻重的作用。它为火
场内的群众在第一时间内接收报警信息,减少人员的疏散时间带来了积极的成效。
1.2 国内外研究现状
1.2.1 国内研究现状
我国在火灾报警系统上研究的过程较为短暂,1986年公安部天津消防研究所介绍国内火灾消防方面的研究成
果,“九五”期间我国开发了地下商场人员疏散模型 FEgree;1989年中国科学技术大学火灾科学国家重点实验室成
立,并率先提出场-区-网复合结构的火灾疏散系统,并利用体积守恒方法进行改进[1]。但由于近些年来经济的快速
发展和尖端科技领域的不断创新,科技水平不断提高,由市场驱动的火灾报警系统之类的新兴产业正蓬勃发展。火
灾报警系统的研究阶段分为初步探索,引进国外的相关产品照葫芦画瓢,现阶段自主研制,即便研究此类项目的时
间远远少于其他国家,技术水平却与外国相当,并且根据我国市场需求特色,消防设施的研发部门正在有针对性的
开发适合我国国情的火灾报警系统。
《照明工程学报》上写到有关于消防指示灯的文章。文章指出智能化,可通信化的消防指示灯是现行消防指示
灯具的主要发展趋势,可将其归为网络型智能消防指示灯的一类,智能化通常是以单片机为基础,应用智能化的软
件技术,在不更改硬件的情况下具备较大的升级能力以及适用性。网络化消防指示灯的研制提高了灯具的可靠性以
及稳定性,是未来消防指示灯发展的主流。
《消防技术与产品信息》期刊中也提到了火灾报警系统中,火灾探测器随时监视着周围的环境情况,是系统的
“感觉器官”,火灾报警控制器是系统的躯体和大脑,担负着为火灾探测器提供稳定工作电源的任务,监视着探测
器以及系统自身的工作状态。接受、处理、转换火灾探测器所输出的报警信号,进行声光报警并给予指示。
1.2.2 国外研究现状
在国外,特别是欧洲和北美地区经济发展起步较早,科技发展十分迅速,于是在智能疏散方面的研究比国内时
间长,像电子烟感传感器于1940年左右在瑞士诞生。而在一些工业化先进的国家,人们的安全防范意识推动他们在
火灾的戒备,救援以及善后等方面都游刃有余,这样在防控火灾事故上构建的框架十分健全。与此同时,相应的职
能部门会耗费巨资应用于配备火灾消防用品,以及消防员的专业技能经验的积累,现存资源的管理检修等。一些信
息化及工业化程度较高的国家率先将每个火灾应对的基础部分改造为特定的传感器模块,并且将火灾报警终端的信
号收入与电脑网络建立联系,从而可以对火灾自动进行监测,报警,及处置。这些火灾报警及处置系统广泛用于火
灾隐患集中,消防设施脆弱的空间,并且使用特制的系统,不仅成本较高价格昂贵,而且兼容性较差,对于系统维
护保养人员要定期进行专业培训,不利于民用场合。
国外的火灾报警疏散系统除了功能强大之外,其产品种类和结构创新型也较多,其相关研究项目介绍如下:
(1)日本大范围使用的疏散指示系统是是一种闪光的移动式疏散指示系统,可通过火灾自动报警信息进行操作,
结合了哈斯效应的声音进行疏散。
(2)英国利兹大学研究出一项指定平面中操作声音指示疏散的辅助寻路系统,它不光对于视力正常的人达到其最
佳的疏散效果,并且对于视力遭受损伤的人也同样予以辅助。出口声标的功能与辅助系统结合,帮助人们找寻疏散
出口[2]。
(3)美国最近一项有关应急疏散指示系统是通过依靠传感器检测火灾详情,然后借助和它连接的信号输入模块接
受输送的无线电火灾信号的强度来改变指示灯的亮度,来实现对逃生路线的指示的功能,使火场人员及时逃生,到
达安全位置。
第2章 总体方案设计
本章将对基于51单片机的智能疏散系统设计做出一个初步的方案选择与设计思路,并根据任务书中的相关要求
开展多种模块的研究设计与分析,力求方案设计达到科学、合理、应用水平突出的特点。
2.1 设计任务
该系统的设计目的是通过制造一种以单片机作为主控芯片的对现场温度烟雾情况做出监测,并能够准确的探测
火灾来源并输出报警信号的下位机系统,且可以实现与上位机进行有效距离传输火情信号,供上位机检测分析并输
出疏散方案报告。下位机系统能够实现的主要功能如下所示:
1)能够通过灯光颜色自由切换安全与危险状态下的指示。
2)液晶显示模块可以显示当前场所下的烟雾浓度与温度情况。
3)当烟雾传感器检测到环境中的烟雾浓度高出限定阈值触发声光报警并传输信号。
4)当温度传感器检测到环境中的温度高出限定阈值触发声光报警并传输信号。
5)风向传感器检测起火来源实现对来源方向进行指示,将检测信号传输至上位机。
6)通过三只独立按键对温度与烟雾传感器的检测浓度报警阈值进行设定。
7)通过RS485通讯接口与上位机系统建立通讯连接。
2.2 设计思路
本设计系统的总体方案流程概述:下位机系统接口上电后,安全指示灯点亮,通过三位独立按键预置烟雾浓度
风险阈值与温度预警阈值,当火情信号输入时,烟雾传感器、温度传感器与风向传感器同时动作,并通过液晶显示
屏进行数据风向实时跟踪,当火情达到火灾风险预警阈值时,触发声光报警模块,安全指示灯熄灭,疏散报警指示
灯点亮,并进行报警声音警告通报,此时的下位机各模块的动作信号经过RS485通讯接口传递给上位机,使上位机根
据下位机的信号对火灾现场实施最佳的疏散方案。下位机系统主要包含以下几种模块:
1)主控芯片:STC89C52单片机,控制整个下位机系统运行。
2)声光报警模块:疏散指示灯颜色切换与蜂鸣器报警。
3)A/D转换模块:将烟雾与风向传感器分析的模拟信号转换为数字信号供主控芯片进行识别并处理。
4)键盘预置模块:依据现场环境灵活设定烟雾传感器与温度传感器所监测到的数据疏散报警阈值。
5)显示模块:在液晶屏中显示此时此刻区域内的烟雾浓度与温度,并且显示按钮所预置的临界值。
6)风向检测模块:安装聚碳式风向传感器检测火源烟雾来源方向,将检测信号传递至上位机使其选择最佳疏散方
向。
7)烟雾检测模块:安装气敏烟雾传感器检测当前环境的烟雾浓度,烟雾浓度达到疏散必要预警阈值时,将检测信号
传递至上位机系统。
8)温度检测模块:安装温度传感器检测当前环境的温度,温度达到疏散必要预警阈值时,将检测信号传递至上位机
系统。
9)通讯传输模块:安装RS485传输接口,主要任务是将下位机所检测到的各项火情信号传输至消防主机上位机系统。
10)电源模块:为下位机系统提供必要的工作电压与电流。
2.3 主要器件的选择
本节是对基于单片机的智能疏散系统进行所要安装的相关元件进行选择,通过两种或三种的元件选择方案进行
对比,选择最优的设计方案。
2.3.1 主控芯片单片机型号选择
方案一:主控制芯片选择STM32系列单片机。外围电路包含复位电路、晶振电路以及电源电路等[3],复位电路
可以通过手动按键复位和上电复位。STM32引脚引脚输入电平为2.0—3.6V。工作主频率为48MHz,主要片内资源十分
丰富,片内内置高速存储器。内含多种I\O口和多个通信插口。带有3.3V稳压电路,系统板性能强,功耗低,灵巧且
廉价的优点。
方案二:控制芯片AVR系列单片机。硬件结构采用8位机与16位机的折中策略。在软/硬件成本、运行快慢、配置
等多个层次达到最佳,且此类单片机具有物美价廉的特点。
AVR单片机内的I/O线线内装配能够自定义的上拉电阻,能够专门设置输入/输出、高电阻输入、控制能力强的优
势,令I/O口的资源得以敏捷,功效强硬,足够进行有效利用。具有多种省电休眠的模式,可以在5~1.8V的宽电压运
行,抗干扰能力强,能够降低一般8位机的软件抗干扰设计工作量和硬件的使用量。
方案三:使用STC89C52单片机。是一款具有低功耗、且价格低廉、使用十分简单的新型单片机。其代码指令与
传统的51系列单片机完全兼容,它是40引脚双列直插式芯片,工作电压为3.3V~5.5V。片内集成4K字节ROM和256字节
RAM,含有两个定时\计数器。采样速率可达48MHz,具备32个普遍使用的I/O口。可采用系统或应用的算法编辑。
方案选择:STC89C52可以满足系统整合,普及性十分广泛,和别的元件设备等配合的较好,与AVR和STM32相比
其成本低廉,有较强的抗干扰能力和超低功耗、价格低廉等优点。综上而言,STC89C52作为该设计的主控芯片脱颖
而出。该芯片的实物图如图2-1所示:
图2-1 STC89C52单片机
2.3.2 烟雾传感器的选择
方案一:使用离子式烟雾传感器。它是目前较为先进的一种敏锐察觉烟气的传感器类型,当传感器所处环境无
烟雾的情况下,传感器里边的电离室处于稳定状态,其电流和电压维持恒定,一旦环境中有烟雾产生,烟雾产生的
物质会进入外电离室,会干扰由于电离产生的正离子和负离子的正常运动方向,所以其电流和电压无法维持稳定状
态,损害传感器电离室的里外支撑,则传感器自带的无线发送装置会产生故障信息,将信号输送到与其距离很大的
测试主机,实现告警。
方案二:使用光电式烟雾传感器,它的运行方式是基于红外线发射管及红外线接收管。但却与普通红外线对管
存在差异,此传感器有减光式和散光式。
方案三:使用气敏式烟雾传感器,主要是针对相应的气体探测。它主要包括半导体式、接触燃烧式和电化学式
几类气敏传感器。但大部分应用半导体式气敏传感器,主要是对一氧化碳气体、瓦斯气体、煤气、氟氯昂和酒精等
气体的检测。半导体式气敏传感器是将相应气体与其浓度所涉及到的数据来生成电信号,并且按照这些电信号的强
度,判断气体在传感器所处环境中的存在情况信息,从而达到检测、监控、报警等目的。
方案选择:方案三在实用性以及经济性方面占有很大优势,且应用领域的范围较广,广泛应用于对可燃性气体
的检测,包括烷类物质,特别是燃气报警器等设备,十分灵敏,检测精度较其他几种传感器较为精确。MQ气敏烟雾传
感器实物图如图2-2所示:
图2-2 MQ气敏烟雾传感器
2.3.3 温度传感器的选择
方案一:采用K型热电偶温度传感器,它是常用的高温度范围测量的温度传感器,具有性能稳定、产生热电势较
高,热电特性线性好,复现性好的诸多特点,适用于测量0℃~1300℃的范围内液体蒸汽和气体介质以及固体表面的
温度。
方案二:采用LM35温度传感器,它是普遍用到的模拟量温度传感器,它选取电源反接保护,则以0℃作为起点输
出,它能够将测量的温度信号转变成电压信号输出到信号放大电路,与温度值对应的电压信号经放大后输出至A/D转
换电路,把电压信号转化成数字量送给单片机系统,单片机对其数字量分析处理并最终在LCD1602液晶屏上将温度数
据有序的予以显示。
方案选择:本系统主要采用寄生电源供电的方式,考虑到实际场合中火灾发生后高温的影响,为了保证火灾的
燃烧对测得的温度精密程度不产生干扰,需要采用温度调整范围大,测量可靠性强的温度传感器。K型热电偶可与测
量目标近距离接触,这样便防止了中间介质对其温度测量的影响。适合通过特定的放大采样和模数转换的芯片直接
与其连接,准确的传导检测信号并测量出相应的温度值,十分简便快捷。故方案一符合本系统设计。K型热电偶温度
传感器如图2-3所示。
图2-3 K型热电偶温度传感器
2.3.4 风向传感器的选择
方案一:使用电磁式风向传感器,采用电磁原理设计,类似此原理的设计理论比比皆是,因而从整体观察上截
然不同。当今,一些传感器装配陀螺仪芯片或电子罗盘作为主要组件,这意味着测量误差大幅度缩短,其准确性迈
上新台阶。
方案二:使用光电式风向传感器。这种传感器采用绝对式格雷码盘作为基本元件,且使用了特殊定制的编码,
借助光电信号转换原理,可以十分精准的发出风向信息。
方案三:电阻式风向传感器,这种风向传感器采取和滑动变阻器相近的结构,将产生的阻值的最大值与最小值
分别标为0°到360°,当风向标进行转动时,滑动变阻器的滑杆会随着顶部风向标一同转动,而输出不同的电压变
化就能够计算出风向的角度或者方向。
方案四:建大仁科聚碳风向传感器,外形小巧轻便,便于携带与组装,全新的设计理念可以有效的获取风向信
息,有8方位和360°两种风向可供选择,壳体选用聚碳酸酯复合材料,具有良好的防腐、防侵蚀的特点,信息采集
的准确性也比较高。采用高性能的进口轴承,转动阻力较小,测量的精确性具有较强的保障,最大的优点是测量精
确,响应灵敏。
方案选择:聚碳式风向传感器的聚碳酸酯外壳的摩擦力小、耐酸碱性和抗氧化性都比较强,不易生锈,耐腐蚀,通
过输出电压值进行A/D转换后与单片机直接对应读取数据,获得较为灵敏的风向。故此选用方案四
2.3.5 显示模块的选择
方案一:使用LCD1602液晶显示。LCD1602与单片机连接时电路实现更简化的功能。虽然LCD1602不能写入中文,
但可以用来识别基础字符,再配置LCD内置的文字库,就不需要自己打点显示,只要在屏幕上输入期望显示的字符,
然后将其以字符或字符串的样式就能够完成显示。
方案二:使用LCD12864液晶显示。仅对LCD12864操作命令进行调用。与数码管不一样,该显示模块不必一键一
键地开启。
方案选择:虽然方案二操作简单,功耗低的优点。但由于其造价高且体积大,所以不把此元件作入考量。而方
案一的液晶屏很廉价,适合大学生进行相关的试验设计,方便初学者学习,结合实际情况和经济情况,最后,选择
方案一。
2.3.6 声光报警模块选择
方案一:通过发光二极管和ISD1820语音模块组合实现声光报警,ISD1820语音模块的工作电压为3—5V,可以进
行大约10s的语音录放,在报警过程中可以通过播放喊话录音向群众群众进行告警,使群众进行有序疏散。
方案二:通过发光二极管和压电式有源蜂鸣器组合实现声光报警,压电式有源蜂鸣器结构简单耐用,常用于报
警设备。此蜂鸣器直接接到额定电源便能连续发声。而内部存在震荡源,通电即可发声报警。
方案选择:本设计需要发光二极管进行疏散指示和蜂鸣器实现火灾报警的功能,虽然ISD1820语音模块可用单片
机控制,但体积较大,功能多类似于喇叭发布通知类消息,对于报警模块的应用范围不大,压电式有源蜂鸣器虽然
音调单一,但是通过与发光二极管配合使用足够实现声光报警的功能,且压电式有源蜂鸣器噪音低,响应速度快,
运转可靠。节能环保、频率特性优良,对许多电器设备的报警应用范围较广,故此选用方案二。压电式有源蜂鸣器
2.3.7 按键模块选择
方案一:使用独立按键。它是直接由端口线组成的单键电路。软件结构简单,如果只需要几个功能键,独立按
键是独一无二的选择。
方案二:使用矩阵键盘。矩阵键盘是类似行列矩阵式的排布,布置十分简约,该键盘对于系统按钮数量要求较高。
方案选择:按键预置主要进行预置烟雾浓度和温度的的警戒阈值,并且通过按键设定模拟烟雾量和温度值,来
实现火情报警疏散群众的演示功能,所用按键较少,使用三只独立按键即可实现,而矩阵键盘最少有四个按键,多
余的按键无任何作用。因此选用独立按键是对此设计较为适用的。
2.3.8 模数转换模块的选择
方案一:采用TLC549芯片。该芯片是8位开关电容逐次逼近式A/D模数转换器。分辨率为8位,功耗很低,仅有
15Mw。内部有4MHz片内系统时钟和软、硬件控制电路,
转换时间最长17us,40000次/s。
方案二:采用AD9634BCPZ-170芯片。是一只12位的模数转换器,对输入信号进行采样的速度的极限为250MSPS。
具有高性价比,十分灵巧,低时延的特点。使多功能通信方案变得可行,ADC内核搭载多级、差分流水线体系。集成
基准电压源可简化设计。占空比稳定器(DCS)可用来补偿ADC时钟占空比的波动,使转换器保有较强的配置。
方案选择:TLC549芯片实现A/D转换,能高效地使用三线串行接口方式与某些微处理器相连。同时性能高,价位
低,转换速率极高,仅需使用6路输入通道与单片进行通讯,扩大了单片机的利用资源,因此,TLC549芯片可应用于
该系统的A/D转换模块。
2.3.9 上位机与下位机的通讯模块的选择
方案一:采用RS-485串行通讯接口。多采用两线式接线方式,它是具有使用平衡多点传输线的驱动器及接收器
的电气特性,远距离传输通过差分信号得以实现,且主要采用的是主从通信方式,一个主机带动多个从机,具体应
用时还要转为USB通讯接口,可能会增加成本
方案二:采用蓝牙无线串口通讯标准串口。该模块的通讯传输距离能保持在20—40米左右,在通讯过程中,串
口把指令传送给PC端蓝牙,PC端蓝牙把数据传送到底盘上的蓝牙,蓝牙通过串口把指令传输给底盘,进行底盘控
制。
方案选择:方案一和方案二都能实现设计要求,由于考虑到下位机的应用场所空间距离大,而蓝牙通讯的传输
距离在人员密集场所的传输距离仅为20米左右,因此,无法有效的与上位机进行对接,另外,在设计过程中,蓝牙
通讯模块在仿真过程中无法进行,在最终调试和检验过程中将会无法表现其具体效果的实现,因此,蓝牙模块通讯
接口与上位机进行通讯的方案并不理想。
2.4 整体方案设计
基于51单片机的智能疏散系统以STC89C52单片机作为主控芯片,由RS485传输模块实现上位机与下位机的通讯连
接。下位机系统可安装在相应的办公楼或居民楼楼道等公共场所当中,当场所内的出现火源时,通过K型热电偶温度
传感器和MQ-2气敏烟雾传感器的检测和风向传感器对火源的检测信号通过传输通讯通道传递至上位机,上位机根据
下位机系统检测到的现场环境信号选定最佳的逃生疏散方案,引导现场群众有序撤离火灾现场。同时单片机驱动
LCD1602液晶显示屏对当前环境的烟雾浓度和温度数据进行显示。通过独立按键设定在不同场所下的火灾疏散报警阈
值,同时通过疏散指示灯和蜂鸣器进行声光报警。当现场环境的烟雾浓度与温度在安全范围内时,安全LED灯亮绿
灯,当烟雾浓度与温度超出安全范围,达到危险临界值时,安全LED灯熄灭,疏散警示灯亮红灯,同时,蜂鸣器发出
危险警笛声,报警信号即刻传递至消防主机上位机,上位机对相关数据进行采集分析,生成相应的疏散逃生路线,
通过现场屏幕或语音指令等方式将逃生方向传递至现场群众,使群众尽快逃生。系统基本结构框图如图2-9所示,疏
散系统总体疏散过程图如图2-10。
图2-9 系统基本结构框图
图2-10 疏散系统总体疏散过程图
2.5 本章小结
本章通过对设计任务进行剖析,发掘出最优的设计思路,并对相关模块的控制芯片和传感器等硬件设备进行比
较。综合成本、性能、和实现效果等进行反复比对,选定出适应于智能疏散下位机系统的最佳元器件型号和类别。
并对现场火情监测和报警的智能疏散下位机系统的总体设计结构进行制定优化,为接下来的仿真与调试提供稳定有
效的依照。
第3章 智能疏散系统电路图设计
本章根据对基于51单片机的智能疏散系统设计的硬件电路做详尽叙述,对各个功能组成元件与应用进行相应的
展开与梳理。
3.1 STC89C52单片机最小系统
3.1.1 STC89C52单片机
STC89C52单片机是STC公司推出的一种续航长,负荷小的CMOS的8位微控制器,具有8K字节的系统可编程的FLASH
存储器,MCS-51内核是STC89C52单片机的中央处理器。而通过一系列修正增加了许多传统的51单片机尚未存在的一
部分功用。
STC89C52单片机内含8k字节的Flash,512个字节内存,32个I/O端口,可实现全双工的串行通讯传输,且
STC89C52单片机可以在0Hz以下进行工作。在节能模式下,可以支持两种不同的软件,在未执行指令工作的状态中,
CPU暂停停止运行,使RAM内存可以被使用,定时器会在电源断开后,通过计数、串行和中断持续工作,在上电中断
后,RAM存储器里的存储可以被保存,单片机的振荡器停止运行,直到复位路进行复位后为止,最大工作频率可达
35MHz,在一个命令循环中中进行6个机器周期或者12个机器周期均可。
STC89C52单片机共含32个I/O接口,其中P0组,P1组,P2组,P3组,每组均含8个接口,其中P0口是8位双向的I
/O口线,依次为P0.0P0.7,同理可得,P1、P2、P3口均为8位双向的I/O口线,名称为P1.0P1.7,P2.0~P2.7,P3.
0~P3.7。均为标准I/O口。其中的一些I/O口除了作为通讯传输口外,还具备单片机的一些特殊功能。而P3组的I/O
口,均有它们的第二功能。下面将做一一介绍。
P3.4/T0,P3.5/T1,P1.1/T2是单片机内的三种定时器和计数器,定时器本质以计算数目为原理,用于对单片机
的机器周期或外部输入的时钟信号采取一定的计数。当单片机改变工作方式,计数脉冲来自单片机的外部引脚,则
转为计数器的计数方式,每一个计数脉冲加1。而在程序运行之前,CPU需要在定时/计数程序中输入某些指令。此过
程被称为定时器/计数器的初始化。
P3.0/RXD:串口输入程序接口。
P3.1/TXD:串行输出程序接口
P9.0/RST:复位引脚,引脚上接收2个周期的高电平可将单片机复位一次。
P3.2/:外部中断0。
P3.3/:外部中断1。
P3.6:外部数据存储器的写脉冲。
P3.7/:外部数据存储器的读脉冲。
XTAL1:片内振荡电路的输入端,可与时钟电路相连接。
XTAL2:片内振荡电路的输出端,可与时钟电路相连接。
:访问外部与内部寄存器的选择接口,输入高电平,单片机访问内部寄存器,输入低电平,访问外部寄存器。
ALE: 生成一个用于在存取外存贮器时锁定P0输出的8比特的地址讯号。
:在对外部 ROM进行访问时,生成一个用于外部 ROM的读取门信号,该 PSEN在对该外部 ROM进行访问时生成一
个负脉冲,并且在对该外部 ROM进行访问时。并无一个 PSEN的有效信号被生成。可驱动8个LSTTL栅极输入。
3.1.2 时钟电路
时钟电路是单片机系统运行的重要组成部分,保障单片机稳定运行每一条数据指令,一般是由一个晶振和两个
电容组成,内含晶体薄片,通上一定电压后,会有规律和节奏的产生振动,并且随着振动的发生,薄片表面发生形
变,随之电压会产生变化,形成信号传输至单片机。促使单片机准确运行程序,时钟电路的两个输出端接向XTAL1,
XTAL2两端。这两个引脚用于接收晶振所传输的时钟信号。为使11.0592MHz的晶振稳定工作。提供良好的传输环境。
需与两个22pF的电容进行串接。晶振频率的大小决定了单片机工作运行的速度与快慢。
3.1.3 复位电路
单片机在启动的过程中在VCC上电的瞬间进行复位一次,其主要作用是让CPU中的各个部件均达到确定的初始状
态,因为在单片机每执行一次程序时,单片机会将变量存放在内存之中,内存之中的数据尽管会在断电后逐渐消
失,但内存当中仍会存留一定的数据,那么下次单片机再次运行程序时会因这些数据的干扰产生差错,所以上电复
位是十分必要的。在通电瞬间将单片机进行复位一遍。同样除了上电复位外,还可进行按键手动复位,按动按键一
次可进行一次复位。当按键按下时,复位端为高电平,同时电容释放电能,放开按键时,电容充电,再一次复位。
在复位引脚端通入2机器周期高电平实现复位一次。复位电路中的电解电容存在传输电流时隔直通交特性。通直流电
在电解电容内进行充电,以达到2周期高电平。其中R1电阻起到限流的作用。
3.2 LCD1602显示电路设计
烟雾传感器采集到的火灾烟雾浓度数据和温度以及风向来源可以通过下位机系统的液晶显示屏执行显示,并且
能够将烟气的浓度和温度设置为数据设置的门限。灵活设定此显示电路的设计,以便能够采用LCD1602液晶显示屏进
行实现,液晶显示字符的原理是每一个字符由8x8的点阵组成的64个发光二极管显示一个字符。当对应的某一行置1
电平,某一列置0电平,则相应的二极管就会发光。LCD1602显示电路由LCD1602液晶显示屏,上拉电阻和背光源可调
电阻组成。其中可调电阻外接LCD显示屏的主要功能是调节显示屏背光以及对比度,使字符清晰的显示,防止出现重
影。其中上拉电阻是把不稳定信号在高电平上施行限流的作用。由单片机内部结构可知,为增强单片机运行时的驱
动能力,P1,P2,P3口内置上拉电阻,P0口没有内置上拉,也没有外部的上拉电阻,P0口在高电平下就相当于是悬浮
着的,不稳定而且易受干扰
各引脚作用介绍:
第1脚:VSS,是LCD1602接地线的引脚,必须对地连接,且该引脚损坏或丢失的话,液晶显示屏也会相应的产生
一定损坏,或产生一些难以预料的严重后果。
第2脚:VDD,可接5V电源正极VCC。
第3脚:V0,是液晶显示屏对比度的调节引脚,接正极对比度亮度最低,接地时对比度光亮达到最大,可能会产
生“重影”,可以用10K大小的电容将其调整。
第4脚:RS为选择寄存器,高电平1选择数据寄存器,低电平时选择指令寄存器。
第5引脚:RW为读写的信号线,高电平1时进行读操作,低电平0时进行写操作。
第6引脚:E端为使能端,高电平1时读取信息,负跳变时执行指令。
第7~14引脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。第15引脚背光源正极,第16引脚为背
光源负极。
3.3 检测电路设计
检测电路包含环境烟雾检测与采集,温度的检测与采集,以及火源烟雾风向角度的检测。为上位机传输相应的
现场数据信号源。
3.3.1 烟雾检测电路
其中,烟雾检测电路主要由MQ-2气敏烟雾传感器和TLC549 A/D转换芯片与单片机连接。MQ-2气敏传感器主要应用于
家庭以及工厂气体泄漏的检测,不仅可以检测烟雾,也能够实现对液化气、笨、烷、酒精或氢气等气体的检测。可
燃气体与烟雾的测量范围大致为100pm~10000pm(ppm为体积浓度)除了分辨率高、动作迅速、可靠性好的特点以
外,外围电路较为简约也是MQ-2烟雾传感器的一大特点。
当传感器与烟气相接触,如果传感器内部的颗粒界面的位垒受烟雾的调整而发生改变,则会造成其表面电导率
的改变。根据此原理,便可得到较高的烟气密度,较高的导电性和较小的阻抗,那么更大的模拟信号也将随之输
出。
MQ-2烟雾传感器的烟气浓度的获取方式为模数转换,将电压转换为数字信号,并将其转换为准确的烟雾浓度。
3.3.2 温度检测电路
温度检测电路主要是实现检测监控当前场所内的温度值。是由K型热电偶温度传感器组成,该传感器经常应用于
仪器仪表盘的显示和记录及其相关的电子调节器的使用,由于K型热电偶属于模拟量温度传感器,需要参与A/D转换
使单片机进行相应的温度信息的采集和处理。热电偶的输出电压极小,还需要组成相应的放大电路模块方可与单片
机进行通讯,实际生产与应用中,K型热电偶常与MAX6675芯片进行连接,该芯片内置集成放大采样与A/D转换的处
理,K型热电偶的温度测量范围极为宽泛,一般为0℃~1300℃,且性能稳定,不随时间和测量对象而变化,使其可以
较强的抵抗火灾产生的剧烈高温,而不影响其测量精度,性能稳定,价格便宜,最大的好处是可以通过MAX6675热电
偶数字转换器将热电偶产生的信号转换为数字信号,其特有的冷端温度补偿的功能,能够准确的对测温热电偶的热
电势和测得的补偿电势进行采样,通过程序解算得到相应得温度值,通过单片机的传输处理在LCD1602液晶显示屏上进行显示。该方法在工业测温中有具体而广泛的应用价值。MAX6675的T+与T-端用于传导K型热电偶的热电势,在测
量时,管脚CS置低电平,将一系列脉冲信号输入至SCK管脚,在SO管脚处读出对应的温度数据,
3.3.3 风向检测电路
风向检测电路是实现检测起火点来源位置以及烟雾流向的一种检测,由于风向传感器有特定的风向箭头,可以
较为准确的指示火灾起火来源,并将检测信号传输至上位机,为上位机准确指示疏散方向起到举足轻重的作用。该
电路主要由0~5V的聚碳式风向传感器和TLC549 A/D转换芯片与单片机进行连接。聚碳式风向传感器含有聚碳酸酯外
壳,耐腐蚀,硬度高,不易被烧化,可长期在室外使用。底部可以与电线连接,能够随时携带和组装,且轴承系统
完备,转动阻力小,测量精确度很高。有特定的箭头角度标志位,可以根据该标志灵活判断风向来源以及角度。
3.3.4 A/D转换电路
由于风向传感器和烟雾传感器采集到的为模拟信号,需要加入TCL549 A/D转换器转换为数字信号供单片机来接
受处理。仅需使用6路输入通道与单片进行通讯,扩大了单片机的利用资源。与ADC0809,A/D转换器相比,极大的节
省了单片机的I/O接口,具体引脚与功能如下所示:
REF+:正基准电压输入2.5V≤REF+≤Vcc+0.1。
REF-:负基准电压输入端,-0.1V≤REF-≤2.5V。且要求:(REF+)-(REF-)≥1V。
VCC:系统电源3V≤Vcc≤6V。
GND:接地端。
CS:芯片选择输入端,要求输入高电平VIN≥2V,输入低电平VIN≤0.8V。
DATAOUT:转换结果数据串行输出端,与TTL电平兼容,输出时高位在前,低位在后。
ANALOGIN:模拟信号输入端,0≤ANALOGIN≤Vcc,当ANALOGIN≥REF+电压时,转换结果为全“1”(0FFH),
ANALOGIN≤REF-电压时,转换结果为全“0”(00H)。
I/OCLOCK:外接输入/输出时钟输入端,同于同步芯片的输入输出操作,不需要和芯片中的系统进行同步。
3.4 按键电路设计
按键电路主要由三个独立按键单独连接至单片机的I/O口当中,其中一只按键用于调整LCD1602显示屏的选择光
标,用于选择烟雾浓度与温度阈值的调整,另外两只按键分别用于设定两个指标的阈值,用于增大或减小阈值。由
于应用场所和环境的不同,设定阈值也会有所变化。需要具体环境具体调整。
3.5 声光报警电路设计
声光报警电路的主要作用是将火灾告警信号传递至上位机,指令上位机系统做出疏散指示方案。并开启相应的
疏散指示方案,同时告知火灾现场群众,火灾已经发生,请按照疏散指示通道方向有序进行逃生。其中LED告警指示
灯和蜂鸣器报警以视觉与听觉方式将火灾逃生信号传递至现场群众。让现场群众做好相应的逃生准备。声光报警采
用LED灯和有源蜂鸣器。其中有源蜂鸣器是传递报警信号的一大核心,蜂鸣器在电路中是发声元件,分为有源和无源
两种,本系统采用有源蜂鸣器,内部自含震荡源,通入一定电压的直流电就可驱动其发声,声光报警电路主要由LED
报警指示灯,有源蜂鸣器和一个晶体三极管组成,晶体三极管是能产生较强电流的放大器,由于蜂鸣器的工作电流
大,以至于单片机的I/O口不能直接进行控制,因此三极管组成放大电路起到放大信号的作用。LED报警指示灯电路
3.6 RS485传输电路设计
RS485通讯接口和传输电缆是上位机与下位机进行信号传输的核心载体。其主要通过在下位机安装RS485通讯传
输接口和串口信号转换芯片来实现与消防主机上位机系统的通讯连接。为达到较明显的疏散效果以及设计成本与简易性考虑,最初设计方案采用蓝牙通讯感应模块与上位机通讯,省去了与上位机的传输线路的设计,但由于蓝牙通
讯应用范围较窄,感应效果不理想,传输距离较短的缺点,为确保上位机达到准确高效的接受读取下位机信号,故
采用传统的RS485接口进行驱动联网,RS485的最大优势是传输距离范围广,传输距离可达10.8km。当系统上电时,
系统中检测到的外界信号经过单片机处理后,通过单片机的TXD端口输出串口信号经过RS485传输电缆传输至上位
机,同时,单片机的RXD端口读取上位机传输回来的信号,由于上位机与下位机的传输信号有差别,需经过MAX485完
成由MCU的串行信号到RS485级别的转换供上位机接收读取。实际仿真过程中可以通过虚拟终端来监控单片机输出的
串口信号。
3.7 电源电路设计
电源电路采用USB接口上电,系统供电电源电压为5V~12V,其具体电源组成为USB接口和电源开关和上电指示灯组
成,系统电源电路如图3-9所示。
图3-9 电源电路设计
3.8 本章小结
本章对系统的硬件设计做了较为详尽的介绍,硬件设计包含了单片机最小系统,LCD1602显示电路,烟雾、温
度、风向检测电路和A/D转换电路,按键电路,声光报警电路,RS485传输电路以及电源电路。单片机最小系统介绍
了STC89C52单片机最小系统的相关构成,单片机引脚的作用,时钟电路与复位电路的组成与设计。显示电路由
LCD1602液晶显示屏用于实时显示烟气的浓度、温度设置阀值和当前条件下周围的烟气浓度与温度,以及烟雾风向。
按键电路的关键部分是由三个单独的按钮用来设置烟雾密度和温度值的警报门限,检测电路主要是实现对当前场所
内的烟雾浓度和温度以及烟雾来源风向的检测。并将检测到的数据信号经过RS485传输电缆传输至上位机疏散指示系
统。令上位机根据接收到的场所环境的数据做出疏散方向指示方案。
图A-1 系统设计原理图
第4章 基于单片机的智能疏散系统的软件设计
在该系统的整体设计中,主程序与各个应用模块的子程序在系统的软件设计中起到了极为关键的作用,本章通
过相应的流程框图来介绍各个模块所对应实现的相应功能,可以直观明了的反应出系统各个应用模块所发挥的作
用,通过各个电路模块的工作与主电路的工作产生联系,从而编写出智能疏散系统下位机的主程序与各个模块的子
程序。编写程序项目的软件采用KEIL u version 5,可实现对单片机C语言和汇编语言的编写,本系统设计主要采用
C语言程序进行编写,条理更加清晰,各个模块的功能所对应的C语言程序更加一目了然。本章内容将对各个模块的
工作过程通过相应的流程图进行表现。使系统设计的软件部分更加完善。
4.1 系统软件的开发环境
该系统的软件系统命令开发设计使用的是KEIL C51软件,该软件广泛运用于单片机系列设计的程序代码的编
译,并且能够实现多种类别的语言的编程。相较于单片机汇编语言相比,C语言在功用上、结构型、易读性、可扩展
性等方面都有着明显的优越性,且易懂实用。在用过编译过的汇编语言编程后,利用C语言再来编程,将会有更为深
入的感受。KEIL包含了大量的库函数以及一个功能很强的综合开发调试工具,在Windows界面进行编程具有良好的编
译环境和体验,最关键的是,从C语言的编译过程中,可以看出 KEIL C51生成的目标代码是高效的,大部分的代码
都是简洁易懂的。在大范围软件项目研发中,更能显示出先进的指令优点。
4.2 系统的主程序设计
系统主程序是促使系统稳定运行并工作的核心。其每条程序指令发挥的作用在驱使系统功能的实现占有中心地
位,在软件的开发过程中,主程序是系统运行的主函数的重要组成部分,主函数中的主程序可以实现对系统的各个
组成模块的子函数的子程序进行调用,系统设计中的主程序如同一棵大树的树干,其他模块的子函数程序如同这颗
大树上的树干和树叶。单片机智能疏散系统的主程序即为单片机处理的核心程序main函数。本节将对智能疏散系统
中的主程序部分和其他模块的子程序的流程进行逐一介绍。
4.2.1 主程序流程设计
智能疏散系统的主程序所做的主要工作是来接收烟雾、温度以及风向传感器所采集到的火情信号数据,包括烟
雾浓度、温度值与烟雾风向来源并触发显示模块完成对数据以及风向的显示,并手动设置火情疏散报警的烟雾浓度
与温度值的阈值,当其中任何一只传感器采集到的火情数值达到必要疏散的条件下都会触动报警信号,从而再通过
RS485传输模块发送火情疏散信号传递给上位机进行指示疏散。智能疏散系统的主程序的流程图如图4-1所示:
图4-1 系统的主程序流程
主机程序的流程介绍如下:系统上电后,最初先将LCD1602显示模块和相关的串口指令进行初始化运行,之后单
片机主控芯片接收温度、烟雾以及风向传感器采集到的三路数据,分别为烟雾浓度值,温度值以及烟雾的来源方向
的必要数据指标,并进行处理,并对LCD1602的显示程序进行调用。同时对按键程序进行调用,接收并检测按键信号
设定的最终疏散报警阈值,当系统收取到的温度或烟雾数据高于任意一组按键所设定的疏散报警阈值,则触发声光
报警模块传输疏散报警的信号指定至消防主机上位机系统,并报告至监测上位机的疏散警备消防员采取必要的疏散
指示方案。
4.2.2 检测模块的程序流程设计
图4-2 检测模块的流程程序的设计
检测模块程序设计流程图如图4-2所示。该系统的三路数据采集传感器采集到的数据分别作用于相应的AD转换模
块,产生A/D变换和放大后的信号,由单片机进行接收和加工,单片机调用AD采集与转换程序,采集烟雾浓度、温
度、烟雾传播风向等几种数据,并将数据指标传递至消防主机上位机中。
4.3 LCD1602 显示流程设计
要对智能疏散的下位机系统内采集到的各种火情的数据进行显示需要使用LCD1602显示函数。液晶显示函数要对
液晶屏内部的读写时序、字符坐标定位、字符发生等程序内容进行初始化,当液晶屏的字符开始显示时需判断显示
的字符是否完全正确,显示判断为“是”时显示数据的程序执行完毕,若显示有误需要进行重新调试再次进行初始
化而后再次显示。智能疏散下位机系统的显示模块中LCD1602显示程序流程设计如下图4-3所示。
图4-3 LCD1602显示程序的流程设计
4.4 烟雾检测模块程序设计
图4-4 烟雾检测程序设计
烟雾检测程序设计流程如图4-4所示,检测模块中使用MQ-2气敏烟雾传感器测量环境周围的烟气浓度,实际应用
时检测范围为300ppm~10000ppm。采集到的烟雾浓度数值为模拟量,必须参与模数转换模块进行模拟和数字信号的获
取,A/D转换模块的采集数值范围为0~510,但烟雾浓度检测超过10000ppm后,输出电压未达到5V工作电压,因此为
达到线性公式的转换,设定A/D转换采集的数值范围为,0500,对应烟雾浓度的采集范围为09700ppm。线性公式为
。
4.5 温度检测模块程序设计
图4-5 温度检测程序设计
温度检测模块的程序设计如图4-5所示,温度传感器采用大范围温度测温的K型热电偶温度传感器,由于K型热电
偶的输出电压相对较小,K型热电偶作用在温度上,一摄氏度对应输出电压41μV,因此需要通过电压放大来与单片机
的通讯相适应,而MAX6675芯片内部集成放大采样和模数转换,省去了繁杂的放大电路的设计。只需将其与单片机的
SPI接口相连并通讯,获得误差较小的温度值并将其在LCD1602显示屏上并给予温度显示。
4.6 风向检测模块程序设计
图4-4 风向检测模块程序设计
图4-4是风向检测模块的程序设计流程图,风向检测模块是确定正确实施疏散方向方案的核心,如果说烟雾检测
与温度检测是判断火情疏散方案是否启动的必要条件的话,而风向检测则是确定正确组织在场人员按正确的疏散方
向来逃生的充分条件,风向传感器的作用是通过检测烟气流动和热传递的传导来确定疏散逃生方向,据此来开启疏
散方向指示灯和应急照明灯来组织人员进行疏散,或者是通过语音喇叭播报组织群众往正确的逃生出口进行移动。
聚碳式八方位风向传感器确定了在场环境的八个烟气流的方向,确保360°无死角的确定大火蔓延的方向,根据烟雾
流向准确按预定逃生方向组织最佳的人员逃生。
4.7 按键电路模块程序设计
图4-7 按键设定模块程序流程设计
按键电路引入三路独立按键接入单片机的P2口上,其中单片机处理的按键子程序的主要作用是判断三只独立按
键的高低电平信号以确定按键电路是否对系统开始作用,当系统上电时,LCD1602显示屏初始化温度、烟雾和风向的
三项数据指标,当设定按键的下降沿有效时,单片机执行显示设定烟雾浓度菜单,调整光标,和返回烟雾数据显示
页面的操作命令,同理,增加值按键与下降值按键的下降沿有效表明按键阈值设定开始动作,用于调整按键预置的
相关操作。按键电路模块的程序设计流程图如图4-7所示。
4.8 声光报警模块程序设计
图4-8 声光报警模块程序设计流程
蜂鸣器声光报警电路设计的程序流程图如图4-8所示,系统初始化后,安全指示灯最先点亮,各路传感器分别监
测当前环境的各项数据指标,以确定是否达到告知上位机进行当前环境中大面积人员疏散的必要条件,当各项数据
指标在正常安全的范围内,一旦某一路传感器监测到的数据超越疏散报警的设定的数据阈值,即表明告知上位机当
前环境火灾强度已达到必要的人员疏散的状况,系统启动声光报警,安全指示灯熄灭,报警疏散指示灯点亮,同时
蜂鸣器发声告知人员火情发生,通过视听两方面确保每位群众接收到火情报警信号。为下一步按照正确的逃生路线
进行疏散逃生作为前提。
4.9 RS485通讯传输程序设计
图4-9 通讯模块程序设计
RS485通讯传输的程序流程设计图如图4-9所示,RS485模块是通过RS485接口和一条串口通讯电缆将两台通讯设
备连接起来,应用于智能疏散系统即是上位机与下位机的通讯连接。传输的数据信号即为烟雾浓度、温度与烟气流
动方向的三组数据指标以及疏散报警指示信号。是保证上位机做出正确疏散应急指示方案的关键。因此该模块在智
能疏散系统设计中是必不可少的。
4.10 本章小结
本章主要对基于单片机的智能疏散系统的软件的相关流程设计进行了较为详细的叙述,对系统软件部分的各个
模块所发挥的作用和系统的运行步骤通过流程图进行设计展开,非常直观明了。为后续使用KEIL软件的项目开发环
境进行各个系统模块的程序编写,以及使用PROTEUS软件进行系统功能的仿真和实物的相关调试奠定了广泛的基础,
使设计思路更为清晰,便于相关专业设计人员读懂和了解,并找准进行实物焊接与模块设计的思路进行准确的切
入。
主程序:
# include "MAX6675.h"
# include "TLC549.h"
# include "USART.h"
# include "lcd1602.h"
# include <stdio.h>
sbit led_green = P2^7;
sbit led_red = P2^6;
sbit set = P3^2;
sbit set_up = P2^4;
sbit set_down = P2^5;
sbit beep = P3^7;
float temper,direct;
int Smoke;
int int_flg;
int Set_tem=100,Set_smo=500;
char USART_Send[15]={0};
char Dire[8][3]={"N ","NE","E ","SE","S ","SW","W ","NW"};
int Dire_flg;
void Int0Init();
void Int0_exec();
34
void direction(void)
{
direct = TL549_AD1()/102.0;
if(direct < 0.6)
Dire_flg=0;
if(direct > 0.6 && direct < 1.3)
Dire_flg=1;
if(direct > 1.3 && direct < 2.0)
Dire_flg=2;
if(direct > 2.0 && direct < 2.7)
Dire_flg=3;
if(direct > 2.7 && direct < 3.4)
Dire_flg=4;
if(direct > 3.4 && direct < 4.1)
Dire_flg=5;
if(direct > 4.1 && direct < 4.8)
Dire_flg=6;
if(direct > 4.8 && direct < 5.2)
Dire_flg=7;
Show_string(13,0,Dire[Dire_flg]);
}
void main()
{
USART_Init();
LCD_init();
Max6675_Init();
Int0Init();
while(1)
{
write_cmd(0x01);
Show_string(0,0,"TEM:");
Show_string(7,0,"C");
Show_string(9,0,"DEC:");
Show_string(0,1,"SMO:");
Show_string(10,1,"ppm");
temper = MAX6675_ReadTemper();
show_nuber(4,0,(int)temper);
Smoke =(TL549_AD()*19.4)+300;
Smoke =(TL549_AD()*1.4)+300;
if(Smoke > 10000)
Smoke = 10000;
show_nuber(4,1,(int)Smoke);
direction();
if(int_flg % 3 == 1)
Int0_exec();
if((Smoke > Set_smo) || (temper > Set_tem))
{
35
led_green = 1;
led_red = 0;
beep = 0;
}
else
{
led_green = 0;
led_red = 1;
beep = 1;
}
if(int_flg >= 3)
int_flg=0;
sprintf(USART_Send,"T:%d S:%d D:%s\r\n",(int)temper,(int)Smoke,Dire[Dire_flg]);
USART_Send_String(USART_Send);
delay(50000);
}
}
void Int0Init()
{
IT0=1;
EX0=1;
EA=1;
}
void Int0() interrupt 0
{
delay(50);
int_flg++;
}
void Int0_exec()
{
if(set==0)
{
write_cmd(0x01);
Show_string(3,0,"SET MODE");
Show_string(5,1,"C");
Show_string(13,1,"ppm");
while(1)
{
show_nuber(1,1,Set_tem);
show_nuber(8,1,Set_smo);
if(set_up == 0)
{
delay(20000);
if(set_up == 0)
{
Set_tem++;
if(Set_tem==300)
36
Set_tem=300;
}
}
if(set_down ==0)
delay(20000);
if(set_down ==0)
{
Set_tem--;
if(Set_tem<=0)
Set_tem=0;
}
}
if(int_flg % 3 == 2)
{
while(1)
{
write_cmd(0x01);
Show_string(3,0,"SET MODE");
Show_string(5,1,"C");
Show_string(13,1,"ppm");
show_nuber(1,1,Set_tem);
show_nuber(8,1,Set_smo);
if(set_up == 0)
{
delay(20000);
if(set_up == 0)
{
Set_smo+=100;
if(Set_smo==10000)
Set_smo=10000;
}
}
if(set_down ==0)
{
delay(20000);
if(set_down ==0)
{
Set_smo-=100;
if(Set_smo<=0)
Set_smo=0;
}
}
if(Set_smo == 9900)
Show_string(12,1," ");
if(Set_smo == 900)
Show_string(11,1," ");
if(int_flg % 3 == 0)
37
break;
}
}
if(int_flg % 3 == 0)
break;
}
}
}
LCD1602模块程序:
#include"lcd1602.h"
void delay(u16 x)
{
while(x--);
}
void write_cmd(u8 cmd)
E=0;
RW=0;
RS=0;
LCD=cmd&0x7f;
E=1;
delay(200);
E=0;
}
void Set_ddram(u8 add)
E=0;
RW=0;
RS=0;
LCD=add|0x80;
delay(200);
E=0;
}
void write_dat(u8 dat)
{
E=0;
RW=0;
RS=1;
LCD=dat;
E=1;
delay(200);
E=0;
}
u8 add_conv(u8 x,u8 y)
{
u8 add;
switch(y)
{
38
case 0: add=x; break;
case 1: add=64+x; break;
}
return add;
}
void Show_string(u8 x,u8 y,u8 *p)
{
u8 add;
add=add_conv(x,y);
Set_ddram(add);
while(*p)
write_dat(*p++);
}
void LCD_init()
{
write_cmd(0x38);
delay(1000);
write_cmd(0x0f);
write_cmd(0x0c);
delay(1000);
write_cmd(0x06);
delay(1000);
}
/*
void load_cgram(u8 g,u8 *p)
{
u8 i;
set_cgram(g*8);
for(i=0;i<8;i++)
{
write_dat(*p++);
}
}
*/
void show_nuber(u8 x,u8 y,u16 n)
{
u8 s[6];
sprintf(s,"%3d",n);
Show_string(x,y,s);
}
void show_float(u8 x,u8 y,float t)
{
u8 s[6];
sprintf(s,"%2.4f",t);
Show_string(x,y,s);
}
MAX6675芯片程序:
39
#include "MAX6675.h"
void MAX6675_Delay1us()
{
unsigned char i;
i = 9;
while (--i);
}
void MAX6675_Delay_us(u16 x)
{
u16 i;
for(i=0;i<x;i++)
MAX6675_Delay1us();
}
u16 MAX6675_ReadDat()
{
u16 d;
u8 i;
MAX6675_CS=0;
MAX6675_CLK=0;
MAX6675_Delay_us(2);
for(i=0;i<16;i++)
{
d<<=1;
MAX6675_Delay_us(2);
MAX6675_CLK=1;
if(MAX6675_DAT)
d++;
MAX6675_Delay_us(2);
MAX6675_CLK=0;
}
MAX6675_CS=1;
return d;
/* u16 dat=0;
u8 i=0;
MAX6675_CS=0;
MAX6675_CLK=0;
MAX6675_Delay_us(2);
for(i=0;i<16;i++)
{
MAX6675_CLK=1;
dat = dat<<1;
if( MAX6675_DAT==1 )
dat = dat|0x01;
MAX6675_CLK = 0;
}
MAX6675_CS=1;
return dat; */
40
}
float MAX6675_ReadTemper()
{
u16 d;
float tem;
d=MAX6675_ReadDat();
tem=((d>>3)&0x0fff)*0.25 - 24.0;
if(tem>159)
tem+=1;
if(tem>195)
tem+=1;
if(tem>239)
tem+=1;
return tem;
/*
u16 d;
float tem;
d=MAX6675_ReadDat();
d = d<<1;
d = d>>4;
tem=d*1023.75/4095.0 -25.0 + 0.5;
if(tem>15)
tem+=1;
if(tem>132)
tem+=1;
if(tem>178)
tem+=1;
if(tem>213)
tem+=1;
if(tem>348)
tem-=1;
if(tem>392)
tem-=1;
if(tem>427)
tem-=1;
// if(tem>465)
// tem+=1;
return tem;
}
void Max6675_Init()
{
MAX6675_CS=1;
MAX6675_CLK=1;
MAX6675_DAT=1;
}
TLC549芯片程序:
# include "TLC549.h"
41
unsigned int TL549_AD()
{
unsigned char i;
unsigned int data_ad = 0;
CS = 1;
CLK = 0;
CS = 0;
_nop_();
for(i = 0;i < 8;i++)
{
CLK = 1;
if(DIO)data_ad |= 0x01;
CLK = 0;
data_ad = data_ad << 1;
}
CS = 1;
data_ad = data_ad * (500/ 256);
return(data_ad);
}
unsigned int TL549_AD1()
{
unsigned char i;
unsigned int data_ad = 0;
CS1 = 1;
CLK1 = 0;
CS1 = 0;
_nop_();
for(i = 0;i < 8;i++)
{
CLK1 = 1;
if(DIO1)data_ad |= 0x01;
CLK1 = 0;
data_ad = data_ad << 1;
}
CS1 = 1;
data_ad = data_ad * (500/ 256);
return(data_ad);
}
串口通讯程序:
# include "USART.h"
void USART_Init()
{
SCON=0X50;
TMOD=0X20;
PCON=0X00;
TH1=0XF3;
TL1=TH1;
ES=1;
EA=1;
TR1=1;
}
void USART_Send_String(unsigned char *Val)
{
ES = 0;
while(*Val != 0)
{
SBUF =* Val;
while(TI == 0);
TI = 0;
Val++;
}
ES = 1;
}
第5章 基于单片机的智能疏散系统的调试
本系统设计先用PROTEUS软件进行系统相关元件的设计与仿真,根据最初通过Altium Designer软件绘制的电路
原理图进行对照在PROTEUS项目中绘制总体的电路图,之后导入预先编程的C语言程初始源代码,并运行系统的仿
真,逐步修改并不断进行调试,直至运行效果达到最终的设计目的结束调试。需保障各个模块的程序设计万无一
失,各个模块最终协同运行。调试过程需要软件设计与硬件设计相互配合获得最终的系统设计成果。
5.1 软件调试
单片机的C语言程序在KEIL C51 uversion项目中参与编写,调试编译过程中软件下方面板可清楚的指出程序面
板中出错误的位置,方便准确查找和修改程序指令,同时,在程序编写过程中需高度认真,尽量避免大范围的程序
错误,因为在实物烧录中,单片机对于代码编写的要求较高,一些细微的错误会导致项目文件报错。有时可能遇到
程序指令完全正确,编译顺利完成。但在PROTEUS软件中运行仿真时出现差错。也需要不断通过调试多次进行代码编
译,每次调试都需将出现的设计问题记录在案并逐一进行修正,重新调试。对各个模块的子程序需逐一编译,有条
不紊的进行运行和调试。一般仿真运行无问题后,可以以此为主框架实行下一步实物焊接的调试,在KEIL软件中需
要将编译好的文件转换成适用于单片机烧录程序的hex镜像文件,供单片机进行接收处理。实物的最终运行结果和电
脑仿真的运行结果会存在一些差别。需要再次对C语言程序进行修改调试,直至实物上的运行结果达到最终的设计目
标。
5.1.1 仿真调试实验
本设计采用软件Proteus 8.1.1 对疏散系统下位机进行仿真,图5-1展现出了整套系统的电路接线图,该系统采
用了烟雾、风向和温度三路传感器来对火情信号的数据进行了采集以及红、绿两只报警指示灯和蜂鸣器报警。其中
烟雾传感器和风向传感器分别通过两只可调电阻对烟雾浓度和风向角度进行调节,LCD1602液晶显示屏即可完成对温
度值、烟雾值和烟气流动的风向的显示,通过MAX485芯片将下位机采集到的三路数据信号和报警信号进行打包发
送,其中虚拟终端模拟上位机接收到的三路传感器采集到的数据信号。通过两只MAX485芯片分别将数据信号转成串
口信号和RS485信号。
图5-1 仿真电路接线图
系统上电后,初始的温度设定阈值为100℃,烟雾浓度的阈值设定为500ppm,在烟雾传感器和K型热电偶采集到
的数据值低于系统的设定阈值时,安全指示灯亮绿灯,告知上位机的消防值班员和现场群众,该场所里温度与烟气
在安全范围内,群众无需进行疏散逃生。虚拟终端每秒向消防主机上位机传输一次烟雾,风向和温度的数据。图4-2
显示的是在安全状态下的仿真效果图,其中温度显示当前环境的温度:25℃。烟气浓度:494ppm。该时间下风向的
的流动方向为东南风。
图5-2 安全状态下的仿真图
由于每一个下位机在环境内的场所的位置不同,不同的下位机系统由于环境因素的影响,需要对烟雾浓度和温
度的预置设定值进行改变,利用三个单独的按钮来设定烟雾阀值、改变温度阀值。设定菜单的仿真图如图5-3所示。
温度阈值设定为55℃,烟雾浓度阈值设定为1600ppm。
图5-3 设定菜单仿真图
当温度超过设定阈值时,安全指示绿灯熄灭,疏散报警指示灯亮红灯,蜂鸣器报警,报警信号和数据信号打包
发送至消防主机上位机,上位机开启指示疏散现场群众。温度报警仿真图如图5-4所示。其中温度显示当前环境的温
度:56℃。烟气浓度:1192ppm。该时间下烟雾的流动方向为西风。
图5-4 温度报警仿真图
当烟雾浓度超过设定阈值时,安全指示绿灯熄灭,疏散报警指示灯亮红灯,蜂鸣器报警,报警信号和数据信号
打包发送至消防主机上位机,上位机开启指示疏散现场群众。温度报警仿真图如图5-5所示。其中温度显示当前位置
的温度:48℃。烟气浓度:1696ppm。该时间下烟雾的流动方向为西风。
图5-4 烟雾报警仿真图
5.2 硬件调试
系统设计进行焊接后应必须保证是可以使用的,因为有一些线路的焊接或者其他的故障造成了有部分模块难以
正常发挥功能,要经过反复调试才能保证其能正常运行。另外,由于本系统具有软硬件协同工作的特点,因此,软
件的差异,系统运行的结果也不尽一致,软件移植到新的工作环境中均必须展开调试工作。在线路板插电之前,大
致查看焊板上有没有什么致命的瑕疵,比如有没有明显的裂痕,短路故障、断路故障的普遍现象,再用万用表测量
电源与接地导线间的阻抗,保证供电的安全性。硬件焊接成品图如图5-5所示
图5-5 智能疏散成品图
5.3 成品效果展示
本设计采用万用板进行焊接,STC89C52单片机驱动主电路进行运作,万用板上与单片机相互配合的模块有MQ-2
气敏烟雾传感器模块、独立按键模块,K型热电偶和风向传感器模块等。系统上电后的整体效果展现图如图5-6所
示:
图5-6 智能疏散系统成品上电效果图
如图5-6所示,系统上电后,K型热电偶模块监测此时当前环境的温度为25℃,由于大气当中的空气存在污染
物,因此空气中也存在一定浓度的可燃性气体,其范围大致在900ppm1500ppm,约在空气中所占百分比为0.090.
15%。在此状态下,安全指示灯点亮,LCD1602液晶屏显示温度、烟雾浓度以及烟气流动方向的数据,系统向上位机
系统发送数据。告知当前环境烟雾浓度与温度符合疏散数据阈值的下限要求。
由于不同时间和不同地点的外部因素影响,疏散报警阈值也会有所不同,通过三只独立按键对烟雾浓度与温度
的阈值进行设定,通过一只按键在LCD1602液晶屏上跳转至设定菜单,并实现温度和烟雾浓度数据指标的选择。另外
两只独立按键分别实现增加和减少阈值的功能。
当温度与烟雾两路传感器其中一路超过预先设定好的两组设定阈值(即温度和烟雾浓度阈值),便会触发报警
模块,安全指示灯熄灭,疏散指示灯点亮并触发蜂鸣器报警,RS485传输模块向上位机系统发送温度、烟雾浓度以及
烟雾风向数据。上位机系统随即启动应急疏散方案。如图5-9和5-10分别显示报警状态下的成品效果和串口通讯数据的发送过程
5.3 本章小结
本章主要对智能疏散系统的设计软件的调试注意事项进行了说明,对硬件电路和软件电路的相关功能分别进行
了测试,对下位机的仿真电路的调试结果进行了展示和介绍,通过相关的测试和改进,逐步提高了系统设计的功能
效率,达到最终的设计要求。
结论
本系统的设计通过五个大章节分别对智能疏散系统的研究目的和研究方法、设计思路和初步方案的设计展开比
较,选定最终的整体设计方案,设计相应的电路模块组成智能疏散系统的最终设计,通过Altium Designer软件分别
对单片机最小系统、电源电路模块、LCD1602显示电路模块、传感器检测电路模块、按键电路模块、声光报警电路模
块、RS485传输电路模块的原理图进行了绘制。其中RS485传输电路是构建上位机与下位机系统通讯的核心电路模
块,通过此电路传输数据信号和报警信号向上位机系统进行指示,确定最佳的疏散逃生路线。软件通过PROTEUS进行
仿真,能够直观的模拟出最终的设计功能效果,MQ-2气敏烟雾传感器和风向传感器应用可调电阻,来模拟传感器采
集当前场所中的烟雾浓度和烟雾流动,从而确定起火点的位置和烟气流动方向,温度和烟雾浓度超过设定阈值说明
场所内火灾情况达到必要的疏散逃生的条件,系统报警分别向监控上位机系统的疏散消防值班员和现场群众进行报
警说明危险状况。LCD1602对现场环境的数据进行显示,确保现场人员确定场所内的环境状况。当然,该设计也存在
一部分缺陷,由于上位机系统十分庞大,因此仿真电路中未将上位机系统指示疏散逃生路线的部分进行仿真演示。
由于单片机的I/O接口有限,声光报警的LED报警灯只设置了两只报警指示灯,可能会表现出的报警指示的灯光不是特别明显,语音报警通过采用喇叭语音播报向群众传递疏散信号会更完美。