基于STM32的電子密碼鎖系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于STM32的電子密碼鎖系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于STM32的電子密碼鎖系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于STM32的電子密碼鎖系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于STM32的電子密碼鎖系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章緒論1.1研究目的及意義基于STM32的電子密碼鎖系統(tǒng)設(shè)計(jì)有著重要的意義,主要體現(xiàn)在以下幾個(gè)方面:傳統(tǒng)的門鎖系統(tǒng)容易被鑰匙復(fù)制或者撬鎖等方式破解,而基于STM32的電子密碼鎖系統(tǒng)則采用數(shù)字密碼或指紋等身份驗(yàn)證技術(shù),極大地提高了門鎖系統(tǒng)的安全性。傳統(tǒng)的門鎖需要使用鑰匙才能開鎖,而基于STM32的電子密碼鎖系統(tǒng)則可以通過(guò)輸入密碼或者掃描指紋等方式快速開啟門鎖,極??大地提高了門鎖系統(tǒng)的使用便捷性。傳統(tǒng)的門鎖需要使用鑰匙等物理零部件,而基于STM32的電子密碼鎖系統(tǒng)則通過(guò)數(shù)字密碼或指紋等身份驗(yàn)證技術(shù)實(shí)現(xiàn)開鎖,避免了鑰匙復(fù)制等成本高昂的問(wèn)題,從而降低了成本?;赟TM32??的電子密碼鎖系統(tǒng)可以集成智能化功能,例如可與手機(jī)APP連接,實(shí)現(xiàn)遠(yuǎn)程控制,設(shè)置不同用戶權(quán)限等,提高門鎖系統(tǒng)的智能化水平;基于STM32的電子密碼鎖系統(tǒng)是一種基于嵌入式系統(tǒng)技術(shù)的創(chuàng)新設(shè)計(jì),可以推動(dòng)數(shù)字密碼、指紋識(shí)別等技術(shù)的發(fā)展和應(yīng)用,有利于促進(jìn)科技創(chuàng)新。1.2國(guó)內(nèi)外現(xiàn)狀分析2012年,陳志遠(yuǎn),朱葉承,周卓泉在《基于ST??M32的智能家居控制系統(tǒng)》論文中介紹,智能感知模塊(語(yǔ)音模塊、紅外遙控矩陣鍵盤、指紋模塊、)預(yù)先記錄相應(yīng)的密碼信息。系統(tǒng)工作時(shí),用戶通過(guò)任何感知模塊輸入密碼信息,控制器將輸入信息與存儲(chǔ)的密碼信息進(jìn)行比對(duì)[3]。2019年,趙有貴在《電子組合鎖系統(tǒng)模擬研究》論文中提出,可以使用C語(yǔ)言中的字符串比較函數(shù)實(shí)現(xiàn)密碼比對(duì),當(dāng)按下設(shè)置鍵時(shí),系統(tǒng)進(jìn)入管理員密碼輸入狀態(tài)。輸入的密碼將與EEPROM中的管理員密碼進(jìn)行比對(duì),即使密碼正確,鎖也不會(huì)打開,只會(huì)執(zhí)行管理員的權(quán)限設(shè)置。2021年,楊淑裕、鄢艷紅在《基于單片機(jī)的指紋識(shí)別電子密碼鎖系統(tǒng)設(shè)計(jì)》中提到,為了方便不同地點(diǎn)的電子密碼鎖的管理和互聯(lián),該系統(tǒng)采用ZigBee網(wǎng)絡(luò)無(wú)線通信數(shù)據(jù)傳輸方式來(lái)管理不同位置和不同地點(diǎn)的密碼鎖。ZigBee技術(shù)具有低成本、低功耗和高傳輸速率[1]。2021年,楊高強(qiáng)、李晟和張新鵬在《基于單片機(jī)的電子密碼鎖系統(tǒng)設(shè)計(jì)》中提出,密碼鎖使用ST??M32F103RCT6嵌入式單片機(jī)作為微控制器,通過(guò)大部分互連與智能感知、智能記憶與交互、智能分析和智能處理進(jìn)行交互。實(shí)現(xiàn)密碼信息的輸入、驗(yàn)證、識(shí)別、數(shù)據(jù)顯示和記錄以及系統(tǒng)重置[2]。2021年,常鳳軍、崔旭東、王晨和張玉龍?jiān)凇痘贏RMV7架構(gòu)的ATM保險(xiǎn)箱電子組合鎖控制系統(tǒng)》論文中提出,使用多傳感器模塊可以實(shí)時(shí)監(jiān)測(cè)室內(nèi)環(huán)境,并通過(guò)處理中心發(fā)出警報(bào)和智能處理。每個(gè)傳感器直接連接到控制器,處理后的數(shù)據(jù)直接通過(guò)ZigBee網(wǎng)絡(luò)傳輸?shù)絇C終端。2021年,張馮軍、王晨在《新型銀行電子組合鎖系統(tǒng)》論文中選擇了LD3320專用語(yǔ)音識(shí)別模塊,該模塊不需要外部輔助Flash和RAM,并集成了處理器和數(shù)據(jù)處理單元。LD3320基于動(dòng)態(tài)關(guān)鍵字列表識(shí)別技術(shù)。通過(guò)設(shè)置要識(shí)別的關(guān)鍵字列表并以字符形式將其傳輸?shù)絃D3320,可以識(shí)別用戶說(shuō)的關(guān)鍵字,無(wú)需其他語(yǔ)音訓(xùn)練。同年,張峰軍和王琛在《新型銀行電子密碼鎖系統(tǒng)》論文中選用了LD3320專用語(yǔ)音識(shí)別模塊,該模塊不需要外部輔助Flash和RAM,并集成了處理器和數(shù)據(jù)處理單元。LD3320基于動(dòng)態(tài)關(guān)鍵字列表識(shí)別技術(shù),通過(guò)將要識(shí)別的關(guān)鍵字列表以字符形式設(shè)置并傳輸?shù)絃D3320中,即可識(shí)別用戶說(shuō)出的關(guān)鍵字,而不需要其他語(yǔ)音訓(xùn)練。2011年SitongSunAngangTianDecai《The

