一.硬件方案
门禁系统采用STM32 单片机作为控制核心,外围加蜂鸣器控制电路、开门指示灯电路、电控锁控制电路以及液晶显示电路等。门禁系统主要组成:由CPU、复位电路、电源指示、工作指示、振荡电路、蜂鸣器电路、门控锁电路、出门按钮、读卡模块、显示模块等组成。采用射频卡完成刷卡进门,按钮出门功能。
主要由STM32F103单片机+LCD1602液晶显示+蜂鸣器报警电路+RC522射频卡+继电器电路+按键模块;如图:
二.设计功能
(1)采用LCD1602液晶显示当前信息。
(2)按键对当前的ic卡进行注册、删除、返回。
(3)注册成功后,刷卡成功继电器打开。
(4)感应到IC卡后会进行蜂鸣器提醒。
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:
(2)PCB图如下:
四.软件设计
(1)程序流程图
(2)主程序源码
int main(void)
{
u8 stauts = 1,key;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
delay_init(); //延时函数初始化
KEY_GPIO_Init(); //按键初始化
RELAY_INIT();
Human_induction_Iint();
BEEP_DISENABLE();
delay_ms(100); //上电瞬间加入一定延时在初始化
LCD_Init(); //屏幕初始化
LCD_Write_String(0,0,"Please Bush Card");
CHECK_NEW_MCU();
TIM2_Init(1000,719); //以100Hz计数
UART1_INIT((u32)9600);
RC522_Init();
PcdReset (); //复位RC522
M500PcdConfigISOType ( 'A' );//设置工作方式
while(1)
{
if(key == 1) stauts = !stauts;
if(stauts)
key = COMPER_ID_MODE();
else
{
key = 2;
while(key != 1)
{
switch(key)
{
case 2: key = ADD_ID_MODE(); break;
case 3: key = DEL_ID_MODE(); break;
case 4: CLEAR_ALL_MES(); key = 2; break;
default : break;
}
}
}
}
}
资料链接:https://pan.baidu.com/s/1O1tcSzye0uNw6MFLC_CUUA?pwd=vlno
提取码:vlno