• 方案介绍
  • 相关推荐
申请入驻 产业图谱

基于单片机的火焰与温度联动检测及声光灭火控制系统

04/15 14:39
247
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1. 系统概述

点击链接下载protues仿真资料:https://download.csdn.net/download/m0_51061483/91956675

1.1 课题背景

随着建筑空间功能的不断复杂化,室内消防安全系统已不再局限于传统的人工巡检与被动灭火模式,而是逐步向智能感知、联动控制和多点协同方向发展。尤其是在多房间结构环境中,一旦发生火情,如果不能快速完成火源定位、火情确认、报警提示和灭火联动,就极易造成火势蔓延,进而带来较大的财产损失和安全风险。因此,设计一种基于单片机的多点火焰与温度联动检测及声光灭火控制系统,具有较强的现实意义和工程应用价值。

本题所给系统覆盖1个大房间和2个小房间,属于典型的分区式室内火灾监测场景。其中大房间面积较大,火情覆盖范围更广,因此布置2个火焰传感器和1个温度传感器;两个小房间各布置1个火焰传感器,从而形成多点监测结构。系统通过对火焰信号和温度信号进行实时采集与分析,不仅能够检测火灾发生,还能够判断火情持续状态,在满足条件时自动启动声光报警并联动灭火装置,实现“检测—定位—报警—灭火”的完整闭环控制

与传统独立报警器相比,基于单片机的联动控制系统具有多传感器融合、房间编号识别、状态显示清晰、逻辑可编程、扩展方便等优点。特别是在本系统中,火焰信号持续超过10秒后才执行联动灭火,这种延时确认机制可以在一定程度上减少误触发,提高系统可靠性。同时,系统还支持报警消除按钮、手动灭火按钮以及总启动控制,使其具备更好的实用性和安全保障能力。

1.2 设计目标

本系统的设计目标是在多房间环境中实现火焰检测、温度监测、房间定位显示、持续火警判断、声光报警和继电器联动灭火等多项功能,并通过按键交互提升系统使用灵活性。系统要求既能满足基础的火焰检测与报警需求,又能通过温度监测和LCD状态显示增强可视化效果,使用户能够更直观地掌握各房间运行状态。

从总体目标来看,本系统主要实现以下几个方面的内容:第一,对1个大房间和2个小房间进行分区监测;第二,大房间通过2个火焰传感器和1个温度传感器实现更高覆盖度的检测;第三,当任一火焰传感器检测到火焰时,系统立即在LED数码管上显示异常房号,快速提示火源位置;第四,当火焰报警持续超过10秒且仍未解除时,系统启动蜂鸣器和警示灯,同时驱动继电器控制对应房间灭火装置工作;第五,系统支持报警消除按钮、总启动按钮和手动灭火启动按钮;第六,系统通过LCD显示各房间温度和状态信息,提升系统监控能力。

1.3 系统总体方案

本系统采用单片机作为控制核心,外围连接火焰传感器模块、温度检测模块、LED数码管显示模块、LCD显示模块、声光报警模块、继电器灭火驱动模块和按键输入模块。系统工作时,单片机不断采集各个传感器的状态信息,并通过内部程序完成房间火情判断、时间延时确认、状态显示刷新和继电器控制输出。

系统在结构上采用分区管理思想。大房间设置2个火焰检测点和1个温度检测点,小房间1和小房间2各设置1个火焰检测点。为了便于程序处理,可将房间统一编号,例如1号房为大房间,2号房和3号房分别为两个小房间。单片机根据火焰传感器的输入状态判断对应房间是否存在火焰异常,并通过数码管显示房号。若异常持续超过10秒,则系统由预警状态转入联动灭火状态,启动蜂鸣器、报警灯以及对应房间灭火继电器。

在进阶设计中,LCD模块用于显示各房间的温度值、火焰检测状态、灭火状态及系统总运行状态,使系统不再只是简单的火警触发器,而是一个具备多点监测、状态反馈和联动执行能力的小型消防控制终端。

2. 系统功能设计

2.1 多房间火情监测功能

本系统的核心功能是对多个房间进行火情监测。由于题目中明确指出系统覆盖1个大房间和2个小房间,因此在监测逻辑上,系统必须支持多传感器输入和分区独立识别。大房间配备2个火焰传感器,主要是因为其空间较大,单个传感器可能存在检测盲区;两个小房间各使用1个火焰传感器即可满足基本检测需求。

