基于51单片机防火防盗 LCD 1602屏+烟雾+温度+红外
毕设帮助、开题指导、技术解答(有偿)见文末。
目录
摘要
一、硬件方案
二、设计功能
三、实物图
四、原理图
五、PCB图
六、Proteus仿真
七、程序
部分代码
八、资料包括
摘要
随着社会和经济的发展,防火工作越来越重要,但是目前国内的许多研发都侧重于大型场所的火灾报警。因此,我们就有必要研制一种结构简单、经济实用的家庭烟雾报警器以适应市场的需求。基于供家庭使用的烟雾报警器应该具备的基本要求和功能,文章设计了一种比较适合的烟雾报警器。
本设计以传感器和单片机作为烟雾报警器设计的核心器件,配合其它器件即可实现声光报警、自动排烟换气和消防灭火等功能。设计中单片机选用STC89C52作为控制器件,传感器选用MQ-2型半导体可燃气体敏感元件烟雾传感器实现烟雾的检测。烟雾报警器主要由烟雾信号采集及前置放大电路、模数转换电路、单片机控制电路、显示电路、声光报警电路和安全保护电路构成,设计合理、简单易懂、价格低廉,使单片机在烟雾报警系统的控制中得到充分应用,具有一定的实用价值。论文主要针对烟雾报警系统中的各个组成部分及功能进行了详细的介绍和说明,并对其主控电路和外围设备电路之间的接口连接方式,以及系统软件设计进行了重点的分析和讲解。
热释电红外传感器,它的制作简单、成本低、安装比较方便,而且防盗性能比较稳定,抗干扰能力强、灵敏度高、安全可靠。这种防盗器安装隐蔽,不易被盗贼发现,便于多用户统一管理。本设计包括硬件和软件设计两个部分。硬件部分包括单片机控制模块、红外探头模块、驱动执行报警模块、LED控制模块等部分组成。处理器采用51系列单片机STC89C52,程序使用C语言编写。
关键字:烟雾报警器;单片机;传感器;红外
一、硬件方案
单片机的防火防盗系统设计的实现主要有电源5V供电、LCD 1602显示屏模块、单片机最小系统、独立按键模块、蜂鸣器报警等、烟雾传感器模块、DS18B20温度传感器、人体红外感应传感器。
二、设计功能
1.本设计采用STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机作为主控制器
2.LCD 1602液晶屏实时显示当前温度值、烟雾值以及对应的报警值。
3.用按键可以设置温度报警值和烟雾报警值。
4.还可以通过人体红外感应传感器来检测当前有没有人经过,可用作防盗功能。
三、实物图
四、原理图
五、PCB图
六、Proteus仿真
七、程序
部分代码
/********************************************************************
* 名称 : init_1602()
* 功能 : 初始化1602液晶
* 输入 : 无
* 输出 : 无
***********************************************************************/
void init_1602()
{write_com(0x38);write_com(0x38);write_com(0x0c);write_com(0x06);delay_uint(1000);write_string(1,0," YW:000PPM "); write_string(2,0," W:00 Hw:0 OFF "); write_zifu(2,6,0XDF); //温度单位}/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{uint i,j;for(i=0;i<q;i++)for(j=0;j<120;j++);
}/***********************18b20初始化函数*****************************/
void init_18b20()
{bit q;dq = 1; //把总线拿高delay_uint(1); //15usdq = 0; //给复位脉冲delay_uint(80); //750usdq = 1; //把总线拿高 等待delay_uint(10); //110usq = dq; //读取18b20初始化信号delay_uint(20); //200usdq = 1; //把总线拿高 释放总线
}/*************写18b20内的数据***************/
void write_18b20(uchar dat)
{uchar i;for(i=0;i<8;i++){ //写数据是低位开始dq = 0; //把总线拿低写时间隙开始 dq = dat & 0x01; //向18b20总线写数据了delay_uint(5); // 60usdq = 1; //释放总线dat >>= 1;}
}/*************读取18b20内的数据***************/
uchar read_18b20()
{uchar i,value;for(i=0;i<8;i++){dq = 0; //把总线拿低读时间隙开始 value >>= 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(); //初始化18b20write_18b20(0xcc); //跳过64位ROMwrite_18b20(0x44); //启动一次温度转换命令init_18b20(); //初始化18b20write_18b20(0xcc); //跳过64位ROMwrite_18b20(0xbe); //发出读取暂存器命令low = read_18b20(); //读温度低字节value = read_18b20(); //读温度高字节value <<= 8; //把温度的高位左移8位value |= low; //把读出的温度低位放到value的低八位中value *= 0.0625; //转换到温度值 return value; //返回读出的温度
}/***********读数模转换数据********************************************************/
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
unsigned char ad0832read(bit SGL,bit ODD)
{unsigned char i=0,value=0,value1=0; SCL=0;DO=1;CS=0; //开始SCL=1; //第一个上升沿 SCL=0;DO=ODD;SCL=1; //第二个上升沿SCL=0;DO=SGL;for(i=0;i<8;i++){SCL=0; //开始从第四个下降沿接收数据value<<=1;SCL=1;if(DO)value++; }return value;
}/********************独立按键程序*****************/
uchar key_can; //按键值void key() //独立按键程序
{static uchar key_new;key_can = 20; //按键值还原P1 |= 0x0f;if((P1 & 0x0f) != 0x0f) //按键按下{delay_1ms(1); //按键消抖动if(((P1 & 0x0f) != 0x0f) && (key_new == 1)){ //确认是按键按下key_new = 0;switch(P1 & 0x0f){case 0x0e: key_can = 1; break; //得到k1键值case 0x0d: key_can = 2; break; //得到k2键值case 0x0b: key_can = 3; break; //得到k3键值case 0x08:
八、资料包括
需要完整的资料可以点击下面的名片,找我要资源压缩包的百度网盘下载地址及提取码。
基于51单片机防火防盗 LCD 1602屏+烟雾+温度+红外相关推荐
- 13、基于51单片机防火防盗烟雾温度人体红外感应检测设计(程序+原理图+PCB图+Proteus仿真+参考论文+开题报告+元器件清单等)
摘要 随着社会和经济的发展,防火工作越来越重要,但是目前国内的许多研发都侧重于大型场所的火灾报警.因此,我们就有必要研制一种结构简单.经济实用的家庭烟雾温度人体感应检测报警器以适应市场的需求. ...
- 【Proteus仿真】【51单片机】基于51单片机防火防盗设计
文章目录 一.功能简介 二.软件设计 三.实验现象 联系作者 一.功能简介 本项目使用Proteus8仿真51单片机控制器,使用声光报警模块.LCD1602显示模块.DS18B20温度.烟雾传感器模块 ...
- 【030】基于51单片机的超声波液位测距报警系统(带温度显示)Proteus仿真设计
一.压缩包资料内容 (1).基于51单片机的超声波液位测距报警(带温度显示)系统proteus仿真设计一份: (2).基于51单片机的超声波液位测距报警(带温度显示)系统proteus仿真设计keli ...
- 基于51单片机的DS12C887电子钟万年历带农历温度
基于51单片机的DS12C887电子钟万年历( proteus仿真+程序+讲解视频) 仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0028 ...
- 基于51单片机万年历可调电子时钟闹钟温度(实物图+源码+仿真+原理图+论文)
资料编号:038 硬件构成:51单片机+最小系统+LCD1602液晶显示模块+时钟模块+温度采集模块+蜂鸣器模块+按键模块 1.采用LCD1602液晶屏显示.DS1302时钟芯片和DS18B20温度 ...
- 基于51单片机的智能停车场管理车位引导系统红外检测无线蓝牙/WiFi手机APP控制设计
本系统由STC89C52单片机.(无线蓝牙/WIFI模块-可选).红外对管传感器.LCD1602液晶显示.LED指示灯及电源组成. 通过红外对管模块实时检测车位是否占用,车位分为1车位.2车位.3车位 ...
- 基于51单片机DS1302的LCD电子时钟
设计要求:设计一个LCD显示的电子时钟,系统是以51单片机为控制核心,通过DS1302,使用LCD显示器显示时间,"年-月-日-时-分-秒-星期",使用4个功能键K1-K4,其中K ...
- 基于51单片机的智能水表水流量计流量报警器温度设计方案原理图
本系统由STC89C52单片机电路+水流量传感器+DS18B20温度电路+继电器电路+LCD1602液晶显示电路+按键电路+蜂鸣器电路+电源电路组成. 系统总体结构 (文末附文件) 3.2模块电路的设 ...
- 基于51单片机的电子时钟万年历带农历温度proteus仿真
硬件设计 本设计由数据显示模块.温度采集模块.时间处理模块和调整设置模块四个模块组成.系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年.月.日.时.分.秒进 ...
最新文章
- LabVIEW图像特征与机器视觉概念(理论篇—4)
- 为什么只需要一个eden而需要两个survivor?
- [Android实例] 同一Activity的实例被多次重复创建
- vue3.0 AntDesignVue2.0 table的rowkey报错问题解决方法
- spring源码分析第四天------springmvc核心原理及源码分析
- python计算排队时间_python计算排队时间_Python(pdb)-排队执行命令
- oracle建共享dblink,oracle建多个dblink
- RecyclerView 下拉刷新上拉加载
- css3径向渐变详解-遁地龙卷风
- Java菜鸟的初次实习经历
- 【Axure原型分享】移动端可视化案例模板
- MTK FAQ最新资料,MTK_on_line_FAQ_SW_ALPS_Framework+-+Battery
- 弘辽科技:淘宝商品标题怎么写?如何选词?
- Delphi 把字符串复制到剪贴板
- JAVJ输出二进制数字
- oracle实现列转行
- 原生JS超级马里奥(第五天)
- Java实现月工资个人所得税及各保险计算问题(2022年版)
- 永磁同步电机矢量控制(PMSM-FOC)仿真教程
- Springmvc介绍及与Mybatis整合技术详解