基于51单片机的温度烟雾报警系统设计

​一、设计要求

  无线多功能火灾报警器采用STC89C51为核心控制器,利用气体传感器MQ-2、ADC0832模数转换器、DS18B20温度传感器等实现基本功能。通过这些传感器和芯片,当环境中可燃气体浓度或温度等发生变化时系统会发出相应的灯光报警信号和声音报警信号,以此来实现火灾报警,智能化提示。

  功能:(1)火情探测功能:为了提高火灾报警的准确性和及时性,火灾报警系统需要使用各种方法进行火灾探测。在实际使用中,根据不同的防火场所,用户可以选用温度探测法、可燃气体检测法及烟雾探测法等合适的火灾探测方法,来有效的探测火灾;(2)灯光报警功能:当室内烟雾浓度过大、有火情产生、故障等异常情况发生时,报警器要进行灯光报警。当烟雾超过最大设定值时,可以蜂鸣器报警。

系统的组成结构如下:

二、设计资料

三、部分程序代码

#include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include "intrins.h"                         #define     u8        unsigned char#define     u16       unsigned int#define     uchar        unsigned char#define     uint       unsigned intuchar yushe_wendu=50;        //温度预设值uchar yushe_yanwu=45;        //烟雾预设值uint wendu;                 //温度值全局变量uchar yanwu;                 //用于读取ADC数据//运行模式  uchar Mode=0;                 //=1是设置温度阀值  =2是设置烟雾阀值  =0是正常监控模式//管脚声明sbit LED_wendu= P1^4;     //温度报警灯sbit LED_yanwu= P1^5;     //烟雾报警灯sbit baojing= P3^3;       //蜂鸣器接口//按键sbit Led_Reg     =P1^5;         //红灯sbit Led_Yellow  =P1^4;         //黄灯sbit Buzzer       =P3^3;         //蜂鸣器//void delay(uint z)       //延时函数大约延时z ms//{//  uint i,j;//  for(i=0;i<z;i++)//  for(j=0;j<121;j++);//}//========================================================================// 函数: void  delay_ms(u16 ms)// 描述: 延时函数。// 参数: ms,要延时的ms数, 这里只支持1~65535ms. 自动适应主时钟.// 返回: none.// 版本: VER1.0// 日期: 2013-4-1// 备注: //========================================================================void  delay_ms(u16 ms){     u16 i;   do{        i = 12000000 / 13000;      while(--i)  ;   //14T per loop     }while(--ms);}/***********************************************************************************************************LCD1602相关函数***********************************************************************************************************///LCD管脚声明 (RW引脚实物直接接地,因为本设计只用到液晶的写操作,RW引脚一直是低电平)sbit LCDRS = P1^6;sbit LCDEN = P1^7;sbit D0     = P2^7;sbit D1     = P2^6;sbit D2     = P2^5;sbit D3     = P2^4;sbit D4     = P2^3;sbit D5     = P2^2;sbit D6     = P2^1;sbit D7     = P2^0;//LCD延时void LCDdelay(uint z)      //该延时大约100us(不精确,液晶操作的延时不要求很精确){  uint x,y;  for(x=z;x>0;x--)    for(y=10;y>0;y--);}void LCD_WriteData(u8 dat)    {  if(dat&0x01)D0=1;else D0=0;  if(dat&0x02)D1=1;else D1=0;  if(dat&0x04)D2=1;else D2=0;  if(dat&0x08)D3=1;else D3=0;  if(dat&0x10)D4=1;else D4=0;  if(dat&0x20)D5=1;else D5=0;  if(dat&0x40)D6=1;else D6=0;  if(dat&0x80)D7=1;else D7=0;}//写命令void write_com(uchar com){  LCDRS=0;            LCD_WriteData(com);//  DAT=com;  LCDdelay(5);  LCDEN=1;  LCDdelay(5);  LCDEN=0;}//写数据void write_data(uchar date){  LCDRS=1;  LCD_WriteData(date);//  DAT=date;  LCDdelay(5);  LCDEN=1;  LCDdelay(5);  LCDEN=0;

四、protues仿真

五、AD原理图

六、PCB

七、全套设计资料扫一扫关注公众号立即获取

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下饭的王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值