网易首页 > 网易号 > 正文 申请入驻

数字门锁还要买?爷直接自己做,使用基于8051 的电子密码锁

0
分享至

数字门锁 - 使用 8051 的基于密码的电子密码锁

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

在这篇基于电子项目的文章中,我们创建了一个使用基本控制器 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 密码可以稍后通过按“编辑密码”键来更改/编辑。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
刚刚乌克兰疯了!战争全面升级!这次美国必定玩火自焚

刚刚乌克兰疯了!战争全面升级!这次美国必定玩火自焚

一个坏土豆
2024-06-07 19:28:54
恭喜国足,亚足联名为挖坑实则送礼,晋级18强希望大增,泰国失算

恭喜国足,亚足联名为挖坑实则送礼,晋级18强希望大增,泰国失算

我就是一个说球的
2024-06-08 22:32:38
剖析小米SU7“湖南刹车门”:没有失效,但失灵了 | 聚焦

剖析小米SU7“湖南刹车门”:没有失效,但失灵了 | 聚焦

车聚网
2024-06-09 11:08:58
华为宣称Ascend 910B AI芯片成功超越A100 成为中国市场的重要替代品

华为宣称Ascend 910B AI芯片成功超越A100 成为中国市场的重要替代品

cnBeta.COM
2024-06-08 15:53:11
“一丝不挂”新舞蹈?惹争议,被摸下体更不害臊,金星质疑是对的

“一丝不挂”新舞蹈?惹争议,被摸下体更不害臊,金星质疑是对的

吃鱼思故渊
2024-05-16 21:48:21
住家保姆傍晚去倒垃圾,来回不到三分钟,雇主大姨就担心的不得了

住家保姆傍晚去倒垃圾,来回不到三分钟,雇主大姨就担心的不得了

糖果屋主
2024-06-08 23:15:31
5-1!巴萨天才梅开二度,西班牙大杀四方,两战10球宣战克罗地亚

5-1!巴萨天才梅开二度,西班牙大杀四方,两战10球宣战克罗地亚

钉钉陌上花开
2024-06-09 05:36:55
不公平!高考作文题目:人工智能与AI,网友:这不是坑农村孩子吗

不公平!高考作文题目:人工智能与AI,网友:这不是坑农村孩子吗

360度评说
2024-06-07 19:37:23
胡锡进:周四赚973块,周五亏3000多,总亏损重回5.8万,迷茫了!

胡锡进:周四赚973块,周五亏3000多,总亏损重回5.8万,迷茫了!

股海风云大作手
2024-06-09 10:22:29
台州石人峡溪流夺命背后:部分户外AA团号称“有腿就行”,风险自负

台州石人峡溪流夺命背后:部分户外AA团号称“有腿就行”,风险自负

极目新闻
2024-06-08 22:40:31
车库多次被奔驰车霸占,男子机智反击,下一秒网友直呼痛快

车库多次被奔驰车霸占,男子机智反击,下一秒网友直呼痛快

看晓天下事
2024-06-07 11:22:12
“友情炮”,现在的人真会玩

“友情炮”,现在的人真会玩

星辰故事屋
2024-06-06 11:40:43
67亿美元!女网名将身家超费德勒纳达尔德约总和,不愧人生赢家

67亿美元!女网名将身家超费德勒纳达尔德约总和,不愧人生赢家

体坛知识分子
2024-06-09 06:00:03
瑞幸咖啡将采购12万吨巴西豆,巴西副总统:我们仍旧以咖啡代酒

瑞幸咖啡将采购12万吨巴西豆,巴西副总统:我们仍旧以咖啡代酒

上游新闻
2024-06-08 13:10:04
矮小亚裔被8名白人围殴,反抗干掉6人,美警:枪枪爆头,像猎野猪

矮小亚裔被8名白人围殴,反抗干掉6人,美警:枪枪爆头,像猎野猪

古今档案
2023-10-31 18:58:25
一个家族绝后了意味着什么?评论区炸锅了,网友回复:太真实了!

一个家族绝后了意味着什么?评论区炸锅了,网友回复:太真实了!

有趣的羊驼
2024-06-06 14:26:32
带孙21年被赶,我拿走拆迁款和退休金,每月给邻居6000,儿子急了

带孙21年被赶,我拿走拆迁款和退休金,每月给邻居6000,儿子急了

秋雅聊爱情
2024-06-07 13:49:56
最新!爆韩国将“放水”国足,孙准浩成关键因素

最新!爆韩国将“放水”国足,孙准浩成关键因素

看球先锋
2024-06-09 10:40:40
世人皆知张幼仪可怜,却不知她后半生有多可恨,徐积锴:不配为母

世人皆知张幼仪可怜,却不知她后半生有多可恨,徐积锴:不配为母

睿鉴历史
2024-06-09 10:25:02
起底汪小菲的纽约豪宅和海外资产,才知大S为啥这么惦记前夫的钱

起底汪小菲的纽约豪宅和海外资产,才知大S为啥这么惦记前夫的钱

安宁007
2024-06-08 21:50:54
2024-06-09 15:38:44
大方老师单片机
大方老师单片机
领单片机速学资料,点我头像~
259文章数 1136关注度
往期回顾 全部

数码要闻

英伟达 RTX 50 系列移动 GPU 曝光:最高 16GB GDDR7 显存

头条要闻

以军为救4人造成至少600人死伤 美方人员疑参与行动

头条要闻

以军为救4人造成至少600人死伤 美方人员疑参与行动

体育要闻

魔笛点射 C罗缺阵葡萄牙1-2克罗地亚

娱乐要闻

汤唯抵达巴黎将担任奥运火炬手

财经要闻

疯狂抄底,中东土豪横扫中国资产!

科技要闻

王传福隔空回应余承东!半个车圈大佬发声

汽车要闻

营收99亿亏损50亿+ 蔚来一季度财报出炉

态度原创

时尚
亲子
教育
艺术
房产

中年女人,这些高级的穿搭你值得拥有,不费力也能穿出时髦感

亲子要闻

赖床宝宝被音乐唤醒 小孩:怎么回事 身体不受控制了

教育要闻

电子科大2024在川招987人,中外大幅增加,优势热门增加,会涨吗

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

房产要闻

顶流地段+顶级户型!香港半山豪宅,已成为高净值人群的资产压舱石!

无障碍浏览 进入关怀版