sponsored links

數字門鎖還要買?爺直接自己做,使用基於 8051 的電子密碼鎖

隨著世界變得越來越依賴數字化,現在甚至可以將門設計成安全可靠的。鎖和鑰匙的數字版本具有許多有前途的功能。數字門鎖用密碼安全放置。但是,這也可能會吸引不道德的駭客,因此,還需要額外的安全層。

數字門鎖還要買?爺直接自己做,使用基於 8051 的電子密碼鎖

在這篇基於電子專案的文章中,我們建立了一個使用基本控制器 8051 微控制器控制的數字門鎖。本文的目的是瞭解數字門鎖背後的基本工作原理。

什麼是數字門鎖?

數字門鎖一般是一種基於密碼的電子密碼鎖。在這個專案中,我們使用 8051 微控制器、鍵盤和 12 伏直流繼電器設計了數字門鎖。在本文中,我們設計了一個使用 8051 的簡單數字門鎖——它可以用作安全檢查系統,以限制只有某些具有密碼的個人才能進入某個區域/房間。因此,我們的數字門鎖專案可以使用非常廣泛的名稱來呼叫,例如使用 8051 的數字密碼鎖或使用 8051 微控制器的數字安全密碼鎖或使用 8051 的密碼安全系統或使用的電子密碼鎖或數字密碼鎖8051. 人們稱這種“安全系統”有不同的名稱,儘管它們的意思都是建立一個基本的基於密碼的安全系統,使用 8051 或 AVR 或 PIC 或 Arduino(選擇的控制器)等微控制器,具有自動門鎖/開門設施、聲音警報、基於 GSM 的簡訊警報等額外功能。

數字門鎖 - 專案摘要

我們的數字密碼鎖專案 - 是一個簡單的電子數字鎖系統或使用 8051 的電子密碼鎖 -在程式中儲存了一個預設的5 位密碼。系統採集5位使用者輸入,將使用者輸入與程式內部預設密碼進行比較,如果使用者輸入和儲存的密碼匹配,則允許進入(透過繼電器開啟門幾秒鐘然後關閉)它在規定的時間後自動)。如果使用者輸入和儲存的密碼不匹配,訪問將被拒絕(透過不開啟關閉的門 - 即透過將繼電器保持在關閉位置)

注意:-我們有一個精彩的 8051 專案集合,這些專案是我們之前設計和釋出的。看看如果您有興趣自己構建基於 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 密碼可以稍後透過按“編輯密碼”鍵來更改/編輯。

分類: 教育
時間: 2022-02-12

相關文章

葬在八寶山的越南領袖,因不滿反華投奔中國,助力中越關係正常化

葬在八寶山的越南領袖,因不滿反華投奔中國,助力中越關係正常化
1991年5月18日,前越南國會副主席,越共忠誠戰士黃文歡因病於北京逝世,結束了其波瀾壯闊的一生.依據黃文歡的遺囑,其骨灰安葬在北京八寶山革命公墓,這位為越南建國立下汗馬功勞的共產主義戰士,最終沒有選 ...

美國看錯了中國,為什麼說遏制中國是美國的必輸之局?

美國看錯了中國,為什麼說遏制中國是美國的必輸之局?
3月25日,美國總統拜登在其首次記者釋出會上說,"中國有一個總體目標--成為世界領先.最富有.最強大的國家","在我的任期內,這不會發生". 4月13日,美國國 ...

任正非簽發舊文:科學的去功利化在中國是艱難的,同時也是緊迫的

任正非簽發舊文:科學的去功利化在中國是艱難的,同時也是緊迫的
圖片來源:網路 鈦媒體App注:9月18日上午,華為內部論壇"心聲社群"釋出CEO任正非簽發的總裁辦電子郵件,轉發了科技日報原總編輯劉亞東2018年6月在中國科技會堂發表演講< ...

天天罵中國是“山寨大國”,不想想自己是啥玩意兒

天天罵中國是“山寨大國”,不想想自己是啥玩意兒
不知道從什麼時候開始,西方國家給中國扣上了一頂山寨大國的帽子. 不僅外國人這麼認為,就連很多中國人,提起中國製造,都不知不覺與山寨產品聯絡到一起. 狹義概念的山寨,一般指的是假冒偽劣,中國也的確有過假 ...

越南球員範德輝:中國是亞洲最強球隊之一 但我們必須取得好成績

越南球員範德輝:中國是亞洲最強球隊之一 但我們必須取得好成績
12強賽第三輪,國足將在阿聯酋沙迦迎戰越南隊.前兩輪比賽中,中國隊和越南隊均遭遇兩連敗,本場直接較量對於兩隊非常重要,要想保留晉級世界盃的希望,必須拿到3分.賽前,越南球員範德輝在接受採訪時表示,儘管 ...

中華先祖—中國是人類的發源地之一

中華先祖—中國是人類的發源地之一
中國是人類的發源地之一.促使人們相信中國也是人類起源地的根據之一是中國境內發現了比非洲南方古猿年代更久遠的各種人類的近親--古猿的化石材料.理由很簡單:既然那時存在過人類的近親,同樣的生存環境,為什麼 ...

法媒:中國是我們未來的窗戶

法媒:中國是我們未來的窗戶
<回聲報>9月17日刊登題為<中國是我們未來的窗戶>的文章,稱西方曾長期認為中國數字企業都是抄襲矽谷,經常將他們稱為中國的谷歌或亞馬遜.但情況已經變了,中國創造了其它地方都不存 ...

