【《基于單片機(jī)的智能電子密碼鎖設(shè)計(jì)》10000字】_第1頁(yè)
【《基于單片機(jī)的智能電子密碼鎖設(shè)計(jì)》10000字】_第2頁(yè)
【《基于單片機(jī)的智能電子密碼鎖設(shè)計(jì)》10000字】_第3頁(yè)
【《基于單片機(jī)的智能電子密碼鎖設(shè)計(jì)》10000字】_第4頁(yè)
【《基于單片機(jī)的智能電子密碼鎖設(shè)計(jì)》10000字】_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGE基于單片機(jī)的智能電子密碼鎖設(shè)計(jì)TOC\o"1-3"\h\u29203摘要 190241緒論 2250391.1電子密碼鎖簡(jiǎn)介 2161251.2電子密碼鎖的背景和意義 2263261.3電子密碼鎖發(fā)展的現(xiàn)狀和前景 2213311.4設(shè)計(jì)任務(wù)及要求 3151562總體設(shè)計(jì) 3120852.1設(shè)計(jì)方案 3300052.2設(shè)計(jì)總體框圖 3199353系統(tǒng)硬件設(shè)計(jì) 4187213.1系統(tǒng)主要芯片介紹 4230183.1.1STC89C51 4205003.1.2AT24C02存儲(chǔ)芯片 590773.1.3LCD液晶顯示模塊 6146903.2最小系統(tǒng)設(shè)計(jì) 7292813.2.1鍵盤輸入模塊 756983.2.2密碼存儲(chǔ)電路 8165023.2.3復(fù)位電路 8145983.2.4顯示電路 9327023.2.5開鎖電路 962813.2.6報(bào)警電路 10196493.3綜合設(shè)計(jì)圖 1092154系統(tǒng)軟件設(shè)計(jì) 11131834.1軟件總體設(shè)計(jì) 11129324.2鍵盤掃描 1295634.3顯示模塊 15214604.4密碼設(shè)置 16285084.4.1寫操作方式 16133334.4.2讀操作方式 17152124.5密碼輸入 1847594.6報(bào)警模塊 19154745仿真的運(yùn)行和調(diào)試 2030656實(shí)物設(shè)計(jì)與制作 2225738結(jié)論 2414871參考文獻(xiàn) 2515777附錄 26160附錄1設(shè)計(jì)實(shí)物圖 2658附錄2設(shè)計(jì)源程序 28摘要:人們生活越來(lái)越好,但遭遇偷竊的情況不減反增。以前的門鎖已經(jīng)無(wú)法應(yīng)對(duì)現(xiàn)代竊賊的高超手藝,如果無(wú)法提升鎖具的安全性,那么無(wú)疑給人們的生活帶來(lái)不必要的擔(dān)憂。為了解決門鎖容易被盜這個(gè)問(wèn)題,而設(shè)計(jì)了一款安全性能更好的電子密碼鎖,電子密碼鎖是一種由電路板控制鎖芯開啟和關(guān)閉的新型鎖具,它不僅可以通過(guò)用戶輸入自己設(shè)定的密碼開鎖,還可以用自己的面部特征識(shí)別開鎖,并且有可靠的報(bào)警功能,操作更加安全方便。本次設(shè)計(jì)的主要板塊用的是單片機(jī)AT89C51,因?yàn)橐斎朊艽a,所以先在外部接入矩陣鍵盤模塊,然后在外圍電路接入LCD1602液晶顯示屏來(lái)顯示密碼和其他一些提示信息,再把攝像頭模塊連到外圍電路來(lái)實(shí)現(xiàn)人臉解鎖的功能。這樣一來(lái),鍵盤輸入電路、復(fù)位電路、密碼存儲(chǔ)電路、晶振電路、電源輸入電路、顯示電路、報(bào)警電路和開鎖電路就構(gòu)成了本電子密碼鎖的主要系統(tǒng)REF_Ref3619\r\h[1]。本次設(shè)計(jì)對(duì)于提高門鎖的安全性具有很大的意義,能有效的防止被盜,并且開鎖更加方便快捷。關(guān)鍵詞:AT89C51;電子密碼鎖;密碼存儲(chǔ);人臉識(shí)別;報(bào)警1緒論1.1電子密碼鎖簡(jiǎn)介什么是電子密碼鎖?電子密碼鎖應(yīng)該是使人們生活更加穩(wěn)定,提高人們的安全感的一款鎖具REF_Ref3619\r\h[1]。電子密碼鎖只需要輸入密碼或者看一眼攝像頭就可以開鎖,不再需要隨身攜帶鑰匙,開鎖變得更加快捷和方便,而且價(jià)格也不算昂貴,相比傳統(tǒng)鎖具來(lái)說(shuō)它具有以下幾個(gè)優(yōu)勢(shì):密碼可以更改。用戶出于安全考慮可以每天都更改一次密碼,這就使鎖具的安全可靠性更高,同時(shí)也避免了人們經(jīng)常換鎖帶來(lái)的經(jīng)濟(jì)損失,這是傳統(tǒng)鎖具不具備的。操作簡(jiǎn)單,無(wú)論人們識(shí)不識(shí)字,只需輸入幾個(gè)數(shù)字就可以開鎖,而且避免了人們忘記帶鑰匙導(dǎo)致無(wú)法開鎖的窘境。具有報(bào)警功能,當(dāng)具有自動(dòng)報(bào)警功能時(shí)把防盜的安全性又提升了一個(gè)檔次。無(wú)法通過(guò)“技術(shù)”破解,因?yàn)椴恍枰€匙,沒有鎖芯,傳統(tǒng)盜竊手段將失去作用。1.2電子密碼鎖的背景和意義在古代文明時(shí)期,人們的生活水平雖然不太高,但是人們的生活氛圍卻是十分和諧,不需要用鎖去封閉大門,因?yàn)闆]人會(huì)去偷竊。但隨著文明不斷發(fā)展,就出現(xiàn)了一些好吃懶做的人,想要不勞而獲。于是就出現(xiàn)了偷竊的行為,為了保障人們的生活不受干擾,鎖具就這樣產(chǎn)生了。鎖具的出現(xiàn)在一定時(shí)期起了一定的作用,比如剛開始的時(shí)候,竊賊對(duì)于鎖具不太了解就只能望鎖興嘆。但是盜賊也在不斷學(xué)習(xí),一開始會(huì)想辦法暴力破鎖,再后來(lái)會(huì)仿制鑰匙來(lái)開鎖入室盜竊。雖然傳統(tǒng)鎖具不斷更新鎖芯和鎖具形式,但是小偷理解的鎖的原理之后,甚至能用一根鐵絲就打開了鎖具,這就是的鎖具的安全性又進(jìn)一步下降。基于上述情況,人們認(rèn)識(shí)到只更換鎖的外殼,而其機(jī)械式開鎖的原理不改變是無(wú)法改變被盜的情況的,需要研究新的開鎖形式才是最重要的。于是智能電子密碼鎖的出現(xiàn),使得人們的生活穩(wěn)定性又有了很大的提升。但是,社會(huì)是在不斷的向前發(fā)展,任何事物不進(jìn)步就會(huì)被淘汰。電子密碼鎖雖然相對(duì)于傳統(tǒng)機(jī)械鎖安全了許多,但是人們對(duì)于新事物的接受總是帶有懷疑性的,比如電子密碼鎖在長(zhǎng)時(shí)間斷電的情況下是否會(huì)失去安全性。而且電子密碼鎖剛問(wèn)世的時(shí)候,人們會(huì)質(zhì)疑安全性如此之高,相比傳統(tǒng)的機(jī)械鎖價(jià)格電子鎖的價(jià)格肯定會(huì)高,與其花高價(jià)不如經(jīng)常更換便宜的機(jī)械鎖。因此,電子密碼鎖想要真正的給人們帶來(lái)信任,還需要不斷發(fā)展完善改進(jìn)電子密碼鎖的功能,這也才能使得電子密碼鎖的發(fā)展更有意義。1.3電子密碼鎖發(fā)展的現(xiàn)狀和前景目前,我們國(guó)家的電子密碼鎖發(fā)展還不是很完善,并且在民眾之間也沒普及。在西方發(fā)達(dá)國(guó)家,人們對(duì)電子密碼鎖了解較多,而且信賴電子密碼鎖,普及程度遠(yuǎn)遠(yuǎn)大于我國(guó)。我國(guó)在七八十年代年代改革開放前,單片機(jī)這類芯片科技還不是很發(fā)達(dá),民眾對(duì)此了解更加淺薄。隨著科技的發(fā)展,特別是單片機(jī)出現(xiàn)以后,人們才明白電子密碼鎖的原理和構(gòu)成,這也就推動(dòng)了電子密碼鎖的發(fā)展。在過(guò)去的機(jī)密重地,都是一些笨重且體積巨大的機(jī)械鎖,制作起來(lái)也十分麻煩,這時(shí)候,體積輕小安全性更高的電子密碼鎖就派上了用場(chǎng)。雖然現(xiàn)在電子密碼鎖在價(jià)格上可能還不太理想,而且需要一直保持供電狀態(tài),可能一時(shí)半會(huì)不會(huì)大面積普及。但是相信在不久的未來(lái),隨著芯片技術(shù)的不斷提升,以及電子器件成本的降低,這種開鎖方便并且功能齊全的電子密碼鎖一定會(huì)被人們接受。1.4設(shè)計(jì)任務(wù)及要求為了設(shè)計(jì)一個(gè)安全可靠的電子密碼鎖,應(yīng)該能實(shí)現(xiàn)以下功能REF_Ref3871\r\h[2]:人臉識(shí)別功能,電子密碼鎖可以采用人臉解鎖;密碼解鎖功能,由用戶設(shè)置六位密碼,密碼由鍵盤輸入,并且在顯示器上顯示“*”;能判斷密碼是否正確,正確則開鎖,錯(cuò)誤時(shí)會(huì)進(jìn)行相應(yīng)的提示;能更改密碼,當(dāng)用戶需要改密碼時(shí),需要輸入舊的密碼確認(rèn),然后才能更改密碼;能進(jìn)行報(bào)警,當(dāng)用戶輸入密碼錯(cuò)誤時(shí),蜂鳴器就會(huì)進(jìn)行提示,若密碼錯(cuò)誤三次,那么用戶的手機(jī)app上會(huì)有相應(yīng)提示。2總體設(shè)計(jì)2.1設(shè)計(jì)方案方案一:采用數(shù)字電路控制密碼鎖用包含兩個(gè)JK觸發(fā)器的邏輯數(shù)字電路74LS112來(lái)控制REF_Ref4083\r\h[3],用戶按鍵由0~9九個(gè)按鍵組成,但其中只有四個(gè)按鍵是有效輸入的,其他五個(gè)都是無(wú)關(guān)的按鍵,若輸入了無(wú)關(guān)按鍵,則輸入的密碼自動(dòng)清零,用戶要再次輸入密碼;如果用戶在輸入密碼操作界面超過(guò)十秒,電路會(huì)進(jìn)行提示并關(guān)閉顯示屏,如果密碼輸入錯(cuò)誤三次以上,則報(bào)警電路會(huì)被觸發(fā)。采用這種設(shè)計(jì)的方案雖然電路不是很復(fù)雜,但是不太容易控制而且容易出錯(cuò),不能不斷進(jìn)行改進(jìn)升級(jí),故不采用。方案二:采用以STC89C51為核心的單片機(jī)控制選用單片機(jī)AT89C51作為設(shè)計(jì)的核心元件REF_Ref4083\r\h[3],由于單片機(jī)能配備多個(gè)外圍設(shè)備,并且寫入程序就可以控制相應(yīng)功能,通過(guò)測(cè)試各種不同的功能來(lái)實(shí)現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路接用于用戶輸入密碼的矩陣鍵盤,再加入密碼存儲(chǔ)模塊來(lái)存儲(chǔ)密碼,再加入攝像頭模塊用于人臉識(shí)別解鎖功能,并且連接可以顯示密碼等提示信息的LCD1602顯示屏,以及手機(jī)APP報(bào)警。由此看來(lái),方案二控制性靈活性強(qiáng)且準(zhǔn)確性好,并且保密性更強(qiáng),還可以外加多種拓展功能,因此本次設(shè)計(jì)選用方案二來(lái)執(zhí)行。2.2設(shè)計(jì)總體框圖本次設(shè)計(jì)的電子密碼鎖系統(tǒng)主要組成REF_Ref4285\r\h[4]:用于用戶輸入密碼的矩陣鍵盤、能每次用完自動(dòng)復(fù)位的復(fù)位電路、用于存儲(chǔ)用戶密碼的存儲(chǔ)電路、給單片機(jī)提供反饋的晶振電路、電源輸入、用LCD1602顯示屏來(lái)顯示提示信息和密碼的顯示電路、報(bào)警電路和開鎖電路等。用戶在使用這款密碼鎖的時(shí)候,通過(guò)矩陣鍵盤輸入自己設(shè)定的密碼,或者通過(guò)攝像頭進(jìn)行面部識(shí)別,單片機(jī)的存儲(chǔ)模塊再對(duì)輸入的密碼進(jìn)行判斷或者與預(yù)先輸入的人臉數(shù)據(jù)進(jìn)行對(duì)比,從而判斷是否為用戶本人所操作,若是用戶本人操作,則把數(shù)據(jù)傳到開鎖電路;若非用戶本人操作,則把數(shù)據(jù)傳送給報(bào)警電路。系統(tǒng)總體框圖如圖2-2所示。鍵盤輸入攝像頭模塊STC89C51鍵盤輸入攝像頭模塊STC89C51報(bào)警電路開鎖電路顯示電路晶振電路存儲(chǔ)電路復(fù)位電路報(bào)警電路開鎖電路顯示電路晶振電路存儲(chǔ)電路復(fù)位電路圖2-2系統(tǒng)總體框圖各模塊功能如下REF_Ref4285\r\h[4]:鍵盤輸入:用于密碼鎖輸入密碼數(shù)字的功能:復(fù)位電路:完成系統(tǒng)的復(fù)位:存儲(chǔ)電路:用于設(shè)定密碼的存儲(chǔ):晶振電路:給單片機(jī)提供晶振頻率:攝像頭模塊:用于輸入用戶人臉數(shù)據(jù):顯示電路:LCD顯示屏來(lái)顯示用戶相關(guān)操作:開鎖電路:用繼電器來(lái)模擬開鎖,完成開鎖提示:報(bào)警電路:當(dāng)輸入密碼錯(cuò)誤或人臉數(shù)據(jù)錯(cuò)誤,蜂鳴器報(bào)響并且向手機(jī)app發(fā)送通知。3系統(tǒng)硬件設(shè)計(jì)3.1系統(tǒng)主要芯片介紹3.1.1STC89C51MCS-51單片機(jī)是英特爾公司生產(chǎn)的易于編程和設(shè)計(jì),容易掌握的一款通用單片機(jī)。這一系列單片機(jī)有很多型號(hào),比如80C31、80C51、87C51是低功耗的,也有8032、8052等增強(qiáng)型的。STC89C51片內(nèi)有1個(gè)8位承載運(yùn)算器和控制器的CPU,還有1個(gè)128B的數(shù)據(jù)存儲(chǔ)器和1個(gè)64KB的程序存儲(chǔ)器,并且有P0、P1、P2、P3四個(gè)8位I/O口用來(lái)連接外部設(shè)備等功能,其內(nèi)部的2個(gè)16位的定時(shí)器/計(jì)時(shí)器也是十分重要的,還有五個(gè)中斷源和中斷向量以及26個(gè)特殊功能寄存器。STC89C51引腳圖如圖3-1-1所示,下面是各個(gè)引腳的功能REF_Ref4478\r\h[5]:VCC:接+5V電源;VSS:接地;XTAL1:在外部沒有獨(dú)立的時(shí)鐘源時(shí),該引腳作為片內(nèi)振蕩器的輸入端;若外部有獨(dú)立時(shí)鐘源,則該引腳負(fù)責(zé)接收外部時(shí)鐘信號(hào)。XTAL2:在外部沒有獨(dú)立時(shí)鐘源的時(shí)候,該引腳作為調(diào)節(jié)端口;有外部時(shí)鐘源的時(shí)候,該引腳懸空不接。RST:復(fù)位引腳;PSEN:在低電平狀態(tài)下,可以選擇讀取片內(nèi)或片外程序存儲(chǔ)器的信號(hào);ALE/PROG:提供了可以存儲(chǔ)信息的8位地址,在CPU讀取了存儲(chǔ)器里的內(nèi)容時(shí)把單片機(jī)串口發(fā)出的信息保存起來(lái)。PROG用來(lái)把編程輸入到片內(nèi)FLASH存儲(chǔ)器中。P0口:可以用作系統(tǒng)的地址或數(shù)據(jù)總線,也可以當(dāng)作普通的外接端口使用。P1口:可以當(dāng)作輸出口也可以當(dāng)作輸入口。P2口:大多數(shù)情況下當(dāng)作8位地址總線使用,但它也可以作為通用端口使用。P3口:它可以像前幾個(gè)一樣作為通用端口,但它重要的是可以分別定義第二輸出功能獲第二輸入東南,它還有很多第二功能,如:串行書輸入輸出、外部中斷、定時(shí)器功能、外部存儲(chǔ)器的寫選和讀選功能。圖3-1-1STC89C51引腳圖3.1.2AT24C02存儲(chǔ)芯片AT24C02是一個(gè)含有256個(gè)8位字節(jié)的AT24XX系列串行E2PROM的一種器件。該器件是Atmel公司生產(chǎn)的低功耗的存儲(chǔ)硬件,它進(jìn)行操作要通過(guò)I2C總線接口,可以對(duì)寫操作進(jìn)行保護(hù)。其引腳圖如圖3-1-2,各引腳功能如下REF_Ref4478\r\h[5]:SCL:時(shí)鐘線,各器件的啟動(dòng)信號(hào),時(shí)鐘信號(hào)都經(jīng)過(guò)此線傳輸轉(zhuǎn)換。SDA:接收來(lái)自時(shí)鐘線上的啟動(dòng)數(shù)據(jù)或時(shí)鐘信號(hào)并做出判斷以保持同步控制作用。A0、A1、A2:器件地址輸入端。它的三個(gè)端口都能接懸空或者電源、接地,本次設(shè)計(jì)三個(gè)端口都接地,所以他們的值都為0(WP=0)。WP:寫操作保護(hù)端口。如果WP=1(即寫保護(hù)狀態(tài)下),那么存儲(chǔ)器里的內(nèi)容只能讀出不能寫入;如果WP=0(即懸空、接電源、接地三種情況)就可以正常的寫入或讀出。圖3-1-2AT24C02引腳圖3.1.3LCD液晶顯示模塊液晶LCD顯示器不僅能清晰的顯示出想要顯示的字符,而且體積小REF_Ref4478\r\h[5],因此在單片機(jī)相關(guān)的設(shè)計(jì)經(jīng)常被使用。同時(shí),又根據(jù)功能不同,他可以分為以下幾種類型。字段型。字段型LCD驅(qū)動(dòng)原理是根據(jù)Seg0上的各種輸入波形來(lái)決定那一段亮,從而顯示相應(yīng)的數(shù)字或字符。字符型。這種類型的LCD顯示屏就是每個(gè)字符都有對(duì)應(yīng)的碼值,要想調(diào)用字符,只需要輸入相應(yīng)的碼值就可以在屏幕上顯示出來(lái)。點(diǎn)陣圖形型。點(diǎn)陣圖形型就是根據(jù)點(diǎn)陣不同的排列組合而形成不同的字符。本次設(shè)計(jì)選用的是字符型LCD顯示模塊,各引腳功能由表3-1-3給出,引腳圖如圖3-1-4:編號(hào)符號(hào)引腳說(shuō)明標(biāo)號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2|數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極表3-1-3LCD液晶顯示功能表圖3-1-4LCD1602引腳圖3.2最小系統(tǒng)設(shè)計(jì)3.2.1鍵盤輸入模塊因?yàn)橐獫M足用戶輸入密碼功能的需求,而單片機(jī)的I/O口不能滿足這種需求,所以當(dāng)按鍵需求過(guò)多時(shí),就要再單片機(jī)外部連接一個(gè)矩陣鍵盤。矩陣鍵盤由幾個(gè)行線和幾條列線組成,行線和列線的交匯的點(diǎn)就是按鍵的位置REF_Ref4478\r\h[5]。如圖3-2-1是矩陣鍵盤仿真圖。圖3-2-14×4矩陣鍵盤由于行線和列線的交匯點(diǎn)就是按鍵的位置,那么按鍵的開關(guān)一端接到行線上,一端接到列線上。若是沒有鍵被按下,那么行線一般保持高電平狀態(tài),若平時(shí)列線時(shí)低電平狀態(tài),當(dāng)有按鍵被按下的時(shí)候,行線列線被壓到一條線上,于是對(duì)應(yīng)的行線也變成低電平。通過(guò)以上就能確定矩陣鍵盤哪個(gè)按鍵被按下。3.2.2密碼存儲(chǔ)電路由于電子密碼鎖需要設(shè)置密碼,而且每次用戶使用的密碼基本都是相同的,這就需要單片機(jī)存儲(chǔ)密碼信息,但是單片機(jī)每次關(guān)機(jī)后會(huì)自動(dòng)清除信息,這就需要外加一個(gè)能夠存儲(chǔ)密碼信息的掉電存儲(chǔ)模塊REF_Ref4975\r\h[5]。如圖3-2-2為密碼存儲(chǔ)電路的仿真圖。圖3-2-2密碼存儲(chǔ)電路如圖所示的A0、A1、A2對(duì)應(yīng)的1、2、3引腳接地,WP對(duì)應(yīng)的7引腳也接地方便進(jìn)行正常的讀寫操作,SCL對(duì)應(yīng)的6引腳連接單片機(jī)P2.5來(lái)接收啟動(dòng)信號(hào)或者時(shí)鐘信號(hào),SDA對(duì)應(yīng)的5引腳連接單片機(jī)的P2.6來(lái)判斷時(shí)鐘信號(hào)或者其他信號(hào)來(lái)保持同步控制,數(shù)據(jù)就通過(guò)這條雙向I2C總線進(jìn)行串行傳輸,通過(guò)這個(gè)模塊,單片機(jī)就能高效的保存有效信息。3.2.3復(fù)位電路單片機(jī)的復(fù)位操作是非常重要的,因?yàn)楫?dāng)系統(tǒng)陷入了“循環(huán)”或者“跑飛”狀態(tài),就是我們常說(shuō)的死機(jī)狀態(tài)下,就需要進(jìn)行復(fù)位操作重新啟動(dòng)程序。復(fù)位操作完成后,單片機(jī)就會(huì)重新啟動(dòng)REF_Ref4975\r\h[5]。圖3-2-3是單片機(jī)復(fù)位電路仿真圖。圖3-2-3復(fù)位電路單片機(jī)的復(fù)位操作有兩種,一種使通過(guò)電容C1被電源VCC充電,由此RST接收一個(gè)時(shí)間較短的高電平信號(hào)(通常VCC放電時(shí)間不超過(guò)1ms),系統(tǒng)就會(huì)自動(dòng)放電復(fù)位。第二種是人工復(fù)位,通過(guò)按鍵直接就可以給RST一個(gè)高電平使單片機(jī)復(fù)位。3.2.4顯示電路作為一個(gè)字符型液晶顯示器,為了能滿足用戶的顯示需求,LCD1602提供了一個(gè)包括了英文字母、阿拉伯?dāng)?shù)字、標(biāo)點(diǎn)符號(hào)的字符集。要想調(diào)用字符集里的字符,只要輸入相應(yīng)字符的程序碼就可以在屏幕上顯示相應(yīng)字符。要想LCD正常顯示字符,要先對(duì)其進(jìn)行初始化設(shè)置,稱為寫命令操作,再通過(guò)寫數(shù)據(jù)等操作,就可以使LCD顯示相應(yīng)的字符REF_Ref4478\r\h[6]。本次設(shè)計(jì)LCD的主要任務(wù)就是顯示輸入的密碼以及對(duì)開鎖成功或失敗的提示。圖3-2-4是PROTEUS中顯示模塊的仿真圖。圖3-2-4顯示電路3.2.5開鎖電路本次設(shè)計(jì)的電子密碼鎖,由用戶輸入密碼,若密碼輸入正確,則顯示器上顯示”welcome“,若輸入密碼錯(cuò)誤,則蜂鳴器響一次,錯(cuò)誤了三次以上就會(huì)給手機(jī)APP進(jìn)行提示。設(shè)計(jì)中添加了一個(gè)繼電器,因?yàn)橹皇欠抡妫杂闷淠M開鎖系統(tǒng),若開鎖成功則繼電器磁力吸合;若開鎖失敗,則繼電器沒有反應(yīng)REF_Ref5148\r\h[7]。如圖3-2-5所示圖3-2-5繼電器開鎖電路 單片機(jī)模擬開鎖系統(tǒng)中,當(dāng)用戶輸入的密碼正確時(shí),繼電器的磁力就會(huì)吸合,從而發(fā)出咔嗒一聲,代表開鎖成功。3.2.6報(bào)警電路本次設(shè)計(jì)的電子密碼鎖預(yù)期的報(bào)警系統(tǒng)是用戶每輸入密碼錯(cuò)誤一次蜂鳴器就會(huì)發(fā)出一次響聲,如果密碼連續(xù)輸錯(cuò)了三次,那么不僅蜂鳴器發(fā)聲,還會(huì)接著向用戶的手機(jī)APP發(fā)出報(bào)警提示REF_Ref5229\r\h[8]。圖3-2-6是用蜂鳴器模塊的報(bào)警機(jī)構(gòu)仿真圖。圖3-2-6報(bào)警電路蜂鳴器工作的原理時(shí)當(dāng)外部輸入密碼錯(cuò)誤三次時(shí),系統(tǒng)給P3.7一個(gè)脈沖,通過(guò)脈沖使蜂鳴器發(fā)聲。 當(dāng)用戶選擇密碼解鎖時(shí),那么若輸入密碼錯(cuò)誤三次以上就會(huì)向手機(jī)APP發(fā)出報(bào)警提示。3.3綜合設(shè)計(jì)圖在對(duì)各個(gè)模塊有了基本的了解之后,對(duì)電子密碼鎖的設(shè)計(jì)也有了個(gè)大概的設(shè)計(jì)理念。為了方便實(shí)物制作的時(shí)候盡可能的減少錯(cuò)誤,所以先在PROTUES上將用到的模塊都集合在一個(gè)電路設(shè)計(jì)圖中,于是一個(gè)能實(shí)現(xiàn)電子密碼鎖的仿真電路圖就基本繪制完成。圖3-3即為本設(shè)計(jì)的硬件綜合設(shè)計(jì)圖。圖3-3基于單片機(jī)的電子密碼鎖設(shè)計(jì)仿真圖 在仿真電路圖制作完成后,再把程序編寫好后,在KEIL中檢查程序正確后,將程序燒錄進(jìn)PROTEUS中,在PROTEUS中點(diǎn)擊運(yùn)行之后,可以通過(guò)正確輸入密碼觀察開鎖電路是否正常,也可以通過(guò)輸入錯(cuò)誤密碼測(cè)試報(bào)警電路。屆時(shí),再根據(jù)各個(gè)電路的工作情況來(lái)進(jìn)行改進(jìn),以完善設(shè)計(jì)的功能,達(dá)到完成設(shè)計(jì)的目的。4系統(tǒng)軟件設(shè)計(jì)軟件總體設(shè)計(jì)根據(jù)這次設(shè)計(jì)的電子密碼鎖的功能需求而去確定本次設(shè)計(jì)的主要步驟,本次設(shè)計(jì)的主程序流程圖如圖4-1所示。圖4-1主程序流程圖根據(jù)這次設(shè)計(jì)的電子密碼鎖功能可知,電子密碼鎖的軟件設(shè)計(jì)問(wèn)題應(yīng)該主要有以下幾個(gè):如何輸入用戶設(shè)置的密碼,密碼的顯示,怎么存儲(chǔ)密碼,怎么實(shí)現(xiàn)人臉識(shí)別,還有怎么確定是開鎖還是報(bào)警,下面就從各部分的軟件設(shè)計(jì)來(lái)解決這些問(wèn)題。鍵盤掃描矩陣鍵盤掃描應(yīng)該能夠?qū)崿F(xiàn)以下的兩個(gè)基本要求REF_Ref5592\r\h[13]:能判斷是否有鍵按下,能確定是哪個(gè)鍵被按下。完成這兩項(xiàng)功能主要分以下三步完成:(1)判斷整個(gè)鍵盤是否有鍵按下。讓所有的行線都處于低電平狀態(tài)(即全為0),再去檢查各個(gè)列線的狀態(tài),如果列線的狀態(tài)不全是高電平(即有0有1),那就說(shuō)明有鍵被按下;要是全為高電平狀態(tài)(即全為1),那么就說(shuō)明沒有鍵被按下。(2)識(shí)別被按下的鍵的位置。先掃描每一行的值,讓每行輸出的都是低電平,再去掃描每列的值。若掃描的這一列輸出的都是高電平,就與這一行的電平相反,就說(shuō)明這一行的按鍵沒被按下;若掃描的列有高電平有低電平,那就說(shuō)明這一行有按鍵被按下。(3)查鍵值表,根據(jù)返回鍵值的信息來(lái)確定按鍵的功能。利用算法,根據(jù)第二步得到的行列的信息,來(lái)形成完整的信息,由此信息確定按鍵的鍵值。在確定鍵值的過(guò)程中,算法應(yīng)該是相同的,而計(jì)算得到的鍵值不同才能確定具體的按鍵。表4-2所示的是矩陣鍵盤各個(gè)按鍵對(duì)應(yīng)的鍵值。按鍵名稱鍵值按鍵名稱鍵值10x7e90x7d20xbe00xbb30xdeA0xdb40xeeB0xeb50x7dC0x7760xbdD0xb770xddE0xd780xedF0xe7表4-2按鍵鍵值表如圖4-2-1所示是鍵盤掃描并識(shí)別的流程圖:圖4-2-1鍵盤掃描程序流程圖從流程圖可以看出,鍵盤識(shí)別的過(guò)程是通過(guò)一行一行的掃描,如果確定了在那一行,在通過(guò)列掃描確定具體的列,在求出鍵值來(lái)確定哪一個(gè)按鍵。在實(shí)際操作的時(shí)候,有時(shí)候按鍵會(huì)因?yàn)槎秳?dòng)而在使用的時(shí)候會(huì)被當(dāng)作兩次或者兩次以上操作REF_Ref5308\r\h[9]。所以要進(jìn)行按鍵的消抖工作,常用的按鍵消抖有兩種:延時(shí)消抖和自動(dòng)去抖動(dòng)的硬件電路。本次選用了延時(shí)消抖的方法去抖動(dòng),因?yàn)檫@種方法只要執(zhí)行一段幾毫秒的子程序,檢查對(duì)一個(gè)行線的電平高低就可以確定按鍵是否按下了。圖4-2-2為CPU掃描第一行鍵盤的程序流程圖,通過(guò)行掃描就能確定哪個(gè)鍵被按下。圖4-2-2單行鍵盤掃描流程圖顯示模塊 由于設(shè)計(jì)要求輸入密碼以及密碼的正確或者錯(cuò)誤提示,這就要求顯示屏不僅要顯示數(shù)字,還需要顯示意識(shí)開鎖成功或開鎖失敗的提示字符,因此要實(shí)現(xiàn)顯示的各個(gè)功能需要多個(gè)顯示子程序。使用LCD1602的一般要先初始化,初始化就是要設(shè)置行,進(jìn)行清空屏幕、設(shè)置光標(biāo)在什么地方顯示、光標(biāo)是否閃爍、以及光標(biāo)移動(dòng)的方向。接著寫命令函數(shù),然后將想顯示的字符對(duì)應(yīng)的ASCLL碼寫入LCD中就可以顯示出來(lái)了REF_Ref5592\r\h[13]。如圖4-3是LCD1602顯示字符的程序流程圖。圖4-3顯示字符程序流程圖 顯示模塊子程序主要指根據(jù)LCD1602的命令語(yǔ)句以及它引腳的具體功能編寫,程序邏輯相當(dāng)簡(jiǎn)單。4.4密碼設(shè)置密碼設(shè)置在AT24C02中寫進(jìn)初始密碼,這個(gè)初始密碼會(huì)被保存在芯片里,每次開機(jī)用戶輸入的密碼都會(huì)直接拿來(lái)與初始密碼進(jìn)行比較,由此來(lái)判斷是否為用戶本人操作。若要修改密碼,那么之前存儲(chǔ)的密碼就會(huì)被刪除,從而寫入新的密碼,以便下次進(jìn)行密碼比較。密碼存儲(chǔ)模塊的正常運(yùn)行主要與AT24C02的寫操作方式還有讀操作方式有關(guān),它又有幾種不同的擦作方式。下面從各個(gè)不同方面來(lái)具體分析。4.4.1寫操作方式兩種寫操作方式為:字節(jié)寫和頁(yè)寫。(1)字節(jié)寫。字節(jié)寫操作主要是先由單片機(jī)發(fā)送啟動(dòng)信號(hào),然后在器件應(yīng)答后,再由單片機(jī)指定地址寫一字節(jié)數(shù)據(jù),等待器件的應(yīng)答;若器件應(yīng)答,則就可以發(fā)送8位的包含想要傳遞的信號(hào)。如果要終止這種狀態(tài),則由單片機(jī)發(fā)送終止信號(hào)即可。 本次設(shè)計(jì)中采用的是字節(jié)寫方式。圖4-4-1為字節(jié)寫的程序流程圖。圖4-4-1將字節(jié)寫入AT24C02的程序流程圖(2)頁(yè)寫。頁(yè)寫的也是需要先能應(yīng)答單片機(jī)發(fā)送的啟動(dòng)信號(hào),但它與字節(jié)寫不同的是:字節(jié)寫一次只能寫入一個(gè)字節(jié)的內(nèi)容,而頁(yè)寫一次能發(fā)送一頁(yè)的數(shù)據(jù),即8個(gè)或16個(gè)字節(jié)的數(shù)據(jù)。4.4.2讀操作方式有兩種不同的讀操作方式,一種是指定地址讀方式,另一種是指定地址連續(xù)讀方式。 本次設(shè)計(jì)中采用的是讀隨機(jī)地址內(nèi)容操作方式。程序流程圖如圖4-4-2所示。圖4-4-2讀AT24C02相應(yīng)地址內(nèi)容的程序流程圖 密碼存儲(chǔ)的功能實(shí)際上就是在AT24C02中寫入初始密碼,然后讀取外部輸入的密碼,進(jìn)行對(duì)比判斷。不過(guò)由于芯片在操作中可能接收不到主機(jī)的信號(hào)而無(wú)法應(yīng)答,所以連續(xù)寫多個(gè)數(shù)據(jù)可能會(huì)出錯(cuò),因此本次采用了一次寫一個(gè)字節(jié)讀一個(gè)字節(jié)的操作,重復(fù)多次來(lái)完成任務(wù),保證了密碼存儲(chǔ)的可靠性REF_Ref6490\r\h[11]。4.5密碼輸入用戶從鍵盤輸入的密碼應(yīng)當(dāng)首先進(jìn)行密碼的存放,然后再考慮密碼的顯示。同時(shí)還要考慮密碼的比較、修改等問(wèn)題,為了安全起見,在顯示屏上把密碼顯示為“*”REF_Ref6490\r\h[11]。密碼輸入的流程圖如圖4-5。圖4-5密碼輸入程序流程圖用戶在輸入密碼的時(shí)候,每輸入一個(gè)數(shù)字光標(biāo)后移一下,并在屏幕上顯示“*”,當(dāng)輸入密碼超過(guò)六位時(shí),程序就不再進(jìn)行處理,顯示屏上也就不會(huì)顯示多余的字符。如果用戶不小心輸錯(cuò)了密碼,可以按返回鍵刪除錯(cuò)誤的數(shù)字,若輸入為空,則按返回鍵會(huì)回到選擇輸入密碼或者改密碼的界面。4.6報(bào)警模塊報(bào)警子程序的原理就比較簡(jiǎn)單,主要就是用戶密碼輸入錯(cuò)誤一次,蜂鳴器就會(huì)發(fā)出一次響聲;如果密碼輸入錯(cuò)誤三次就會(huì)給手機(jī)APP發(fā)送報(bào)警提示信息REF_Ref6490\r\h[11]。圖4-6為報(bào)警子程序流程圖。圖4-6報(bào)警子程序流程圖5仿真的運(yùn)行和調(diào)試為了驗(yàn)證設(shè)計(jì)的可行性,最好的辦法就是先在PROTEUS上面畫出電路仿真圖,然后再在KEIL上編寫程序,確定仿真圖和程序沒有問(wèn)題后,再進(jìn)行聯(lián)合調(diào)試。 KEIL是用于單片機(jī)仿真或運(yùn)行的語(yǔ)言編程開發(fā)環(huán)境,而且有很強(qiáng)大的軟件調(diào)試功能,還能生成運(yùn)行速度比較快的程序代碼。不僅如此,他所需的內(nèi)存空間也不大,因此是可以與匯編語(yǔ)句相媲美的。PROTEUS是一種虛擬仿真軟件,用戶可以不需要硬件樣機(jī)先在電腦上將系統(tǒng)的功能及運(yùn)行過(guò)程形象化,然后畫好虛擬的電路模塊,再把提前寫好的程序燒錄進(jìn)去就可以看到單片機(jī)系統(tǒng)的運(yùn)行效果REF_Ref6660\r\h[12]。 KEIL和PROTEUS在單片機(jī)相關(guān)設(shè)計(jì)中使用十分頻繁,二者聯(lián)合仿真調(diào)試可以讓設(shè)計(jì)者清楚的了解各個(gè)器件的工作情況。并且通過(guò)二者的聯(lián)合仿真和調(diào)試,再出現(xiàn)問(wèn)題的時(shí)候,能把各個(gè)模塊分開單獨(dú)檢測(cè),并且能判斷出是否為程序的錯(cuò)誤,使得設(shè)計(jì)者能夠及時(shí)發(fā)現(xiàn)問(wèn)題并改正問(wèn)題。本次設(shè)計(jì)的聯(lián)合仿真結(jié)果如下,若用戶輸入密碼錯(cuò)誤超過(guò)三次,那么鍵盤就會(huì)鎖定,并且報(bào)警電路被激活,蜂鳴器發(fā)出警報(bào),同時(shí)手機(jī)APP接收到提示。如圖5-1是仿真結(jié)果圖。圖5-1密碼錯(cuò)誤仿真電路圖若用戶輸入密碼正確,則密碼鎖政策打開并且在顯示屏上顯示“歡迎回家”的字樣。如圖5-2是本次設(shè)計(jì)的密碼正確時(shí)的仿真電路圖。圖5-2密碼正確后的仿真圖6實(shí)物設(shè)計(jì)與制作在聯(lián)合仿真與調(diào)試沒有問(wèn)題后,本次設(shè)計(jì)就可以開始最后也是最關(guān)鍵的一個(gè)環(huán)節(jié)--實(shí)物設(shè)計(jì)與制作。由于仿真電路圖已經(jīng)能夠很好的實(shí)現(xiàn)電子密碼鎖的基本功能,因此只需要在畫好的PCB板上焊好各個(gè)模塊,就可以順利設(shè)計(jì)出一款簡(jiǎn)潔美觀又實(shí)用的實(shí)物。在本次制作的實(shí)物中,用戶輸入的密碼會(huì)以“*”的形式顯示,如圖6-1是輸入密碼時(shí)的實(shí)物圖:圖6-1密碼輸入實(shí)物圖若用戶輸入了正確的密碼,則密碼鎖正常打開,并且在屏幕顯示“Welcome”,如圖6-2是密碼正確時(shí)的實(shí)物圖:圖6-2密碼正確的實(shí)物圖若用戶輸入了錯(cuò)誤的密碼,則密碼鎖鎖定并且顯示錯(cuò)誤提示,如圖6-3是密碼錯(cuò)誤時(shí)的實(shí)物圖:圖6-3密碼錯(cuò)誤的實(shí)物圖若密碼輸入錯(cuò)誤超過(guò)了一定次數(shù),報(bào)警系統(tǒng)啟動(dòng),手機(jī)APP會(huì)提示設(shè)定的消息,手機(jī)端發(fā)送的消息無(wú)效,不反應(yīng),如圖6-4是手機(jī)APP提示的實(shí)物圖:圖6-4手機(jī)APP提示實(shí)物圖本次設(shè)計(jì)的實(shí)物制作,由于經(jīng)驗(yàn)不足,出現(xiàn)了不少問(wèn)題,但這也讓我學(xué)會(huì)了很多。首先是根據(jù)仿真圖來(lái)制作實(shí)物,但兩者還是有區(qū)別的,所以也不能盡信仿真圖,應(yīng)該根據(jù)實(shí)際情況來(lái)焊接電路板;其次是在焊接過(guò)程中,要注意電焊筆的使用,一直帶電狀態(tài)會(huì)損害電路板;最后就是在焊接的過(guò)程中要注意電路布局的工整,工整清晰的電路布局不僅能使實(shí)物看起來(lái)更加美觀而且在查找錯(cuò)誤時(shí)也更加方便。結(jié)論經(jīng)過(guò)幾個(gè)月的努力,在老師和同學(xué)的幫助下,終于設(shè)計(jì)出了一款基于單片機(jī)實(shí)現(xiàn)的智能電子密碼鎖。稱之為智能密碼鎖的原因是它具有以下幾個(gè)功能:(1)人臉識(shí)別功能,電子密碼鎖可以采用人臉解鎖,若非本人的人臉數(shù)據(jù)則不做反應(yīng);(2)密碼解鎖功能,由用戶設(shè)置六位密碼,用鍵

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論