基于51单片机多功能防盗报警proteus仿真( proteus仿真+程序+设计报告+原理图+讲解视频)
基于51单片机多功能防盗报警系统
- 1. 主要功能:
- 2. 讲解视频:
- 3. 仿真
- 4. 程序代码
- 5. 设计报告
- 6. 原理图
- 7. 设计资料内容清单&&下载链接
基于51单片机多功能防盗报警系统( proteus仿真+程序+设计报告+原理图+讲解视频)
仿真图proteus8.9及以上
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0098
1. 主要功能:
基于51单片机的多功能防盗报警器仿真设计
1、系统可以测量光照和人体距离通过LCD1602显示,具备手动控制布防和撤防;
2、如果光照高于阀值,说明有人开窗入室,启动报警;
3、如果人体距离太近,说明有人靠近房屋,启动报警;
4、检测到异常振动,启动报警;
5、检测到人体红外,启动报警;
6、具有紧急按钮,在突发情况下手动启动报警;
7、可以通过按键设置光照阈值和报警距离;
51单片机、光照传感器、超声波传感器、震动传感器、人体红外检测传感器
需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

以下为本设计资料展示图:
2. 讲解视频:
讲解视频包含仿真运行讲解和代码讲解
3. 仿真
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD1602液晶显示光照强度和距离以及对应的报警值,默认开机时不设防模式,检测值超过阈值不做报警处理。具备手动控制布防和撤防;
设防后,调整光照高于阀值,说明有人开窗入室,启动报警;

如果人体距离太近,说明有人靠近,启动报警;

震动按键按下,系统检测到异常振动,启动报警;人体感应按键按下系统检测到人体红外,启动报警;紧急按钮按下,在突发情况下手动启动报警;