系统在运行过程中,持续扫描所有火焰传感器输入状态。只要任一传感器检测到火焰,系统便记录该传感器所属房间,并将其标记为异常区域。对于大房间而言,虽然存在两个火焰传感器,但它们在逻辑上归属于同一个房号,因此无论大房间哪一个火焰传感器报警,系统都统一显示大房间编号并执行后续处理。

这种多房间监测方式使系统能够覆盖更复杂的空间结构,相比单点火焰报警器更加适合室内分区监控应用。

2.2 火焰检测与房号显示功能

当任一火焰传感器检测到火焰信号时,系统首先执行快速定位功能,即通过LED数码管显示对应的异常房号。该功能具有很强的实用性,因为在多房间环境中,仅仅知道“有火情”是不够的,更重要的是要快速明确火灾发生位置。通过数码管直接显示房号,操作人员可以在第一时间判断火源分布,从而采取更有针对性的应对措施。

例如,若大房间火焰传感器报警,数码管显示“1”;若小房间1报警,则显示“2”;若小房间2报警,则显示“3”。若存在多个房间同时报警,程序中可采用优先显示、轮流显示或多位数码管并行显示方式来反映当前异常状态。若采用单个数码管,通常可以优先显示最先触发的房号,或者按固定时间间隔循环显示各异常房号。

该功能使系统的报警提示从单纯的“有火”提升到“某房间有火”,显著增强了系统的定位能力。

2.3 持续火警确认功能

为了提高系统的抗误报能力,本设计并不是在检测到火焰信号后立即驱动灭火装置,而是设置了“火焰报警持续超过10秒且未解除”的判断条件。也就是说,当火焰传感器刚检测到异常时,系统先进入火警预警阶段,并开始计时;若在10秒之内火焰信号消失,则系统认为异常已解除,不触发联动灭火;若10秒后仍然存在火焰报警,则认定火情持续存在,系统进入正式报警和自动灭火阶段。

这一功能的设计意义在于减少短时干扰、偶然光照变化或传感器瞬时误动作引发的不必要灭火操作。尤其是在某些环境中,火焰传感器可能会受到强光、打火机短暂火焰或高亮反射的影响,若不加入持续确认机制,则会导致系统过于敏感,不利于实际使用。因此,10秒持续报警确认是一项非常重要的可靠性设计。

2.4 声光报警与联动灭火功能

当系统确认火焰报警持续超过10秒后,应立即启动声光报警模块,并通过继电器驱动对应房间的灭火装置工作。声光报警模块一般由蜂鸣器和警示灯组成,蜂鸣器发出高强度声音提示,警示灯则进行闪烁或常亮显示,以便提醒周围人员迅速撤离或参与处置。

继电器控制模块则是实现灭火联动的关键执行部分。由于单片机输出电流较小,无法直接驱动灭火泵、电磁阀或其他执行装置,因此需要通过继电器或功率驱动级进行放大控制。当某个房间确认火警后,系统只启动该房间对应的灭火继电器,而非全部房间同时启动,以保证控制的针对性和资源利用效率。

这样,系统形成了完整的火灾处理链路:发现火焰→确定房号→持续确认→声光报警→驱动灭火。该联动关系体现了嵌入式消防控制系统的基本工作机制。

2.5 报警消除功能

为便于人工干预,系统设置了报警消除按钮。该按钮的主要作用是在火警已经处理完毕、传感器恢复正常或需要人工复位系统时,手动解除当前报警状态。按下报警消除按钮后,系统可清除蜂鸣器报警、关闭警示灯,并复位相关状态标志位。

需要注意的是,报警消除逻辑不应简单粗暴地无条件清零。更合理的做法是:只有在火焰传感器信号已经恢复正常,或者系统处于允许人工复位的状态时,报警消除按钮才有效。若火焰信号仍持续存在,则单纯按下消除按钮后,系统应很快重新进入报警状态,以防止人为误操作掩盖真实火情。

2.6 温度实时监测与状态显示功能