DesignofElectronicCodeLock》論文中討論了他們基于可編程門陣列FPGA采用EDA技術(shù)、QuartusII6.0工作平臺(tái)和VHDL硬件描述語(yǔ)言設(shè)計(jì)的電子密碼鎖。他們采用了自頂向下的設(shè)計(jì)方法。2022年,ChengyuHu;JianxinGuo;ZhengWang;ZifanWang在《DesignofPasswordLockBasedonFingerprintRecognition》中以51單片機(jī)為基礎(chǔ)設(shè)計(jì)的一種指紋識(shí)別電子密碼鎖,結(jié)合設(shè)計(jì)要求,選用STC89C54RD+單片機(jī),指紋模塊為ZFM-40,功能豐富,可以訪問(wèn)指紋。它通過(guò)STC89C54RD+的UART功能與指紋模塊ZFM-40通信,具體交換內(nèi)容以代碼的形式實(shí)現(xiàn)。選用的液晶設(shè)備為HS12864-15C,集成度高,適合普通家庭使用。通過(guò)3線制串行數(shù)據(jù)接口和單片機(jī)進(jìn)行數(shù)據(jù)傳輸,在HS12864-15C上顯示相應(yīng)的接口和數(shù)據(jù),如:主菜單、管理員界面、開鎖和錯(cuò)誤信息等,方便用戶查看和使用。當(dāng)今社會(huì)科學(xué)技術(shù)發(fā)展迅速,已經(jīng)發(fā)展成一套功能齊全,能夠提供安全的保障,現(xiàn)代化的智能管理系統(tǒng)。現(xiàn)在電子密碼鎖得到很大的發(fā)展,取得了較大的進(jìn)步,但是還是存在某些問(wèn)題,需要對(duì)這些問(wèn)題解決。1.3主要研究?jī)?nèi)容本文設(shè)計(jì)了一套基于ST??M32的電子密碼??鎖系統(tǒng)??。STM32單片機(jī)搭配指紋模塊、按鍵模塊、蜂鳴器模塊等。用戶可以通過(guò)按鍵、指紋輸入密碼,如果連續(xù)輸入3次錯(cuò)誤的密碼,系統(tǒng)將會(huì)響起蜂鳴器或報(bào)警器,并自動(dòng)鎖死,用戶可以通過(guò)管理員密碼來(lái)重置已經(jīng)忘記的密碼,本系??統(tǒng)不僅??具有通??常意義??上的安??全防盜??功能,??使用戶??擺脫室??內(nèi)安防??問(wèn)題的??困擾。1.4論文構(gòu)成論文在開始部分??對(duì)系統(tǒng)??管理開??發(fā)背景??中,使??用相應(yīng)??的開發(fā)??技術(shù)進(jìn)??行論述??,在對(duì)??系統(tǒng)的??生產(chǎn)和??市場(chǎng)需??求等分??析,完??成詳細(xì)??的論述??,最后??實(shí)現(xiàn)系??統(tǒng)各個(gè)??模塊的??設(shè)計(jì)、??編輯,??實(shí)現(xiàn)對(duì)??功能模??塊的搭??建,最??后在這??些基礎(chǔ)??上,對(duì)??其開發(fā)??流程完??成論述??。本論??文的組??織結(jié)構(gòu)如下。第1章主要的內(nèi)容是探討系統(tǒng)開發(fā)的現(xiàn)狀,包括對(duì)國(guó)內(nèi)外情況的分析和對(duì)開發(fā)意義的研究第2章主要內(nèi)容是系統(tǒng)開發(fā)中使用的核心技術(shù)和開發(fā)平臺(tái),以及對(duì)需求分析的探討。第3章主要是分析系統(tǒng)硬件狀況。第4章主要是解釋了系統(tǒng)軟件設(shè)計(jì)的邏輯。第5章主要是系統(tǒng)功能實(shí)現(xiàn)的測(cè)試過(guò)程。第6章主要是對(duì)系統(tǒng)設(shè)計(jì)的回顧與未來(lái)發(fā)展趨勢(shì)的展望。

第2章系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)2.1設(shè)計(jì)方案本設(shè)計(jì)是以ST??M32F103C8T6單片機(jī)為控制??核心,??指紋,??顯示屏??,繼電??器,獨(dú)??立按鍵??與單片??機(jī)??,實(shí)現(xiàn)??電子密??碼鎖。系統(tǒng)框圖如下:圖2-1結(jié)構(gòu)框圖2.2功能需求分析傳感器:計(jì)算機(jī)技術(shù)與通信技術(shù)之所以被公認(rèn)為是信息技術(shù)的三大主柱,其原因在于硬件系統(tǒng)自身并不能直接獲得所需要的各類信息。所以在硬件系統(tǒng)中常利用傳感器采集多種生物,物理及化學(xué)量的測(cè)量結(jié)果及其他數(shù)據(jù)信息。指紋模塊:AS608指紋模塊為常見機(jī)型。模塊中有串口,USB通信接口使得用戶不需要對(duì)復(fù)雜圖像處理及指紋識(shí)別算法進(jìn)行深入學(xué)習(xí)。用戶只要根據(jù)簡(jiǎn)單串口或者USB通信協(xié)議對(duì)模塊進(jìn)行控制,就可以實(shí)現(xiàn)對(duì)指紋進(jìn)行采集并進(jìn)行識(shí)別操作。按鍵模塊:按鍵模塊所采用的型號(hào)TS-1109K按鍵模塊,按鍵需要具備開鎖功能,即當(dāng)用戶輸入正確的密碼或指紋信息后,按下開鎖按鍵即可實(shí)現(xiàn)門鎖開啟的功能;按鍵需要具備取消功能,即當(dāng)用戶輸入錯(cuò)誤的密碼或指紋信息時(shí),可以通過(guò)按下取消按鍵取消本次操作,重新輸入信息;按鍵需要具備設(shè)置功能,即當(dāng)管理員需要設(shè)置新的密碼或指紋時(shí),可以通過(guò)按下設(shè)置按鍵進(jìn)入設(shè)置模式,進(jìn)行相關(guān)操作。顯示屏模塊:顯示屏模塊所使用的是一款尺寸為0.96英寸的OLED顯示器,特點(diǎn)顯示屏需要能夠??顯示密??碼輸入??、操作??結(jié)果、??系統(tǒng)狀??態(tài)等信??息,以??便了解系??統(tǒng)的運(yùn)??行狀態(tài)??和操作??結(jié)果。蜂鳴器模塊:蜂鳴器需要具??備發(fā)出??聲音的??提示功??能,以??提醒用??戶密碼??輸入是??否正確??或者系??統(tǒng)狀態(tài)??是否正??常。繼電器模塊:繼電器可以通??過(guò)電磁??吸合和??斷開的??方式控??制電源??的開關(guān)??,從而??控制鎖??的開關(guān)??。繼電??器可以??通過(guò)控??制電流??和電壓??等參數(shù)??,保護(hù)??系統(tǒng)中??的電子??元件,??防止電??子元件??因過(guò)流??或過(guò)壓??而損壞??。2.3單片機(jī)型號(hào)選型方案一:51單片機(jī)所具有的EEPROM,AD功能需依靠擴(kuò)展來(lái)實(shí)現(xiàn),加重了軟,硬件的負(fù)擔(dān);盡管I/O腳很容易用,但是在高電平下沒(méi)有輸出能力是51系列單片機(jī)最薄弱的地方;運(yùn)行速度太慢,尤其是雙數(shù)據(jù)指針。如果能夠加以改進(jìn),可以為編程提供極大方便;51單片機(jī)的保護(hù)能力極差,極易將芯片燒毀;目前,它已大量地應(yīng)用于教學(xué)場(chǎng)合,也應(yīng)用于性能要求并不太高的情況。方案二:32單片機(jī)可以直接??驅(qū)動(dòng)數(shù)??碼管顯??示且外??電路簡(jiǎn)??單,它??的A/??D為1??0位,??能滿足??精度要??求。具??有在線??調(diào)試及??編程(??ISP??)功能??。并具備低工作電壓,低功耗,高驅(qū)動(dòng)能力和高工作時(shí)的性能。32系列單片機(jī)I/O口采用雙向方式,輸出電路采用CMOS互補(bǔ)推挽輸出電路。在I/O腳中加入方向寄存器來(lái)設(shè)定輸入輸出狀態(tài),解決了51系列I/O腳在高電平時(shí)輸入輸出同態(tài)問(wèn)題。當(dāng)置??位1時(shí)??為輸入??狀態(tài),??且不管??該腳呈??高電平??或低電??平,對(duì)??外均呈??高阻狀??態(tài);置??位0時(shí)??為輸出??狀態(tài),??不管該??腳為何??種電平??,均呈??低阻狀??態(tài),有??相當(dāng)?shù)??驅(qū)動(dòng)能??力,低??電平吸??入電流??達(dá)25??mA,??高電平??輸出電流可達(dá)20mA。通過(guò)AT89C51和ST??M32進(jìn)行對(duì)比,根據(jù)系統(tǒng)要求選擇相應(yīng)的ST??M32單片機(jī)。圖2-2單片機(jī)實(shí)物圖

