【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;

}

}

}

五、实验现象

演示视频:

相关推荐
小刘爱玩单片机1 天前
【stm32协议外设篇】- PAJ7620手势识别传感器
c语言·stm32·单片机·嵌入式硬件
烛衔溟1 天前
C语言算法:排序算法入门
c语言·算法·排序算法·插入排序·冒泡排序·选择排序·多关键字排序
Laity______1 天前
指针(2)
c语言·开发语言·数据结构·算法
是苏浙1 天前
零基础入门C语言之C语言实现数据结构之顺序表经典算法
c语言·开发语言·数据结构·算法
Jerry丶Li1 天前
二十七、通信接口
c语言·stm32·单片机·嵌入式硬件
沸速存储1 天前
DDR5引领变革:内存条行业的技术迭代与市场重构
嵌入式硬件·电脑
飞睿科技1 天前
【IoT开发选型】乐鑫ESP32-C6核心优势解析:为何它在无线连接中表现如此全面?
嵌入式硬件·物联网
heisd_11 天前
STM32时钟系统对于STM32F1系列(详解)
stm32·单片机·嵌入式硬件
应用市场1 天前
STM32 ADC底层原理与寄存器配置详解
stm32·单片机·嵌入式硬件
门思科技1 天前
LoRa 与 LoRaWAN 技术解析:物理层原理、网络架构与典型物联网应用场景
网络·物联网·架构