题目中的进阶功能要求系统能够对大、小房间温度进行实时监测,并利用LCD显示所有房间的状态信息。该功能使系统不仅可以检测明火,还能够反映环境热状态,对于提前发现异常升温、辅助判断火情发展趋势具有一定意义。

大房间配备1个温度传感器,可实时监测大房间温度变化。若系统在扩展设计中希望实现3个房间温度全覆盖,也可以为两个小房间分别加入温度传感器,在程序与显示逻辑上并不复杂。LCD模块可显示内容包括:1号房温度、2号房状态、3号房状态、是否有火焰报警、灭火是否启动、系统是否运行等。这样操作人员不仅能够知道哪里有火,还能看到各房间整体状态,提升系统的信息透明度。

2.7 总启动与手动灭火功能

系统支持总启动键控制整体运行状态。只有在按下启动键后,系统才开始进入正常的监测扫描工作;若系统未启动,则所有监测与控制逻辑处于停止或待机状态。这种设计便于设备上电后的统一管理,也适合在维护或调试时控制系统运行。

另外,系统还支持手动灭火启动按钮。该按钮用于在人工判断存在风险时,不依赖自动确认流程,直接启动对应房间或总灭火装置。手动灭火功能可作为自动系统的重要补充,特别是在火焰传感器尚未形成持续报警、但人员已发现实际危险时,能够更快执行灭火动作,提高安全保障能力。

3. 系统电路设计

3.1 单片机最小系统电路设计

单片机最小系统是整个消防检测与联动控制系统的核心部分,一般由单片机芯片晶振电路复位电路和供电电路组成。单片机负责读取火焰传感器和温度传感器信号,执行10秒持续火警判断,控制数码管和LCD显示,驱动蜂鸣器、报警灯和灭火继电器,并响应启动键、报警消除键和手动灭火键等输入信号。

晶振电路为单片机提供稳定时钟,使系统能准确完成定时判断和状态刷新。复位电路保证系统上电后从确定初始状态进入运行。供电电路则为单片机及外围模块提供稳定工作电压。由于系统中存在继电器、蜂鸣器等感性或大电流负载,因此单片机电源部分应做好去耦和隔离,避免执行机构动作时对控制核心造成干扰。

3.2 火焰传感器检测电路设计

火焰传感器是系统最核心的输入模块。根据题目要求,大房间配备2个火焰传感器,小房间各配备1个火焰传感器,共计4个火焰检测点。火焰传感器通常利用红外敏感元件对火焰特定波段进行检测,并输出数字或模拟信号。为了简化程序设计,系统中可优先采用带比较器的数字输出型火焰传感器模块。

在电路连接上,每个火焰传感器的数字输出端连接到单片机I/O输入口。若传感器检测到火焰,则输出有效电平,单片机即可识别对应通道异常。大房间的两个火焰传感器在程序中可采用“逻辑或”关系,即任一传感器报警即视为大房间火警。两个小房间则分别独立处理。

为提高抗干扰能力,每个火焰传感器输入口可增加简单滤波或上拉/下拉稳定措施,防止长线输入导致误触发。

3.3 温度传感器电路设计

温度传感器用于对房间温度进行实时监测。在本系统中,大房间至少配置1个温度传感器。若采用DS18B20数字温度传感器,则其电路结构简单,仅需单总线接口和一个上拉电阻即可实现通信。若采用模拟温度传感器,如LM35或NTC热敏电阻方案,则需接入单片机ADC接口进行采样换算。

从系统实现便利性和抗干扰角度考虑,数字温度传感器更适合该设计。单片机可周期性读取温度数值,并通过LCD显示。温度信息虽然不是本系统自动灭火的唯一触发条件,但作为辅助监测量,可以反映环境变化并增强系统可视化能力。

3.4 LED数码管显示电路设计

LED数码管主要用于显示异常房号,是系统快速定位功能的重要组成部分。若采用一位数码管,则可以显示1、2、3三个房号;若采用多位数码管,则可扩展显示多个异常编号或附加状态信息。考虑题目要求主要是显示房号,因此一位或两位数码管即可满足基本需求。

数码管显示电路通常需要限流电阻,若采用动态扫描方式,还需位选与段选控制逻辑。若I/O资源充足,也可采用静态显示方式,控制更直接。单片机在检测到火焰异常后,立即在数码管上输出对应房号码值,实现快速视觉定位。

