当前位置: 首页 > 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.dtcms.com/a/326077.html

相关文章:

  • “鱼书”深度学习进阶笔记(3)第四章
  • Spring Boot文件下载功能实现详解
  • Spring Boot 2.6.0+ 循环依赖问题及解决方案
  • C#高级语法_泛型
  • ClickHouse列式数据库的使用场景与基本优化手段
  • Jmeter使用第二节-接口测试(Mac版)
  • ​费马小定理​
  • jmeter 设置随机数
  • 爬虫与数据分析结合:中国大学排名案例学习报告
  • 【FAQ】Win11创建资源不足绕开微软账号登录
  • 在macOS上扫描192.168.1.0/24子网的所有IP地址
  • 深度学习和神经网络最基础的mlp,从最基础的开始讲
  • Springboot-vue 地图展现
  • 深度学习——01 深度学习简介
  • 《 AudioClassification-Pytorch:GitHub项目网页解读》
  • [4.2-2] NCCL新版本的register如何实现的?
  • 剧本杀小程序系统开发:推动行业数字化转型新动力
  • 数据上云有什么好处?企业数据如何上云?
  • vue3-pinia
  • mysql慢查询sql
  • 分裂的王国——进程间通信
  • GeoScene 空间大数据产品使用入门(1)应用场景与基本流程
  • 【接口自动化】-7- 热加载和日志封装
  • .NET Core MVC中CSHTML
  • 【测试】BDD与TDD在软件测试中的对比?
  • AI蛋白质设计学习主线
  • 【智能的起源】人类如何模仿,简单的“刺激-反应”机制 智能的核心不是记忆,而是发现规律并能迁移到新场景。 最原始的智能:没有思考,只有简单条件反射
  • 首涂模板第45套主题2.0修正版苹果CMS模板奇艺主题二开源码
  • 解决 VS Code 右键菜单丢失问题
  • calamine读取xlsx文件的方法比较