文学起点网
当前位置: 首页 文学百科

电子密码锁推荐(数字门锁还要买)

时间:2023-06-10 作者: 小编 阅读量: 2 栏目名: 文学百科

本文的目的是了解数字门锁背后的基本工作原理。在这个项目中,我们使用8051微控制器、键盘和12伏直流继电器设计了数字门锁。16×2LCD模块到8051–我们使用16×2lcd模块来显示项目的状态消息。我们已经以8位模式连接了这个LCD模块。启动过程完成后,系统将要求“输入5位数字”。此信息出现在LCD屏幕上后,用户必须连续输入5位数字。一旦输入5位数字,系统将开始检查密码。LCD屏幕上将显示两条消息——“AccessGranted”和“DoorOpens”。

随着世界变得越来越依赖数字化,现在甚至可以将门设计成安全可靠的。锁和钥匙的数字版本具有许多有前途的功能。数字门锁用密码安全放置。但是,这也可能会吸引不道德的黑客,因此,还需要额外的安全层。

在这篇基于电子项目的文章中,我们创建了一个使用基本控制器 8051 微控制器控制的数字门锁。本文的目的是了解数字门锁背后的基本工作原理。

什么是数字门锁?

数字门锁一般是一种基于密码的电子密码锁。在这个项目中,我们使用 8051 微控制器、键盘和 12 伏直流继电器设计了数字门锁。在本文中,我们设计了一个使用 8051 的简单数字门锁——它可以用作安全检查系统,以限制只有某些具有密码的个人才能进入某个区域/房间。因此,我们的数字门锁项目可以使用非常广泛的名称来调用,例如使用 8051 的数字密码锁或使用 8051 微控制器的数字安全密码锁或使用 8051 的密码安全系统或使用的电子密码锁或数字密码锁8051. 人们称这种“安全系统”有不同的名称,尽管它们的意思都是建立一个基本的基于密码的安全系统,使用 8051 或 AVR 或 PIC 或 Arduino(选择的控制器)等微控制器,具有自动门锁/开门设施、声音警报、基于 GSM 的短信警报等额外功能。

数字门锁 - 项目摘要

我们的数字密码锁项目 - 是一个简单的电子数字锁系统或使用 8051 的电子密码锁 -在程序中存储了一个预设的5 位密码。系统采集5位用户输入,将用户输入与程序内部预设密码进行比较,如果用户输入和存储的密码匹配,则允许进入(通过继电器打开门几秒钟然后关闭)它在规定的时间后自动)。如果用户输入和存储的密码不匹配,访问将被拒绝(通过不打开关闭的门 - 即通过将继电器保持在关闭位置)

注意:-我们有一个精彩的 8051 项目集合,这些项目是我们之前设计和发布的。看看如果您有兴趣自己构建基于 8051 的应用程序和系统!学习和构建新的东西很有趣。

现在让我们开始构建基于密码的数字门锁。下面给出数字密码锁的电路图。如图所示组装电路。

基于密码的数字门锁/电子密码锁 - 电路图

使用的组件

8051 – AT89S51 – 1

16×2 LCD 模块 – 1

4X4 键盘 – 1

10K 电阻网络 – 1

12V 继电器 – 1

晶体管 – BC548 – 1

二极管 – 1N4007 – 1

按钮开关 – 1

水晶 – 11.059Mhz – 1

电容器

33pF -2

0.1uF -1

10uF -1

1

电阻器

10K 欧姆 – 1

100 欧姆 -1

8.2K 欧姆 – 1

330 欧姆 -1

4.7K 欧姆 – 1

连接解释

如电路图所示进行数字密码锁项目的连接。我们已经解释了下面的连接。

8051 的键盘——在这个特殊的电子密码锁项目中,我们将一个 4×4 键盘连接到 8051 微控制器的端口 3。行引脚从 P3.0 连接到 P3.3,而列引脚从 P3.4 连接到 P3.7。阅读我们关于将键盘连接到 8051 的教程——了解如何将键盘连接到 8051 以及如何识别和显示按键。

