资讯专栏INFORMATION COLUMN

毕业设计 - 题目:基于RFID的门禁系统 - 单片机 物联网 嵌入式

dingda / 1444人阅读

摘要:门禁系统可有效管理门的开启关闭对出入人员进行监控管理。基于的门禁系统通过对射频卡的识别,保证那些持有相应证件的人员能自由进出,阻止外来人员或无法提供证件的人员进入。


1 简介

Hi,大家好,这里是丹成学长,今天向大家介绍一个 如何使用RFID技术构建一个单片机门禁系统

基于RFID的门禁系统

大家可用于 课程设计 或 毕业设计

技术解答、毕设帮助、开题指导print("Q 746876041") 

本篇博客,学长先向大家介绍射频识别技术的概念、 分类及工作原。然后介绍 本次使用的射频芯片 MFRC522。

RFID 系统设计可分为硬件部分和软件部分。

硬件部分以 MFRC522 射频识别模块为核心, 结合主控模块 STC89C52 设计系统的外围硬件电路, 实现对射频卡的控制与 MCU 之间的互通。 软件部分采用 C 语言进行系统的下位机程序的开发, 完成与 IC 卡之间的通信, 实现数据交换功能。

2 绪论

2.1 课题背景与目的

门禁安全管理系统是新型现代化安全管理系统, 它集自动识别技术和现代安全管理措施为一体。 门禁系统可有效管理门的开启关闭, 对出入人员进行监控管理。 基于RFID的门禁系统通过对射频IC卡的识别, 保证那些持有相应证件的人员能自由进出, 阻止外来人员或无法提供证件的人员进入。 还有些门禁是利用生物识别的技术, 通过对人体某些部位(如眼睛、 指纹) 的识别来确认来人是否经过授权。 这种门禁系统相对射频识别的系统安全系数有很大提高, 但其成本较高, 在日 常生活中还未广泛应用。

3 射频识别

3.1 射频识别技术

射频识别(Radio Frequency Identification, RFID) 技术是从八十年代逐渐走向成熟的一种自 动识别技术, 它 是一项利用 射频信号通过空间耦合(交变磁场或电磁场)实现无接触信息传递并通过所传递的信息达到识别目 的的技术。

根据射频卡读写方式的不同可分成可读写(RW) 卡、 一次写入多次读出(WORM) 卡和只读(RO) 卡。 RW 卡成本较 WORM 卡和 RO 卡相比要高, 而且写入数据所花费的时间要远大于读取数据所花费的时间。 用户可以一次性将信息写入 WORM 卡, 写入后数据不能改变。 RO 卡存有一个唯一的号码。 只可读取, 不能修改, 虽然安全性较高, 但用途有限。

3.2 射频识别模块

3.2.1 RFID模块

射频识别「Radio Frequency IDentification,简称RFID」技术,又称为无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触,普遍应用于企业/校园一卡通、公交储值卡、高速公路收费、停车场、小区管理等。

RFID 技术利用无线射频方式在阅读器和射频卡之间进行非接触双向数据传输,以达到目标识别和数据交换的目的。

3.2.2 RFID模块组成

  • 标签(Tag,即射频卡),耦合元件及芯片组成,标签含有内置天线,用于和射频天线间进行通信。
  • 阅读器:读取(在读写卡中还可以写入)标签信息的设备。
  • 天线:在标签和读取器间传递射频信号。

这里使用的RFID-RC522模块采用MFRC522芯片,SPI通讯方式,支持Mifarel S50、S70 、Pro、Desfire等类型的卡,附带的白卡和钥匙扣是S50卡,每张卡都有自己的标识(UID)。

4 系统设计

本系统的主要电路包括: 读卡器数据采集电路、 串行 E 2 PROM 存储电路、 LCD1602 显示电路、 串口通讯电路、 报警电路、 门控电路、 键盘电路。

器件列表

    1. 主控芯片: AT89C52。
    1. 读卡器: YHY502ATG。
    1. E 2 PROM: AT24C04。
    1. LCD 液晶: ZL1602C2。
    1. 串口通讯芯片: MAX232。
    1. 报警器: 1 个蜂鸣器加一个 LED 红灯。
    1. 门控器件: 一个 LED 绿灯。

4.1 系统架构

4.1.1 硬件部分