3.5 LCD状态显示电路设计

LCD模块用于显示进阶信息,包括各房间状态、温度值、报警标志、灭火标志以及系统运行状态等。常用LCD1602字符液晶即可满足该系统需求。LCD1602具有显示内容直观、接口简单、编程成熟等优点,适合嵌入式监控系统使用。

电路设计中,LCD需要数据总线和控制总线与单片机连接,同时通过电位器调节显示对比度。若使用4位模式,可节省单片机I/O资源。程序中可采用分页显示或循环刷新方式,在LCD上依次显示“大房温度、1号房状态、2号房状态、3号房状态、报警状态”等内容。

3.6 声光报警电路设计

声光报警模块由蜂鸣器和报警指示灯组成。蜂鸣器可采用有源蜂鸣器,单片机只需输出高低电平即可控制发声。报警灯则可采用高亮LED或警示灯,通过晶体管放大驱动。由于蜂鸣器和高亮灯工作电流可能高于单片机I/O直接驱动能力,因此通常需要三极管MOSFET进行中间驱动。

当系统确认火情持续10秒后,单片机控制蜂鸣器鸣叫、报警灯闪烁或点亮,以形成明显的声光提示效果。该模块在消防系统中具有极高的重要性,因为其直接影响人员对火警的感知效率。

3.7 继电器灭火驱动电路设计

继电器驱动电路是自动灭火控制的执行核心。单片机输出控制信号后,不能直接连接灭火装置,而需通过驱动三极管或继电器模块进行电流放大。继电器的触点则可用于控制电磁阀、水泵、喷淋阀或模拟灭火装置。

根据题目要求,系统应对对应房间启动灭火装置,因此继电器设计应至少支持分区控制。比如为1号房、2号房、3号房分别配置独立继电器输出。单片机在判定某房间火情持续存在后,仅驱动相应房间继电器,避免误动作影响其他区域。

为了保护驱动三极管和单片机,继电器线圈两端应并联续流二极管,减少断电时的感应电压冲击。

3.8 按键输入电路设计

系统按键包括总启动键、报警消除键和手动灭火启动键。按键电路通常采用独立按键输入方式,一端连接I/O口,另一端接地或电源,并通过上拉或下拉电阻形成稳定逻辑电平。由于机械按键存在抖动问题,程序中需要进行消抖处理。

总启动键用于控制系统整体进入运行监测状态;报警消除键用于人工复位报警;手动灭火键则用于在需要时直接触发灭火操作。按键输入模块虽然结构简单,但在人机交互中作用非常关键,是保证系统灵活性的重要部分。

3.9 电源电路设计

系统电源模块需要同时为单片机、火焰传感器、温度传感器、LCD、数码管、蜂鸣器和继电器提供稳定供电。控制部分通常使用5V电源,继电器部分可能需要单独的5V或12V供电,具体取决于所选器件。电源设计中应考虑数字电路与继电器等大电流器件之间的干扰隔离问题。

合理的电源滤波与去耦是提高系统稳定性的关键。特别是在继电器吸合、蜂鸣器工作时,电源波动可能影响传感器采样和单片机运行,因此应采用足够的电容滤波和必要的稳压措施。

4. 系统程序设计

4.1 程序总体设计思路

本系统软件采用模块化设计思想,将整个程序划分为系统初始化模块、火焰采集模块、温度采集模块、按键扫描模块、房间判断模块、火警持续计时模块、报警控制模块、灭火控制模块、数码管显示模块和LCD刷新模块。主程序在完成初始化后,不断循环调用各个子模块,实现完整的检测与控制功能。

程序的关键在于多房间状态管理和10秒持续火警判断。系统并不是简单地检测到火焰后立即执行灭火,而是需要记录报警开始时间,并在持续满足条件时再进入联动控制状态。因此,程序中必须设置状态标志位和计时变量,对每个房间的报警状态进行独立管理。

4.2 主程序设计

主程序负责协调各个子功能模块运行,其执行流程一般包括:系统初始化、判断是否已启动、采集传感器状态、处理按键输入、执行房间火情判断、更新显示、控制报警和灭火输出等。

#include <reg52.h>

