基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)

这篇具有很好参考价值的文章主要介绍了基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、项目功能

二、视频

三、原理图

4、材料选择

5、部分程序

资料下载地址:基于STM32的多功能门禁系统

一、项目功能

1、AS608指纹解锁;可以录入、删除、验证指纹;

2、密码解锁;可以密码验证、修改密码和保存密码;

3、刷卡解锁;

4、OLED液晶显示;

二、视频

基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)

三、原理图

stm32驱动as608,STM32,指纹锁,密码锁,stm32,AS608,RC522,密码锁

4、材料选择

AS608指纹模块 

stm32驱动as608,STM32,指纹锁,密码锁,stm32,AS608,RC522,密码锁

RC522刷卡模块

stm32驱动as608,STM32,指纹锁,密码锁,stm32,AS608,RC522,密码锁

OLED液晶显示模块

stm32驱动as608,STM32,指纹锁,密码锁,stm32,AS608,RC522,密码锁

矩阵按键模块

stm32驱动as608,STM32,指纹锁,密码锁,stm32,AS608,RC522,密码锁文章来源地址https://www.toymoban.com/news/detail-517224.html

5、部分程序


#include "sys.h"
#include "delay.h"
#include "oled_iic.h"
#include "stdio.h"
#include "key.h"
#include "timer.h"
#include "as608.h"
#include "usart3.h"
#include "stmflash.h"
#include "key_driver.h"
#include "RFID_RC522.h"
//要写入到STM32 FLASH的字符串数组
 u8 TEXT_Buffer[10]={"1234"};
#define SIZE sizeof(TEXT_Buffer)		//数组长度


u8 datatemp[SIZE];
u8 PassFlag = 0;// 1 :更改密码     2:验证密码
u8 inputidx = 0;
u8 setidx = 0;
u8 cardidx = 0;
u8 delidx = 0;
u16 errcnts = 0;
int main(void)
{		
	extern const u8 BMP1[];
	int i = 0,m = 0,temp = 0;
	u8 data[16]={0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,255,255,255,255,255,255,255}; //写入的金额;
	HZ= GB16_NUM();
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	delay_init();
	TIM3_Int_Init(71,999);
	Init_Key_Driver();
	usart3_init(57600);
	KEY_Init();
	delay_ms(100);
	OLED_Init();
	
	//delay_ms(1000);
	OLED_Clear();
	//delay_ms(500);
	OLED_ShowCH(16, 0,  "指纹解锁");
	OLED_ShowCH(16, 2, "K1添加指纹");
	OLED_ShowCH(16, 4, "K3删除指纹");
	OLED_ShowCH(16, 6, "K5验证指纹");
	STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)TEXT_Buffer,4);//获取密码
	delay_ms(50);
	RC522_Init();		 //RC522
	while(1)
	{		
		Main_Key_Ack();
		if(SysMenu.menuidx == 0)
		{
			if(SysMenu.ID == 0)
			{
				OLED_ShowCH(16, 0,  "指纹解锁");
				OLED_ShowCH(16, 2, "K1添加指纹");
				OLED_ShowCH(16, 4, "K3删除指纹");
				OLED_ShowCH(16, 6, "K5验证指纹");
				
			}
			PassFlag = 0;
			if(SysMenu.ID==1)
			{
				
				OLED_Clear();
				//
				Add_FR();
				
			}
			if(SysMenu.ID==3)
			{
				
				OLED_Clear();
				Del_FR();
			}
			if(SysMenu.ID==5)
			{
				
					OLED_Clear();
				
				OLED_ShowCH(32,2,"请按手指");
				
				press_FR();
				
			}	
		}
		else if(SysMenu.menuidx == 1)
		{
			
			if(SysMenu.ID == 0)
			{
				
				OLED_ShowCH(16, 0,  "密码解锁");
				OLED_ShowCH(16, 2, "K1更改密码");
				OLED_ShowCH(16, 4, "K2验证密码");
				//Main_Key_Ack();
			}
			if(SysMenu.ID == 1)
			{
				switch(setidx)
				{
					case 0://输入新密码
						Syspass.flag = 1;
						OLED_ShowCH(16, 2, "输入新密码");
						OLED_ShowCH(16, 4, "              ");
						setidx = 1;
					break;
					case 1://显示****
						for( i = 0 ; i < Syspass.changenum;i++)
						{
							OLED_ShowCH(16 + i *16, 4, "*");
						}
						if(Syspass.changenum == 4)
							setidx = 2;
					break;
					case 2://密码更改
						if(Syspass.isok == 1)
						{
							Syspass.isok = 0;
							ChangePass();
							delay_ms(1000);
							setidx = 0;
							SysMenu.ID = 0;
							Syspass.flag = 0;
						}
					break;	
					
				}
				
			}
			
			if(SysMenu.ID == 2)
			{
				switch(inputidx)
				{
					case 0://输入密码
						Syspass.flag = 2;
						OLED_ShowCH(16, 2, "请输入密码");
						OLED_ShowCH(16, 4, "              ");
						inputidx = 1;
					break;
					case 1://显示****
						for( i = 0 ; i < Syspass.verifynum;i++)
						{
							OLED_ShowCH(16 + i *16, 4, "*");
						}
						if(Syspass.verifynum == 4)
							inputidx = 2;
					break;
					case 2://密码匹配
						if(Syspass.isok == 1)
						{
							Syspass.isok = 0;
							MatchPass();
							delay_ms(1000);
							inputidx = 0;
							SysMenu.ID = 0;
							Syspass.flag = 0;
						}
					break;
				}
				
				
			}
		}
		else if(SysMenu.menuidx == 2)
		{
			if(SysMenu.ID == 0)
			{
				OLED_ShowCH(16, 0,  "刷卡解锁");
				OLED_ShowCH(16, 2,  "K1请刷卡");
				//OLED_ShowCH(16, 4,  "K2验证密码");
			}
			if(SysMenu.ID == 1)
			{
				switch (cardidx)
				{
					
					case 0:
						OLED_ShowCH(16, 2,  "请刷卡  ");
						//OLED_ShowCH(16, 4,  "              ");
						temp = read_card_data();
					if(temp == 0)
					{
	
						cardidx = 1;
					}
					else 
						OLED_ShowCH(16, 4,  "        ");
						errcnts++;
						if(errcnts > 200)
						{
							errcnts = 0;
							cardidx = 0;
							SysMenu.ID = 0;
							OLED_ShowCH(16, 4,  "          ");
						}
					break;
					case 1:
						OLED_ShowCH(16, 4,  "刷卡成功");
						delay_ms(1500);
						delay_ms(1500);
						cardidx = 0;
						SysMenu.ID = 0;
						OLED_ShowCH(16, 4,  "        ");
					break;
					
					case 2:
						
					break;
					
				}
				
				
			}
			
			
		}
	}
}


