基于stm32F103C8T6的智能门禁(毕业设计)

刷卡

分享一期
RC522刷卡模块做的门禁系统(上面是视频呈现)

功能文字说明(拓展空间非常大)

识别卡号以及卡类并显示

刷管理卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)

刷用户卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)

再次刷卡 会显示卡号以及卡类

实际的项目中添加了舵机,语音播报模块,大家也可根据自己的需求任意修改

本次演示所需硬件介绍

F103C8T6最小系统
在这里插入图片描述

RC522刷卡模块
接法
VCC接3.3V
GND接GND
SDA,SCK,MOSI,MISO根据引脚配置连接
RQ悬空(不用接)
RST接3.3V(波特率设置为9600)
在这里插入图片描述
轻触按键
找一块以前测试的洞洞板, 随意焊接一个小按键,对脚用排针引出更方便连接(节省成本 向我学习)
在这里插入图片描述
部分代码

#include "stm32f10x.h"
#include "usart.h"
#include "sys.h"
#include "oled.h"
#include "delay.h"
#include "rc522_function.h"
#include "rc522_config.h"
#include "timer.h"
#include "read_card.h"
#include "rtc.h" 
#include "usmart.h"
#include "key.h"
#include "stmflash.h"
#include "MP3.h"
const u8 TEXT_Buffer[]={"STM32F103 FLASH TEST"};
u8 USERResult;//IC卡匹配结果
u8 Look_Start;//门禁状态
u8 Key_Value;//按键值
extern u8 flag;
extern int lu;
extern int lz;
 int main(void)
 {
  u8 datatemp[30];
	u8 sss,aaa;
  delay_init();	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 
  uart_init(9600);
	TIM3_PWM_Init(899,0);
	RC522_Init ();
	KEY_Init();	 
	usmart_dev.init(SystemCoreClock/1000000);	
	RTC_Init(); 
	PcdReset (); 
	MP3_Init();
	M500PcdConfigISOType ( 'A' );//设置工作方式
	OLED_Init();			
	OLED_Clear();
	delay_ms(100);
	 while(1)
	 {
	  display_time(0,0,calendar.sec);//显示时间
		oledkaiji();
		delay_ms(100);
		IC_test ();//IC卡检测,还需要修改		 
		 Key_Value=KEY_Scan(0);
		if((flag==0x01)&&(Key_Value==1))
		 {
			 OLED_Clear();
		   cunka();//显示 刷卡录入
			 //舵机关闭
			 delay_ms(1000);
			 while(lu)
			 {	 
			  lurukahao();
				//duka();
			 }
			 flag=0; 
			 delay_ms(1000);
			 OLED_Clear();
			 OLED_Clear();
	   }
		 if((flag==2)&&(Key_Value==1))
		 {
			 OLED_Clear();
		   //cunka1();//显示 刷卡录入
			 //打印卡号,保存到flash
			 flag=0; 
			 delay_ms(1000);
			 OLED_Clear();
			 OLED_Clear();
	   }
	 if((flag==1)&&(Key_Value==2))
		 {
			 TIM_SetCompare3(TIM3,37000);
			 flag=0;
	   }
	 
		 if((flag==2)&&(Key_Value==2))
		 {
		  //MP3_choose(3);//没有权限关门
		 }			 
		 
		 if(Key_Value==3)
		 {
			 OLED_Clear();
			 while(lz)
			 {	 
				 
			  //shanchukahao();
				delay_ms(1000);
				sk1();
				OLED_Clear();
			  OLED_Clear();
				//duka();
			 }
		    //flag=0; 
		 }
		 
	 
 }
 
 
 
 

}

资料获取可加群或关注公众号
①群 721421120
②群 864292349

公众号回复 智能门禁即可获得
在这里插入图片描述

版权声明:本文为CSDN博主「文某9」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lllmeimei/article/details/118360947

刷卡

分享一期
RC522刷卡模块做的门禁系统(上面是视频呈现)

功能文字说明(拓展空间非常大)

识别卡号以及卡类并显示

刷管理卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)

刷用户卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)

再次刷卡 会显示卡号以及卡类

实际的项目中添加了舵机,语音播报模块,大家也可根据自己的需求任意修改

本次演示所需硬件介绍

F103C8T6最小系统
在这里插入图片描述

RC522刷卡模块
接法
VCC接3.3V
GND接GND
SDA,SCK,MOSI,MISO根据引脚配置连接
RQ悬空(不用接)
RST接3.3V(波特率设置为9600)
在这里插入图片描述
轻触按键
找一块以前测试的洞洞板, 随意焊接一个小按键,对脚用排针引出更方便连接(节省成本 向我学习)
在这里插入图片描述
部分代码

#include "stm32f10x.h"
#include "usart.h"
#include "sys.h"
#include "oled.h"
#include "delay.h"
#include "rc522_function.h"
#include "rc522_config.h"
#include "timer.h"
#include "read_card.h"
#include "rtc.h" 
#include "usmart.h"
#include "key.h"
#include "stmflash.h"
#include "MP3.h"
const u8 TEXT_Buffer[]={"STM32F103 FLASH TEST"};
u8 USERResult;//IC卡匹配结果
u8 Look_Start;//门禁状态
u8 Key_Value;//按键值
extern u8 flag;
extern int lu;
extern int lz;
 int main(void)
 {
  u8 datatemp[30];
	u8 sss,aaa;
  delay_init();	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 
  uart_init(9600);
	TIM3_PWM_Init(899,0);
	RC522_Init ();
	KEY_Init();	 
	usmart_dev.init(SystemCoreClock/1000000);	
	RTC_Init(); 
	PcdReset (); 
	MP3_Init();
	M500PcdConfigISOType ( 'A' );//设置工作方式
	OLED_Init();			
	OLED_Clear();
	delay_ms(100);
	 while(1)
	 {
	  display_time(0,0,calendar.sec);//显示时间
		oledkaiji();
		delay_ms(100);
		IC_test ();//IC卡检测,还需要修改		 
		 Key_Value=KEY_Scan(0);
		if((flag==0x01)&&(Key_Value==1))
		 {
			 OLED_Clear();
		   cunka();//显示 刷卡录入
			 //舵机关闭
			 delay_ms(1000);
			 while(lu)
			 {	 
			  lurukahao();
				//duka();
			 }
			 flag=0; 
			 delay_ms(1000);
			 OLED_Clear();
			 OLED_Clear();
	   }
		 if((flag==2)&&(Key_Value==1))
		 {
			 OLED_Clear();
		   //cunka1();//显示 刷卡录入
			 //打印卡号,保存到flash
			 flag=0; 
			 delay_ms(1000);
			 OLED_Clear();
			 OLED_Clear();
	   }
	 if((flag==1)&&(Key_Value==2))
		 {
			 TIM_SetCompare3(TIM3,37000);
			 flag=0;
	   }
	 
		 if((flag==2)&&(Key_Value==2))
		 {
		  //MP3_choose(3);//没有权限关门
		 }			 
		 
		 if(Key_Value==3)
		 {
			 OLED_Clear();
			 while(lz)
			 {	 
				 
			  //shanchukahao();
				delay_ms(1000);
				sk1();
				OLED_Clear();
			  OLED_Clear();
				//duka();
			 }
		    //flag=0; 
		 }
		 
	 
 }
 
 
 
 

}

资料获取可加群或关注公众号
①群 721421120
②群 864292349

公众号回复 智能门禁即可获得
在这里插入图片描述

版权声明:本文为CSDN博主「文某9」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lllmeimei/article/details/118360947

生成海报
点赞 0

文某9

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

基于8051单片机实现电子时钟+数字秒表设计

概述 电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显 示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许