小项目:单片机+人体红外感应的防盗系统设计(仿真+源码+PCB文件)

94 篇文章 88 订阅
29 篇文章 5 订阅

设计说明
1.根据系统功能要求并且考虑产品的性价比进行系统的整体方案设计,包括系统 的选型、所选芯片的功能、芯片外围电路的合理设计等。
2.系统硬件抗干扰技术与软件抗干扰技术的研究与实现。
3.系统硬件与软件的联合仿真与调试。

本设计是针对普通的家庭防盗而设计,与相似功能的系统相比,具有如下的创新:
(1)移植性高。本设计考虑现代家居的特点,参考了大多数的被盗情况,适合任何家庭使用。
(2)成本低。本设计采用单片机作为控制芯片,所需要的外围电路较少,且所有子电路均能从市场上购买,制造成本低。
(3)功能扩展性好。本设计稍加修改就可增加检查火灾或煤气泄漏等功能,发展前景很大。
(4)安全性高。本设计考虑到其安全性,采用全封闭安装,致使窃贼无法破坏其装备,具有良好的安全性。

制作基于51单片机和人体红外感应模块的的防盗系统电路原理图如下:
在这里插入图片描述
实物图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
防盗系统仿真原理图如下(proteus仿真工程文件)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Altium Designer画的防盗系统电路原理图和PCB图如下:
在这里插入图片描述单片机程序参考代码如下:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit huang=P2^0;//黄灯
sbit lv=P2^2;//绿灯
sbit hong=P2^4;//红灯

sbit hongwai=P1^0;//热释电
sbit butter=P2^6;//蜂鸣器低电平开蜂鸣器

sbit baojing=P1^1//直接报警按键;
sbit bufang=P1^7;//布防按键
sbit quxiao=P3^4;//取消按键
uchar tt=0;//定时器变量
uchar num=0;//定时的计时变量
uchar flag=0;//标志位
void timer1init(void)//定时器1,16位方式2
{ EA=0;
TMOD=0x11;//设置定时器0为工作方式1
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
tt=0;//
EA=0;//关总中断
}
void delay(uint z)//延时函数
{
uint x,y;
for(x=z;x>0;x–)
for(y=110;y>0;y–);
}
void main()//主函数
{
huang=0;//初始黄灯亮
lv=0;//初始绿灯亮
hong=0;//初始红灯亮
timer1init();//初始化定时器
while(1)
{

if(!baojing)//如果直接报警键被按下
{
delay(5);//延时消抖
if(!baojing)//判断报警键是不是被按下
{
hong=1;//红灯亮
lv=0; //绿灯灭
flag=7;//标志位等于7
butter=0;//蜂鸣器响
EA=0;//关中断
}
while(!baojing);//判断按键是不是弹开
delay(5);//如果弹开延时消抖
while(!baojing);//弹开后跳出程序
}
if((!bufang)&&(flag<4))//在初始状态和按下取消键后可以进去这个函数
{
delay(5);//延时消抖
if(!bufang)//如果布防被按下
{
EA=1; //开定时器
flag=2;//另=2
}
while(!bufang);//布防键是不是弹开
delay(5);//延时
while(!bufang);//布防键弹开
}
if(!quxiao)//如果取消键按下
{
delay(5);//延时消抖
if(!quxiao)//取消键是不是按下
{
flag=3;//FLAG等于3
butter=1;//蜂鸣器不响
tt=0;//
num=0;//定时初始0
EA=0;//关中断
lv=0;//绿灯灭
hong=0;//红灯灭
}
while(!quxiao);//取消按键抬开
delay(5);//延时消抖
while(!quxiao);//如果弹开跳出

}
if(flag==4)//如果布防时间到
{
tt=0;//清计数为0
EA=0;//关中断
num=0;//记的秒数清零
lv=1;//关绿灯
flag=5;//flag等于5

}
if(hongwai)//如果感应到人黄灯亮
huang=1;
else huang=0;//感应不到人黄灯灭

if(flag==5)//如果flag等于5
{
if(hongwai)//如果感应到人
{
butter=0;//蜂鸣器响
EA=1;//开中断
}
}

}
}

void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt10)
{tt=0; num++;}
if((flag
5)&&(num%20))//布防15秒后会让flag=5 ,num为偶数灯亮
hong=1;
if((flag
5)&&(num%21))//布防15秒后会让flag=5 ,num为奇数灯灭
hong=0;
if((flag
2)&&(num%20))//按键布防键后flag等于2,num为偶数灯亮
lv=1;
if((flag
2)&&(num%21)) // 按键布防键后flag等于2,num为奇数灯灭
lv=0;
if((flag
2)&&(num==30))//布防时间,num=30即15秒,可以更改此实现布防延迟时间
flag=4;
}

最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,
如果需要完整代码或设计文件,请加QQ分享群,本博客所有代码开源下载,或私信我,看到后会第一时间回复。
谢谢!

  • 22
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
单片机6位数电子密码锁源码设计是基于单片机控制的密码输入和判断功能,可以实现锁的开关与密码的设置与改变。以下是一个简单的实现过程: 1. 硬件设计:基于该密码锁的电路设计需要包括单片机、键盘接口、显示屏、驱动电路和电源等部分。通过合适的布局设计和连接设计,保证各个模块能够正常工作。 2. 软件设计:基于C语言的单片机编程,通过读取键盘输入、判断输入密码是否正确等操作来实现密码锁的功能。具体步骤如下: a. 初始化:初始化单片机及外设,设置初始密码。 b. 输入密码:通过键盘输入6位数的密码,存储在单片机中。 c. 验证密码:将输入的密码与单片机存储的密码进行比较。如果密码匹配,显示屏显示"密码正确"并打开锁;如果不匹配,显示屏显示"密码错误"并保持锁的关闭状态。 d. 改变密码:在验证密码成功后,可以进入密码修改模式,通过输入新的6位数密码并存储到单片机中来改变密码。 3. PCB设计:基于软件设计电路要求,通过软件工具进行PCB设计,包括布局、走线、添加电源和连接电路、引脚复用等。确保PCB电路板能够正常工作。 4. 仿真原理设计:在PCB设计完成后,可以通过仿真软件进行仿真原理设计。该步骤可以验证原理的正确性,并通过仿真结果来检查电路是否符合设计需求。 因为字数有限,这里只给出了基本的实现步骤,实际的实现可能还涉及到更多的细节和优化的设计。希望这个回答对您有帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值