void System_Init(void);
void Key_Scan(void);
void Flame_Scan(void);
void Temp_Read(void);
void Alarm_Process(void);
void FireControl_Process(void);
void Seg_Display(void);
void LCD_Display(void);

void main(void)
{
    System_Init();

    while(1)
    {
        Key_Scan();

        if(system_run_flag)
        {
            Flame_Scan();
            Temp_Read();
            Alarm_Process();
            FireControl_Process();
            Seg_Display();
            LCD_Display();
        }
    }
}

该主程序结构清晰,体现了系统“先启动、后监测、再联动”的总体控制思路。

4.3 系统初始化程序设计

系统初始化程序用于完成I/O口配置、定时器初始化、显示模块初始化以及状态变量清零。系统上电后,默认应处于未启动状态,只有按下启动键后才开始进入监测模式。

bit system_run_flag = 0;
bit alarm_flag = 0;
bit fire_flag_room1 = 0;
bit fire_flag_room2 = 0;
bit fire_flag_room3 = 0;

void System_Init(void)
{
    LCD1602_Init();
    Timer0_Init();

    system_run_flag = 0;
    alarm_flag = 0;
    fire_flag_room1 = 0;
    fire_flag_room2 = 0;
    fire_flag_room3 = 0;

    BEEP = 1;
    LED_ALARM = 1;
    RELAY1 = 0;
    RELAY2 = 0;
    RELAY3 = 0;
}

该程序确保系统从确定状态启动,防止上电瞬间误报警或误启动继电器。

4.4 火焰采集与房间判断程序设计

火焰采集程序负责读取4个火焰传感器状态,并将其映射到对应房间。大房间有两个火焰传感器,只要其中任意一个触发,就视为1号房火情;两个小房间分别对应2号房和3号房。

sbit FLAME_BIG1 = P1^0;
sbit FLAME_BIG2 = P1^1;
sbit FLAME_S1   = P1^2;
sbit FLAME_S2   = P1^3;

void Flame_Scan(void)
{
    if(FLAME_BIG1 == 0 || FLAME_BIG2 == 0)
        fire_flag_room1 = 1;
    else
        fire_flag_room1 = 0;

    if(FLAME_S1 == 0)
        fire_flag_room2 = 1;
    else
        fire_flag_room2 = 0;

    if(FLAME_S2 == 0)
        fire_flag_room3 = 1;
    else
        fire_flag_room3 = 0;
}

通过该程序,系统能够实时识别哪个房间存在火焰异常,为后续计时和显示模块提供依据。

4.5 温度采集程序设计

温度采集程序用于读取大房间温度传感器数值,并在扩展情况下读取其他房间温度。若采用DS18B20,则程序需通过单总线协议完成复位、温度转换和数据读取。

int temp_room1 = 0;

void Temp_Read(void)
{
    temp_room1 = DS18B20_ReadTemp();
}

若后续扩展到所有房间均带温度检测,可增加temp_room2temp_room3变量,并按相同方式进行处理。

4.6 火警持续10秒判断程序设计

这是本系统最核心的程序之一。对于每个房间,都需要设置独立计时变量。当检测到火焰信号时开始计时;若计时达到10秒后仍未解除,则置位正式报警标志并启动联动控制。

unsigned int fire_time1 = 0;
unsigned int fire_time2 = 0;
unsigned int fire_time3 = 0;

void Alarm_Process(void)
{
    if(fire_flag_room1)
    {
        if(fire_time1 < 10) fire_time1++;
    }
    else
    {
        fire_time1 = 0;
    }

    if(fire_flag_room2)
    {
        if(fire_time2 < 10) fire_time2++;
    }
    else
    {
        fire_time2 = 0;
    }

    if(fire_flag_room3)
    {
        if(fire_time3 < 10) fire_time3++;
    }
    else
    {
        fire_time3 = 0;
    }

    if(fire_time1 >= 10 || fire_time2 >= 10 || fire_time3 >= 10)
        alarm_flag = 1;
    else
        alarm_flag = 0;
}

该程序假设定时器每1秒调用一次或通过秒级计时节拍触发。通过独立计时,可以避免多个房间火情混淆。

4.7 声光报警与继电器控制程序设计

alarm_flag被置位后,系统应启动蜂鸣器、报警灯,并根据房间计时状态驱动对应继电器。

