电子密码锁设计(附源码和原理图)

题目要求

基本功能

① 可设置并保存四位密码数字,并在数码管中显示1111;
② 先按开锁键,之后开始输入密码,并显示;若三次输入错误,则锁定,需要按解锁键,并输入解锁密码(固定为0)后再次尝试;
③ 密码输入错误和密码输入正确均有相应的提醒信息(如LED亮或蜂鸣器发声等);
④ 可删除输入的数字,删除的是最后输入的数字。

扩展功能

当前输入的数字在最右侧数码管显示,前面输入的数字自动左移一个数字位置

设计如下:

功能描述

在这里插入图片描述

模块设计

1.密码输入控制模块

在这里插入图片描述
其中,inputs为输入数据端口,en为计数器的计数值,其值来自于计数模块(其输入为wrong的次数),当en为0011即密码输入错误三次,阻塞这个inputs和check信号。

2.密码锁控制模块

在这里插入图片描述
在这里插入图片描述
其中:
code—寄存器中存储的密码
set–修改密码,锁打开时,输入密码,set置1,则将输入的密码送入锁存器锁存 。
close–关锁信号–在锁开着时按下close,锁将被锁上。
back–删除键,back置1时,最后输入的数字将被删除,密码显示右移一位,最高位补0。
check–密码校验,来自于checkout的输入,锁关闭时,输入密码后,check置1,验证该密码是否可以开锁
clk—时钟信号
store–存密码,store置1,锁存器里的密码保存同时给4个ctrl7447模块分别一个信号,使得七段数码管显示1111。
wrong–密码输入错误的计数,每次密码校验后,如果错误,让外部计数器74161计数一次
lock—锁是否打开的状态,1代表锁被打开,0代表锁关闭
num—输入的密码

3.存储密码模块

在这里插入图片描述
其中:
输入为密码锁控制模块的输出,用两个8位寄存器74377扩展为一个16位寄存器,当store置1时,存储已经输入的密码。

4.计数模块

在这里插入图片描述
其中:
wrong为输入信号,用来检验密码输入错误的次数,如果输错三次,会给密码输入控制模块一个信号,阻塞用户的输入,只有当输入解锁密码后才能再次输入。

5.输出模块

在这里插入图片描述
通过store信号控制4个ctrl7447模块,从而控制四个七段数码管,即当store置1时,用四个七段数码管7447显示1111,当store置0时,用四个七段数码管7447显示输入的密码。

版权声明:本文为CSDN博主「Faith_xzc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44480968/article/details/106962623

题目要求

基本功能

① 可设置并保存四位密码数字,并在数码管中显示1111;
② 先按开锁键,之后开始输入密码,并显示;若三次输入错误,则锁定,需要按解锁键,并输入解锁密码(固定为0)后再次尝试;
③ 密码输入错误和密码输入正确均有相应的提醒信息(如LED亮或蜂鸣器发声等);
④ 可删除输入的数字,删除的是最后输入的数字。

扩展功能

当前输入的数字在最右侧数码管显示,前面输入的数字自动左移一个数字位置

设计如下:

功能描述

在这里插入图片描述

模块设计

1.密码输入控制模块

在这里插入图片描述
其中,inputs为输入数据端口,en为计数器的计数值,其值来自于计数模块(其输入为wrong的次数),当en为0011即密码输入错误三次,阻塞这个inputs和check信号。

2.密码锁控制模块

在这里插入图片描述
在这里插入图片描述
其中:
code—寄存器中存储的密码
set–修改密码,锁打开时,输入密码,set置1,则将输入的密码送入锁存器锁存 。
close–关锁信号–在锁开着时按下close,锁将被锁上。
back–删除键,back置1时,最后输入的数字将被删除,密码显示右移一位,最高位补0。
check–密码校验,来自于checkout的输入,锁关闭时,输入密码后,check置1,验证该密码是否可以开锁
clk—时钟信号
store–存密码,store置1,锁存器里的密码保存同时给4个ctrl7447模块分别一个信号,使得七段数码管显示1111。
wrong–密码输入错误的计数,每次密码校验后,如果错误,让外部计数器74161计数一次
lock—锁是否打开的状态,1代表锁被打开,0代表锁关闭
num—输入的密码

3.存储密码模块

在这里插入图片描述
其中:
输入为密码锁控制模块的输出,用两个8位寄存器74377扩展为一个16位寄存器,当store置1时,存储已经输入的密码。

4.计数模块

在这里插入图片描述
其中:
wrong为输入信号,用来检验密码输入错误的次数,如果输错三次,会给密码输入控制模块一个信号,阻塞用户的输入,只有当输入解锁密码后才能再次输入。

5.输出模块

在这里插入图片描述
通过store信号控制4个ctrl7447模块,从而控制四个七段数码管,即当store置1时,用四个七段数码管7447显示1111,当store置0时,用四个七段数码管7447显示输入的密码。

版权声明:本文为CSDN博主「Faith_xzc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44480968/article/details/106962623

生成海报
点赞 0

Faith_xzc

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

电子密码锁设计(附源码和原理图)

题目要求 基本功能 ① 可设置并保存四位密码数字,并在数码管中显示1111; ② 先按开锁键,之后开始输入密码,并显示;若三次输入错误,则锁定&#xff0c

串口不定长接收

一、保留接收区和开启接收的语句    uint8_t buffer[5];HAL_UART_Transmit_IT(&huart1,buffer,3); 二、写入开启空闲中断的语句    __HAL_UART_ENABLE_IT(&huart