小工具知识网

当前位置: 首页 > 行业知识 > 基于51单片机的智能家居安防系统(程序+仿真+PCB)

行业知识

基于51单片机的智能家居安防系统(程序+仿真+PCB)

2026-11-06 22:49:26 来源:互联网转载

@TOC

一、基于51单片机的智能家居安防系统

1、主要功能

通过人体红外检测模块、光敏传感器、蜂鸣器、继电器模块模拟智能家居安防功能。

2、实验结果

3、实验仿真

4、程序源码

/**  ************************************* Copyright ******************************   File name: // 文件名  Author£:Kevin  Version: //1.0  Description: // 用于详细说明此文档完成的主要功能  Others: //   Log: // 公众号:Kevin的学习站  ****************************************************************************** *//**  ************************************* Copyright ******************************   File name: // 文件名  Author:Kevin  Version: //版本号:1.0  Description: // 用于详细说明此程序文件完成的主要功能  Others: // 其它内容的说明  Log: // 公众号:Kevin的学习站  ****************************************************************************** */#include#include "adc0832.h"#include "delay.h"#include#define uchar unsigned char#define uint unsigned intsbit Inf=P2^0;  //人体感应器sbit relay=P2^1; //继电器sbit beep=P2^2;  //蜂鸣器bit fag=0;bit Light=0;uchar L,S; //定义光照强度、烟雾uint num,time;//定义计时参数/******//系统初始化函数**********/void System_Init(){  Inf=0;  relay=1;  beep=1;  TMOD=0x10;//选择定时器1的方式1  TH1=(65536-45956)/256;//11.030Mhz,定时大概50ms溢出,一个指令1.088us,需计数45956次  TL1=(65536-45956)%256;  EA=1;//中断申请  TR1=0;//关闭定时器  ET1=1;//打通中断}/******//人体·感应控制******/void Infare_RI(){  if((Inf==1)&&(Light==1))  {   fag=1;   TR1=1;//定时器   time=20;//感应到人新时间,20s  }  if(Inf==1)  {   time=20;//感应到人新时间,20s  }  if(fag==1)  {    relay=0;  }  else  {   TR1=0;   relay=1;  } }/***************光照强度和烟雾传感器数值读取**************/void light_S(){  //光照强度读取  L=(ADC0832_read(0)*99)/255;  // 烟雾数值读取  S=(ADC0832_read(1)*99)/255;  //光强小于35%进入等待人来开灯  if(L   Light=1;   }  if((L60)&&(fag==0))//人不在光强大于60%就关灯  {   Light=0;   relay=1;   fag=0;   time=0;   TR1=0;  }  //人在光强大于90%就关灯   if((L>90)&&(fag==1))  {   Light=0;   relay=1;   fag=0;   time=0;   TR1=0;  }  //烟雾浓度大于20%就报警  if(S>20)  {   beep=0;   delay(500);   beep=1;   delay(500);  }  if(S   beep=1;  }}//主函数void main(){//系统初始化    System_Init();   while(1)   {      light_S();  //光强、烟雾 delay(100);       Infare_RI();//人体·感应   }}//定时器50毫秒void interr_zd1()interrupt 3 {  TH1=(65536-45956)/256;  TL1=(65536-45956)%256;  num++;  if((num==20)&&(time0)){num=0;time--;}  if(time==0){TR1=0;fag=0;}//感应人离开关闭继电器 }

5、PCB工程

5、资源获取

项目的仿真和程序代码工程已经放在下面公众号里面,可以关注公众号:Kevin的学习站,输入关键字:“智能家居安防系统”,就可以获取啦!创作不易,但您的点赞、关注、收藏就是对我最大的鼓励!

上一篇:苹果ins注册服务器怎么填?

下一篇:国外云服务器怎么搭建?