sbit BEEP      = P2^0;
sbit LED_ALARM = P2^1;
sbit RELAY1    = P2^2;
sbit RELAY2    = P2^3;
sbit RELAY3    = P2^4;

void FireControl_Process(void)
{
    if(alarm_flag)
    {
        BEEP = 0;
        LED_ALARM = 0;

        RELAY1 = (fire_time1 >= 10) ? 1 : 0;
        RELAY2 = (fire_time2 >= 10) ? 1 : 0;
        RELAY3 = (fire_time3 >= 10) ? 1 : 0;
    }
    else
    {
        BEEP = 1;
        LED_ALARM = 1;
        RELAY1 = 0;
        RELAY2 = 0;
        RELAY3 = 0;
    }
}

通过该程序,系统可对不同房间独立执行联动灭火控制,实现分区灭火。

4.8 数码管房号显示程序设计

数码管显示程序用于在火焰传感器刚检测到异常时,立即显示房号。若多个房间同时异常,可采用优先级显示,这里以优先显示编号较小房间为例。

unsigned char alarm_room = 0;

void Seg_Display(void)
{
    if(fire_flag_room1) alarm_room = 1;
    else if(fire_flag_room2) alarm_room = 2;
    else if(fire_flag_room3) alarm_room = 3;
    else alarm_room = 0;

    SEG_ShowNum(alarm_room);
}

若需要更丰富的效果,还可以增加轮流显示多房间编号的功能。

4.9 LCD状态显示程序设计

LCD显示程序用于输出房间温度和状态信息,例如正常、火警、灭火中等内容。为了不让显示内容过于拥挤,可采用分页或循环刷新。

void LCD_Display(void)
{
    LCD1602_ShowString(1, 1, "R1:");
    LCD1602_ShowNum(1, 4, temp_room1, 3);

    if(fire_flag_room1)
        LCD1602_ShowString(1, 8, "FIRE");
    else
        LCD1602_ShowString(1, 8, "NORM");

    if(fire_flag_room2)
        LCD1602_ShowString(2, 1, "R2:F");
    else
        LCD1602_ShowString(2, 1, "R2:N");

    if(fire_flag_room3)
        LCD1602_ShowString(2, 8, "R3:F");
    else
        LCD1602_ShowString(2, 8, "R3:N");
}

该程序虽然简单,但足以体现系统进阶功能的基本思路。

4.10 按键处理程序设计

按键程序包括总启动键、报警消除键和手动灭火键处理。启动键用于使系统进入监测状态;报警消除键用于人工复位;手动灭火键用于直接触发灭火。

sbit KEY_START  = P3^0;
sbit KEY_CLEAR  = P3^1;
sbit KEY_MANUAL = P3^2;

void Key_Scan(void)
{
    if(KEY_START == 0)
    {
        DelayMs(10);
        if(KEY_START == 0)
        {
            system_run_flag = 1;
            while(KEY_START == 0);
        }
    }

    if(KEY_CLEAR == 0)
    {
        DelayMs(10);
        if(KEY_CLEAR == 0)
        {
            if(!fire_flag_room1 && !fire_flag_room2 && !fire_flag_room3)
            {
                alarm_flag = 0;
                fire_time1 = 0;
                fire_time2 = 0;
                fire_time3 = 0;
            }
            while(KEY_CLEAR == 0);
        }
    }

    if(KEY_MANUAL == 0)
    {
        DelayMs(10);
        if(KEY_MANUAL == 0)
        {
            RELAY1 = 1;
            RELAY2 = 1;
            RELAY3 = 1;
            while(KEY_MANUAL == 0);
        }
    }
}

在实际工程中,手动灭火也可设计成选择具体房间后再启动,这样控制更精细。

4.11 定时器程序设计

为了实现10秒持续判断,系统通常需要利用定时器产生固定节拍,例如1秒中断一次,对各房间火警计时变量进行累加。

void Timer0_ISR(void) interrupt 1
{
    static unsigned int ms = 0;

    TH0 = (65536 - 1000) / 256;
    TL0 = (65536 - 1000) % 256;

    ms++;
    if(ms >= 1000)
    {
        ms = 0;
        /* 每1秒到达一次,可在主程序中调用Alarm_Process,
           或在此处置位秒标志位 */
    }
}

