基于51单片机的RFID智能门禁系统 |
您所在的位置:网站首页 › 门禁系统开锁信号原理图讲解 › 基于51单片机的RFID智能门禁系统 |
1.概述 (1)本设计采用STC89C52作为主控芯片,专用读卡器模块用来读射频卡的信息,当有卡进入到读卡器读卡的范围内时就会读取到相应的卡序列号,并根据得到的卡序列号做出相应的操作。若正确则开门,若不正确则报警并显示错误信息。 (2)本设计实现了自动、准确的识别卡序列号,对门禁系统起着重要的作用EEPROM采用AT24C04芯片,掉电后可以存储密码,从而保证了系统的安全性。人机交互通道部分采用了4×4矩阵键盘输入以及LCD12864标准字符型液晶显示。针对于用按键输入密码,根据密码的正确与否来进行相应的操作,管理员可以自行设定和修改密码;输出系统部分包括驱动开锁电路和报警电路;其中,在本系统设计中,驱动开锁电路用发光二极管表示,而报警电路则使用蜂鸣器。 2.硬件设计 本次设计的硬件电路是由STC89C52 单片机为控制核心,射频卡信息由MFRC522模块读出,通过MCU在LCD12864上显示,通过按键完成密码验证和修改密码的功能,并根据输入密码的对错,执行相应继电器的动作和蜂鸣器的状态,整个门禁系统框图如图3-1所示。 在阅读器的感应范围之外,电子标签无源无法工作,只有在阅读器感应范围之内,电子标签才是有源的。应答器工作所需的能量,是通过读写器的耦合单元传输给应答器的。应答器如果是无源系统,即应答器内不含电池,则应答器工作的能量是由读写器发出的射频脉冲提供[8]。应答器如果是有源系统,即应答器内含有电池,则应答器工作能量和工作寿命有电池决定。RFID射频系统结构图如图: 实用RFID系统为无源系统,即射频卡能量由读写器发出的射频脉冲信号提供。无源系统的通信优劣取决于读写器发出的脉冲信号能否被射频卡完整接受。当射频卡进入读卡器接受范围后,如果接收到读卡器发出的射频信号,就能凭借产生的感应电流所获得的能量发送出存储在卡片中的信息,通过读卡器的处理,将信息送至信息管理系统进行有关数据处理。 b.MFRC522射频模块 MFRC522是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员,是NXP公司推出的一款非接触式读写卡芯片。MFRC522利用了先进的调制和解调的技术,完全集成了在13.56MHz下所有类型的通信协议,支持多种工作在13.56MHz下的射频卡读写操作 。其内部发送器部分可驱动读写器天线与射频卡和应答机的通信,无需其它的电路。模块的控制接口采用了标准SPI通讯接口,由于MFRC522射频模块采用3.3V供电电源,所以需利用LDO稳压电路将5V转换为3.3V,模块电路连接图如图: (4)总体硬件电路图 (1)主函数 void main(void) //主函数 { INT8U key; Delay_ms(50); //让硬件稳定 init_all(); //执行初始化函数 relay_OFF(); //关继电器 LED_BLINK_1(); //led test beep1(); //beep test display(0,0,0); //显示初始化 while(1) { key=key_scan(); //按键操作 if(key==12) if(states>0) states--; else states=0; //上一功能 if(key==13) if(++states>3) states=3; //下一功能 ctrl_process(); //进入RC522操作 } }(2)状态机处理程序 void ctrl_process( void ) { INT8U i,key_count,key_value=16,table[8]="--------",statesbuf; if(states!=statesbuf) //状态改变,清屏 { display_clear_line(2); display_clear_line(3); statesbuf=states; } switch(states) { case 0: //IC卡读卡输入 display(1,0,1); if(IC_READ()) { if ((Card_SN[0]==Card_SN_BUF[0]) &&(Card_SN[1]==Card_SN_BUF[1]) &&(Card_SN[2]==Card_SN_BUF[2]) &&(Card_SN[3]==Card_SN_BUF[3])) { relay_ON();//灯开关 display(2,0,5); } else display(2,0,6); relay_OFF(); } break; case 1: display(1,0,2); //密码输入 display2(3,0,table,8); key_count=0; while(1) { key_value=key_scan(); if(key_value==12) { states--; return; } if(key_value==13) { states++; return; } if(key_value>=0 && key_value |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |