【51单片机】【protues仿真】基于51单片机火灾报警控制系统

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、LCD1602液晶屏幕显示烟雾,温度值

2、按键设置阈值​

3、烟雾值大于阈值或温度大于阈值10s启动声光警报、喷水模块

4、元器件损坏警报

二、使用步骤

基于51单片机的火灾报警控制系统通常采用模块化设计,集成多种传感器实现火灾隐患的早期监测与预警。系统通过多参数协同检测和联动控制机制,显著提升火灾识别的准确性和响应速度。

三、硬件资源

1、51单片机核心模块

2、按键模块

3、DHT11温湿度传感器、MQ烟雾传感器模块

4、蜂鸣器模块

5、继电器模块

6、LCD1602显示模块

四、软件设计

#include <reg51.H>

#include "intrins.h"

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

#define LCDIO P0 //液晶屏数据口

sbit rs=P2^5; //定义1602 RS

sbit rw=P2^6; //定义1602 RW

sbit lcden=P2^7; //定义1602 EN

sbit SET = P2^0; //设定

sbit Up = P2^1; //加

sbit Down = P2^2; //减

sbit contrl = P2^3; //模拟布线 问题

sbit DQ = P2^4; //温度传送数据IO口

sbit motor1 =P1^6; //继电器接口

sbit speak=P1^7; //蜂鸣器接口

uchar Temp_H=35;//温度上限

uchar RH=50;//烟雾上限

uchar mq_value=0;//烟雾值

uchar setflag = 0;//

uchar temp_value; // 温度值

uchar signature ;//温度正负判断

uchar alam_flag=0;//火灾警报标志

uchar speak_flag=0;

uchar com_flag=0;//模块异常标志

uchar alam_cont=0;

uchar count = 0; //计数

uchar code table[]= "Tp: MQ: ";

uchar code table1[]="TH: RH: % ";

/*********************************************/

void delay(uint z) //延时

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

/**********************************************/

void write_com(uchar com)

{

rs=0;

rw=0;

lcden=0;

P0=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

/*********************************************/

void write_date(uchar date)

{

rs=1;

rw=0;

lcden=0;

P0=date;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void lcdinit()

{

lcden=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

}

/***********************************************/

void init()

{

uchar num;

for(num=0;num<15;num++)

{

write_date(table[num]);

delay(5);

}

write_com(0x80+0x40);

for(num=0;num<15;num++)

{

write_date(table1[num]);

delay(5);

}

}

void main(void)

{

TMOD=0x01; //TMOD=0000 0001B,使用定时器T0的模式1

TH0=(65536-5000)/256; //定时器T0的高8位赋初值

TL0=(65536-5000)%256; //定时器T0的高8位赋初

ET0=1;

TR0=1; //定时关闭

lcdinit();

init();

delay(50); //启动等待,等LCD讲入工作状态

delay(50); //延时片刻(可不要)

Conut(); //显示函数

delay(150);

while(1)

{

Conut(); //显示当前烟雾

temp_to_str(); //温度数据转换成液晶字符显示

alam();//警报

keyscan();

}

}

//*****T0中断函数50ms中断一次**************

void t0_time() interrupt 1

{

TH0=(65536-5000)/256; //定时器T0的高8位赋初值

TL0=(65536-5000)%256; //定时器T0的高8位赋初

count++;

if(count>=200)

{

count=0;

alam_cont++;

if(alam_cont>=10)

{

alam_cont=0;

speak_flag=1;//启动警报

EA=0;

}

}

}

五、实验现象

演示视频:

相关推荐
北京耐用通信5 小时前
打破协议壁垒:耐达讯自动化Modbus转Profinet网关实现光伏逆变器全数据采集
运维·人工智能·物联网·网络安全·自动化·信息与通信
可爱的鸡仔5 小时前
STM32--------DMA
stm32·单片机·嵌入式硬件
D.....l5 小时前
STM32学习(MCU控制)(GPIO)
stm32·嵌入式硬件·学习
lzhdim6 小时前
雷蛇(Razer)炼狱蝰蛇V2X极速版无线鼠标开箱
单片机·嵌入式硬件·计算机外设
wuk9986 小时前
基于位置式PID算法调节PWM占空比实现电机转速控制
单片机·嵌入式硬件·算法
派大星爱吃猫6 小时前
堆的概念、结构与应用详解
c语言·数据结构·
三佛科技-134163842126 小时前
暴力风扇方案MCU控制芯片开发
单片机·嵌入式硬件·智能家居·pcb工艺
我先去打把游戏先6 小时前
ESP32学习笔记(基于IDF):SmartConfig一键配网
笔记·嵌入式硬件·mcu·物联网·学习·esp32·硬件工程
Hy行者勇哥6 小时前
仪表盘设计技术全解析:从前端框架到工业物联网场景的多维度选型指南
物联网·前端框架