基于51单片机的家居安防系统论文Word格式.docx
《基于51单片机的家居安防系统论文Word格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的家居安防系统论文Word格式.docx(37页珍藏版)》请在冰点文库上搜索。
![基于51单片机的家居安防系统论文Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/07891889-ef60-4d6f-97ba-788d7d07566c/07891889-ef60-4d6f-97ba-788d7d07566c1.gif)
本课题的家居安防系统,是根据自己对智能家居的初步认识,利用学到的技术来设计和实现一个家居安防控制系统,能够优化人们的生活,增强家居生活的安全性。
更重要的是,能够对大学所学的知识点有更深一层的理解,让使用传感器与运用单片机知识运用到实际当中。
1.2课题研究方法和内容
1.2.1研究方法
本论文在编写过程中主要采用了以下的研究方法:
文献研究法:
通过相关的文献和查阅书籍来取得一些对于课题有用的资料,从而更加科学、客观、全面地了解所要研究的问题,找出问题的本质属性,少走弯路,便于更有效的寻找解决问题的办法。
实验法:
通过对已有问题的研究和分析,从已得出的结论和经验出发,形成某种假设,将形成的假设计划出一个可控制的实验方法,通过多次的科学实验验证,观察自变量在变化过程中因变量的变化,从而得出自变量和因变量的关系,最后统计得出设定的功能是否可行。
1.2.2研究内容
本论文总共分为五个部分,每个部分内容安排如下:
第1章:
绪论。
主要说明研究的内容和研究背景的介绍以及研究的计划安排。
第2章:
系统分析。
主要包括需求分析,可行性分析以及系统实现的方案。
第3章:
系统硬件设计。
主要介绍本系统的总体功能设计,硬件系统设计,具体描述硬件模块的设计和电路搭建。
第4章:
系统软件实现。
主要介绍本系统的软件开发工具使用,软件设计和主要模块软件的描述和功能。
第5章:
系统调试。
主要用不同的示例调试系统运行效果。
第6章:
结论。
主要分析系统在总体设计上待改进的一些地方,分析优点以及如何对缺点进行改进等。
最后是参考文献以及致谢内容。
2系统分析
本章主要是对家居安防系统的背景和现状的调查,进行需求分析,包括人们对家居安防的市场需求和功能需求,以及对51单片机家居安防系统的完成进行可行性的分析。
2.1系统背景及现状
随着人们生活水平的不断提高,居民正在成为推动安防产业的重要力量,而家庭安防无疑是安防需求的重要力量。
消费升级不断催生民用市场对安防产品新的需求,总而言之,家居安防的发展在如今呈现出蓬勃发展的上升阶段。
2.2系统需求分析
2.2.1市场需求
近年来,国内安防行业市场规模保稳定增长,其市场前景可期。
根据中商产业研究院数据显数据统计显示:
我国安防行业市场规模从2012年的3240亿元增长到2018年的6600亿元,涨幅达104%。
2018年中国安防行业市场规模在6600亿元左右。
其中,智能安防行业市场规模近300亿元。
预计在2020年,智能安防将创造一个千亿的市场,这也将是安防领域不可小觑的市场。
由此可得知,家居安防的市场潜力是非常巨大的。
2.2.2功能需求
家居安防系统,主要考虑到日常家居环境中的不同情况,从以下场景对系统功能进行分析:
●大部分家庭都是使用燃气做饭,一旦发生泄漏,很大几率引起爆炸,因此功能需要实时监测烟雾气体浓度,烟雾浓度可以在液晶屏实时显示,一旦烟雾浓度达到用户自己设定的报警阈值,会立刻声光报警;
●考虑到家庭中存在易燃的沙发桌椅,电器等助燃物,假若发生明火意外,后果不堪设想,因此功能需要实时监测温度值,温度值可以在液晶屏实时显示,一旦温度值达到用户自己设定的报警阈值,会立刻声光报警;
●当家中有儿童,老年人独居时,长期室温过低会造成免疫力低下,所以功能还能选择设定温度下限报警值,室内温度低于设定温度下限值,会立刻声光报警,提醒保暖;
●考虑到偶尔有入室盗窃发生,因此需要防盗功能,在用户(外出前或晚上睡觉)开启布防模式后,一旦有异常,立刻声光报警。
2.3系统方案
软件开发方案:
●操作系统:
微软公司的Windows10
●编译工具:
Keil
●单片机烧录工具:
STC-ICP
●开发语言:
C语言
硬件组成方案:
●中央控制板:
单片机STC89C52RC
●显示模块:
LCD1602
●烟雾模块:
MQ-2传感器
●温度模块:
DS18B20传感器
●人体红外模块:
HC-SR501传感器
●其他配件:
LED灯、按键模块、蜂鸣器、电阻、电容等等。
2.4可行性分析
2.4.1经济可行性分析
随着科技进步,家居安全需求的不断增加。
随着技术产业的进步和国内芯片制造商技术的逐步成熟,让安防设备的成本价位在逐年下降,价格也越来越亲民。
本系统设计结合传感器与单片机,成本也较为低廉。
2.4.2技术可行性分析
以STC89C52RC为主板,温度传感器,烟雾传感器,人体红外传感器为核心的家居安防系统,能够严格控制价格,功耗,质量,稳定性。
而且逻辑电路较为简单易懂,编程涉及知识大多在大学所学习的范围内,且能够根据实际开发进度对系统部分功能进行改进。
综上所述,该系统从功能,成本,技术等方面考虑都是完全可行的。
3系统硬件设计
3.1系统功能设计
经过需求分析和市场调研,本设计应实现以下功能:
⏹用烟雾模块测量出当前室内烟雾浓度
⏹用模数转换器将测量到的模拟量转化成单片机可以处理的高低电平信号,然后把这些信号输出到液晶屏中打印出来。
⏹系统可以调节烟雾浓度报警值,一旦测量值大于等于报警值,蜂鸣器和LED灯会随即声光报警。
⏹用温度模块测量出当前室内温度
⏹液晶屏可以显示当前温度值
⏹系统可以调节温度上下限报警值,上限可用于火灾报警,下限可作室内低温功能提示,一旦测量值大于上限报警值或者低于下限报警值,蜂鸣器和LED灯会随即声光报警。
⏹温度上限报警阈值等于或低于下限报警阈值设定时会进行报警,提示设定不合理。
⏹重新开机后,能够记忆上次设定的烟雾报警值,温度报警值。
⏹用人体红外监测,一旦有异常入侵,蜂鸣器和LED灯会随即声光报警。
⏹按键能够调节+—报警阈值,能够设置是否进入布防模式。
3.2硬件系统设计
烟雾传感器会将空气中烟雾浓度转换成模拟量输入到模数转换器ADC0832中,再经模数转换器转换成数字电压传给单片机;
已封装好的温度传感器与人体红外传感器能够把测取数据直接转换为数字电压传给单片机。
单片机把数据输出到LCD1602中显示出来,实现数据实时同步。
单片机上电需预热,随后就立即进行温度值与烟雾浓度检测,可以通过按独立按键改变报警值,超过报警值立马报警;
按下布防按键,等待数十秒能够进入布防模式,有异物入侵立马报警。
图3-1系统总体模块框图
3.3硬件模块选型
3.3.1主控芯片
STC89C52RC在本系统中是中央控制板。
该单片机最小系统只需电源,晶振,复位电路即可运作。
中央控制板通过模数转换以及电路放大器,得到所要收集的数字信号在LCD屏幕上显示出来,并且能够保存在运行过程中修改的程序(例如保存报警值)。
图3-2单片机最小系统
本系统有4个I/O口,分别是P0,P1,P2,P3。
该单片机P0用作Data/Addr总线,有读内存,写内存,擦除内存三种状态,一般情况下让P0处于高阻态,使得P0口可以作为普通的I/O口使用,本设计用P0口来做液晶的数据寄存器口。
P1用作输入输出口,P2输出高8位地址,用于对外部存储器的接口电路进行寻址。
尤为重要的是P3,P3口有定时器,中断寄存器等,作为第一功能使用时,与P1口一样;
作为第二功能使用时,每一位都有特定用途。
表3.1P3引脚功能
引脚端口
对应功能
P3.0
RXD:
串行接收
P3.1
TXD:
串行发送
P3.2
INT0:
外部中断输入0端
P3.3
INT1:
外部中断输入1端
P3.4
T0:
计数脉冲输入0端
P3.5
T1:
计数脉冲输入1端
P3.6
WR:
外部RAM写选通信号输出
P3.7
RD:
外部RAM读选通信号输出
3.3.2显示模块
系统中需要一个显示模块来显示当前信息,本系统采用LCD1602实现,因为其功耗低、显示信息量大。
它是由32个5x7点阵组成的行字符型显示屏。
能够显示出当前的烟雾浓度,温度值,安防状态的情况,并且用户调整报警值可在LCD屏幕上显示操作。
图3-3LCD电路图
STC89C52RC的P0.0-P0.7,P2.5-P2.7分别与LCD1602的D0-D7,EN,RW,RS相接。
P2.5连接显示屏的EN,是使能脚,通过输出电平到EN确定LCD1602工作状态。
P2.7控制RS,是数据(RS=1)还是指令(RS=0)。
P2.6控制RW,是读(RW=1)还是写(RW=0)。
所以P2.6和P2.7是一起控制LCD1602读\写\指令\数据。
P0.0-P0.7控制D0-D7是输入或输出我们所需要的指令\数据。
3.3.3烟雾传感器模块
系统采用了MQ-2气体传感器作为烟雾传感模块,是由于MQ-2烟雾传感器对于液化气,家用天然气检测时有较高的灵敏度,对气体响应快,而且价格便宜,符合本系统的要求。
因为传感器的电导率随空气中可燃气体浓度的变化而变化。
由此特性,要将电导率的变化转换成该气体浓度相对应的输出信号。
由于MQ-2输出的是模拟量,因此需要把测得的结果传给AD转换芯片的CH0口,AD转换模块把模拟量转换为数字量,再把数据送给单片机进行处理,显示在LCD显示屏上。
图3-4烟雾传感器电路图
3.3.4AD转换模块
系统的AD转换模块采用了ADC0832这个8位A/D转换芯片。
因它通过三线接口与单片机连接,功耗低,最重要是可以把烟雾传感器获得的模拟数据量转换成数字数据量,再传给单片机处理。
图3-5AD转换模块电路图
STC89C52RC的P1.2连CS,P1.3连I/OCLOCK。
P1.4连DATAINPUT和DATAOUT。
CS=1时,此时芯片禁用,CLK和DO/DI的电平可任意。
当CS=0时,ADC0832开始数据转换,I/OCLOCK、DATAINPUT使能,DATAOUT脱离高阻态。
P1.4控制DATAINPUT,STC89C52RC的控制字可通过P1.4写到DATAINPUT。
P1.3控制I/OCLOCK,I/OCLOCK=1时可以获取STC89C52RC的时钟周期。
3.3.5温度传感模块
系统采用温度传感器DS18B20作为测量温度器件,因为其低功耗,易配微处理器,且温度传感器只有一根单线总线,可以降低系统的复杂度。
最重要的是,输出为已校准的数字信号,可直接将温度转化成数字信号处理器处理。
单片机的P1.1口与温度传感器模块相连接。
在本设计中,用外部供电实现温度传感器模块与单片机连接,能够使温度测量时间较短。
图3-6温度传感器电路图
3.3.6人体红外传感器
热释电红外传感器是基于热电效应原理的热电型红外传感器,能够接收人体辐射出的特定波长的红外线。
选择HC-SR501是因其灵敏度高,可靠性强,适应低电压工作模式。
图3-7人体红外传感器电路图
人体红外传感器模块与单片机的P1.0口相连接。
当有人进入检测区域,人体红外传感器模块会输入一个高电平,从而三极管导通,单片机接收到信号然后执行报警。
3.3.7报警模块
本系统使用有源蜂鸣器与三个LED灯组合成声光报警器,分别用于温度过高报警指示灯、烟雾浓度过高报警指示灯,和人体入侵报警指示灯。
STC89C52RC的P2.0和蜂鸣器相接。
STC89C52RC的P2.1-P2.3和L1、L2、L3相接。
一旦有异常,蜂鸣器会响,相对应的灯也亮。
图3-8报警模块电路图
3.3.8按键模块
本设计中用的只有4个按键,分别是“设置键”“减键”、“加键”,“布防/撤防键”,考虑到电路与程序,故采用独立键盘的方式。
单片机的P3.2-P3.5和RST与K1-K4连接。
图3-9按键模块电路图
3.3.9电源模块
本系统用的是低电压直流电源供电,使使用时更安全。
图3-10电源模块电路图
4系统软件设计
4.1开发环境搭建
4.1.1开发软件安装
本设计使用的开发软件是keli4版本软件,该软件上具有可编译可调试可检测bug以及检测数据流动走向等功能,编程代码易学易用,基于C语言编程,也可用汇编以及宏定义等编程,其强大的编程工具,以及软件仿真调试,可调试出bug以及错误。
直接安装keli4版本,以管理员模式运行,授权注册该软件。
图4-1开发软件注册
新建工程或者打开工程编码,设计使用的芯片是STC系列,在该软件上选择的芯片可以是Atnel,两者互相兼容,故可选择AT89C52或者AT89S52,将代码编写完成后,需选择编译后形成一个hex二进制的后缀名,便于给STC-ISP软件烧录。
图4-2开发软件环境配置
4.1.2烧写软件平台
通过STC-ISP软件进行烧录,该软件可以对STC系列型号的单片机进行烧录,具体实现多种功能的单片机型号烧录,针对本设计型号为STC89C52RC系列,通过设备管理器可以查看,对波特率通常选择默认型号即可,其他默认选项即可。
用下载数据线选择hex文件为二进制数字进行烧录、下载编程。
图4-3烧写软件图
4.2软件总体设计
4.2.1软件设计流程图
图4-4软件设计流程图
首先,显示屏、报警阈值开始初始化,接着读取烟雾浓度和温度值,在显示屏上显示数据;
感应有无入侵情况,判断烟雾浓度,温度值是否超过报警值,一旦大于报警值,或者有入侵情况,立马进行声光报警;
判断是否按下设置按键,按下进入调节报警值界面,然后再重复以上,直到整体数据接收完毕。
4.2.2主函数
设置一个main程序为主程序,定义温度值,烟雾浓度,显示屏、报警阈值初始化,读取烟雾浓度和温度值,在显示屏上显示数据,调用报警函数,报警判断;
按键判断,是否按下设置按键,是否调节报警阈值。
voidmain(void)
{
inttemp;
//温度值
ucharnum;
//烟雾值
uchari;
//循环变量
LcdInit();
//液晶功能初始化
LcdShowInit();
//液晶显示内容初始化
AlarmInit();
//报警值初始化
while(DS18B20_ReadTemp()==85)//等待传感器初始化完成
{
DelayMs(10);
}
while
(1)
num=Get_ADC0832();
//获取烟雾的浓度值
num=num/2.2;
//调整浓度值,使其在0-100之间变化
if(num>
100)
num=100;
LcdGotoXY(1,13);
//液晶光标定位
LcdPrintNum1(num);
//显示烟雾浓度的值
temp=DS18B20_ReadTemp();
//读取温度值
LcdGotoXY(1,4);
//液晶光标定位
LcdPrintNum2(temp);
//显示温度值
AlarmJudge(num,temp);
//报警判断
for(i=0;
i<
15;
i++)//(延时0.15秒,并在这个时间段进行按键扫描)
{
KeyScanf1();
//按键1设定按键
KeyScanf2();
//按键2报警值调节按键
DelayMs(10);
//延时
}
}
4.3软件模块设计与实现
4.3.1LCD显示模块
对LCD1602模块的控制流程如下:
(1)写初始化函数,初始化包括:
清屏,功能设置:
8位、5*7点阵、开显示、不显示光标、字符不闪烁、写字节指针+1,整屏不移动
(2)写1602写入数据函数,函数功能包括:
数据/命令模式切换,数据/命令的写入
(3)写1602写入字符串,在屏幕打印出字符串
图4-5LCD显示屏流程图
主要代码实现如下:
voidLcdWriteCmd(ucharcmd)//写入命令
{
LcdRs_P=0;
LcdRw_P=0;
LcdEn_P=0;
P0=cmd;
DelayMs
(1);
LcdEn_P=1;
}
voidLcdWriteData(uchardat)//写入数据
LcdRs_P=1;
P0=dat;
voidLcdInit()//初始化函数
LcdWriteCmd(0x38);
//16*2显示,5*7点阵,8位数据口
LcdWriteCmd(0x0C);
//开显示,不显示光标
LcdWriteCmd(0x06);
//地址加1,当写入数据后光标右移
LcdWriteCmd(0x01);
//清屏
voidLcdGotoXY(ucharline,ucharcolumn)//光标定位函数
//第一行
if(line==0)
LcdWriteCmd(0x80+column);
//第二行
if(line==1)
LcdWriteCmd(0x80+0x40+column);
4.3.2AD模数转换模块
对AD转换模块的设计如下:
(1)烟雾传感器通过CH0口把