基于51单片机的温度烟雾火灾报警系统 您所在的位置:网站首页 基于单片机的烟雾及温度报警系统设计 基于51单片机的温度烟雾火灾报警系统

基于51单片机的温度烟雾火灾报警系统

2024-07-01 07:21| 来源: 网络整理| 查看: 265

基于51单片机的温度烟雾火灾报警系统

(仿真+程序+PCB+设计报告)

功能介绍 具体功能:

1. 烟雾采集传感器选用MQ-2,由于该传感器输出的是模拟信号,因此需要模数转换芯片ADC0832,把模拟信号转为数字信号再传给单片机;

2. 温度采集使用DS18B20数字传感器,该传感器通过单总线和单片机相连;

3. 显示设备使用数码管,可以在屏幕上显示实时烟雾浓度等级、温度值;

4. 报警模块则采用蜂鸣器和LED灯组成,无论哪个检测元素超标,蜂鸣器都会鸣叫报警;

5. 3个按键作为操作输入设备,可以用来调节报警阈值的大小;

6. 增加了一个手动报警按键功能。

演示视频:

基于51单片机的温度烟雾火灾报警系统

#include //调用单片机头文件 #define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535 #include //数码管段选定义 0 1 2 3 4 5 6 7 8 9 uchar code smg_du[]={0x05,0xdd,0x46,0x54,0x9c,0x34,0x24,0x5d,0x04,0x14, 0x0c,0xa4,0x27,0xc4,0x26,0x2e,0xff}; //断码 //数码管位选定义 uchar code smg_we[]={0x7f,0xbf,0xdf,0xef}; uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; sbit CS=P3^2; //CS定义为P1口的第4位脚,连接ADC0832CS脚 PCB sbit SCL=P3^3; //SCL定义为P1口的第3位脚,连接ADC0832SCL脚 sbit DO=P3^4; //DO定义为P1口的第4位脚,连接ADC0832DO脚 sbit dq = P3^5; //18b20 IO口的定义 sbit beep = P3^6; //蜂鸣器IO口定义 uint temperature,s_temp=35; //温度的变量 uchar dengji,s_dengji=5; //烟物等级 uchar shoudong; //手动报警键 uchar flag_huoyan; bit flag_300ms = 1; uchar key_can; //按键值的变量 uchar menu_1; //菜单设计的变量 /***********************1ms延时函数*****************************/ void delay_1ms(uint q) { uint i,j; for(i=0;i= 1; //读数据是低位开始 dq = 1; //释放总线 if(dq == 1) //开始读写数据 value |= 0x80; delay_uint(5); //60us 读一个时间隙最少要保持60us的时间 } return value; //返回数据 } /*************读取温度的值 读出来的是小数***************/ uint read_temp() { uint value; uchar low; //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序 init_18b20(); //初始化18b20 write_18b20(0xcc); //跳过64位ROM write_18b20(0x44); //启动一次温度转换命令 delay_uint(50); //500us init_18b20(); //初始化18b20 write_18b20(0xcc); //跳过64位ROM write_18b20(0xbe); //发出读取暂存器命令 EA = 0; low = read_18b20(); //读温度低字节 value = read_18b20(); //读温度高字节 EA = 1; value 1)&0x1; _nop_(); _nop_(); SCL=0;//拉低CLK端,形成下降沿3 DO=1;//控制命令结束 _nop_(); _nop_(); dat=0; for(i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有