刷卡
分享一期
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
暂无评论