16×2 LCD 模块到 8051 – 我们使用 16×2 lcd 模块来显示项目的状态消息。我们已经以 8 位模式连接了这个 LCD 模块(使用 8 条数据线)。8 条数据线连接到 8051 的端口 0。在端口 0 使用 10K 电阻网络(有 8 个引脚)连接外部上拉电阻,以连接 LCD 的 8 条数据线。LCD 控制引脚 RS、R/W 和 E 分别连接到端口 2 引脚 P2.7、P2.6 和 P2.5。阅读我们关于将 LCD 连接到 8051 的教程——了解如何将 LCD 模块正确连接到 8051,以及如何在 LCD 模块上完美显示文本消息。

按钮开关——用于设置 8051 的复位电路,Crystal用于为 8051 提供必要的时钟。

继电器- 一个 12V SPDT 继电器用于数字门锁项目并连接到 P2.0。晶体管 (BC548) – 用于以必要的电流驱动继电器。

数字门锁电路的工作

数字门锁项目的目标是允许正确输入 5 位密码的人访问,并且不允许输入错误密码的人访问。我们使用4×4 键盘向微控制器输入数字,并使用12V 继电器来控制门的电子电磁锁(电路图中未显示)。密码存储在 8051 程序(程序存储器)中。在下面给出的示例程序中,我们使用密码12345并以标签 - PASSW 存储在程序内存位置。

PASSW: DB 49D,50D,51D,52D,53D,0 // Decimal equivalent of 1,2,3,4,5 is stored in address label PASSW

当我们打开电源时,系统将打开并在 LCD 屏幕上显示一条消息——“基于密码的安全系统”。启动过程完成后,系统将要求“输入 5 位数字”。此信息出现在 LCD 屏幕上后,用户必须连续输入 5 位数字。一旦输入 5 位数字,系统将开始检查密码(通过将输入的 5 位数字与存储的密码进行比较)。在检查密码子程序(比较子程序 - 带有标签 - CHECK_PASSWORD)开始之前,LCD 模块上会显示一条状态信息“Checking Password”。密码检查子程序将比较每个输入的数字 - 一个一个,如果所有 5 个数字都输入正确(i. e 每个输入的数字按顺序与存储的密码匹配)系统将通过打开继电器开始允许用户访问的过程(通过程序中的SETB P2.0命令实现)。LCD 屏幕上将显示两条消息——“Access Granted”和“Door Opens”。几秒钟后,继电器将通过命令 CLR P2.0 关闭(即在 MAIN 程序命令的下一次迭代中) 如果输入的密码错误,系统将不会打开继电器并显示“密码错误”消息” – LCD 屏幕上将显示“拒绝访问”。

程序/代码 - 基于密码的安全系统

RS EQU P2.7

RW EQU P2.6

E EQU P2.5

SEL EQU 41H

ORG 000H

CLR P2.0

MOV TMOD,#00100001B

MOV TH1,#253D

MOV SCON,#50H

SETB TR1

ACALL LCD_INIT

MOV DPTR,#TEXT1

ACALL LCD_OUT

ACALL LINE2

MOV DPTR,#TEXT2

ACALL LCD_OUT

MAIN:ACALL LCD_INIT

MOV DPTR,#TEXT1

ACALL LCD_OUT

ACALL LINE2

MOV DPTR,#TEXT2

CLR P2.0

ACALL LCD_OUT

ACALL DELAY1

ACALL DELAY1

ACALL READ_KEYPRESS

ACALL LINE1

MOV DPTR,#CHKMSG

ACALL LCD_OUT

ACALL DELAY1

ACALL CHECK_PASSWORD

SJMP MAIN

LCD_INIT: MOV DPTR,#INIT_COMMANDS

SETB SEL

ACALL LCD_OUT

CLR SEL

RET

LCD_OUT: CLR A

MOVC A,@A DPTR

JZ EXIT

INC DPTR

JB SEL,CMD

ACALL DATA_WRITE

SJMP LCD_OUT