系统可以通过按键设置光照阈值和报警距离;
4. 程序代码
使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit led=P2^0;//LED
sbit out=P1^7;
sbit beep=P2^1;//蜂鸣器
sbit k1=P3^4;//遥控输入
sbit k2=P3^5;
sbit k3=P1^0;
sbit s1=P3^6;
sbit s2=P3^7;
sbit s3=P3^0;
sbit s4=P3^1;sbit rs=P2^5; //1602数据/命令选择引脚 H:数据 L:命令
sbit rw=P2^6; //1602读写引脚 H:数据寄存器 L:指令寄存器
sbit e =P2^7; //1602使能引脚 下降沿触发
sbit Trig = P1^5;
sbit Echo = P1^6;
sbit CLK= P1^1;//时钟,初始状态为0
sbit DI= P1^2;//数据输入
sbit DO= P1^3; // 数据输出
sbit CS= P1^4;
uchar time=0;
uint juli=0,lim1=30;//距离
uchar light=0,lim2=50;//光线
uchar disp1[]="L:000Lx S:000cm";
uchar disp2[]=" 000Lx 000cm";
/*********************************************
读取ADC
**********************************************/
uchar ADC(uchar ch)//通道ch 1,2
{uchar temp0,temp1,i;CS=0;temp0=0;temp1=0;_nop_();_nop_();DI=1;//开始位_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=0;_nop_();_nop_();DI=0;_nop_();_nop_();
//选择通道0DI=1;_nop_();CLK=1;//上升沿DI=1_nop_();CLK=0;//1个下降沿DI=1_nop_();if(ch==1)DI=0;if(ch==2)DI=1;_nop_();CLK=1;_nop_();CLK=0;//第3个上升沿DI=0_nop_();DI=1;
//********通道选择结束开始读取转换后的二进制数****
//下降沿读数,一下进行判断和处理,共8次
for(i=0;i<8;i++){temp0=temp0<<1;CLK=1;if(DO)temp0++;_nop_();CLK=0;}
for(i=0;i<8;i++){temp1=temp1>>1;CLK=1;if(DO)temp1=temp1 +0x80;_nop_();CLK=0;}CS=1;return temp0;
}void StartModule()//启动模块{_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_();Trig=1;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_();Trig=0;}void HC_SRinit()//初始化
{TMOD|=0x11; //设T0为方式1,GATE=1;TH0=0;TL0=0; TH1=0x3c;TL1=0xb0;ET1=1;TR1=1; EA=1;Trig=0;
}uint HC_SRread()//测距
{uint time=0; while(!Echo) //当RX为零时等待StartModule(); //启动模块TR0=1; //开启计数while(Echo); //当RX为1计数并等待TR0=0; //关闭计数time=TH0*256+TL0; //计算TH0=0;TL0=0; time=time*1.7/50; //精度0.5cmreturn time;
}
void delay_uint(uint i)
{while(i--);
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{e=0;rs=0;rw=0;P0=com;delay_uint(20);e=1;delay_uint(20);e=0;
}/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{e=0;rs=1;rw=0;P0=dat;delay_uint(20);e=1;delay_uint(20);e=0;
}/********************************************************************
* 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下write_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{if(hang==1) write_com(0x80+add);elsewrite_com(0x80+0x40+add);while(1){if(*p == '\0') break;write_data(*p);p++;}
}/********************************************************************
* 名称 : init_1602()
* 功能 : 初始化1602液晶
* 输入 : 无
* 输出 : 无
***********************************************************************/
void init_1602()
{write_com(0x38); //数据总线为8位,显示2行,5x7点阵write_com(0x0c); //开显示,有光标,光标闪烁write_com(0x06); //光标自动右移delay_uint(1000); //等待设置完成
}
//主函数
void main()
{init_1602();HC_SRinit();//初始化//设置INT0IT0=1;//跳变沿出发方式(下降沿)EX0=1;//打开INT0的中断允许。//设置INT1IT1=1;//跳变沿出发方式(下降沿)EX1=1;//打开INT1的中断允许。EA=1;while(1){if(!s1)//距离设置{if(lim1<500)lim1++;while(!s1);}if(!s2)//距离设置{if(lim1>0)lim1--;while(!s2);}if(!s3)//光照设置 {if(lim2<120)lim2++;while(!s3);}if(!s4)//光照设置{if(lim2>0)lim2--;while(!s4);}if(!k1)//布防{led=0;while(!k1);}if(!k2)//撤防{led=1;out=1;beep=1;while(!k1);}if(!k3) //紧急{out=0;beep=0;led=0;}if(!led){//传感器报警if((light>lim2)||(juli<lim1))beep=0;}}
}void Int0() interrupt 0 //外部中断0的中断函数
{if(!led)beep=0;
}void Int1() interrupt 2 //外部中断1的中断函数
{if(!led)beep=0;
}完整代码见文章下载链接
5. 设计报告
10296字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

随着现代社会经济的快速发展和人民生活水平的不断提升,社会治安需求呈现出多元化、精细化的特点。无论是居民住宅还是小型商业场所,其安全防护问题已不再仅局限于物理屏障的构筑,而是愈发强调智能化、主动化的安全保障。在这样的背景下,家庭及小型商业场所的安全防护需求日益凸显,成为社会关注的焦点之一。
传统的防盗报警器,尽管在一定程度上起到了预警与震慑的作用,但在实际应用中却暴露出诸多局限性。这类报警器往往功能较为单一,主要依赖于门窗磁感应、红外人体探测等基础手段,对于复杂多变的入侵情境往往难以做出精准、及时的响应。比如,对于非法翻越窗户、遮挡红外探头、利用工具破坏门窗等手法,传统报警器的侦测能力相对有限。此外,传统报警器在误报率、远程监控、自适应环境变化等方面也存在不足,无法满足现代用户对于高效、精准、便捷安全防护的期待。
针对上述问题,本课题提出了设计一款基于51单片机的多功能防盗报警器的研究任务。该报警器旨在突破传统设备的功能局限,通过集成先进的传感器技术,构建全方位、智能化的安防监控体系,从而显著提升家庭及小型商业场所的安全防护水平,同时优化用户体验。
6. 原理图
原理图使用AD绘制,可供实物参考,仿真不同于实物,经验不足不要轻易搞实物。

元件 型号 数量
单片机 AT89C51 1
电容 30pf 2
电容 10uf 1
晶振 12MHZ 1
电阻 10k 1
按钮 5
电阻 100欧 4
LED 红色 2
三极管 PNP 1
蜂鸣器 有源 1
电阻 1k 1
热释电 HCSR501 1
超声波 HC-04 1
光敏电阻 10k 1
模数芯片 ADC0832 1
电源部分
排针 2P 1
电容 0.1uf 2
电容 100uf 2
稳压器 7805 1
Proteus仿真和实物作品的区别:
1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。
2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。
电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。
3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。
4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。
7. 设计资料内容清单&&下载链接
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读!!!!
1、程序代码注释
2、proteus仿真
3、功能要求
4、软硬件流程图
5、开题报告
6、设计报告
7、原理图
8、元器件清单
9、讲解视频
Altium Designer 安装破解
KEIL+proteus 单片机仿真设计教程
KEIL安装破解
Proteus元器件查找
Proteus安装
Proteus简易使用教程
单片机学习资料
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

资料下载链接(可点击):
https://docs.qq.com/doc/DS3F5dFBuUEJUUU96
相关文章:
基于51单片机多功能防盗报警proteus仿真( proteus仿真+程序+设计报告+原理图+讲解视频)
基于51单片机多功能防盗报警系统 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单&&下载链接 基于51单片机多功能防盗报警系统( proteus仿真程序设计报告原理图讲解视频) 仿真图proteus8.9及以上…...
gitee和github的协同
假设gitee上zhaodezan有一个开发库,但是从andeyeluguo上拉取最新的(从github上同步过来最新的) git remote add dbgpt_in_gitee https://gitee.com/andeyeluguo/DB-GPT.git remote -v git pull --rebase dbgpt_in_gitee main 有冲突可能需要…...
压力测试-性能指标-Jmeter使用-压力测试报告
文章目录 1.压测目的2.性能指标3.Jmeter3.1Jmeter使用3.1.1 运行Jmeter3.1.2 添加线程组3.1.3设置HTTP请求3.1.4 设置监视器 3.2 查看Jmeter压测结果3.2.1 查看结果树3.2.2 查看汇总报告3.2.3 查看聚合报告3.2.4 查看汇总图 1.压测目的 内存泄漏:OOM,重…...
通过Slf4j中的MDC实现在日志中添加用户IP功能
一、slf4j中MDC是什么 slf4j除了trace、debug、info、warn、error这几个日志接口外,还可以配合MDC将数据写入日志。换句话说MDC也是用来记录日志的,但它的使用方式与使用日志接口不同。 在使用日志接口时我们一般这么做 log.debug("log debug"…...
代码随想录算法训练营第四十九天| 139.单词拆分、背包问题总结
139.单词拆分 题目链接:139.单词拆分 文档讲解:代码随想录/单词拆分 视频讲解:视频讲解-单词拆分 状态:已完成(0遍) 解题过程 这几天博主忙着面试和入职,一晃已经周四了,这个礼拜…...
STM32F103VE和STM32F407VE的引脚布局
STM32F103VE vs STM32F407VE 引脚对比表 引脚 STM32F103VE STM32F407VE 备注 1 VSS VSS 地 2 VDD VDD 电源 3 VSSA VSSA 模拟地 4 VDDA VDDA 模拟电源 5 OSC_IN OSC_IN 外部时钟输入 6 OSC_OUT OSC_OUT 外部时钟输出 7 NRST NRST 复位 8 PC13 (GPIO) PC13 (GPIO) GPIO 9 PC14 (…...
搜维尔科技:使用 Xsens 动作捕捉技术创建栩栩如生的动画
使用Xsens 动作捕捉技术创建栩栩如生的动画 搜维尔科技:使用 Xsens 动作捕捉技术创建栩栩如生的动画...
鸿蒙开发 一 (三)、ArkTS开发实战上
ArkTS 从 TypeScript 优化而来, 但有些用法又不太一样, 在开发中, 经常会出现一些报错提示,下面我们也汇总一些常见错误,捡一些常见的整理一下 Promise 的用法: //TypeScript 写法:private load…...
TensorRT教程(1)初探TensorRT
1. TensorRT简要介绍 TensorRT(NVIDIA TensorRT)是 NVIDIA 开发的一个用于深度学习推理的高性能推理引擎。它可以针对 NVIDIA GPU 进行高效的深度学习推理加速,提供了许多优化技术,使得推理速度更快,并且可以在生产环境…...
多表连接查询和子查询
一、连接查询 连接查询是SQL语言最强大的功能之一,它可以执行查询时动态的将表连接起来,然后从中查询数据。 1.1、连接两表的方法 在SQL中连接两表可以有两种方法,一种是无连接规则连接,另一种是有连接规则连接。 无连接规则连…...
数据挖掘与机器学习——聚类算法
目录 无监督学习 聚类算法 概念: 功能: 应用场景: 评判标准: 划分聚类: K-means聚类 逻辑实现: 聚类方式 问题: 解决: 可能存在的问题: 1.初始值对K-means聚…...
QT快速下载
去QT官网之后,如下图所示 比如要下载qt-opensource-windows-x86-5.14.2.exe,进入5.14对应的文件夹,找到对应的版本 点击Details, 下载对应的种子,然后通过迅雷下载 个人实测,家庭网络平均18M的速率...
最短路问题
最短路问题是图论里非常经典的一个考点 接下来着重讲述五种求最短路的算法:朴素版dijkstra算法、堆优化版的dijkstra算法、bellman-ford算法、spfa算法、floyd算法 总体思维导图: 总体思路: 最短路分为两大类 { 在以下给出的时间复杂度中n…...
spark MLlib 中的分类模型
理解这些机器学习模型的数学原理需要一定的数学基础,下面我将简要介绍每个模型的数学原理,并附上相关的数学公式。 1. LinearSVC(线性支持向量机) 数学原理: 线性支持向量机的目标是找到一个超平面,最大化…...
24上半年报考人数“不增反降”?备考下半年软考的难了......
近日,工信教考发布了一篇《2024年上半年计算机软件资格考试顺利举行》的文章,公布了2024年上半年软考报考人数共计52.77万人,其中,初级资格5.12万人、中级资格24.37万人、高级资格23.28万人。 软考高级占总报名人数的44%…...
初出茅庐的小李博客之使用立创开发板(ESP32)连接到EMQX Platform【MQTT TLS/SSL 端口连接】
介绍 手上有一块立创开发板,本着不吃灰的原则把它用起来,今天就来用它来连接上自己部署的MQTT服务器进行数据通信。 硬件:立创开发板 开发环境:Arduino IDE Win11 MQTT 平台:EMQX Platform 立创开发板介绍࿱…...
js平滑滚动元素使其可见
直接上重点: let xpath "//*/div[idxxx]"; document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.scrollIntoView({ behavior: "smooth"})这段代码是JavaScript中使用XPath查询文档并执行平…...
TP6 事件绑定、监听、订阅
事件绑定与监听 命令行生成事件类 php think make:event EventDemo 命令行生成事件监听类php think make:listener ListenerDemo 事件类可作为保存与事件相关信息的容器,如没有额外需求可以不需要定义 事件系统的所有操作都通过think\facade\Event类进行静态调用 当定义…...
SpringCloud Gateway中Filters详细说明
前面 https://blog.csdn.net/J080624/article/details/139494909 我们研究了GateWay中各种路由断言的使用。SpringCloud GateWay 还提供了各种过滤器用来对请求和响应进行处理。 官网地址:SpringCloud Gateway Filter 【1】GatewayFilter Factories 路由过滤器允…...
力扣2156.查找给定哈希值的子串
力扣2156.查找给定哈希值的子串 rolling hash:求带权的值 左边是高位 右边是低位 本题要求左边低位 只要反向求即可 class Solution {public:string subStrHash(string s, int power, int modulo, int k, int hashValue) {int n s.size();long long M modulo,p…...
FLUX.1-dev创作实战:从输入文案到生成图片,完整流程一次跑通
FLUX.1-dev创作实战:从输入文案到生成图片,完整流程一次跑通 1. 认识FLUX.1-dev:新一代AI图像生成引擎 FLUX.1-dev是Black Forest Labs推出的开源AI图像生成模型,以其出色的真实感和高效生成能力在开发者社区中广受好评。与常见…...
Z-Image-GGUF惊艳效果:运动模糊、景深虚化、镜头畸变等摄影级效果模拟
Z-Image-GGUF惊艳效果:运动模糊、景深虚化、镜头畸变等摄影级效果模拟 1. 项目简介:当AI学会“拍照” 想象一下,你告诉AI:“给我一张黄昏时分,一个女孩在樱花树下奔跑的照片,要有那种风吹过发丝的动感&am…...
气象数据可视化实战:从雷达图到三维风场,前端技术栈全解析
气象数据可视化实战:从雷达图到三维风场,前端技术栈全解析 气象数据的可视化一直是前端开发领域最具挑战性的方向之一。想象一下,当你需要将每小时更新的全球气象数据转化为直观的动态图像,让气象学家一眼就能看出台风路径、让飞行…...
避坑指南:Maya LiveLink插件安装常见报错解决方案(附FBX传输优化技巧)
Maya LiveLink插件避坑实战:从安装报错到FBX传输优化的全流程指南 每次打开Maya准备大干一场时,那个熟悉的.mll加载失败弹窗就像个不速之客——特别是当你需要在截止日期前完成虚幻引擎的动画对接时。作为连接Maya与虚幻引擎的神经中枢,LiveL…...
L1-064 估值一亿的ai核心代码 (分数20)字符串处理
•无论用户说什么,首先把对方说的话在一行中原样打印出来;•消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; •把原文中所有大写英文字母变成…...
快速部署Python3.10环境:Miniconda镜像实战教学
快速部署Python3.10环境:Miniconda镜像实战教学 1. 为什么选择Miniconda搭建Python环境? 在Python开发中,最让人头疼的问题之一就是环境管理。不同项目可能需要不同版本的Python和依赖库,直接安装会导致版本冲突。Miniconda提供…...
避开这些坑!Mapbox图层管理实战:动态加载GeoJSON数据的正确姿势
Mapbox高级图层管理实战:GeoJSON动态加载与性能优化全解析 当处理省级以上GIS数据可视化时,Mapbox的图层管理能力直接决定了应用的流畅度和用户体验。许多开发者在使用GeoJSON数据源时,常遇到内存泄漏、渲染卡顿、交互延迟等问题。本文将深入…...
别再为PyTorch GPU环境发愁了!手把手教你用Miniconda管理多版本CUDA(GTX1060实测)
深度学习环境配置实战:GTX1060显卡下的PyTorch GPU环境搭建指南 在深度学习领域,环境配置往往是新手面临的第一个挑战。特别是当您手头有一块GTX1060这样的经典显卡时,如何充分发挥其计算潜力,同时避免陷入版本兼容性问题的泥潭&…...
嵌入式系统中的累加和校验算法原理与实现
1. 累加和校验算法概述在嵌入式系统开发中,数据通信的可靠性至关重要。想象一下,当你通过无线模块控制一台工业机器人时,如果传输的运动指令数据出现错误,可能导致机械臂做出完全不可预测的动作,轻则损坏产品ÿ…...
SenseVoice-small实战教程:导出SRT/VTT字幕文件用于Premiere剪辑
SenseVoice-small实战教程:导出SRT/VTT字幕文件用于Premiere剪辑 你是不是经常遇到这样的烦恼?录了一段视频,或者拿到一段会议录音,想要给它配上精准的字幕,却发现自己要花几个小时去听写、校对、打时间轴?…...
