站内搜索
更多
基于51单片机的智能门禁系统
专业版

基于51单片机的智能门禁系统

简介

基于STC89C52单片机的智能门锁系统,集成多个模块。支持授权卡管理,具有开具有开锁后10秒自动关闭、防 重复读卡、完整边界判定等特性。适用于课程设计和学习参考。

简介:基于STC89C52单片机的智能门锁系统,集成多个模块。支持授权卡管理,具有开具有开锁后10秒自动关闭、防 重复读卡、完整边界判定等特性。适用于课程设计和学习参考。
星火计划2025

开源协议

MIT License

创建时间:2025-11-26 15:40:54更新时间:2026-01-07 10:32:24

描述

RFID智能门禁系统

项目简介

这是一个基于 STC89C52RC 单片机的 RFID 智能门禁控制系统,实现了完整的门禁管理功能。系统采用 RC522 RFID 读卡器识别 13.56MHz Mifare 卡片,支持最多 50 张授权卡的存储,并配备 OLED 显示屏、语音提示、门磁传感器等多种人机交互方式。

核心特性

  • RFID识别:采用 RC522 模块,支持 Mifare S50 卡片
  • 卡片管理:基于 AT24C02 EEPROM,可存储最多 50 张授权卡
  • 可视化显示:0.96 寸 OLED 显示屏实时显示系统状态
  • 语音反馈:DFPlayer Mini 模块提供语音提示
  • 智能门控:LED 指示灯模拟门锁,开锁后 10 秒自动关闭
  • 门磁检测:MC-38 门磁传感器检测门的开关状态
  • 灵活操作:支持添加卡、删除卡、清空所有卡等管理功能

功能模块

1. 运行模式

  • 刷授权卡开门,LED 点亮表示开锁
  • 10 秒后自动关锁(门磁检测门已关闭时)
  • 未授权卡拒绝访问,语音提示

2. 设置模式

  • 添加卡:按 KEY_ADD 进入添加模式,刷卡即可添加
  • 删除卡:按 KEY_DEL 进入删除模式,刷卡即可删除
  • 清空所有卡:同时长按 KEY_ADD + KEY_DEL 3 秒,确认后清空

3. 按键定义

  • KEY_MODE (P3.2):切换运行模式/设置模式
  • KEY_ADD (P3.3):添加授权卡 / 确认清空
  • KEY_DEL (P1.5):删除授权卡 / 取消清空

硬件配置

主控芯片

  • 型号:STC89C52RC
  • 主频:12MHz
  • 工作电压:5V

外设模块

模块名称型号通信方式引脚连接功能说明
RFID读卡器RC522SPIRST(P2.3), MISO(P2.4), MOSI(P2.5), SCK(P2.6), SDA(P2.7)读取 13.56MHz Mifare 卡片
EEPROMAT24C02I²CSCL(P2.1), SDA(P2.0)存储最多 50 张授权卡 UID
OLED显示屏SSD1306I²CSCL(P2.1), SDA(P2.0)0.96寸 128×64 单色显示
语音模块DFPlayer MiniUARTRX(P3.0), TX(P3.1), BUSY(P1.7)MP3 语音播放
门锁LED-GPIOP1.4模拟门锁开关状态
门磁传感器MC-38GPIOP3.4检测门的开关状态

电路说明

  • I²C总线共享:AT24C02 和 SSD1306 共用 I²C 总线,需外接 4.7kΩ 上拉电阻
  • 门锁控制逻辑:低电平 LED 亮(门开),高电平 LED 灭(门关)
  • 门磁传感器:常闭型,门关闭时低电平,门打开时高电平
  • DFPlayer 接线:单片机 TX → DFPlayer RX,单片机 RX → DFPlayer TX

软件架构

项目结构

SmartLock/
├── Driver/              # 驱动层
│   ├── RC522.c/h       # RFID读卡器驱动
│   ├── AT24C02.c/h     # EEPROM存储驱动
│   ├── Display.c/h     # OLED显示驱动
│   ├── Voice.c/h       # 语音模块驱动
│   ├── DoorLock.c/h    # 门锁控制驱动
│   ├── DoorSensor.c/h  # 门磁传感器驱动
│   ├── I2C.c/h         # I²C通信协议
│   ├── OLEDFont.h      # OLED字体库
│   └── config.h        # 硬件引脚配置
└── User/
    └── main.c          # 主程序

核心功能模块

1. RFID读卡模块 (RC522.c)

  • 软件模拟 SPI 通信
  • 支持 Mifare S50 卡片识别
  • 防冲突算法,支持多卡环境
  • 函数:RFID_ReadCard() - 读取卡片 UID

2. EEPROM存储模块 (AT24C02.c)

  • 基于 I²C 通信
  • 存储格式:前 2 字节存储卡片数量,后续每 4 字节存储一张卡的 UID
  • 核心函数:
    • AddCardUID() - 添加授权卡
    • DeleteCardUID() - 删除授权卡
    • CheckCardUID() - 验证卡片权限
    • ClearAllCards() - 清空所有卡

3. OLED显示模块 (Display.c)

  • I²C 接口,地址 0x78
  • 显示布局:顶部显示模式,中部显示消息
  • 核心函数:
    • Display_ShowMode() - 显示系统模式
    • Display_ShowMessage() - 显示操作反馈

4. 语音提示模块 (Voice.c)

  • UART 通信,波特率 9600
  • 支持 15 种语音提示(开机、开门、添加卡等)
  • 核心函数:Voice_Play() - 播放指定音频

5. 门锁控制模块 (DoorLock.c)

  • 定时器控制,开锁后 10 秒自动关闭
  • 配合门磁传感器,只有门关闭时才上锁
  • 核心函数:
    • DoorLock_Open() - 开锁
    • DoorLock_TimerHandler() - 定时器处理

操作指南

首次使用(添加第一张卡)

  1. KEY_MODE 进入设置模式
  2. KEY_ADD 进入添加卡模式
  3. 刷卡添加授权卡
  4. KEY_MODE 返回运行模式

添加更多授权卡

  • 设置模式 → 按 KEY_ADD → 刷卡

删除授权卡

  • 设置模式 → 按 KEY_DEL → 刷需要删除的卡

清空所有授权卡

  • 设置模式 → 同时长按 KEY_ADD + KEY_DEL 3 秒 → 按 KEY_ADD 确认

OLED显示说明

显示内容含义
Run Mode - Ready运行模式,等待刷卡
Run Mode - Open OK开门成功
Run Mode - Denied拒绝访问(未授权卡)
Set Mode - Add/Del设置模式,选择操作
Add Card - Swipe...添加卡模式,等待刷卡
Del Card - Swipe...删除卡模式,等待刷卡
Clear All? - ADD=Y DEL=N清空确认界面

语音文件准备

将以下音频文件复制到 DFPlayer 的 TF 卡 /mp3 文件夹:

文件名提示内容
0001.mp3开机成功提示
0002.mp3进入运行模式
0003.mp3请刷卡
0004.mp3进入设置模式
0005.mp3添加卡片模式
0006.mp3删除卡片模式
0007.mp3开门成功
0008.mp3拒绝访问
0009.mp3添加成功
0010.mp3卡片已存在
0011.mp3存储已满
0012.mp3删除成功
0013.mp3卡片不存在
0014.mp3确认清空所有卡
0015.mp3清空成功

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
SmartLock.zip
35
2
RFID智能门禁系统.md
29
3
ProPrj_IFRD门禁_2026-01-04.epro
23
4
RFID智能门锁演示视频.mp4
8
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航