陳昱行,劉賓坤,李 冶,吉慶輝,李昱霖
(大連理工大學(xué)城市學(xué)院,遼寧 大連 116600)
當(dāng)今社會,在日常的生活和工作中大多物品都需要賦予密碼從而保護(hù)個(gè)人隱私。隨著電子技術(shù)與計(jì)算機(jī)技術(shù)的飛速發(fā)展,單片機(jī)相關(guān)技術(shù)在不斷更新,單片機(jī)性能也在逐步完善。如今多數(shù)單片機(jī)都憑借完備的功能以及較為低廉的價(jià)格受到用戶的青睞,因此市面上也逐漸出現(xiàn)了基于各式單片機(jī)設(shè)計(jì)的不同種類的密碼鎖。
相對于傳統(tǒng)的機(jī)械式鑰匙開鎖,密碼鎖保密性好,編碼量大,使隨機(jī)開鎖成功率大大降低。同時(shí),密碼是可變更的,用戶可以頻繁更改密碼,防止密碼被破譯,還可以避免知曉密碼者的更替而使鎖的密級下降。文中涉及的密碼鎖還具有誤碼輸入保護(hù)以及誤碼自動報(bào)警等優(yōu)點(diǎn)。
該密碼鎖以STC89C52單片機(jī)為核心器件,由最小系統(tǒng)中的時(shí)鐘電路和復(fù)位電路來承擔(dān)狀態(tài)控制功能,其他模塊圍繞單片機(jī)最小系統(tǒng)展開,包括4×4按鍵矩陣模塊,該模塊可以實(shí)現(xiàn)密碼的設(shè)置、輸入、刪除、取消、確定等功能;LCD1602顯示模塊可實(shí)現(xiàn)密碼鎖狀態(tài)和輸入密碼的顯示;密碼存儲功能借由EPROM芯片實(shí)現(xiàn),本設(shè)計(jì)使用的EPROM芯片型號為AT24C02,該芯片可通過IC接口和單片機(jī)進(jìn)行數(shù)據(jù)傳輸;繼電器模塊根據(jù)單片機(jī)內(nèi)部程序運(yùn)行判斷輸入密碼是否正確,輸出一個(gè)對應(yīng)電平控制繼電器的吸合與釋放,密碼正確時(shí)單片機(jī)輸出一個(gè)低電平控制繼電器吸合從而開鎖。在設(shè)計(jì)上因選用PNP型三極管與蜂鳴器相連,且單片機(jī)上電I/O口默認(rèn)為高電平,所以平時(shí)蜂鳴器不會鳴叫,當(dāng)密碼輸入錯(cuò)誤時(shí)會輸出低電平實(shí)現(xiàn)自動報(bào)警;使用5 V USB接口為系統(tǒng)供電。密碼鎖系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 密碼鎖系統(tǒng)結(jié)構(gòu)
STC89C52是低電平控制,高性能CMOS 8位單片機(jī),片內(nèi)含可反復(fù)擦寫的FLASH只讀程序存儲器和256 B隨機(jī)存取數(shù)據(jù)存儲器(RAM),STC89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線。STC89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以滿足不同產(chǎn)品的需求。
單片機(jī)最小系統(tǒng)主要由時(shí)鐘電路、復(fù)位電路、電源電路組成。
時(shí)鐘電路的主要器件是晶振,并輔之以2個(gè)電容幫助晶振更快起振,電容的取值范圍一般為15~33 pF。
復(fù)位電路同時(shí)存在按鍵復(fù)位以及上電復(fù)位兩種方式,為防止系統(tǒng)運(yùn)行時(shí)受到各種因素的干擾導(dǎo)致程序跑飛,可通過這兩種方式的其中一種使程序重新回到初始位置再次執(zhí)行。設(shè)計(jì)中存在兩種復(fù)位方式,以防止系統(tǒng)中僅有一種復(fù)位方式,在出現(xiàn)故障時(shí)該復(fù)位方式失效。
除單片機(jī)最小系統(tǒng)的3個(gè)部分外,設(shè)計(jì)中還多了一些外部電路。由于STC89C52的P0口是漏極開路輸出,因此在P0口處接了一個(gè)10 kΩ的排阻,使得P0口可以作為普通的I/O口使用,本設(shè)計(jì)用P0口來做液晶顯示的數(shù)據(jù)口。單片機(jī)31腳(EA)為訪問外部存儲器允許/編程電壓輸入。我們需要特別注意此引腳的特性,當(dāng)接高電平時(shí),單片機(jī)在復(fù)位后會直接訪問內(nèi)部存儲器并從0000H開始執(zhí)行。由于程序存儲在單片機(jī)內(nèi)部,所以EA外接高電平,使單片機(jī)能夠從片內(nèi)讀取程序執(zhí)行。
按鍵矩陣使用4×4鍵盤將其與單片機(jī)的P1.0~P1.7引腳相連。實(shí)現(xiàn)數(shù)字按鍵0~9與手動關(guān)鎖、修改密碼、管理員密碼以及刪除、取消、確定等一系列功能。
本設(shè)計(jì)使用LCD1602實(shí)現(xiàn)顯示功能。該器件可顯示2行16個(gè)字符,能方便顯示英文字母大小寫、阿拉伯?dāng)?shù)字、常用符號等,通過自定義還可顯示簡單的漢字。系統(tǒng)中將單片機(jī)的P0.0~P0.7依次與D0~D7(8位雙向數(shù)據(jù)線)連接,使P2.5~P2.7依次與RS(數(shù)據(jù)/命令寄存器選擇)、R/W(讀/寫操作選擇)、E(使能端)連接。
本設(shè)計(jì)使用AT24C02作為密碼存儲單元。AT24C02是美國Atmel公司出品的低功耗CMOS型EPROM,支持IC即總線數(shù)據(jù)傳送協(xié)議,可通過IC接口與單片機(jī)進(jìn)行數(shù)據(jù)傳輸,同時(shí)還具有專門的寫保護(hù)功能等。該模塊在密碼鎖中常被用于密碼的存儲與記錄。
本設(shè)計(jì)采用的繼電器為電磁式繼電器。通過弱電控制強(qiáng)電的方式使其成為一個(gè)“自動開關(guān)”。將其與單片機(jī)的P3.2引腳相連,當(dāng)進(jìn)行開鎖操作時(shí),若操作成功,單片機(jī)通過程序輸出一個(gè)低電平,使繼電器吸合從而開鎖。
本設(shè)計(jì)使用電磁式蜂鳴器,將其與單片機(jī)的P3.3引腳相連用于報(bào)警,并用P3.2引腳接紅色LED燈與其配合,在報(bào)警時(shí)起到警示作用。當(dāng)輸入密碼錯(cuò)誤次數(shù)大于3次時(shí),通過程序控制單片機(jī)輸出一個(gè)高電平,使紅色LED燈亮并使蜂鳴器報(bào)警,之后控制密碼鎖鍵盤進(jìn)入鎖定狀態(tài)。
本設(shè)計(jì)使用5 V USB接口供電,為系統(tǒng)運(yùn)行提供能量。系統(tǒng)PCB版圖如圖2所示。
圖2 PCB版圖
程序設(shè)計(jì)主要為實(shí)現(xiàn)密碼鎖的一些基本功能,如:密碼輸入、刪除、取消和確定,以及手動關(guān)鎖、密碼修改和密碼重置等功能。在接通電源開機(jī)后,密碼鎖進(jìn)入初始化頁面,通過按鍵輸入當(dāng)前的開鎖密碼,密碼輸入正確并開鎖后,可以進(jìn)行手動關(guān)鎖和密碼修改等操作。
若執(zhí)行完修改密碼操作后忘記了重新設(shè)置的密碼,可執(zhí)行密碼重置操作直接輸入程序中設(shè)定的初始密碼,按下管理員密碼按鍵,密碼會重置為初始密碼。
該密碼鎖的本質(zhì)是單片機(jī)通過運(yùn)行程序判斷輸入密碼的正誤來輸出對應(yīng)電平,使繼電器吸合或釋放,實(shí)現(xiàn)鎖的開與關(guān)。開鎖操作流程如圖3所示,修改密碼操作流程如圖4所示。
圖3 開鎖操作流程
圖4 密碼修改操作流程
在信息技術(shù)與新興高科技產(chǎn)業(yè)飛速發(fā)展的今天,如何獲得信息安全保障成為人們面臨的一大難題,這足以證明人們越來越需要高效且安全的密碼鎖。本設(shè)計(jì)為基于單片機(jī)設(shè)計(jì)的密碼鎖,具備密碼輸入、液晶顯示、密碼修改、輸入密碼錯(cuò)誤時(shí)報(bào)警等功能,相對于傳統(tǒng)的機(jī)械式鑰匙開鎖,其具備保密性好、編碼量多、密碼可變等優(yōu)點(diǎn),更加安全且造價(jià)低廉,定能受到用戶們的青睞。
物聯(lián)網(wǎng)技術(shù)2022年10期