CMD: ACALL CMD_WRITE

SJMP LCD_OUT

EXIT: RET

LINE2:MOV A,#0C0H

ACALL CMD_WRITE

RET

LINE1: MOV A,#80H

ACALL CMD_WRITE

RET

CLRSCR: MOV A,#01H

ACALL CMD_WRITE

RET

CMD_WRITE: MOV P0,A

CLR RS

CLR RW

SETB E

CLR E

ACALL DELAY

RET

DATA_WRITE:MOV P0,A

SETB RS

CLR RW

SETB E

CLR E

ACALL DELAY

RET

DELAY: CLR E

CLR RS

SETB RW

MOV P0,#0FFh

SETB E

MOV A,P0

JB ACC.7,DELAY

CLR E

CLR RW

RET

DELAY1:MOV R3,#46D

BACK: MOV TH0,#00000000B

MOV TL0,#00000000B

SETB TR0

HERE1: JNB TF0,HERE1

CLR TR0

CLR TF0

DJNZ R3,BACK

RET

DELAY2: MOV R3,#250D

BACK2: MOV TH0,#0FCH

MOV TL0,#018H

SETB TR0

HERE2: JNB TF0,HERE2

CLR TR0

CLR TF0

DJNZ R3,BACK2

RET

READ_KEYPRESS: ACALL CLRSCR

ACALL LINE1

MOV DPTR,#IPMSG

ACALL LCD_OUT

ACALL LINE2

MOV R0,#5D

MOV R1,#160D

ROTATE:ACALL KEY_SCAN

MOV @R1,A

ACALL DATA_WRITE

ACALL DELAY2

INC R1

DJNZ R0,ROTATE

RET

CHECK_PASSWORD:MOV R0,#5D

MOV R1,#160D

MOV DPTR,#PASSW

RPT:CLR A

MOVC A,@A DPTR

XRL A,@R1

JNZ FAIL

INC R1

INC DPTR

DJNZ R0,RPT

ACALL CLRSCR

ACALL LINE1

MOV DPTR,#TEXT_S1

ACALL LCD_OUT

ACALL LINE2

ACALL DELAY1

SETB P2.0

MOV DPTR,#TEXT_S2

ACALL LCD_OUT

ACALL DELAY1

SJMP GOBACK

FAIL:ACALL CLRSCR

ACALL LINE1

MOV DPTR,#TEXT_F1

ACALL LCD_OUT

ACALL DELAY1

ACALL LINE2

MOV DPTR,#TEXT_F2

ACALL LCD_OUT

ACALL DELAY1

GOBACK:RET

KEY_SCAN:MOV P3,#11111111B

CLR P3.0

JB P3.4, NEXT1

MOV A,#49D

RET

NEXT1:JB P3.5,NEXT2

MOV A,#50D

RET

NEXT2: JB P3.6,NEXT3

MOV A,#51D

RET

NEXT3: JB P3.7,NEXT4

MOV A,#65D

RET

NEXT4:SETB P3.0

CLR P3.1

JB P3.4, NEXT5

MOV A,#52D

RET

NEXT5:JB P3.5,NEXT6

MOV A,#53D

RET

NEXT6: JB P3.6,NEXT7

MOV A,#54D

RET

NEXT7: JB P3.7,NEXT8

MOV A,#66D

RET

NEXT8:SETB P3.1

CLR P3.2

JB P3.4, NEXT9

MOV A,#55D

RET

NEXT9:JB P3.5,NEXT10

MOV A,#56D

RET

NEXT10: JB P3.6,NEXT11

MOV A,#57D

RET

NEXT11: JB P3.7,NEXT12

MOV A,#67D

RET

NEXT12:SETB P3.2

CLR P3.3

JB P3.4, NEXT13

MOV A,#42D

RET

NEXT13:JB P3.5,NEXT14

MOV A,#48D

RET

NEXT14: JB P3.6,NEXT15

MOV A,#35D

RET

NEXT15: JB P3.7,NEXT16

MOV A,#68D