LCD1602 显示电路设计

串口通讯电路设计

报警电路设计

4.1.2 软件部分

在本系统中, 软件的设计主要包括: 数据采集模块、 存储模块、 显示模块、 门控模块、 报警模块、 键盘模块和上位机软件的设计几个方面。 本系统的软件结构框图如图 4-1 所示。

    1. 数据采集模块: 读卡器 YHY502ATG 通过天线读取 RFID 卡的数据,然后将数据传送出去。
    1. 存储模块: AT89C52 接收到数据后, 将数据传送给 AT24C04 进行存储。
    1. 显示模块: AT89C52 接收到数据后, 将数据与 AT24C04 里存储的数据进行对比, 若两者完全相同, 则液晶显示正确的信息; 若不相同, 则液晶显示错误的信息。
    1. 门控模块: AT89C52 接收到数据后, 将数据与 AT24C04 里存储的数据进行对比, 若两者完全相同, 则进行开门操作; 若不相同, 则不开门。
    1. 报警模块: AT89C52 接收到数据后, 将数据与 AT24C04 里存储的数据进行对比, 若不相同则报警。
    1. 键盘模块: 通过键盘输入密码, 并根据输入密码的有效性做相应的操作。

4.2 软件总体流程图

系统的软件总体流程图如图

4.3 密码子程序

当程序运行时, 会一直判断是否有按键被按下, 当有按键被按下时, 系统会确定键值, 关将键值存入到密码数组里, 然后将输入的密码与本身的密码做比较, 若相同, 则执行开门和显示正确信息的操作; 若不相同, 则执行报警和显示错误信息的操作。

核心代码:

P1=0x0f;if(P1!=0x0f) compare(P1);for(n=0;n<10;n++)if(input[n]!=password[n]) break;if(n==10){ if(m<10) continue;WriteLcdCom(0x01);   //清屏WriteLcdCom(0x80);  //第一行数据指针地址for(s=0;s<16;s++) WriteLcdDat(str2[s]);LEDG=0;BUZ=0;delay_10ms(20);LEDG=1;BUZ=1;WriteLcdCom(0x01);input[0]=" "; }else if((n<10)&&(P1==0xbd)){ WriteLcdCom(0x01);   //清屏WriteLcdCom(0x80);  //第一行数据指针地址for(s=0;s<16;s++)WriteLcdDat(str4[s]);LEDR=0;for(s=0;s<5;s++){ BUZ=0;delay_10ms(20);BUZ=1;delay_10ms(20); }LEDR=1; }

4.4 数据采集子程序

执行程序之前, 首先要设置串口波特率等相关串口参数, 然后上位机通过串口向下位机发送命令, 并进入串口中断。 下位机根据接收 SBUF 的值做相应的处理。

核心程序

uchar uart_process(void){uchar cmd;uchar cStatus;cmd = g_cReceBuf[1];switch(cmd){case 0x20: // 寻卡, 防冲突, 选择卡返回卡系列号(4 bytes)cStatus =IicSendHY502(g_cReceBuf);  // 发送寻卡命令cStatus =IicReadHY502(cp);   // 读取卡号并存入到 cPif((cStatus==SUCCESS)&&(cp[1]==CARD_SN)){memcpy(&g_cReceBuf[0],&cp[2],4);eeprom();}}//将读取到的卡序列号与 E 2 PROM 里存储的进行比较return cStatus;}开始上位机发送读卡命令YYNN有感应卡 ?验证感应卡权限权限满足?开门, 显示正确信息报警, 显示错误信息延时后, 自动关门结束

4.5 显示子程序

显示子程序的主要功能是对当前的门控状态进行显示, 显示函数首先判断是写命令操作还是写数据操作, 若是写命令操作, 则根据命令进行相应的操作, 如清屏、 设置显示模式等; 若是写数据操作, 则在显示器上显示相应数据。

核心程序

void LcdShowError(){ WriteLcdCom(0x38);  //显示模式设置WriteLcdCom(0x0c);  //开显示, 无光标, 光标不闪烁WriteLcdCom(0x06);  //读写字符后地址指针加一设置WriteLcdCom(0x80); //第一行数据指针地址for(k=0;k<16;k++){WriteLcdDat(str3[k]);delay(20); }WriteLcdCom(0xc0); //第二行数据指针地址for(k=0;k<16;k++){ WriteLcdDat(str4[k]);delay(20);}WriteLcdCom(0x01);  }void WriteLcdCom(unsigned char c){ LCDRW =00;LCDRS=0;   //切换到写命令P0=c;LCDE=1;LCDE=0;for(a=0;a<20;a++);}void WriteLcdDat(unsigned char d){ LCDRW =00;LCDRS=1;    //切换到写数据P0=d;LCDE=1;LCDE=0;for(a=0;a<20;a++);}

4.6 存储子程序

本设计中数据的存储芯片选用的是 AT24C04, 该芯片是串行的 E 2 PROM,支持 I 2 C 总线数据传送协议。

核心程序

void eeprom(){write_byte(0,0x1e);write_byte(1,0xda); write_byte(2,0x62); write_byte(3,0xb6);write_byte(4,0x25); write_byte(5,0xee); write_byte(6,0xde);write_byte(7,0xb6); write_byte(8,0x05); write_byte(9,0xc8);write_byte(10,0x43);write_byte(11,0xb8);write_byte(12,0x3a);write_byte(13,0x04);write_byte(14,0x5d);write_byte(15,0xb6);}bit shout(uchar write_data)// 从 MCU 移出数据到 AT24C04{uchar i; bit ack_bit;for(i = 0; i < 8; i++) // 循环移入 8 个位{SDA1 = (bit)(write_data & 0x80);_nop_();SCL1 = 1;delayNOP();SCL1 = 0;write_data <<= 1; }SDA1 = 1;  // 读取应答delayNOP();SCL1 = 1;delayNOP();ack_bit = SDA1;SCL1 = 0;return ack_bit;  // 返回 AT24C04 应答位}void  write_byte(uchar  addr,  uchar write_data)  //  在 指 定 地 址 addr 处写入数据 write_data{ start();shout(OP_WRITE);shout(addr);shout(write_data);stop();delay_10ms(1); }

5 实现效果

我们还可以把系统装到盒子里

6 最后

单片机毕设项目大全:
https://blog.csdn.net/huawei123444/article/details/119822845

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123449.html

相关文章

  • 毕业设计 - 题目基于单片指纹识别考勤系统 - 入式 联网

    摘要:本文在充分理解考勤系统原则和目标的基础上,采用单片机对考勤进行硬件设计并采用面向对象的思想进行上位机管理系统的设计。该芯片共内置个中文汉字,个字符的码字符库及点阵显示。单片机指纹考勤系统参数设定流程如图所示。 ...

    antz 评论0 收藏0
  • 毕业设计 - 题目基于单片录音器设计与实现 - 联网 入式

    摘要:信息的安全性可控性已成为录音系统的重要研究内容。系统设计系统架构通过单片机与语音功能集成芯片,以及液晶芯片进行设计,由单片机控制来实现语音的录制存储以及播放清除等功能。 ...

    fobnn 评论0 收藏0
  • 毕业设计 - 题目: 基于单片智能小车 - 入式 联网 本科毕设

    摘要:基于单片机的智能小车控制就是其中的一个体现。本设计实现了一种基于单片机的自动避障智能模型车系统,通过红外传感器采集路况信息,通过对检测信息的分析,自动控制转向电机转向,改变行驶路径,绕过障碍物,从而实现车稳定避障。 ...

    Genng 评论0 收藏0
  • 毕业设计 - 基于单片智能手环 -计步器 入式 联网 stm32

    摘要:老年智能手环主要致力于深入到整个救治老年人环节中,促进几个关键人群的及时反应智能互联信息互通。是一款突出个性与人性的智能化产物。 文章目录 1 简介1 项目背景意...

    不知名网友 评论0 收藏0
  • 基于单片蓝牙控制窗帘电路系统

    摘要:设计简介本设计是基于单片机的蓝牙控制窗帘电路系统,主要实现以下功能可通过显示温湿度光照强度窗帘状态和模式可通过按键调整光照强度最小值可通过蓝牙连接手机进行远程控制可通过获取温湿度可通过光敏电阻获取光照强度。 设计简介: 本设计是基于单片机的蓝牙控制窗帘电路系统,主要实现以下功能: 可通过LC...

    lowett 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<