第3章系統(tǒng)硬件部分設(shè)計(jì)3.1系統(tǒng)主要功能模塊設(shè)計(jì)基于STM32的電子密碼鎖系統(tǒng)設(shè)計(jì)主要包括了指紋模塊、顯示屏模塊、蜂鳴器模塊和按鍵模塊以及單片機(jī)最小系統(tǒng)設(shè)計(jì)。3.1.1STM32單片機(jī)電路設(shè)計(jì)STM32F103C8T6單片機(jī)是一款性能良好、功能豐富的STM32系列單片機(jī),適用于中等復(fù)雜度的應(yīng)用需求。它提供了強(qiáng)大的處理能力、豐富的外設(shè)和通信接口,以及低功耗和高效的電源管理功能,使其成為嵌入式系統(tǒng)開發(fā)中的一種常用選擇。以下是STM32F103C8T6單片機(jī)主要性能參數(shù):1體系結(jié)構(gòu):本單片機(jī)采用32位體系結(jié)構(gòu),以ARMCortex-M3內(nèi)核為核心,設(shè)計(jì)高度集成。2.主頻:?jiǎn)纹瑱C(jī)主頻可以達(dá)到72MHz,提供了優(yōu)秀的計(jì)算性能以滿足高性能的要求。3存儲(chǔ)器:?jiǎn)纹瑱C(jī)配備64KB的Flash存儲(chǔ)器,用于存儲(chǔ)程序代碼和數(shù)據(jù)。同時(shí)還擁有20KB的SRAM,用于數(shù)據(jù)的臨時(shí)存儲(chǔ)。4外設(shè)和接口:單片機(jī)具備2個(gè)UART接口,可用于串行數(shù)據(jù)通信。另有1個(gè)SPI接口,用于高速串行數(shù)據(jù)傳輸。同時(shí)還配備2個(gè)I2C接口,可連接外部設(shè)備和傳感器。此外,單片機(jī)還集成了1個(gè)12位的ADC模數(shù)轉(zhuǎn)換器,提供最多16個(gè)通道,用于采集模擬信號(hào)。5多個(gè)定時(shí)器,包括通用定時(shí)器、高級(jí)定時(shí)器和基本定時(shí)器,用于實(shí)現(xiàn)精確的時(shí)間控制和事件觸發(fā)。6.低功耗模式:支持睡眠、停止、待機(jī)等各種低功耗模式,盡可能減少功耗,提高電池壽命。7電源管理:它能夠提供高效的電源管理功能。PMU包括電源監(jiān)測(cè)、供電選擇和電源調(diào)節(jié)等功能,確保系統(tǒng)電源的穩(wěn)定和高效運(yùn)行。8封裝類型:常見的封裝類型是LQFP(低輪廓正方形封裝),引腳數(shù)為48,適合于面向成本和尺寸敏感的應(yīng)用。綜上所述,STM32F103C8T6單片機(jī)具備高性能、豐富的外設(shè)接口、大容量存儲(chǔ)器、低功耗和強(qiáng)大的開發(fā)支持等優(yōu)勢(shì),適用于各種嵌入式系統(tǒng)和電子設(shè)備的開發(fā)。它是一款可靠、靈活和功能豐富的單片機(jī)選擇。圖3-1單片機(jī)電路圖3.1.2晶振電路功能模塊設(shè)計(jì)首先,選擇適合的晶振。STM32F103C8T6單片機(jī)的主晶振頻率可以在4MHz至16MHz之間選擇。根據(jù)您的應(yīng)用需求和系統(tǒng)時(shí)鐘要求,選擇適當(dāng)?shù)木д耦l率。將晶振的兩個(gè)引腳(通常標(biāo)有"XIN"和"XOUT")連接到單片機(jī)的相應(yīng)引腳。將晶振的一個(gè)引腳(XIN)連接到單片機(jī)的引腳PA9(也可以是其他可用的GPIO引腳),將另一個(gè)引腳(XOUT)連接到單片機(jī)的引腳PA10(或其他可用的GPIO引腳)。為了穩(wěn)定晶振的振蕩,您需要在晶振引腳和地之間放置兩個(gè)電容。典型的值是10pF至33pF之間,具體數(shù)值取決于所選的晶振和應(yīng)用環(huán)境。將一個(gè)電容連接到XIN引腳和地之間,將另一個(gè)電容連接到XOUT引腳和地之間。在單片機(jī)的代碼中,使用相應(yīng)的寄存器配置系統(tǒng)時(shí)鐘源和分頻器。通過(guò)使用相關(guān)的寄存器,您可以選擇使用外部晶振作為系統(tǒng)時(shí)鐘源,并配置適當(dāng)?shù)姆诸l比來(lái)獲得所需的時(shí)鐘頻率。圖3-2晶振電路功能模塊原理圖3.1.3復(fù)位電路功能模塊設(shè)計(jì)對(duì)于STM32F103C8T6單片機(jī)的復(fù)位電路設(shè)計(jì),以下是一種常見的示例:連接一個(gè)電阻(通常為10kΩ)從VDD引腳到NRST引腳,以確保NRST引腳保持在高電平。連接一個(gè)電容(通常為100nF)從NRST引腳到地,以提供復(fù)位電路的去抖動(dòng)功能。連接一個(gè)按鈕或開關(guān),將一個(gè)端子連接到NRST引腳,另一個(gè)端子連接到地。這樣,在按下按鈕時(shí),NRST引腳會(huì)被拉低,觸發(fā)復(fù)位操作。在單片機(jī)上電時(shí),會(huì)自動(dòng)執(zhí)行上電復(fù)位操作。確保為單片機(jī)提供穩(wěn)定和干凈的電源,以確保正常的上電復(fù)位。圖3-3復(fù)位電路功能模塊原理圖3.1.4電源電路功能模塊設(shè)計(jì)STM32F103C8T6單片機(jī)設(shè)計(jì)電源電路時(shí),以下是一種常見的電路設(shè)計(jì):將單片機(jī)的VDD引腳連接到正常工作電壓的電源線。將單片機(jī)的VSS引腳連接到地線,以提供電路的共地參考。在單片機(jī)的VDD和VSS之間添加電源濾波電容,以濾除電源線上的高頻噪聲。典型的電容值為100nF,可以根據(jù)具體需求選擇不同的電容值。為了提供穩(wěn)定的電源電壓,可以在電源線和單片機(jī)之間添加穩(wěn)壓器電路。在電源管理方面,需要選擇適當(dāng)?shù)姆€(wěn)壓器,例如線性穩(wěn)壓器或開關(guān)穩(wěn)壓器,來(lái)將輸入電壓穩(wěn)定為單片機(jī)所需的工作電壓。這樣可以確保單片機(jī)在穩(wěn)定的電壓條件下正常運(yùn)行。圖3-4電源電路功能模塊原理圖3.1.5指紋功能模塊設(shè)計(jì)在基于ST??M32的電子密碼鎖系統(tǒng)中,指紋模塊所采用的型號(hào)為AS608,其硬件設(shè)計(jì)需要考慮以下方面。指紋模塊需要與ST??M32微控制器進(jìn)行通信,通信接口可以采用串口、I2C或SPI等協(xié)議。指紋模塊需要配備??高質(zhì)量??的指紋??傳感器??,以保??證指紋??識(shí)別的??精度和??穩(wěn)定性。AS608指紋模塊的主要參數(shù)如下:1傳感器類型:光學(xué)傳感器2分辨率:508