中國是維護世界和平的中流砥柱
新華社北京9月21日電題:中國是維護世界和平的中流砥柱 新華社記者鄭漢根 9月21日是"國際和平日".國際和平日由聯合國大會於1981年設立.2001年,聯合國大會一致決定將這一天 ...

新華國際時評:中國是維護世界和平的中流砥柱
新華社北京9月21日電 題:中國是維護世界和平的中流砥柱 新華社記者鄭漢根 9月21日是"國際和平日".國際和平日由聯合國大會於1981年設立.2001年,聯合國大會一致決定將這一 ...

高山下的花環:他是梁三喜,中國是我的,可也是你的,讓人淚奔

高山下的花環:他是梁三喜,中國是我的,可也是你的,讓人淚奔
謝晉導演的電影<高山下的花環>,是中國最好的戰爭片,沒有之一.豆瓣評分9.4. 你,離開戰爭太久了:我們,離開人民太遠了. 中國是我的,可也是你的. 謝晉導演的臺詞向來如此,一針見血,深刻 ...

國際時評 | 中國是維護世界和平的中流砥柱

國際時評 | 中國是維護世界和平的中流砥柱
新華社北京9月21日電(記者鄭漢根)9月21日是"國際和平日".國際和平日由聯合國大會於1981年設立.2001年,聯合國大會一致決定將這一天作為非暴力和停火的日子.聯合國請所有國 ...

央視網評|強大的中國是每個中國人的堅強靠山

央視網評|強大的中國是每個中國人的堅強靠山
這是歷史性的一刻!經中國政府不懈努力,歷時近三年的艱鉅鬥爭,孟晚舟乘坐中國政府包機順利回到祖國! "回家的路,雖曲折起伏,卻是世間最暖的歸途."正如孟晚舟獲釋後給中央廣播電視總檯發 ...

聯合國警告中美避免“新冷戰”,白宮回應:與中國是競爭而非衝突

聯合國警告中美避免“新冷戰”,白宮回應:與中國是競爭而非衝突
近期,隨著中國海軍巡航美國阿拉斯加專屬經濟區以及孟晚舟回國兩件事的發生,標誌著中美博弈態勢呈現出了一個較為明顯的變化,中國已經越來越積極主動地尋求與美方之間和平共處.管控分歧的有效辦法,並試圖用&qu ...

為什麼說中國是偽裝成國家的文明,而歐洲只是一個地理概念?

為什麼說中國是偽裝成國家的文明,而歐洲只是一個地理概念?
在中國,但凡是一箇中學生,也都知道我國有著5000年綿延不斷的文明史,而且是一個統一的多民族國家.雖然歷史上有過春秋戰國.魏晉南北朝.五代十國的分裂時期,但是大一統的趨勢越來越明顯,到了元.明.清後三 ...

600萬月薪的越南人曾“炫富”,直言在中國是土豪,國人:想多了

600萬月薪的越南人曾“炫富”,直言在中國是土豪,國人:想多了
近三十年來,越南,憑藉其重要的地理位置.較低的勞動力成本.靈活的製造能力,吸引一些國際製造企業紛紛將生產重心轉移到成本更低的越南,其中也包括不少我國的一些企業. 越南正在成為很多品牌生產製造新基地,與 ...

普京說中國是俄羅斯最可靠的夥伴 兩國能源領域合作成果豐碩
當地時間10月13日,俄羅斯總統普京出席俄羅斯能源周主題論壇全會.普京在會場接受採訪時表示,中國是俄羅斯最可靠的全面戰略協作夥伴,雙方在各領域都保持著富有成效的合作.俄中貿易在新冠疫情衝擊下逆勢上揚, ...

詩詞賞析丨文吉兒:思無邪——《詩經》中的千古戀歌

詩詞賞析丨文吉兒:思無邪——《詩經》中的千古戀歌
思無邪:<詩經>中的千古戀歌 文/文吉兒 子曰:"詩三百,一言以蔽之,曰:思無邪."<詩經>,我國現存最古老的詩歌總集,中華民族文學的光輝起點,在後人不斷地 ...

我國高價買來的油又低價賣出去,不虧反賺,中國是怎麼做到的?

我國高價買來的油又低價賣出去,不虧反賺,中國是怎麼做到的?
想必大家對我國的三桶油都不陌生,這三桶油並非指的是桶裝的油,它代表的是三家石油公司,中石油.中石化以及中海油,我國有這三桶油的支撐,但我國卻是全世界進口原油最多的國家.並且我國還不斷出口比國內價格更低 ...

中國是最大貿易伙伴,烏看清了誰才是靠山?開始炮轟西方不守承諾

中國是最大貿易伙伴,烏看清了誰才是靠山?開始炮轟西方不守承諾
中國才是烏克蘭最大的合作伙伴,烏克蘭終於看清了誰才是真正的"靠山"?開始公開炮轟西方國家不守承諾,不值得信賴. 美國憑藉著自己超級大國的身份,近年來在國際上橫行霸道,也正是因為如此 ...

英國名氣最響的科學家是牛頓,美國是愛因斯坦,中國是哪一位?

英國名氣最響的科學家是牛頓,美國是愛因斯坦,中國是哪一位?
在流量明星當道的時代,很少有人知道曾經為國做出貢獻的科學家是誰?記不起他們的名字,更不知道他們做出了那些科技貢獻. 但總有一些人的名字我們是不能忘記的,正如美國名氣最大的科學家是愛因斯坦,甚至是世界知 ...