15-51_电子密码锁_仿真
基于51单片机的电子密码锁
矩阵键盘 · 密码验证 · 蜂鸣器报警 · Proteus仿真
一、项目简介
本项目设计了一个基于51单片机的电子密码锁。用户通过4×4矩阵键盘输入6位密码,系统验证密码正确则控制继电器开锁,密码错误3次则蜂鸣器报警锁定。支持密码修改功能,需验证旧密码后才能设置新密码。LCD1602显示操作提示和输入状态。
项目属性 | 说明 |
主控平台 | AT89C52(Proteus仿真) |
开发语言 | C语言 |
开发环境 | Keil C51 / Keil MDK |
仿真工具 | Proteus(部分项目) |
图1-1 系统整体效果图
二、系统总体架构
本系统以单片机为核心,外围连接传感器、显示模块、按键模块和执行机构。系统总体架构如下:单片机通过相应接口与各外设通信,采集传感器数据后进行处理,结果输出至显示模块,同时根据逻辑控制执行机构动作。
图2-1 系统总体架构框图
模块 | 功能描述 |
主控模块 | 系统核心,负责数据采集、逻辑处理和输出控制 |
传感器模块 | 采集环境参数(温度/光照/按键输入等) |
显示模块 | LCD1602/OLED实时显示数据和状态 |
按键模块 | 用户输入,参数调整和模式切换 |
执行机构 | 蜂鸣器/LED/电机等,执行报警和驱动动作 |
三、硬件设计
3.1 核心器件选型
器件 | 型号 | 说明 |
主控芯片 | AT89C52 | Proteus仿真 |
矩阵键盘 | 4×4 | 0~9数字+功能键 |
显示屏 | LCD1602 | 操作提示 |
继电器 | 5V继电器 | 控制电磁锁 |
蜂鸣器 | 有源 | 报警 |
图3-1 核心器件实物图
3.2 引脚分配
单片机各引脚分配如下表所示,在设计时需注意引脚复用和电平匹配问题:
引脚 | 连接 | 功能描述 |
P1.0~P1.7 | 矩阵键盘 | 4行+4列 |
P2.0 | RELAY | 继电器控制 |
P2.1 | BEEP | 蜂鸣器 |
P2.5~P2.7 | LCD控制 | LCD1602 |
P0 | LCD数据 | LCD1602 |
图3-2 引脚分配电路原理图
四、软件设计
4.1 软件流程
主循环扫描矩阵键盘。输入6位数字后按确认键:密码正确→继电器吸合开锁+LCD显示"OPEN";密码错误→错误计数+1,3次锁定+蜂鸣器报警。按设置键→验证旧密码→输入新密码→保存。
图4-1 主程序流程图
4.2 模块划分
源文件 | 模块名称 | 功能描述 |
matrixkey.c | 矩阵键盘 | 行列扫描、消抖 |
lcd1602.c | LCD驱动 | 显示 |
eeprom.c | EEPROM | 密码存储(可选) |
main.c | 主程序 | 密码验证、开锁、报警 |
4.3 关键代码
以下代码均从项目工程源文件中直接提取,完整展示了各模块的核心实现:
📄 main.c




📄 LCD1602.c




📄 MatrixKey.c



📄 Delay.c


五、项目文件结构
项目工程的目录结构如下,展示了源代码文件的组织方式:

六、功能演示
系统功能演示步骤如下:
1. LCD显示"Input Password:"
2. 输入正确密码,继电器吸合开锁
3. 输入错误密码3次,蜂鸣器报警锁定
4. 按设置键修改密码
图6-1 功能演示照片/截图
图6-2 运行状态特写
七、总结
本项目实现了电子密码锁的基本功能,矩阵键盘扫描和密码验证是核心逻辑。错误锁定机制增强了安全性。如需保存密码断电不丢失,可扩展EEPROM存储。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
— END —

浙公网安备 33010602011771号