当前位置: 首页 > news >正文

基于51单片机指纹识别管理门禁密码锁系统设计

1. 功能介绍

本系统是一套基于 STC89C52 单片机 的指纹识别管理门禁密码锁系统,结合 LCD1602 液晶显示器指纹识别模块按键输入模块继电器驱动电路电源系统,实现了双重认证(指纹与密码)的门禁控制功能。它既支持对指纹进行管理(添加、搜索、删除),又具备密码输入与修改功能,并提供掉电数据保存能力,适用于家庭、办公室以及小型安防系统。

主要功能如下:

  1. 双模式工作
    系统上电后可选择进入“指纹管理模式”或“控制系统模式”,并可在两种模式间自由切换。

  2. 指纹管理模式

    • 搜索指纹:验证录入指纹是否存在,并显示对应 ID 号。
    • 添加指纹:录入新指纹并为其分配 ID 号。
    • 删除指纹:删除指定 ID 号的指纹信息。
    • 掉电保存:指纹数据存储在模块内,断电不丢失。
  3. 控制系统模式

    • 指纹开锁:匹配成功则继电器闭合 3 秒后断开。
    • 密码开锁:输入 6 位数字密码,匹配则开锁 3 秒。
    • 密码修改:输入管理员密码(默认 123123)进入密码设置模式,输入新密码后保存至 Flash,掉电不丢失。
  4. 其它功能

    • 通过专用按键可直接开门,模拟从室内开门的情形。
    • LCD1602 实时显示系统状态、指纹验证结果、密码输入与提示信息。
    • 默认开锁密码为 112233,可由用户修改;管理员密码不可修改。

2. 系统电路设计

本系统由多个功能模块组成,每个模块在硬件上独立完成其任务,在软件中通过单片机协同工作。

2.1 STC89C52 单片机最小系统

STC89C52 单片机作为系统核心,负责指纹数据处理、密码管理、继电器控制以及液晶显示等逻辑控制。

  • 晶振电路:采用 12MHz 晶振搭配 30pF 电容,提供稳定的时钟信号。
  • 复位电路:上电自动复位与按键手动复位结合,确保系统可快速初始化或人工重启。
  • 电源滤波:在 Vcc 与 GND 间增加 0.1μF 陶瓷电容及 10μF 电解电容,抑制电源纹波和干扰。

2.2 LCD1602 液晶显示模块

LCD1602 负责显示系统工作状态、模式菜单、指纹匹配结果以及密码输入提示。

  • 连接方式:采用 4 位数据模式连接,节省 I/O 口资源。

  • 显示内容示例

    • "Search OK ID3":指纹验证成功,ID 为 3。
    • "******":输入密码过程中的掩码显示。
    • "PW OK!":密码正确,开锁成功。
    • "PW Err!":密码错误。
    • "SET OK!":密码设置成功。

2.3 指纹识别模块电路

指纹模块用于指纹录入、存储与比对,具备内置 Flash 存储,掉电不丢失。

  • 通讯方式:采用 UART 串口通讯,与单片机 TXD、RXD 相连。
  • 供电要求:5V 直流电源,电源端增加去耦电容以提升稳定性。
  • 功能说明:支持搜索指纹、添加指纹、删除指纹,并可返回匹配 ID。

2.4 按键输入电路

按键用于模式选择、菜单操作、密码输入及直接开门。

  • 按键类型:独立按键结构,具备上拉电阻与防抖设计。

  • 功能分配

    • 模式键:切换指纹管理与控制模式。
    • 数字键(1-3):输入密码数字。
    • 确认/返回键:完成输入或返回上一级菜单。
    • 开门键:直接触发继电器开门。

2.5 继电器驱动电路

继电器控制门锁电路,需单片机通过驱动电路控制。

  • 驱动方式:采用 NPN 三极管(如 9013)或 N 沟道 MOSFET 驱动,继电器线圈两端并联续流二极管防止反向电动势。
  • 动作逻辑:单片机输出高电平驱动继电器闭合,保持 3 秒后断开。

2.6 电源电路

系统统一使用 5V 电源,单片机、LCD1602、指纹模块均工作于 5V,必要时可使用 AMS1117 等稳压芯片提供稳定电源。


3. 程序设计

软件部分采用模块化结构,包括主控流程、指纹管理、密码管理、继电器控制、LCD 显示及按键扫描等。

3.1 主程序流程

主程序负责初始化各模块,并根据当前模式调用不同的功能函数。