DPI(每英寸點(diǎn)數(shù))3指紋圖像像素尺寸:208像素

×

288像素4識(shí)別速度:通常在0.5秒內(nèi)完成識(shí)別5識(shí)別角度:360度全向識(shí)別6模板容量:通常支持300個(gè)指紋模板的存儲(chǔ)7虛擬圖像抑制(Vimage):用于防止假指紋的攻擊8差錯(cuò)率:通常低于0.001%的誤識(shí)率(FAR)9功耗:典型功耗在120mA以下圖3-5指紋識(shí)別系統(tǒng)設(shè)計(jì)實(shí)物圖綜上所述,指紋模塊所采用的是AS608指紋模塊,通過(guò)指??紋模塊??接口、??指紋傳??感器、??指紋存??儲(chǔ)器、??指紋算??法等實(shí)現(xiàn)指紋識(shí)別功能。圖3-6指紋識(shí)別系統(tǒng)設(shè)計(jì)原理圖3.1.6顯示屏功能模塊設(shè)計(jì)基于STM32的電子密碼鎖系統(tǒng)中,顯示屏模塊通常用于顯示系統(tǒng)狀態(tài)、密碼輸入和指紋識(shí)別結(jié)果等信息,其硬件設(shè)計(jì)需要考慮以下方面:顯示屏類型:顯示屏可以采用LCD、LED、OLED等類型,不同類型的顯示屏有不同的顯示效果和功耗特點(diǎn)。顯示屏接口:顯示屏需要與STM32微控制器進(jìn)行通信,通信接口可以采用SPI、I2C或串口等協(xié)議。顯示控制器:顯示器需要一個(gè)顯示控制器來(lái)支持圖形和文本等內(nèi)容的顯示。顯示屏的主要參數(shù)如下:1尺寸:0.96英寸2技術(shù):OLED(有機(jī)發(fā)光二極管)3分辨率:通常為128x64像素或更低4對(duì)比度:高對(duì)比度,顯示深黑色和鮮亮的顏色5可視角度:廣視角,圖像在不同角度下保持清晰度和顏色鮮艷度6響應(yīng)速度:快速響應(yīng),適合顯示動(dòng)態(tài)內(nèi)容和高刷新率7自發(fā)光:每個(gè)像素都是自發(fā)光的,不需要背光模塊8功耗:低功耗,只有在需要顯示內(nèi)容時(shí)才發(fā)光圖3-7顯示屏功能模塊實(shí)物圖綜上所述,顯示屏模塊所使用的是一款尺寸為0.96英寸的OLED顯示器,顯示屏應(yīng)能夠呈現(xiàn)與密碼輸入、操作結(jié)果和系統(tǒng)狀態(tài)相關(guān)的信息,從而使用戶能夠了解系統(tǒng)的運(yùn)行方式以及他們的操作所帶來(lái)的結(jié)果。圖3-8顯示屏功能模塊原理圖3.1.7按鍵功能模塊設(shè)計(jì)在基于ST??M32的電子密碼鎖系??統(tǒng)中,??按鍵模??塊通常??用于實(shí)??現(xiàn)用戶??的密碼??輸入,??其硬件??設(shè)計(jì)需??要考慮??以下方面:按鍵需要與ST??M32微控制器進(jìn)行通信,通信接口可以采用GPIO口、矩陣鍵盤接口等協(xié)議。按鍵排列方式需要??與系統(tǒng)??設(shè)計(jì)相??適應(yīng),??通常采??用行列??式矩陣??按鍵、??獨(dú)立式??按鍵等方式。按鍵的主要參數(shù)如下:1連接器類型:針腳連接器2電路設(shè)計(jì):包含按鍵開關(guān)和相關(guān)電路元件3接口協(xié)議:GPIO接口4功能:實(shí)現(xiàn)啟動(dòng)、停止和選擇等功能5可靠性和耐久性:設(shè)計(jì)考慮了長(zhǎng)時(shí)間和頻繁使用的要求6簡(jiǎn)單易用:提供簡(jiǎn)單直觀的用戶交互方式圖3-9按鍵功能模塊實(shí)物圖綜上所述,按鍵模塊在基于ST??M32的電子密碼鎖系統(tǒng)中需要考慮按鍵數(shù)量、按鍵類型、按鍵接口、按鍵排??列方式、按鍵反饋、供電和電源管理以及尺寸和安裝等方面的硬件設(shè)計(jì)。圖3-10按鍵功能模塊原理圖3.1.8蜂鳴器功能模塊設(shè)計(jì)在基于ST??M32的電子密碼鎖系統(tǒng)??中,蜂??鳴器通??常用于??發(fā)出聲??音提示??用戶輸??入密碼??的正確??性。蜂鳴器主要參數(shù)如下:1工作電壓:一般為3V至12V,蜂鳴器采用電壓為5V。2頻率范圍:通常在1kHz至4kHz之間,不同型號(hào)的蜂鳴器可能有不同的頻率范圍。3聲壓級(jí):以分貝(dB)為單位衡量,表示蜂鳴器產(chǎn)生的聲音的音量大小。常見的聲壓級(jí)范圍是70dB至100dB。4響應(yīng)時(shí)間:表示蜂鳴器從接收到驅(qū)動(dòng)信號(hào)到開始發(fā)聲的時(shí)間。在幾毫秒至幾十毫秒之間。圖3-11蜂鳴器功能模塊實(shí)物圖以??下是蜂??鳴器模??塊的硬??件設(shè)計(jì)步驟:確定蜂鳴器的型號(hào)和工作電壓:常用的蜂鳴器類型有有源與無(wú)源之分,有源蜂鳴器內(nèi)置于驅(qū)動(dòng)電路中,僅需輸入信號(hào)就能發(fā)出聲,無(wú)源蜂鳴器則需外接驅(qū)動(dòng)電路。本文可選擇工作電壓3.3V或者5V的有源蜂鳴器。確定驅(qū)動(dòng)電路:由于有源蜂鳴器內(nèi)置驅(qū)動(dòng)電路,因此只需要通過(guò)一個(gè)GPIO口連接蜂鳴器即可。在ST??M32中,可以使用定時(shí)器或GPIO輸出來(lái)驅(qū)動(dòng)蜂鳴器,這里我們選擇GPIO輸出。具體來(lái)說(shuō),將蜂鳴器的正極連接到一個(gè)GPIO口,將負(fù)極連接到GND。圖3-12蜂鳴器功能模塊原理圖3.1.9繼電器功能模塊設(shè)計(jì)繼電器一般包括鐵芯,線圈,銜鐵,觸點(diǎn)簧片。當(dāng)線圈兩端加一定電壓后,線圈內(nèi)就有一定電流通過(guò),由此引起電磁效應(yīng)。電磁力會(huì)克服返回彈簧拉力而吸引銜鐵接近鐵芯。這將造成銜鐵動(dòng)觸點(diǎn)和靜觸點(diǎn)(通常是常開觸點(diǎn))之間的接觸關(guān)閉。線圈停電后電磁吸力消失,銜鐵在彈簧反作用力下回到原位置,動(dòng)觸點(diǎn)和原靜觸點(diǎn)(通常是常閉觸點(diǎn))脫離打開。圖3-13繼電器原理圖第4章軟件系統(tǒng)設(shè)計(jì)4.1軟件主流程圖在程序開始執(zhí)行時(shí),先對(duì)單片機(jī)進(jìn)行初始化,這樣可以設(shè)置相應(yīng)的輸入/輸出端口和中斷寄存器,以便后續(xù)操作能夠正常進(jìn)行。圖4-1系統(tǒng)軟件主流程圖4.2指紋程序的設(shè)計(jì)基于ST??M32的電子密碼鎖系統(tǒng)可以使用指紋識(shí)別作為一種身份驗(yàn)證方法。指紋識(shí)別需要一個(gè)指紋模塊來(lái)采集指紋圖像,并使用算法將圖像轉(zhuǎn)換為特征值。以下是基于ST??M32的電子密碼鎖系統(tǒng)中指紋軟件的設(shè)計(jì)流程:圖4-2指紋流程圖當(dāng)用戶需要解鎖時(shí),他們會(huì)將手指放在指紋模塊上,該模塊將捕獲指紋圖像并將其與存儲(chǔ)在ST??M32芯片中的指紋模板進(jìn)行比較。硬件接口需要使用ST??M32的串口或SPI接口來(lái)連接指紋模塊,并使用GPIO控制模塊上的其他引腳。4.3顯示屏程序的設(shè)計(jì)首先需要通過(guò)ST??M32的SPI或其他接口初始化顯示屏。通常需要配置顯示屏分辨率、像素格式等參數(shù),并在顯示屏上顯示歡迎界面。在系統(tǒng)運(yùn)行時(shí),需要在顯示屏上顯示當(dāng)前系統(tǒng)狀態(tài),如待機(jī)、輸入密碼、驗(yàn)證指紋、開鎖成功等信息。這些信息可以通過(guò)調(diào)用顯示屏驅(qū)動(dòng)程序中的函數(shù),在顯示屏上顯示相應(yīng)的文本和圖標(biāo)。密碼輸入框是一個(gè)用于用戶輸入密碼的界面,它可以在屏幕上顯示,并顯示用戶當(dāng)前輸入的數(shù)字。用戶可以使用按鍵或其他輸入設(shè)備輸入數(shù)字,并使用顯示屏上的光標(biāo)指示當(dāng)前輸入位置。在基于ST??M32的電子密碼鎖系統(tǒng)中,顯示屏可以用于顯示當(dāng)前系統(tǒng)狀態(tài)、密碼輸入、指紋識(shí)別結(jié)果等信息。以下是基于ST??M32的電子密碼鎖系統(tǒng)中顯示屏軟件的設(shè)計(jì)流程:圖4-3顯示屏流程圖需要注意的是,顯示屏的驅(qū)動(dòng)程序需要與具體的顯示屏芯片和顯示屏接口匹配。在設(shè)計(jì)和實(shí)現(xiàn)顯示屏驅(qū)動(dòng)程序時(shí),需要考慮顯示屏的特性和性能,如分辨率、像素密度、顯示速度、顯示色彩深度等。同時(shí),為了提高系統(tǒng)的可靠性和穩(wěn)定性,還需要進(jìn)行充分的測(cè)試和驗(yàn)證。4.4按鍵程序的設(shè)計(jì)使用ST?M32的GPIO口來(lái)檢測(cè)按鍵,首先要初始化GPIO口,配置成輸入模式。同時(shí)還需對(duì)GPIO口上下拉阻進(jìn)行設(shè)定,保證按鍵沒(méi)有按動(dòng)時(shí)GPIO口輸入電平維持高電平或者低電平。這就保證了按鍵不被觸發(fā)情況下GPIO口始終處于平穩(wěn)狀態(tài)。這樣可以防止電路中出現(xiàn)浮動(dòng)電平,從而保證按鍵的可靠性和穩(wěn)定性。在系統(tǒng)運(yùn)行時(shí),需要定時(shí)檢測(cè)按鍵的狀態(tài)。在基于ST??M32的電子密碼鎖系統(tǒng)中,按鍵用于輸入密碼、進(jìn)入管理員模式、開鎖等操作。以下是基于ST??M32的電子密碼鎖系統(tǒng)中按鍵軟件的設(shè)計(jì)流程:圖4-4按鍵程序流程圖需要注意的是,不同的按鍵可能需要不同的處理方式,如短按、長(zhǎng)按、雙擊等,因此在設(shè)計(jì)和實(shí)現(xiàn)按鍵處理程序時(shí)需要充分考慮這些情況。同時(shí),為了提高系統(tǒng)的可靠性和穩(wěn)定性,還需要進(jìn)行充分的測(cè)試和驗(yàn)證。4.5蜂鳴器程序的設(shè)計(jì)在基于ST??M32的電子密碼鎖系統(tǒng)中,蜂鳴器可以用于提示用戶操作結(jié)果,如開鎖成功或失敗等。以下是基于ST??M32的電子密碼鎖系統(tǒng)中蜂鳴器軟件的設(shè)計(jì)流程:圖4-5蜂鳴器軟件流程圖需要注意的是,蜂鳴器的控制程序需要根據(jù)具體的蜂鳴器類型和工作條件進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)。在實(shí)現(xiàn)過(guò)程中,需要充分考慮蜂鳴器的響應(yīng)時(shí)間和穩(wěn)定性,并且需要進(jìn)行充分的測(cè)試和驗(yàn)證,以提高系統(tǒng)的可靠性和穩(wěn)定性。4.6繼電器程序的設(shè)計(jì)繼電器是一種電控開關(guān)設(shè)備,它可以通過(guò)軟件程序進(jìn)行控制。首先,將繼電器正確連接到微控制器上。繼電器有控制端和繼電器負(fù)載端??刂贫诉B接到微控制器的IO口,而負(fù)載端連接到需要控制的電路或設(shè)備。以下是繼電器的軟件程序軟件的設(shè)計(jì)流程:圖4-6繼電器軟件流程圖繼電器是一種電氣開關(guān)裝置,用于控制高電壓/高電流電路。軟件程序設(shè)計(jì)可以通過(guò)控制繼電器的驅(qū)動(dòng)電路來(lái)實(shí)現(xiàn)對(duì)繼電器的操作。4.6本章小結(jié)分析系統(tǒng)的功能,討論各個(gè)功能模塊的要求,并對(duì)這些功能模塊的設(shè)計(jì)進(jìn)行流程化,這可以確保系統(tǒng)的完整性,使其能夠有效地實(shí)現(xiàn)相應(yīng)的功能。這樣做可以方便后期的系統(tǒng)開發(fā),減少后期的工作量。第5章系統(tǒng)測(cè)試5.1系統(tǒng)實(shí)物圖圖5-1系統(tǒng)完整實(shí)物圖5.2測(cè)試目的軟件測(cè)試的目的是旨在找出系統(tǒng)中可能存在的不足,盡可能多地通過(guò)破壞性強(qiáng)的試驗(yàn)過(guò)程來(lái)暴露軟件存在的誤差,從而增強(qiáng)其完整性。所以在測(cè)試階段檢測(cè)出較多問(wèn)題可以較好的檢測(cè)出軟件存在的不足并加以解決。盡管在測(cè)試過(guò)程中發(fā)現(xiàn)錯(cuò)誤的數(shù)量可能會(huì)讓人感到不舒服,但這是為了確保軟件的質(zhì)量,并最終提供更好的用戶體驗(yàn)。因此,軟件測(cè)試不是為了演示軟件的正確功能,而是為了提高軟件的完整性。5.3按鍵功能測(cè)試按鍵模塊如圖所示5-2所示圖5-2按鍵模塊實(shí)物圖如圖5-3顯示屏實(shí)物圖所示,當(dāng)輸入密碼時(shí),系統(tǒng)默認(rèn)密碼為"123456",并在認(rèn)證成功后,顯示屏將顯示“授權(quán)進(jìn)入”,表明已獲得授權(quán)進(jìn)入系統(tǒng)。圖5-3顯示屏實(shí)物圖當(dāng)遇到密碼遺忘情況時(shí),我們提供了一種備用選項(xiàng)。通過(guò)輸入超級(jí)密碼"131459",您將進(jìn)入管理員超級(jí)模式。此時(shí),如圖5-4將顯示一個(gè)輸入新密碼的選項(xiàng),您可以在此處輸入新密碼以修改密碼。圖5-4顯示屏實(shí)物圖在密碼輸入過(guò)程中,假如不小心輸入了錯(cuò)誤的一位密碼,您可以使用鍵盤上的“*”鍵來(lái)刪除該位密碼。此外,若您想刪除所有已輸入的密碼,可以按下“#”鍵來(lái)清除所有已輸入的密碼信息。然而,若連續(xù)三次輸入錯(cuò)誤密碼,為確保系統(tǒng)安全,按鍵將被鎖定,同時(shí)蜂鳴器將發(fā)出警報(bào)聲。這一安全機(jī)制旨在防止未經(jīng)授權(quán)的訪問(wèn)嘗試,請(qǐng)?jiān)谳斎朊艽a時(shí)謹(jǐn)慎操作,并確保準(zhǔn)確性,以避免誤操作導(dǎo)致的不便和延誤。5.4指紋功能測(cè)試指紋模塊如圖所示5-5所示圖5-5指紋模塊實(shí)物圖在按鍵上當(dāng)按下按鍵上的C鍵時(shí),系統(tǒng)將進(jìn)入指紋錄入模式。這意味著可以通過(guò)指紋識(shí)別來(lái)增加額外的安全層級(jí)。如圖5-6所示將展示一個(gè)添加指紋的界面,提供了便捷的方式來(lái)錄入您的指紋信息。通過(guò)此功能,可以將獨(dú)特的生物特征與電子密碼鎖關(guān)聯(lián)起來(lái),以確保只有授權(quán)的個(gè)人才能訪問(wèn)。指紋錄入是一項(xiàng)先進(jìn)的技術(shù),它為您提供了無(wú)需記憶密碼的便利,并提供了更高水平的身份驗(yàn)證。圖5-6指紋錄入示例圖當(dāng)您按下鍵盤上的D鍵時(shí),系統(tǒng)將進(jìn)入指紋刪除模式。這意味著您可以刪除之前錄入的指紋信息,以便對(duì)系統(tǒng)中的身份驗(yàn)證進(jìn)行維護(hù)和管理。如圖5-7所示,顯示屏將展示一個(gè)指紋刪除界面,以供您執(zhí)行相應(yīng)的操作。通過(guò)這項(xiàng)功能,您可以靈活地管理系統(tǒng)中存儲(chǔ)的指紋數(shù)據(jù),確保只有授權(quán)的指紋可以用于身份驗(yàn)證。這有助于防止未經(jīng)授權(quán)的訪問(wèn),并提高系統(tǒng)的整體安全性。'圖5-7指紋刪除示例圖第6章總結(jié)與展望本章總結(jié)了整個(gè)系統(tǒng)開發(fā)的過(guò)程,包括選題、開發(fā)和項(xiàng)目完成后的心得體會(huì)。整個(gè)開發(fā)過(guò)程讓我受益匪淺,從選題開始到項(xiàng)目完成,都是寶貴的經(jīng)驗(yàn)?;赟T??M32的電子密碼鎖系統(tǒng)是一種高效、安全、實(shí)用的現(xiàn)代化安全保障系統(tǒng),其具有密碼輸入、指紋識(shí)別、顯示屏、按鍵和蜂鳴器等多種功能,能夠滿足用戶的各種需求。以下是基于ST??M32的電子密碼鎖系統(tǒng)設(shè)計(jì)的總結(jié):設(shè)計(jì)電子密碼鎖系統(tǒng)時(shí),需要考慮整體框架設(shè)計(jì)、硬件選型、模塊劃分、通信協(xié)議等方面。系統(tǒng)應(yīng)具備擴(kuò)展性、可靠性和安全性。硬件設(shè)計(jì)包括選擇適當(dāng)?shù)男酒鞲衅?、顯示屏等設(shè)備,并考慮電路板的可靠性和安全性。軟件設(shè)計(jì)涉及編寫程序代碼,實(shí)現(xiàn)密碼輸入、指紋識(shí)別、顯示屏、按鍵和蜂鳴器等功能,考慮穩(wěn)定性、安全性和可擴(kuò)展性。測(cè)試和驗(yàn)證階段包括單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試,以確保系統(tǒng)滿足需求、質(zhì)量和可靠性。綜上所述,基于ST??M32的電子密碼鎖系統(tǒng)設(shè)計(jì)需要考慮多種因素,包括硬件設(shè)備、程序代碼、系統(tǒng)性能和安全性等。只有在充分考慮這些因素的基礎(chǔ)上,才能設(shè)計(jì)出高效、安全、實(shí)用的電子密碼鎖系統(tǒng)?;赟T??M32的電子密碼鎖系統(tǒng)設(shè)計(jì)在未來(lái)還有很大的發(fā)展空間和應(yīng)用前景。以下是基于ST??M32的電子密碼鎖系統(tǒng)設(shè)計(jì)的展望:未來(lái)基于ST??M32的電子密碼鎖系統(tǒng)設(shè)計(jì)將注重更高的安全性,采用多種身份認(rèn)證方式和強(qiáng)化數(shù)據(jù)加密等措施。此外,系統(tǒng)將增加更多功能,如智能家居控制和遠(yuǎn)程控制。通過(guò)人工智能等技術(shù)實(shí)現(xiàn)自動(dòng)化控制和智能化管理,提高便利性和效率。同時(shí),系統(tǒng)將具備更高的擴(kuò)展性,能夠與其他系統(tǒng)無(wú)縫集成,滿足不同應(yīng)用場(chǎng)景需求??偠灾?,未來(lái)的基于ST??M32的電子密碼鎖系統(tǒng)將提供更安全、便捷、智能的生活體驗(yàn)。