RET

NEXT16:LJMP KEY_SCAN

INIT_COMMANDS: DB 0CH,01H,06H,80H,3CH,0

TEXT1: DB "PASSWORD BASED",0

TEXT2: DB "SECURITY SYSTEM",0

IPMSG: DB "INPUT 5 DIGITS",0

CHKMSG: DB "CHECKING PASSWORD",0

TEXT_S1: DB "ACCESS - GRANTED",0

TEXT_S2: DB "DOOR OPENED",0

TEXT_F1: DB "WRONG PASSWORD",0

TEXT_F2: DB "ACCESS DENIED",0

PASSW: DB 49D,50D,51D,52D,53D,0

END

该程序是用汇编语言编写的。下面解释程序的重要方面和子程序。

KEY_SCAN – 是识别按键的子程序。识别按键采用列扫描的方法。被按下的键被识别并被分配一个被按下的键的十进制等效值(ASCII 值)。您可以阅读8051 键盘上的教程- 接口以了解有关编程的更多信息。

READ_KEYPRESS – 是收集用户输入的子程序。使用寄存器 R0 设置一个计数器来计数 5 次(这会将用户输入集合限制为前 5 次按键)。寄存器 R1 被分配地址单元 160D。收集的用户输入保存在从 160D 开始的地址位置。该位置使用 INC R1 – 命令 8051 连续递增。因此,第一个用户输入存储在 160D 中,第二个用户输入存储在 161D 中,第三个用户输入存储在 162D 中,第四个存储在 163D 中,第五个用户输入存储在 164D 中。这些地址位置是通过间接寻址方法使用寄存器 R1 访问的。

注意:-程序中编写了两个延迟例程。DELAY1 – 用作在 LCD 模块上正确输出信息的延迟。向 LCD 模块发送消息/数据后,调用 DELAY1,以便消息在 LCD 屏幕上停留规定的延迟时间。DELAY2(延迟 2.5 秒)用于为键盘提供必要的去抖效果。(按钮开关或任何类型的机械开关具有弹跳效应。必须通过电容器或软件内部的一些调整来消除这种效应 - 例如 - 扫描按键后的 1 或 2 秒延迟)

CHECK_PASSWORD – 是将用户输入的密码(5 位)与程序中实际存储的密码进行比较的子程序。通过在 DPTR 的帮助下从存储的密码中选择每个数字并将其加载到累加器(使用 MOVC A,@A DPTR),逐位进行比较。然后将加载到累加器的每个数字与作为用户输入存储的相应数字(在地址位置 16D 到 164D 中)进行比较,方法是将它们一一加载到寄存器 R1。数字通过 X-OR 与命令 XRL A,@R1 进行比较。根据比较的结果,该子程序写入了允许访问(并打开继电器)或不允许访问并在 LCD 屏幕上显示“访问被拒绝”消息的命令。

结论

以上就是使用 8051 的基于密码的安全系统的全部内容。我们希望您已经了解电路,它正在工作,并且程序非常好。如果您有任何疑问,请在评论部分提出。如果您想了解更多有趣和类似的电子密码锁项目,请查看以下安全系统/锁项目。

使用 8051 的基于 RFID 的安全系统 – 是一种在概念上与数字门锁或电子密码锁非常相似的安全系统。该项目的主要区别在于唯一的 RFID 标签用于识别授权人员(而不是键盘和密码)。一个 RFID 阅读器连接到 8051 以读取 RFID 标签。

