当前位置: 首页 > news >正文

基于51单片机红外人体检测、防盗报警

基于51单片机人体报警设计

(仿真+程序+原理图+设计报告)

功能介绍

具体功能:

1.按下手动报警按钮会发生红LED+蜂鸣器声光报警;

2.用开关模拟人体感应,打开表示感应到人体;

3.若检测到人,黄LED打开;

4.按下布防按键,绿LED闪烁,进入布防状态,20秒钟布防完成;

5.布防后若检测到人,黄LED打开,同时发生声光报警;

6.报警后可按键取消报警;

添加图片注释,不超过 140 字(可选)

#include <reg52.h>	         //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义	变量范围0~255
#define uint  unsigned int	 //无符号整型 宏定义	变量范围0~65535//   红外热释电传感器 平时为0  感应到人输出为1sbit beep  = P2^7;	   //蜂鸣器定义
sbit red   = P2^6;	   //红色发光二极管定义
sbit green = P2^3;	   //绿色发光二极管定义
sbit yellow = P2^0;	   //黄色发光二极管定义
sbit hw    = P1^3;	   //红外热释传感器定义bit flag_300ms = 0;	   //300毫秒的变量
uchar flag_alarm ;     //报警标志位
uchar flag_bufang ;    //布防标志位
uint  flag_value;      //用做定时器的变量sbit key1 = P1^0;	    //按键IO口定义
sbit key2 = P1^1;		//按键IO口定义
sbit key3 = P1^2;		//按键IO口定义/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{uint i,j;for(i=0;i<q;i++)for(j=0;j<120;j++);
}/********************独立按键程序*****************/
uchar key_can;	 //按键值void key()	 //独立按键程序
{key_can = 0;                //按键值还原成0if(key1 == 0 || key2 == 0 || key3 == 0)		//有按键按下 {delay_1ms(1);	     	//按键延时消抖动if(key1 == 0)		//确认是按键按下key_can = 1; 	//得到按键值 if(key2 == 0)		//确认是按键按下key_can = 2; 	//得到按键值 if(key3 == 0)		//确认是按键按下key_can = 3; 	//得到按键值 }
}*****//完整资料***//***公众号:木子单片机********/	
/******************对应不同按键处理**********************/	   
void key_with()
{if(key_can == 1)	 //按键紧急报警{flag_alarm = 1;  //报警标志位 		}if(key_can == 2)     //布防按键 {flag_bufang = 1;	}if(key_can == 3)	 //取消报警 取消布防键  {flag_alarm = 0;    //报警标志位清零 flag_bufang = 0;   //布防变量清零flag_value = 0;	   //把变量清零beep = 1;	//关闭蜂鸣器red = 1;    //关闭红灯green = 1;  //关闭绿灯}			
}/*************定时器0初始化程序***************/
void time_init()	  
{EA   = 1;	 	  //开总中断TMOD = 0X01;	  //定时器0工作方式1ET0  = 1;		  //开定时器0中断 TR0  = 1;		  //允许定时器0定时TH0 = 0x3c;TL0 = 0xb0;     // 50ms	  
}/******************红外报警处理**********************/	   
void hongwai_dis()
{if(flag_bufang == 1) //准备开始布防{green = ~green;	   //绿灯闪			}  if(flag_bufang == 2)   //布防成功{green = 0;         //如果延时布防成功 绿灯长亮if(hw == 1)	       //红外有输出{flag_alarm = 1;	   //报警}}if(flag_alarm == 1)	   //报警{red = ~red;		   //红灯报警beep = ~beep;	   //蜂鸣器报警}	
}

硬件设计

使用元器件:

单片机:STC89C52;

(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)

蜂鸣器:电容:10uF;

电容20PF;发光二极管;

人体感应模块:HC-SR501;

电源接口:DC3.5;

三极管:9012;

电阻:2k、10K;

按键;电源开关;

晶振 12M;

导线:若干;

添加图片注释,不超过 140 字(可选)

流程图:

添加图片注释,不超过 140 字(可选)

设计资料

01仿真图

本设计使用proteus7.8和proteus8.9两个版本设计!具体如图!

添加图片注释,不超过 140 字(可选)

02原理图

本系统原理图采用Altium Designer19设计,具体如图!

添加图片注释,不超过 140 字(可选)

03程序

本设计使用软件keil5版本编程设计!具体如图!

添加图片注释,不超过 140 字(可选)

04设计报告

九千字设计报告,具体如下!

添加图片注释,不超过 140 字(可选)

05设计资料

全部资料包括程序(含注释)、仿真源文件 、AD原理图、结构框图、开题报告、设计报告、流程图、实物图、元件清单、芯片资料等。具体内容如下,全网最全! !

添加图片注释,不超过 140 字(可选)

点赞分享一起学习成长。

http://www.xdnf.cn/news/623989.html

相关文章:

  • 【C/C++】线程状态以及转换
  • RabbitMQ 概述与安装
  • Spring AI 之结构化输出转换器
  • Python实现对大批量Word文档进行自动添加页码(16)
  • 使用腾讯云3台轻量云服务器快速部署K8s集群实战
  • 如何制作可以本地联网搜索的MCP,并让本地Qwen3大模型调用搜索回答用户问题?
  • Appium+python自动化(五)- 模拟器
  • axios报错: Uncaught ReferenceError: axios is not defined
  • Qt基础:数据容器类
  • 算法中的数学:费马小定理
  • redis配置带验证的主从复制
  • Windows 中动态库.dll 的 .lib 文件有什么作用?
  • x64_ubuntu22.04.5安装:cuda driver + cuda toolkit
  • 【Linux手册】Linux权限:系统世界的“门禁卡”
  • SOC-ESP32S3部分:10-GPIO中断按键中断实现
  • MySQL快速入门篇---联合查询
  • Vanna.AI:用检索增强技术革新SQL查询生成
  • Spark 中,map和foreach的区别
  • Spark on YARN 的运行架构总览
  • 构建跨平台C/C++项目的基石:现代构建套件设计指南
  • Python包__init__.py标识文件解析
  • 操作系统的内核态和用户态场景
  • 最小均方误差(MMSE)滤波器及其改进版
  • skywalking 10.2 源码编译
  • Kafka Streams 和 Apache Flink 的无状态流处理与有状态流处理
  • 伴随矩阵 -- 代数余子式矩阵的转置
  • 【PostgreSQL】数据探查工具1.0研发可行性方案
  • 数据结构与算法——链式二叉树
  • 讲述我的PLC自学之路 第九章
  • P2089 烤鸡