參考文獻(xiàn)[1]楊淑裕,鄢艷紅.基于單片機(jī)的指紋識(shí)別電子密碼鎖系統(tǒng)的設(shè)計(jì)[J].[2]楊高強(qiáng),李晟,張新鵬.基于單片機(jī)的電子密碼鎖系統(tǒng)設(shè)計(jì)[J].應(yīng)用科學(xué)學(xué)報(bào),2021.[3]陳志遠(yuǎn),朱葉承,周卓泉等.一種基于ST??M32智能家居控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2019.[4]張洋,劉軍,嚴(yán)漢寧等.原子教你玩ST??M32.北京航空航天大學(xué)出版社,2021.[5]李曉晗,李峰,高鵬宇等.基于LD3320語(yǔ)音識(shí)別和NRF2401無(wú)線通信的家居節(jié)能照明開關(guān)[J]電子世界,2021.[6]孫煒程,周曉宇,張華.指紋識(shí)別電子密碼鎖設(shè)計(jì)[J].福建電腦,2022.[7]任毅.指紋識(shí)別系統(tǒng)的研究和實(shí)現(xiàn)[J].南京郵電大學(xué),2020.[8]任志國(guó).基于ARM的嵌入式指紋采集與識(shí)別系統(tǒng)的研究[M].南京航空航天大學(xué)出版社,2019,.[9]梁竹君.紅外遙控電子密碼鎖的設(shè)計(jì)與實(shí)現(xiàn)—可自動(dòng)調(diào)節(jié)背景光的1602液晶[J].電子制作,2021[10]江世明,徐建明,朱群峰,等.單片機(jī)原理與應(yīng)用[M].上海交通大學(xué)出版社,2019[11]李永際.基于D觸發(fā)器的觸摸式電子密碼鎖設(shè)計(jì)[J].電子技術(shù),2022,51(08):20-21.[12]李長(zhǎng)灝,楊帆,馬如龍,劉航,李偉,周慧.基于51單片機(jī)的電子智能密碼鎖[J].電腦知識(shí)與技術(shù),2022,18(12):81-83.[13]鄒健.基于單片機(jī)的電子密碼鎖系統(tǒng)設(shè)計(jì)[J].無(wú)線互聯(lián)科技,2022,19(05):53-54.[14]徐慶偉,郭振鐸,劉洲峰.基于ST??M32的電子密碼鎖設(shè)計(jì)[J].中原工學(xué)院學(xué)報(bào),2018,29(06):61-65.[15]劉永雷,趙曰峰.基于STM32的智能電子密碼鎖系統(tǒng)設(shè)計(jì)[J].山東師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2018,33(03):322-327.[16]藍(lán)波,孫浩然,趙通,劉國(guó)棟.基于STM32的疫情監(jiān)控系統(tǒng)終端設(shè)計(jì)[J].電子設(shè)計(jì)工程,2023,31(02):82-86+93.[17]曾一凡,楊振南,王亞勇.基于STM32的智能物料搬運(yùn)機(jī)器人的設(shè)計(jì)[J].儀器儀表用戶,2023,30(01):9-12.[18]鄧軍,王澤,張璽,習(xí)特銘,周佳葆.基于STM32的北斗定時(shí)定位實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室科學(xué),2022,25(06):82-85.[19]CHANGFengjun,CUIXudong;WANGChen;ZHANGYulong.ATMSafeElectronicCombinationLockControlSystemBasedonARMV7Architecture.[P].2021.[20]FengJunChang,ChenWang.NewBankElectronicCombinationLockSystem.2020. [21]NadiaMohamadNasir,IrniHamizaHamzah.ElectroniccombinationlocksystemusingverilogHDL.2021.[22]ZhaoYouGui.Electroniccombinationlocksystemsimulationresearch[P].2019.[23]AdamuMurtalaZungeru.Anelectronicdigitalcombinationlock:Apreciseandreliablesecuritysystem[C]2018.