到了这里,关于基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2021校赛基于stm32f103多功能台灯

    起源 又到了一学期一次的校内电子设计大赛,又到了激动人心的时刻每次电子设计大赛都会出现各种大佬展现他们的作品,对于我这种菜鸟也只能默默观望,但是呢,积极参与还是要有的,记得上一次参加做的基于51的避障小车直接买的套件焊好 然后在烧入程序就直接上战场

    2023年04月20日
    浏览(55)
  • 【毕业设计】基于RFID的门禁系统 - 单片机 物联网 嵌入式 stm32

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 如何使用RFID技术构建一个单片机门禁系统 基于RFID的门禁系统 大家可用于 课程设计 或 毕业设计 单片机-嵌入式毕设选题大全及项目分享: https://blog.csdn.net/m0_71572576/article/details/125409052 本篇博客,学长先向大家介绍射频识别

    2024年02月03日
    浏览(52)
  • 硬件课程设计:基于STM32的多功能播放器之MP3音乐播放

    3.1.1 设计思路         音乐播放是手机等电子产品最常见的功能,也是最具娱乐性的功能,在该模块中,我先从SD卡中读取已存放的MP3音乐文件,然后将读取的字节流依次送人VS1053中进行解码和播放,同时从VS1053相关的寄存器中读取音乐播放时间,在LCD上实时显示歌曲信息。

    2023年04月08日
    浏览(41)
  • 基于stm32作品设计:多功能氛围灯、手机APP无线控制ws2812,MCU无线升级程序

    作品哔哩哔哩视频:https://www.bilibili.com/video/BV1Yb4y1a7AQ#reply5536921990 资料链接: 蓝牙彩灯v1.01资料链接: CSDN: https://download.csdn.net/download/mbs520/25149435 百度网盘: https://pan.baidu.com/s/14Vout7Q2P6JBDZCCd8Gm6w 提取码:b7it 蓝牙彩灯v1.03资料链接: https://download.csdn.net/download/mbs520/25150035 取

    2024年02月09日
    浏览(46)
  • stm32毕业设计 智能门禁系统

    Hi,大家好,今天向大家介绍一个学长做的单片机项目 基于单片机的门禁系统 大家可用于 课程设计 或 毕业设计 门禁系统的基本组成主要包括身份识别、传感与报警、处理与控制、电锁与执行、管理与设置。 本系统从应用角度出发,针对家庭或小型办公场所的使用需求,主

    2024年02月01日
    浏览(53)
  • RFID课程设计--基于STM32F103RCT6的智能门禁系统,STM32RCT6+RC522+OLED+DHT11+4*4矩阵键盘

      本次课程设计要求如下,我们团队两人完成了90%的功能。   其中我们设置的是刷卡错误3次不报警,密码输入错3次报警(原理相同,大家根据需要自行修改)   然后暂时只能显示卡号和卡是第几个录入到系统中的,想到身份证号和电话(身份信息)输进去有点长就没

    2024年01月16日
    浏览(81)
  • stm32毕设 stm32 RFID员工打卡门禁系统(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(62)
  • 毕业设计 stm32人脸识别门禁系统(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月09日
    浏览(78)
  • STM32外设集 -- 人脸识别门禁系统(K210--HEX协议版本)

    人脸,指纹识别已经走进人们的生活,无疑这方便了人们的生活,也提高了安全和可靠性,所以作为未来的学习方向,我也来接触接触人脸识别(有不足之处请见谅😁) 因为这款芯片有充足的开源资料足够支撑我们学习,并将文档也很友好 相关资料连接 使用说明 (Github):

    2023年04月08日
    浏览(46)
  • 【Proteus仿真】【STM32单片机】多功能智能台灯

    本项目使用Proteus8仿真STM32单片机控制器,使用LCD1604液晶、按键、蜂鸣器、语音识别模块、PCF8591 ADC模块、DHT11温湿度传感器、光线传感器、台灯、人体红外传感器等。 主要功能: 系统运行后,LCD1604液晶显示温湿度和光线强度、时间日期,系统工作模式;系统默认为自动模式

    2024年02月07日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包