数字密码锁 - 高级 - 使用 Arduino - 是使用键盘和 Arduino 构建的数字密码锁项目的一个非常有趣和高级的版本。这个项目最有趣的部分是“用户定义密码”选项,用户可以在安装系统时自己设置密码。安装时的这个 SET 密码可以稍后通过按“编辑密码”键来更改/编辑。

    推荐阅读
  • 游戏网名情侣(好听的情侣名)

    好听的情侣名小熊维尼ლ小羊肖恩呆萌学妹ლ高冷学长包子姐姐ლ薯条哥哥可爱的傻ლ幼稚的笨可爱的猪猪女孩ლ帅气的猪猪男孩小哥哥ლ小妹妹以抱相拥ლ以笑相迎躲进你怀里ლ住进我梦里好酸ლ好甜小貓腻吖ლ小鲸渔吖西瓜味少年ლ柠檬。

  • 兼容性视图设置在哪里呢(兼容性视图设置是什么)

    兼容性视图设置在哪里可以找到,下面就一起来看一看吧。首先打开IE浏览器,点击右上角的“设置”按钮。点击“兼容性视图设置”菜单项,这时就会打开兼容性视图设置。可以点击“添加”按钮,把当前的网址添加到列表中。

  • 迷你世界远古黑龙vs巨人(当迷你世界的远古黑龙对战我的世界末影龙)

    坐椅种类很多种,北极熊、狗、鸵鸟等生物,只是这些宠物对于小雯来说,并没有太大的吸引力。远古黑龙共有三种形态,第一形态的远古黑龙相对比较弱,攻击方式则是喷火,能轻易躲避。在这里小雯就不做多实验,毕竟这两款游戏各有千秋,无论谁胜谁败,都是小雯喜欢的游戏。好了小伙伴们,当远古黑龙与末影龙对战时,你认为谁会赢呢?

  • 2022广州住酒店需要核酸检测吗 广州入住酒店需要核酸检测吗?

    2022年10月27日下午,广州市新闻办举行疫情防控新闻发布会。广州市本轮疫情多点、多源、多链,“外防输入、内防反弹”压力大,防控风险点多,涉及工厂、学校、村居、专业市场等人员密集场所,与之前疫情相比,传播关系复杂,防控难度大。大家要提高防范意识,做好各项防控措施,尽快切断传播链条,降低传播风险。

  • 樱桃小丸子二屏壁纸(壁纸樱桃小丸子)

    可爱的樱桃小丸子壁纸哦第一幅,今天小编就来说说关于樱桃小丸子二屏壁纸?下面更多详细答案一起来看看吧!第一幅第二幅第三幅第四幅第五幅第六幅第七幅第八幅第九幅

  • 两个七寸大还是九寸大(两个七寸比九寸大吗)

    一寸约等于3.3厘米,七寸就约等于23.1,两个七寸等于46.2,九寸约等于29.7,所以两个七寸要比九寸大。

  • 泰安市东平县港澳台居民居住证去哪办?

    泰安市东平县港澳台居民居住证办理地址时间电话窗口东平县东平街道汇河街789号周一至周五上午:8:00-12:00下午:5月-9月:14:30-18:30;10月-4月:13:30-17:300538-2075115公安局户籍大厅

  • 新鲜蚕豆怎么做好吃(好吃新鲜蚕豆做法)

    新鲜蚕豆怎么做好吃水煮蚕豆:用料:新鲜蚕豆一千克,盐二十克,花椒大料少许,如果有其他香料也可以添加一些。把新鲜蚕豆用清水冼一下,然后控干蚕豆表面上的水分,放入盆子中撒上盐用手调匀,腌制十分钟左右的时间。把锅中加入清水,把处理好的蚕豆放进去,再加入自己喜欢的香料,然后开火煮制,在烧开后煮制十分钟蚕豆就能熟透,这时取出装盘食用就可以了。

  • 孙二娘和张青是怎么认识的(孙二娘嫁给了谁)

    孙二娘丈夫是菜园子张青。在小说第十七回“花和尚单打二龙山,青面兽双夺宝珠寺”中首次由鲁智深提及。张青一头扎进客栈,在与孙二娘父女的冲突中被孙二娘制服。为避免地形图落入朝廷之手,梁山派“石犊子”紧急下山,于十字坡客栈劫杀朝廷密探,夺回梁山地形图。吕怀成意欲假公济私,以孙老东家与私盐贩子有染为名,将十字坡包子客栈据为己有。张青的如意算盘遭到孙二娘的鄙夷,尴尬之余,张青拂袖而去。