基于stm32单片机的智能门禁系统设计

一.硬件方案

基于stm32单片机的智能门禁系统设计的整体电路主要由采用STM32F103单片机,4*4矩阵按键电路,电子锁继电器驱动电路,开锁LED指示灯,LCD1602显示屏电路,蜂鸣器报警电路,RFID感应电路,指纹识别模块;原理图如图:

在这里插入图片描述

PCB图如下:
在这里插入图片描述

二.设计功能

1.采用矩阵按键、指纹或者RFID输入、1602液晶显示、继电器模拟开锁、发光二极管为开锁指示灯,继电器是可以外接电锁的。
2.有报警、锁定键盘功能,如果密码输入错误3次,系统会直接锁住键盘并有蜂鸣器声音报警提示。
3.可以设置修改密码(6位数的密码)(0-9之间任意数字),修改密码之前必须输入原始密码,在输入新密码时要输入两次确认并相同才可以修改成功,否则修改不成功,防止误操作。
4.密码支持掉电保存功能,保存在STM32内部FLASH,可以随时修改密码,密码输入过程中,可按清除键删除已输入的数字。
5.可注册或者注销开锁的IC卡或者指纹。

三.软件设计

主程序源码

int main(void)
{	delay_init();	    //延时函数初始化	  NVIC_Configuration();KEY_GPIO_Init();    //按键初始化BEEP_AND_RELAY_GPIO_Init();//蜂鸣器继电器初始化delay_ms(500);       //上电瞬间加入一定延时在初始化DataInit();LCD_Init();         //屏幕初始化LCD_Write_String(0,0,"   Loading...   ");LCD_Write_String(0,1,"                ");
//	  CHECK_NEW_MCU();//单片机校验PS_StaGPIO_Init();RC522_Init();PcdReset (); //复位RC522 M500PcdConfigISOType ( 'A' );//设置工作方式	uart1_Init(57600);   //串口初始化TIM2_Init(999,719);    //以100Hz计数,定时10ms//Tout = ((arr+1)*(psc+1))/Tclk ;  //Tclk:定时器输入频率(单位MHZ)//Tout:定时器溢出时间(单位us)while(1){  if(InitDisplay==1){InitDisplay = 0;BEEP = 0;DataInit();CorrectCont=0;									//正确计数器清零RELAY = 0; //继电器关闭LCD_Write_String(0,0,"===Coded Lock===");LCD_Write_String(0,1,"password:       ");LCD_Write_Com(0x80+0x40+9);LCD_Write_Com(0x0F);//光标闪烁}	finger_ctrl();//指纹处理函数if(Delete == 0&&Register==0)COMPER_ID_MODE();	ADD_ID_MODE();	DEL_ID_MODE();					//获取按键keycode = KEYSCAN();//有效键值0-15if ((keycode<16)&&(FlagKeyPress==0)){FlagKeyPress = 1;KeyPress(keycode);FlagKeyPress = 0;}delay_ms(10);}}

资料链接:https://pan.baidu.com/s/1uAV37SRnQtrCt_lAIKpe1w?pwd=ch93
提取码:ch93

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

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

相关文章

附录7-用户列表案例,element-ui

目录 1 效果 1.1 查询所有用户 1.2 添加新用户 1.3 删除用户 1.4 用户详情 2 后端 2.1 查询所有 2.2 添加 2.3 删除 2.4 查询单个 3 前端 3.1 环境 3.2 main.js 3.3 userList.vue 3.4 userInfo.vue 1 效果 1.1 查询所有用户 1.2 添加新用户 …

Chrome将更换HTTPS的“小绿锁”图标

HTTPS 是一种用于安全地传输数据的网络协议。HTTPS 是在 HTTP 协议的基础上添加了 SSL/TLS 协议&#xff0c;通过对数据进行加密&#xff0c;从而保证数据传输的安全性。HTTPS 常用于保护敏感信息&#xff0c;如个人身份信息、银行账户信息、信用卡信息等。 目前市面上所有的浏…

适合Docker的场景以及不适合的场景

文章来自&#xff1a;When to use and when not to use Docker和7 Cases When You Should Not Use Docker&#xff0c;以及互联网网上的一些零散内容。这篇文章只是基于我自己的理解&#xff0c;进行简单的概述。 适合的场景 你的团队不是一成不变的。 当有新的成员加入&#…

Openlayers实战:回显多点、多线段、多多边形

Openlayers地图中,回显数据是非常重要的。 继上一示例回显点、线、圆形、多边形后。本示例回显多线,多点,多个多边形。用到了MultiPoint,MultiLineString,MultiPolygon。 多个信息的显示可以采用循环的方式,单个显示点、线、面。 但是循环方式是要多次计算的,而MultiPoint…

FreeRTOS ~(六)信号量 ~ (1/3)信号量解决同步缺陷

前情提要 FreeRTOS ~&#xff08;四&#xff09;同步互斥与通信 ~ &#xff08;1/3&#xff09;同步的缺陷 FreeRTOS ~&#xff08;五&#xff09;队列的常规使用 ~ &#xff08;1/5&#xff09;队列解决同步缺陷 举例子说明&#xff1a;利用信号量解决前述的"同步的缺陷&…

运动控制介绍

运动控制介绍 1 介绍1.1 概述1.2 运动控制的基本架构1.3 常见的控制功能1.4 运动控制研究的问题分类位置变化问题周期式旋转速度变化问题 1.5 知识体系1.6 路径规划 和 轨迹规划区别与联系1.7 运动控制系统 2 《运动控制系统》[班华 李长友 主编] 摘要1 绪论1.1 运动控制研究的…

【数据仓库】FineBI数据可视化使用体验

FineBI介绍 FineBI是新一代自助式BI工具,企业客户多,服务范围广.凭借finebi简单流畅的操作,强劲的大数据性能和自助式的分析体验。 1&#xff0c;对个人用户来说&#xff0c;免费的无限期试用&#xff0c;解锁所有功能&#xff0c;除了限制两个并发访问&#xff0c;个人用户可以…

CSS 两行文字两端对齐与字符间距的处理

前言 &#x1f44f;CSS 文字对齐与字符间距的处理&#xff0c;在这里&#xff0c;你可以了解到文字渐变&#xff0c;letter-spacing&#xff0c;text-align&#xff0c;text-align-last&#xff0c;filter等&#xff0c;速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关…

42. 会话划分问题

文章目录 题目需求思路一实现一题目来源 题目需求 现有页面浏览记录表&#xff08;page_view_events&#xff09;如下&#xff0c;每行数据代表&#xff1a;每个用户的每次页面访问记录。 规定若同一用户的相邻两次访问记录时间间隔小于60s&#xff0c;则认为两次浏览记录属于…

CSS 内容盒子与边框盒子

这篇比较重要&#xff0c;会不断更新❗ 文章目录 &#x1f447;内容盒子开发者工具的使用border 边框padding 内边距margin 外边距盒子整体尺寸元素默认样式与CSS重置元素分类块级标记行级标记行内块标记 display样式内容溢出裁剪掉溢出部分滚动条 圆角边框 border-radius ✌边…

学无止境·MySQL③

单表查询 题一创建表并插入数据薪水修改为5000将姓名为张三的员工薪水修改为3000元将姓名为李四的员工薪水修改为4000元&#xff0c;gener改为女 题一 1.创建表&#xff1a; 创建员工表employee&#xff0c;字段如下&#xff1a; id&#xff08;员工编号&#xff09;&#xff…

Day976.如何安全、快速地接入OAuth 2.0? -OAuth 2.0

如何安全、快速地接入OAuth 2.0&#xff1f; Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于如何安全、快速地接入OAuth 2.0&#xff1f;的内容。 授权服务将 OAuth 2.0 的复杂性都揽在了自己身上&#xff0c;这也是授权服务为什么是 OAuth 2.0 体系的核心的原因之…