通过定时器中断,系统的火警持续判断和显示刷新都能建立在稳定时间基准之上。

5. 系统工作流程分析

5.1 上电与启动流程

系统上电后,首先完成初始化,所有报警和继电器输出关闭,系统处于待机状态。只有当用户按下启动键后,系统才进入运行监测状态,开始对各个房间的火焰和温度信息进行实时采集与处理。这样的设计有利于设备调试和现场维护。

5.2 火焰检测与房号定位流程

在正常监测阶段,单片机不断扫描大房间两个火焰传感器和两个小房间火焰传感器状态。若任一传感器检测到火焰,则立即确定其所属房间,并通过数码管显示对应房号。与此同时,系统在内部启动该房间的火警持续计时逻辑。

5.3 持续确认与联动灭火流程

若火焰信号在10秒内消失,系统认为异常解除,不进入自动灭火阶段;若火焰持续超过10秒,则系统进入正式火警状态,启动声光报警,并驱动对应房间继电器,控制灭火装置工作。此时LCD同步显示房间异常信息和灭火状态。

5.4 人工干预流程

若现场人员确认火情已解除,可在火焰信号恢复正常后按下报警消除按钮,解除系统报警状态。若现场需要人工提前启动灭火,则可直接按下手动灭火按钮,由系统立即控制灭火继电器动作。这样的人工介入机制提高了系统灵活性和实用性。

6. 设计特点与实现分析

6.1 多点检测能力较强

本系统不是简单的单点火焰报警器,而是面向多房间环境进行设计。通过大房间双火焰检测点和两个小房间独立检测点的设置,系统具备更好的覆盖能力和分区监控能力,适合多区域室内火灾监测应用。

6.2 联动逻辑清晰

系统实现了“火焰检测—房号显示—持续确认—声光报警—继电器灭火”的完整联动逻辑,流程清楚,功能衔接紧密。尤其是10秒持续确认机制,使系统能够在保证灵敏度的同时兼顾抗误报能力。

6.3 可视化程度较高

通过数码管和LCD的配合使用,系统既能快速显示异常房号,又能详细显示各房间状态和温度信息。这种双显示设计兼顾了快速定位和信息完整性,使系统更接近实际消防监控终端的表现形式。

6.4 扩展能力良好

本系统在现有基础上还具有较好的扩展空间。例如可以增加烟雾传感器、更多房间分区、无线传输模块、短信报警模块、历史数据记录模块等,从而进一步提升系统智能化水平。因此,该设计不仅适合作为单片机课程设计或毕业设计题目,也具有向实际小型消防监控系统拓展的潜力。

7. 总结

基于单片机的火焰与温度联动检测及声光灭火控制系统,以单片机为核心,围绕多房间火焰检测、温度监测、房号显示、持续火警确认、声光报警、继电器联动灭火和人工按键控制等功能展开设计,形成了一套结构完整、逻辑清晰、具有较强实用性的嵌入式消防控制系统。

在功能实现方面,系统能够覆盖1个大房间和2个小房间,其中大房间设置2个火焰传感器和1个温度传感器,两个小房间各设置1个火焰传感器,实现多点火情监测;当任一火焰传感器检测到异常时,系统通过LED数码管显示异常房号,快速定位火源位置;若火焰报警持续超过10秒且未解除,则自动启动声光报警,并通过继电器驱动对应房间灭火装置工作;系统还支持报警消除按钮、总启动键以及手动灭火启动按钮,进一步增强了系统灵活性与安全性。

在电路设计方面,系统对单片机最小系统、火焰传感器电路、温度传感器电路、数码管显示电路、LCD显示电路、声光报警电路、继电器驱动电路和按键输入电路进行了完整划分,各模块功能明确、接口清晰,具备较好的可实现性。在程序设计方面,系统采用模块化思想,对初始化、采集、判断、计时、报警、灭火和显示等模块进行了分层设计,使整体逻辑清楚、程序结构规范、后续维护和扩展较为方便。

总体来看,该系统较好地满足了题目提出的各项要求,体现了单片机在多点监测、联动控制和智能消防领域中的应用优势,也为后续开发更复杂的多区域火灾报警与自动灭火系统提供了较好的设计参考。

相关推荐