一.硬件方案
基于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