#include <reg52.h>
#include "lcd1602.h"
#include "finger.h"
#include "key.h"
#include "relay.h"
#include "eeprom.h"unsigned char mode = 0; // 0:指纹管理  1:控制模式
unsigned char admin_pw[6] = {1,2,3,1,2,3};
unsigned char user_pw[6]  = {1,1,2,2,3,3};void main() {Init_LCD1602();Init_FingerModule();Init_Key();Init_Relay();Load_UserPassword();while(1) {if(mode == 0) {Finger_Manage();} else {Control_Mode();}}
}

3.2 指纹管理模块

负责指纹添加、搜索、删除等操作。

void Finger_Manage() {unsigned char choice = Menu_Select();switch(choice) {case 1: Finger_Search(); break;case 2: Finger_Add(); break;case 3: Finger_Delete(); break;default: break;}
}

3.3 控制系统模块

根据指纹或密码进行开锁控制。

void Control_Mode() {if(Finger_Check() == 1) {Relay_On();Delay3s();Relay_Off();} else if(Password_Input()) {Relay_On();Delay3s();Relay_Off();}
}

3.4 密码输入与修改模块

通过按键输入 6 位数字密码,并与存储密码进行比对;如果输入管理员密码,则进入密码设置状态。

bit Password_Input() {unsigned char pw[6];LCD_ShowString(0,0,"Enter PW:");Get_Password(pw);if(Check_Password(pw, user_pw)) {LCD_ShowString(0,1,"PW OK!");return 1;} else if(Check_Password(pw, admin_pw)) {LCD_ShowString(0,1,"intSet!");Get_Password(user_pw);Save_UserPassword();LCD_ShowString(0,1,"SET OK!");return 0;} else {LCD_ShowString(0,1,"PW Err!");return 0;}
}

3.5 继电器驱动模块

void Relay_On() {RELAY_PIN = 1;LCD_ShowString(0,1,"Door Open");
}void Relay_Off() {RELAY_PIN = 0;LCD_ShowString(0,1,"Door Close");
}

3.6 EEPROM 数据存储模块

通过单片机内部 EEPROM 或外部 24C02 保存用户密码,保证掉电不丢失。

void Save_UserPassword() {for(unsigned char i=0;i<6;i++) {EEPROM_Write(i, user_pw[i]);}
}void Load_UserPassword() {for(unsigned char i=0;i<6;i++) {user_pw[i] = EEPROM_Read(i);}
}

4. 总结

本系统通过 STC89C52 单片机实现了指纹识别与密码开锁的双重安全控制,支持灵活的指纹管理、密码修改和掉电数据保存,配合 LCD1602 显示实现直观的人机交互界面。系统硬件结构简洁、功能模块清晰、可扩展性强,不仅适用于门禁管理,还可用于文件柜、保险箱等安全防护场景。

http://www.lryc.cn/news/618104.html

相关文章:

  • 集成电路学习:什么是URDF Parser统一机器人描述格式解析器
  • 19.Linux DHCP服务
  • 数据结构:串、数组与广义表
  • 【Leetcode】随笔
  • 每日算法刷题Day61:8.11:leetcode 堆11道题,用时2h30min
  • 普通大学本科生如何入门强化学习?
  • 【ros-humble】4.C++写法巡场海龟(服务通讯)
  • Linux运维学习第十四周
  • 【3D Gen 入坑(1)】Hunyuan3D-Paint 2.1 安装 `custom_rasterizer` 报错完整排查
  • PyTorch基础(使用Numpy实现机器学习)
  • Vue 中的 Class 与 Style 绑定详解2
  • ubuntu24.04设置登陆背景图片
  • Pytest项目_day12(yield、fixture的优先顺序)
  • Web安全自动化测试实战指南:Python与Selenium在验证码处理中的应用
  • 【openEuler构建测试环境或部署嵌入式系统】openEuler生态扩容新路径:内网穿透工具cpolar助力多场景落地
  • Linux-FTP服务器搭建
  • 多路转接 select
  • 【数据结构入门】二叉树(1)
  • IoT/实现和分析 NB-IoT+DTLS+PSK 接入华为云物联网平台IoTDA过程,总结避坑攻略
  • 智能合约执行引擎在Hyperchain中的作用
  • 快速搭建前端playwright工程
  • FinQ4Cn: 基于 MCP 协议的中国 A 股量化分析
  • Java -- 集合 --Collection接口和常用的方法
  • Python网络爬虫(一) - 爬取静态网页
  • 爬虫与数据分析结合:中国大学排名案例学习报告
  • TDengine IDMP 基本功能(2.数据建模)
  • 爬虫与数据分析结和
  • 爬虫与数据分析入门:从中国大学排名爬取到数据可视化全流程
  • MySQL详细安装
  • 《算法导论》第 18 章 - B 树