在这个项目中,我们将开发基于 RFID和小键盘的安全系统。该项目是使用8051微控制器实现的。RFID技术(射频识别和检测)通常用于学校,学院,办公室和车站,用于各种目的,以自动验证具有有效RFID标签的人员。在这里,我们将检查RFID标签以及与该标签关联的密码,以保护系统。
加工
我们可以将完整的安全系统分为多个部分-读取器部分,键盘,控制部分,驱动程序部分和显示部分。整个系统的工作和每个部分的作用可以通过下面的框图来理解。
读取器部分:此部分包含一个RFID,RFID是一种电子设备,分为两部分-一个是RFID读取器,另一个是RFID标签或卡。当我们将RFID标签放在RFID阅读器附近时,它会顺序读取标签数据。我们在这里使用的RFID标签具有12位字符代码或序列号。该RFID的波特率为9600 bps。
键盘: 在这里,我们使用了4x4矩阵键盘来输入系统密码。
控制部分: 8051微控制器用于控制此基于RFID的安全系统的完整过程。在这里,通过使用8051,我们正在接收RFID数据并将状态或消息发送到LCD。
显示部分: 此项目中使用6x2 LCD来显示消息。在这里,您可以看到教程:LCD与8051微控制器的接口
驱动器部分: 该部分具有用于打开门的电机驱动器L293D和带有BC547 NPN晶体管的蜂鸣器,用于指示。
当一个人将他的RFID标签放到RFID阅读器上时,RFID会读取标签的数据并将其发送给8051微控制器,然后微控制器会将这些数据与预定义的数据进行比较。如果数据与预定义的数据匹配,则微控制器要求输入密码,并且在输入密码后,微控制器将密码与预定义的密码进行比较。如果密码匹配门将打开,否则液晶显示屏将显示访问被拒绝,并且蜂鸣器开始发出蜂鸣声。
电路图和说明
如上面的RFID安全系统电路图所示,16x2 LCD以四位模式与微控制器连接。LCD的RS,RW和EN引脚直接连接到端口1的引脚号P1.0,P1.1和P1.2。LCD的D4,D5,D6和D7引脚直接连接到端口1的引脚P1.4,P1.5,P1.6和P1.7。电机驱动器连接到PORT引脚号P2.4和P2.5。蜂鸣器在PORT2的P2.6连接。键盘连接到PORT0。键盘行连接在P0.4 – P0.7上,列连接在P0.0 – P0.3上。
程序说明
在为基于RFID的安全系统对8051微控制器进行编程时,首先我们包括头文件并定义输入和输出引脚以及变量。
#包括
然后定义键盘模块的引脚。
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit row1 = P0 ^ 4; sbit row2 = P0 ^ 5; sbit row3 = P0 ^ 6; sbit row4 = P0 ^ 7;
此后,我们创建了一个延迟功能。
void delay(int itime){int i,j; 对于(i = 0; i
然后我们为LCD做一些功能并初始化LCD功能,
void lcd_init(void){lcdcmd(0x02); lcdcmd(0x28); lcdcmd(0x0e); lcdcmd(0x01); }
在这里,我们有一些在程序中使用过的功能。在这种情况下,我们在11.0592MHz的晶体频率上配置了9600bps的波特率,并且为了接收,我们正在监视SBUF寄存器以接收数据。
无效的uart_init(){TMOD = 0x20; SCON = 0x50;TH1 = 0xfd;TR1 = 1;} char rxdata(){while(!RI); ch = SBUF; RI = 0;返回ch }
之后,在主程序中,我们已经初始化了lcd和Uart,然后在贴上任何标签时读取RFID的输出。我们将此字符串存储在数组中,然后与预定义的数组数据匹配。然后匹配密码。
if(strncmp(rfid,“ 160066A5EC39”,12)== 0){keyboard(); if(strncmp(pass,“ 4201”,4)== 0){accept(); lcdcmd(1); lcdstring(“ Access Granted”); lcdcmd(0xc0);
如果发生匹配,则控制器打开门,否则蜂鸣器启动,并且LCD显示无效的卡。