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

Posted 文妹怒敲键盘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于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; 
		 }
		 
	 
 }
 
 
 
 

}

需要工程文件留下联系方式 免费分享 一起学习
(有写的不好的地方欢迎指正)

以上是关于基于stm32F103C8T6的智能门禁(毕业设计)的主要内容,如果未能解决你的问题,请参考以下文章

基于STM32F103c8t6的智能垃圾桶项目

基于STM32F103c8t6的智能垃圾桶项目

基于STM32F103的智能门禁系统

基于STM32F103的智能门禁系统

STM32f103C8T6 Bootloader设计(转)

STM32学习笔记 二基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发