【STM32单片机】防盗报警器设计

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者


一、功能简介

本项目使用STM32F103C8T6单片机控制器,使用按键、动态数码管、蜂鸣器、指示灯、热释电人体红外传感器等。
主要功能:
系统运行后,默认处于布防状态,D1指示灯亮,数码管显示初始时间6点0分,
报警次数0,格式:06-00 00,其中间隔1S中数码管上‘-'闪烁一次,代替秒钟运行,当人体红外传感器感应到有人时,蜂鸣器报警,当人离开时,且蜂鸣器报警关闭,同时数码管上报警次数显示数增加。若处于报警时,人还未离开,可通过K1或K2任意键关闭声光报警,若按下K1键依然处于布防状态,若按下K2键则处于撤防状态。处于撤防状态时,D1指示灯灭。传感器即使感应到有人也不会发生声光报警。


二、软件设计

/*
作者:嗨小易(QQ:3443792007)*///布防/撤防控制
void defence_control(void)
{u8 key=0;static u8 cancel_alarm_flag=0;key=KEY_Scan(0);//无人时布防,且标志可用于屏蔽掉布防后,检测有人报警时,任意键取消报警if(sys_ctrl.man_flag==0){if(key==KEY1_PRESS)//布防	sys_ctrl.mode=0;else if(key==KEY2_PRESS)//撤防	sys_ctrl.mode=1;	}//布防监控if(sys_ctrl.mode==0){LED0=0;//布防指示灯亮//有人接近,感应器感应到信号if(sys_ctrl.man_flag==0){if(IRDOUT_PIN==1){delay_ms(100);//滤波,防止干扰物影响if(IRDOUT_PIN==1){sys_ctrl.man_flag=1;						}}		}else//检测到有人,LED闪烁,报警{if(cancel_alarm_flag==0){BEEP_Alarm(100,100);	}if(IRDOUT_PIN==0)//人离开{delay_ms(5);if(IRDOUT_PIN==0){sys_ctrl.man_flag=0;sys_ctrl.alarm_cnt++;if(sys_ctrl.alarm_cnt==100)sys_ctrl.alarm_cnt=0;cancel_alarm_flag=0;	}	}else//人未离开,可按任意键取消声光报警{if(key!=0){cancel_alarm_flag=1;if(key==KEY1_PRESS)//布防	sys_ctrl.mode=0;else if(key==KEY2_PRESS)//撤防{sys_ctrl.mode=1;sys_ctrl.alarm_cnt++;if(sys_ctrl.alarm_cnt==100)sys_ctrl.alarm_cnt=0;	}				}			}	}	}else//布防监控关闭{LED0=1;//布防指示灯灭sys_ctrl.man_flag=0;cancel_alarm_flag=0;	}			
}//应用控制系统
void app_sys_ctrl_demo(void)
{LED_Init();USART1_Init(115200);KEY_Init();BEEP_Init();SMG_Init();ctrl_pin_init();TIM3_Init(20,36000-1);  //定时10msTIM_Cmd(TIM3,ENABLE); //打开定时器	sys_ctrl.hour=6;sys_ctrl.min=0;while(1){defence_control();//布防/撤防控制show_time_alarm_cnt();//显示时间和报警次数}
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619

在这里插入图片描述


联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel 规范录入数据

文章目录 录入日期录入百分比 快捷键: tab:向右切换单元格 enter:向下切换行 shift tab:向左切换单元格 shiftenter:向上切换行 录入日期 输入今天的日期的快捷键:Ctrl ; 输入当时的时间的快捷键&a…

Java反射获取抽象类方法属性问题讲解

Java反射获取抽象类方法属性问题讲解 结论一、案例准备二、测试方法:使用反射获取抽象类私有方法和私有属性具体操作(获取私有方法)具体操作(获取私有属性) 结论 Java 通过反射可以获得抽象类的任何修饰符&#xff08…

Gin框架中的Cookie怎么搞(会话控制)

参考地址 设置和获取 Cookie | Gin Web Framework (gin-gonic.com)https://gin-gonic.com/zh-cn/docs/examples/cookie/ 什么是cookie cookie在互联网上随处可见,具体体现如下: 保持登录状态 保存浏览器的历史记录 大数据随心配,按喜好推送讯息 购物网站加入购物车 都会…

flink中使用外部定时器实现定时刷新

背景: 我们经常会使用到比如数据库中的配置表信息,而我们不希望每次都去查询db,那么我们就想定时把db配置表的数据定时加载到flink的本地内存中,那么如何实现呢? 外部定时器定时加载实现 1.在open函数中进行定时器的…

【RealTek sdk-3.4.14b】RTL8197FH-VG+RTL8367+RTL8812F WiFi to LAN 和WiFi to WAN吞吐量

LAN <----------> 2.4G WiFi Throughput 天线频宽模式协议连接速率TX(Mbps)RX(Mbps)TX&RX(Mbps)2X240MHz802.11nTCP300Mbps2051922112X240MHz802.11nUDP300Mbps224234231 LAN <----------> 5G WiFi Throughput 天线频宽模式协议连接速率TX(Mbps)RX(Mbps)TX&…

IntelliJ IDEA Maven 项目的依赖分析

在一个 maven 的项目中&#xff0c;我们需要知道我们的项目中使用的包可能有哪些冲突。 这个在 IntelliJ IDEA 中提供了贴心的查看。 选择 Maven 项目中的分析依赖。 随后&#xff0c;IntelliJ IDEA 将会打开一个依赖分析的标签页。 在这个标签页中&#xff0c;我们可以看到…

用例图 UML从入门到放弃系列之三

1.说明 关于用例图&#xff0c;这篇文章我将直接照搬罗伯特.C.马丁老爷子在《敏捷开发》一书种的第17章&#xff0c;并配上自己的理解&#xff0c;因为这一章写的实在是太精彩了&#xff0c;希望能够分享给大家&#xff0c;共勉。以下是老爷子的原文中文翻译以及豆芽的个人解读…

Ultra-Fast-Lane-Detection 车道线学习资料整理

目录 官方版本 两个优化 数据标注,降低参数量 1 数据标注 2降低参数量

代码随想录算法训练营Day50|动态规划9

代码随想录算法训练营Day50|动态规划9 文章目录 代码随想录算法训练营Day50|动态规划9一、198.打家劫舍二、213.打家劫舍II三、337.打家劫舍 III 一、198.打家劫舍 class Solution {public int rob(int[] nums) {if (nums null || nums.length 0) return 0;if (nums.length …

C++程序员入门怎么学?

1 背景 经常听到不少朋友在吐槽C太难学了&#xff0c;说什么从入门到放弃等等&#xff1b;做为一名C老兵&#xff0c;从2003年开始入坑C到今年2023年&#xff0c;整整20年的C开发从业者的我&#xff0c;今天尝试给有兴趣从事C开发的程序员提些建议&#xff0c;希望可以帮到大家…

C++ (Chapter 1)

C (一) 1.C的命名空间 先来看一个C语言的例子: 下面这段代码是可以正常运行的. #include<stdio.h> int rand 0; int main() {printf("%d \n", rand);return 0; }但是,包含了一个头文件之后,甚至无法通过编译. #include<stdio.h> #include<stdli…

力扣每日一题35:搜索插入的位置

题目描述&#xff1a; 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5…

大数据Doris(八):启动FE步骤

文章目录 启动FE步骤 一、配置环境变量 二、​​​​​​​创建doris-mate

排序算法-插入排序法(InsertSort)

排序算法-插入排序法&#xff08;InsertSort&#xff09; 1、说明 插入排序法是将数组中的元素逐一与已排序好的数据进行比较&#xff0c;先将前两个元素排序好&#xff0c;再将第三个元素插入适当的位置&#xff0c;也就是说这三个元素仍然是已排序好的&#xff0c;接着将第…

剖析伦敦银最新价格走势图

国际金融市场瞬息万变&#xff0c;伦敦银的价格走势会受到诸多因素的影响&#xff0c;比如重要经济数据的公布&#xff0c;国际间的政治博弈&#xff0c;突发的政经大事&#xff0c;都可以令白银价格的走势&#xff0c;在短时间内暴涨暴跌的情况。 要在伦敦银市场实现良好的收益…

Linux文件目录总结

众所周知&#xff0c;Linux系统文件目录是树状结构&#xff0c;如下图所示&#xff1a; 英文缩写的目录下到底存放的是什么文件&#xff0c;善于做归纳总结的逍遥哥哥来解释一下&#xff1a; /bin&#xff1a;bin是Binary的缩写&#xff0c;这个目录存放着最经常使用的命令。 …

oracle 数据库删除序列

oracle 数据库删除序列 要删除 Oracle 数据库中的序列&#xff0c;你可以使用以下的 SQL 命令&#xff1a; DROP SEQUENCE sequence_name;其中&#xff0c;sequence_name 是你想删除的序列的名称。你需要确保当前用户对序列拥有适当的权限。 请注意&#xff0c;删除序列将永…

NEFU离散数学实验1-排列组合

相关概念 在离散数学中&#xff0c;组合数是一种用于计算从n个不同元素中选取m个元素的方式。以下是一些与组合数相关的概念&#xff1a; 排列&#xff1a;从n个不同元素中选取m个元素进行排列&#xff0c;排列数用P(n, m)表示&#xff0c;计算公式为P(n, m) n! / (n - m)! …

nodejs+vue家教管理系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1nodejs简介 4 2.2 express框架介绍 6 2.3 B/S结构 4 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性…

基于YOLO算法的单目相机2D测量(工件尺寸和物体尺寸)

1.简介 1.1 2D测量技术 基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。 工业制造&#xff1a;在工业制造过程中&#xff0c;精确测量是确保产品质量和一致性的关键。基于单目相机的2D测量技术可以用于检测和测量零件尺寸、位置、形状等参数&#xff0c;进而实…