【TB作品】密码锁,数码管,ATMEGA16单片机,Proteus仿真

4个数码管+1个独立的数码管+键盘

1 键盘输入一个密码后数码管就显示一个密码,再输一个数码管就第二个显示,依次往后推。

2 *号键可以删除之前的一个输入的密码,#号键可以清除所有输入。

3 输入4个后,单片机自动比对密码(无需确认键),密码正确 小灯点亮。

4 密码错误三次后,蜂鸣器响起来。三次后不能进行任何输入,只能重新打开仿真。

5 输入正确一次,即可清空之前有的错误次数。

6 单独的那个数码管显示的就是剩余可犯错次数,犯错3次就不能再次输入了。

7 按键盘的A按键可以修改密码,无需输入原密码,直接按4个密码进去就完成修改。(从简的设计)

实验报告

实验名称

数码管密码锁系统设计与实现

实验目的

  1. 掌握基于ATMEGA16单片机的数码管显示和矩阵键盘输入技术。
  2. 设计并实现一个具有密码输入、验证和错误提示功能的数码管密码锁系统。
  3. 学习蜂鸣器报警和LED指示灯的控制。

实验设备

  1. ATMEGA16单片机
  2. 矩阵键盘
  3. 数码管(4个共阳极数码管+1个独立的数码管)
  4. LED灯
  5. 蜂鸣器
  6. Proteus仿真软件

系统功能

  1. 键盘输入密码,数码管依次显示输入的密码。
  2. "*"键用于删除上一个输入的密码,"#"键用于清除所有输入。
  3. 输入4位密码后自动比对,如果密码正确,点亮指示灯;密码错误三次后,蜂鸣器报警且锁定系统。
  4. 独立数码管显示剩余错误次数,三次错误后系统锁定,无法继续输入。
  5. 按键"A"用于修改密码,无需输入原密码,直接输入新密码完成修改。
  6. 输入正确一次,即可清空之前的错误次数。

系统原理

硬件原理

  1. 矩阵键盘: 采用4行4列的矩阵键盘,通过扫描方式获取按键值。
  2. 数码管显示: 采用共阳极数码管,使用段选信号控制显示内容,位选信号控制具体显示哪个数码管。
  3. LED指示灯: 通过单片机IO口控制,表示密码输入正确。
  4. 蜂鸣器: 通过单片机IO口控制,表示密码错误三次后的报警。
  5. 独立数码管: 显示剩余错误次数。

软件原理

  1. 键盘扫描: 通过行列扫描法检测按键输入,根据按键值查找键盘映射表获取实际按键。
  2. 密码存储与比对: 通过数组存储系统密码和用户输入的密码,输入4位后进行比对。
  3. 数码管显示: 根据输入的密码和剩余错误次数更新数码管显示内容。
  4. 错误处理: 记录密码错误次数,三次错误后锁定系统,蜂鸣器报警。
  5. 密码修改: 通过按键"A"进入密码修改模式,直接输入4位新密码更新系统密码。

电路设计

  1. 矩阵键盘接口: 矩阵键盘的行线和列线分别连接到单片机的IO口,通过设置行线和检测列线电平变化来识别按键。
  2. 数码管接口: 数码管的段选信号连接到单片机的一个端口,位选信号通过NPN三极管驱动,由单片机的另一组端口控制。
  3. LED与蜂鸣器接口: LED和蜂鸣器分别通过限流电阻连接到单片机的IO口,通过控制IO口电平实现开关控制。

程序设计

键盘扫描函数

c 复制代码
int getKeyBoardValue(void)
{
    // 键盘扫描代码,返回按键值
}

显示函数

c 复制代码
void display_pwd(char *pwdptr, unsigned char length)
{
    // 根据输入的密码和剩余错误次数更新数码管显示内容
}

主程序

c 复制代码
int main(void)
{
    // 系统初始化
    // 主循环,处理键盘输入、密码比对、数码管显示等逻辑
}

实验步骤

  1. 连接硬件电路,完成矩阵键盘、数码管、LED、蜂鸣器的连接。
  2. 编写并烧录程序到ATMEGA16单片机。
  3. 使用Proteus仿真,测试系统功能,验证各项功能是否正确实现。

实验结果

  1. 输入密码,数码管正确显示输入的数字。
  2. 密码输入正确,LED指示灯点亮。
  3. 密码错误三次后,蜂鸣器报警,系统锁定。
  4. 按键"A"可以进入密码修改模式,重新设置系统密码。
  5. 独立数码管显示剩余错误次数,错误三次后锁定输入。

总结

本实验通过设计和实现一个基于ATMEGA16单片机的数码管密码锁系统,掌握了矩阵键盘输入、数码管显示、LED和蜂鸣器控制等技术,系统功能完善,达到了预期的实验目标。在实际应用中,该设计可以进一步优化,例如增加密码保护机制,增强系统安全性。

资源

复制代码
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?u=bdf8eeb84961492ba2b62f7bfee641ea&tab=BB08J2
相关推荐
女神下凡17 小时前
芯参谋(38):NAND_MCP_电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
嵌入式学习菌18 小时前
FreeRTOS 中断管理实战:BASEPRI 寄存器实验
单片机·嵌入式硬件
HRTOS18 小时前
HRTOS:一个名字背后的目标——不断逼近硬实时
经验分享·单片机·系统架构·51单片机
UrSpecial21 小时前
GPIO 是什么?
单片机·嵌入式硬件
修船大队长1 天前
配置接受报文每个报文对应一个mailbox配置流程记录
网络·单片机·mcu
搁浅小泽1 天前
二极管选型技术规范
单片机·嵌入式硬件·汽车
搁浅小泽1 天前
电感选型技术规范
单片机·嵌入式硬件·汽车
..Dauntless..1 天前
【stm32】串口——在MCU内部的工作过程
stm32·单片机·嵌入式硬件
lzqrzpt1 天前
临沂LED驱动电源工程选型标准与工艺对比解析
python·单片机·嵌入式硬件·物联网
小黄蚁1 天前
使用LVGL模拟示波器创建正弦函数波形
单片机·学习