附錄A總原理圖

附錄B程序#include"sys.h"#include"delay.h"#include"led.h"#include"key_m.h"#include"lcd1602toOLED.h"#include"buzzer.h" #include"stmflash.h"#include"as608.h"#include"password.h"#include"IOout.h"http://#defineLEN20//u16eep[LEN];//externu8IC_Lib[3][4];enumMODE_e{OPENDOOR=0,//搜索授權(quán)LOGIN_FG,//注冊(cè)指紋LOGOUT_FG,//注銷指紋RESET_PW//重置密碼};u8ICbuf[4]={0};//IC緩存charstr[]="0123456789abcdef";u8refresh=1;u8sta;voidRelay(u8_sta);//顯示函數(shù)voidDisIC_hex(void);voidDis_LOGIN_IC(void);voidDis_LOGOUT_IC(void);voidDis_LOGOUT_FG(void);voidDis_LOGIN_FG(void);//指紋用u8press_FR(void);voidAdd_FR(u16_id);voidOPEN_THE_DOOR(u8id){LCD_GotoXY(3,1);//"0123456789abcdef"LCD_Print("授權(quán)進(jìn)入");RelaySW(1);delay_ms(2000);RelaySW(0);}externvoidSaveFlash(void);externvoidReadFlash(void);intmain(void){//u8icID;//IC卡用u8cnt;u8err_cnt=0;u8key;u8sta;u8mode=OPENDOOR;u8fingerID=1;u16valid_ID_Num;//指紋模塊內(nèi)有效指紋模板個(gè)數(shù)/*bit:[31~24][23~16][15~8][7~0]-->valid_IDvalid_ID_Idx[3]valid_ID_Idx[2]valid_ID_Idx[1]valid_ID_Idx[0]*/u8valid_ID_Idx[4];//u32*valid_ID=(u32*)(&valid_ID_Idx[0]);//s8i;//使用內(nèi)部高速晶振HSIRC(8Mz)//配置SYSCLK->36MHz,HCLK->36MHz//APB1->36MHz,APB2->36MHz,ADC1,2->18MHzsysClockHSI_Config();MY_NVIC_PriorityGroupConfig(2);delay_Init(SysClockFreq/1000000);printf("SysClockFreq=%dMHz\r\n",SysClockFreq/1000000);LED_Init();delay_ms(50);LCD_Init();Buzzer_Init();KeyM_Init();RelaySW(0);AS608_Init();//檢測(cè)指紋模塊 while(PS_HandShake(&AS608Addr)) { LCD_GotoXY(0,0); LCD_Print("connectagain"); delay_ms(500);LED=!LED; }//讀取指紋模板個(gè)數(shù)if(0==PS_ValidTempleteNum(&valid_ID_Num)){LCD_Clear();LCD_GotoXY(0,0);sprintf(str,"FGLibNum=%d",valid_ID_Num); LCD_Print(str);}ReadFlash();Beep(200);Start:if(0==PS_ValidTempleteID(valid_ID_Idx)){fingerID=32;for(i=0;i<32;i++){if(((*valid_ID)>>i)&0x01){}else{fingerID=i;break;}}}mode=OPENDOOR;LCD_Clear(); LCD_GotoTitle(20);LCD_Print("指紋密碼鎖");disHome();Clr_InputPW();//按鍵數(shù)據(jù)無(wú)效while(1){delay_ms(1);cnt++;if(cnt>200){cnt=0;LED=!LED;if(err_cnt>3){LCD_Clear();LCD_GotoXY(0,1);LCD_Print("LOCKING..."); while(1){Beep(200);}}if(LED)//掃描指紋{if(mode==OPENDOOR)sta=press_FR();if(sta!=0xff)//識(shí)別到指紋{if(sta!=0xee){LCD_Clear();LCD_GotoXY(0,0);sprintf(str,"FG.ID=%d[OK]",sta);LCD_Print(str); err_cnt=0;OPEN_THE_DOOR(2);}else{Beep(100);err_cnt++;}gotoStart;}}}key=Key_Map(KeyScan(0));//掃描矩陣按鍵if(key){Beep(200);if(key=='C'){Clr_InputPW();mode=LOGIN_FG;Dis_LOGIN_FG();}elseif(key=='D'){Clr_InputPW();mode=LOGOUT_FG;Dis_LOGOUT_FG();}else{sta=InputPassword(key);if(0xFF==sta){LCD_GotoXY(0,0);//"0123456789abcdef"LCD_Print("InputANewPW.");disHome();mode=RESET_PW;}elseif(0x0F==sta)//開門{OPEN_THE_DOOR(0); err_cnt=0;gotoStart;}elseif(0xEE==sta)//密碼錯(cuò)誤{LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("password[error]");printf("password[error]");Beep(200);Beep(200);Beep(200);delay_ms(1000);err_cnt++;gotoStart;}}}while(mode==RESET_PW)//重置密碼{key=Key_Map(KeyScan(0));//掃描矩陣按鍵if(key=='A'||key=='B'||key=='C'||key=='D')gotoStart;//放棄密碼重置elseif(key){Beep(200);sta=SetPassword(key);if(sta==0xFF){LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("resetPW.[OK]");printf("resetPW.[OK]\r\n");Beep(1000);delay_ms(1000);gotoStart;}elseif(sta==0xEE){LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("resetPW.[err]");printf("resetPW.[err]\r\n");Beep(200);Beep(200);Beep(200);delay_ms(1000);gotoStart;}}}while(mode==LOGIN_FG){if(fingerID>=32){LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("FG.Libisfull");Beep(300);Beep(300);Beep(300);delay_ms(2000);gotoStart;}Add_FR(fingerID);fingerID++;gotoStart;}while(mode==LOGOUT_FG){sta=press_FR();if(sta!=0xFF){if(sta!=0xEE){PS_DeletChar(sta,1);LCD_GotoXY(0,1);//"0123456789abcdef"http://"FG.ID=%ddel[OK]"sprintf(str,"FG.ID=%ddel[OK]",sta);LCD_Print(str);printf("fgID=%ddel[OK]\r\n",sta);Beep(500);delay_ms(500);}else{LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("FG.delete[Err]");printf("FG.delete[Err]\r\n");Beep(200);Beep(200);delay_ms(500);}gotoStart;}else{key=Key_Map(KeyScan(0));//掃描矩陣按鍵if(key){Beep(200);if(key=='D')//清除所有指紋{LCD_GotoXY(0,1);if(0x00==PS_Empty()){//"0123456789abcdef"LCD_Print("ClearAllFG.OK");}else{//"0123456789abcdef"LCD_Print("ClearAllFGErr");}delay_ms(800);gotoStart;}else//其他按鍵退出{gotoStart;}}}}}}//刷指紋//返回值:0-沒(méi)有檢測(cè)到指紋,0xEE-識(shí)別錯(cuò)誤,其他未模板ID值u8press_FR(void){ SearchResultseach; u8ensure;charstr[20];//printf("\r\n正在獲取指紋圖像...");//if(readPS_Sta())return0; ensure=PS_GetImage();//EF01FFFFFFFF010003010005 if(ensure==0x00)//獲取圖像成功 { ensure=PS_GenChar(CharBuffer1);//CharBuffer1=1 if(ensure==0x00)//生成特征成功 { ensure=PS_HighSpeedSearch(CharBuffer1,0,100,&seach); if(ensure==0x00)//搜索成功 { //"0123456789abcdef"sprintf(str,"MatchID:%d",seach.pageID);Beep(200);LCD_GotoXY(0,1);LCD_Print(str); returnseach.pageID; } else{LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("SearchID[Err]"); Beep(100);Beep(100);delay_ms(800);return0xEE;}}else{//printf("\r\n生成特征錯(cuò)誤:");EnsureMessage(ensure);}delay_ms(1000);//延時(shí)后清除顯示 }else{//printf("\r\n獲取指紋圖像失敗:");EnsureMessage(ensure);} return0xFF;}//錄指紋voidAdd_FR(u16_id){ u8i=0,ensure,processnum=0; while(1) { switch(processnum) { case0: i++;LCD_GotoXY(0,1);//"0123456789abcdef" LCD_Print("touchfinger");if(i){LCD_GotoXY(0xb+i-1,1);LCD_WrDat('.');} ensure=PS_GetImage(); if(ensure==0x00) { if(ensure==0x00) {//printf("Fingerprintcorrect\r\n");//指紋正確 i=0; processnum=1;//跳到第二步 Beep(200); }else{//printf("\r\n生成特征錯(cuò)誤:");EnsureMessage(ensure);} }else{//printf("\r\n采集圖像錯(cuò)誤:");EnsureMessage(ensure);} break; case1: i++;LCD_GotoXY(0,1);//"0123456789abcdef" LCD_Print("touchagain");if(i){LCD_GotoXY(0xb+i-1,1);LCD_WrDat('.');} ensure=PS_GetImage(); if(ensure==0x00) { ensure=PS_GenChar(CharBuffer2);//生成特征 if(ensure==0x00) { //printf("Fingerprintcorrect\r\n");//指紋正確i=0; //processnum=2;//跳到第三步processnum=3;//跳過(guò)比對(duì) Beep(200); }else{//printf("\r\n生成特征錯(cuò)誤:");EnsureMessage(ensure);} }{//printf("\r\n采集圖像錯(cuò)誤:");EnsureMessage(ensure);} break; case2://printf("Comparetwicefingerprint...\r\n");//對(duì)比兩次指紋 ensure=PS_Match(); if(ensure==0x00) { //printf("Twicefingerprintaresame!\r\n");//兩次指紋是一樣的 //"0123456789abcdef" LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("Twicearesame");processnum=3;//跳到第四步 } else { //printf("Comparefail,pleastouchagain!\r\n");//對(duì)比失敗,請(qǐng)重新按手指 //"0123456789abcdef"LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("Comparefailed");EnsureMessage(ensure); i=0; processnum=0;//跳回第一步 }delay_ms(500); break; case3://printf("Generatefingerprinttemplate\r\n");//產(chǎn)生一個(gè)指紋模板 ensure=PS_RegModel(); if(ensure==0x00) { //printf("Generatefingerprintsuccess\r\n");//生成指紋模板成功 //"0123456789abcdef"

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論