【《一種帶指紋識別開鎖的密碼鎖設(shè)計》10000字(論文)】_第1頁
【《一種帶指紋識別開鎖的密碼鎖設(shè)計》10000字(論文)】_第2頁
【《一種帶指紋識別開鎖的密碼鎖設(shè)計》10000字(論文)】_第3頁
【《一種帶指紋識別開鎖的密碼鎖設(shè)計》10000字(論文)】_第4頁
【《一種帶指紋識別開鎖的密碼鎖設(shè)計》10000字(論文)】_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

I一種帶指紋識別開鎖的密碼鎖設(shè)計目錄TOC\o"1-3"\h\u31308一種帶指紋識別開鎖的密碼鎖設(shè)計 132519第一章前言 16561.1課題研究背景 18911.2課題的發(fā)展現(xiàn)狀 2235741.3課題研究的實際意義 21632第二章系統(tǒng)總體方案的設(shè)計和分析 3226862.1主控芯片的選擇 3261812.2指紋識別模塊方案的選擇 423332.3液晶顯示模塊方案的選擇 4292822.4報警模塊方案的選擇 4249862.5電源模塊供電方案的選擇 4290672.6數(shù)據(jù)存儲芯片的選擇 5196792.7最終方案 5280612.8本章小結(jié) 513987第三章系統(tǒng)硬件設(shè)計 6203493.1系統(tǒng)總體框圖 620783.2主控電路的設(shè)計 6306863.3LCD12864液晶顯示模塊的設(shè)計 7128373.4指紋識別模塊的設(shè)計 790653.5矩陣鍵盤控制模塊的設(shè)計 8310413.6報警模塊的設(shè)計 874243.7繼電器模塊的設(shè)計 970033.8掉電保護模塊的設(shè)計 959353.9本章小結(jié) 925592第四章系統(tǒng)軟件設(shè)計 1035894.1主程序設(shè)計 10110274.2LCD12864顯示模塊程序設(shè)計 12237974.3AS608指紋搜索子函數(shù)設(shè)計 13235834.4矩陣鍵盤檢測函數(shù)設(shè)計 14205824.5本章小結(jié) 1519890第五章系統(tǒng)整體功能調(diào)試與測試 16310035.1仿真調(diào)試 16143095.2實物調(diào)試 16306305.3本章小結(jié) 2318039第六章總結(jié)與展望 24267376.1工作總結(jié) 24279496.2展望 24第一章前言1.1課題研究背景隨著時代不斷地變化發(fā)展,人們對智能化生活的需求在提高,對家庭財產(chǎn)保護的安全意識不斷加強,就安全來說,鎖一直以來都是我們對家庭財產(chǎn)的一個安全保護裝置。中國作為鎖具的發(fā)源地之一,遠古時代人們生活逐漸富裕,隨著生產(chǎn)力的發(fā)展和人民生活質(zhì)量的提高,其中貧富差距越發(fā)明顯,觸發(fā)了人們對財產(chǎn)的保護欲望。這時候就出現(xiàn)了最原始的保護方式“重石封穴”。隨著人類社會的發(fā)展,發(fā)明了木門閂,通過移動門內(nèi)的橫木實現(xiàn)開關(guān)鎖,這種鎖只能實現(xiàn)單向鎖門的效果,而且木質(zhì)門鎖的材質(zhì)使用年限太短,存在需要換鎖的可能,效果不佳。到了金屬鎖出現(xiàn),不僅增強了防御功能,還去除了門閂的缺點。再到了公元18世紀,發(fā)明了一種轉(zhuǎn)片鎖,利用彈簧的伸縮性能來開鎖,只有當鑰匙觸碰到鎖舌缺口并且匹配缺口大小位置等才可以打開,葉片鎖造型美觀大方,被公認為是鎖和鑰匙的標志[1]。隨著國內(nèi)經(jīng)濟的不斷發(fā)展,國家進行了改革開放,中國需要吸收大量的科技文化知識,進行國內(nèi)外科技結(jié)合,這時候就從國外引進了智能鎖。經(jīng)過多年的成長,在智能科技技術(shù)方面中國在世界排名已經(jīng)數(shù)一數(shù)二。目前為止,我國的絕大部分門禁系統(tǒng)中,安全識別方式簡單,身份信息容易被人利用、偽造甚至盜竊,存在各種不安全不穩(wěn)定性[2]。而指紋識別密碼鎖能完美的解決這些不安全性,人體指紋雖然很小但存在許多的數(shù)據(jù)信息,每個人的指紋形狀、斷點和交叉點方面都各不相同,這些都是唯一且不變的[3]。它通過人體本身獨有的生物特征指紋形成開鎖的鑰匙,通過這獨一無二的鑰匙來判別身份,具有極高的安全性[4]。利用指紋識別技術(shù)開發(fā)的指紋鎖,其安全性能有保障,且操作簡單便捷,適合應(yīng)用于日常生活中[5]。所以研究設(shè)計一款可以簡單操作,并且成本較低和實用性強的指紋識別密碼鎖具有深遠的市場前景。通過指紋和數(shù)字密碼的雙重開鎖方式,既方便又提高了指紋密碼鎖的安全性[6]。因此本文選擇STC89C52單片機來設(shè)計一款帶指紋識別的密碼鎖。1.2課題的發(fā)展現(xiàn)狀生活過得越來越好了,大家對生活品質(zhì)的要求也在不斷提高,不斷創(chuàng)新。社會不斷涌現(xiàn)出一大批智能科技產(chǎn)品,如電動窗簾、智能垃圾桶、智能機器人、語音控制燈等。傳統(tǒng)的機械鎖、智能卡片鎖因攜帶開鎖匹配的鑰匙不方便易造成丟失等缺點,存在一些安全隱患[7]。而密碼鎖也發(fā)展到了指紋識別階段,很好的解決了這些缺點。通常認證方式都為擁有開鎖功能的信物來認證,無法確定是否為本人使用,存在弊端[8]。通過人體生物特征指紋的特殊性、唯一性的優(yōu)點,創(chuàng)造了安全感滿滿的指紋識別密碼鎖。指紋作為人體身體的一部分,具有便捷、安全、易管理等優(yōu)勢[9]。單片機擁有簡單的外部電路和模塊化的結(jié)構(gòu)并且可靠性高,我們可以通過軟件編程的方法對它進行各個功能的控制,在工業(yè)的應(yīng)用控制領(lǐng)域應(yīng)用非常廣泛。指紋識別密碼鎖的設(shè)計應(yīng)用,根據(jù)需求設(shè)計不同的電路系統(tǒng),單片機與各個模塊交互,設(shè)計出一個簡單的計算機系統(tǒng),然后通過軟件編程技術(shù)對各個模塊實現(xiàn)功能控制。這種設(shè)計成本較低,可靠性高并且基本可以滿足解鎖的需求,可以說是使用單片機來設(shè)計密碼鎖非常的合適。1.3課題研究的實際意義本設(shè)計的主要研究內(nèi)容是一種指紋識別功能的密碼鎖設(shè)計,它可以有效的應(yīng)用于各種場合。主要由STC89C52單片機最小系統(tǒng)、矩陣鍵盤輸出模塊電路、AS608指紋識別對比模塊電路、繼電器帶動電路、電源供電模塊、液晶顯示輸出電路、報警模塊、掉電保護電路組成,最后使用c語言編程來實現(xiàn)指紋識別密碼鎖的設(shè)計,總體的設(shè)計與要求如下:1.電源模塊通過USB接口供電驅(qū)動STC89C52單片機整個模塊,外加電池盒作為儲備電源供電。2.指紋識別模塊輸送數(shù)據(jù)到單片機存儲,通過主控單片機控制指紋的存儲、刪除和比對。3.液晶顯示模塊顯示,將存儲的指紋保存編號。4.鍵盤控制輸出模塊有一般開鎖的模式和管理員控制的模式。一般開鎖模式下只簡單的需要確認按鍵和刪除鍵,進入管理員控制模式下需要人工輸入初始密碼,可管理指紋編號。5.可通過矩陣鍵盤手動按密碼。6.管理員控制模式下,矩陣鍵盤按原始密碼555555,進入管理員控制界面,有錄入指紋、刪除指紋、修改密碼三個選項。7.進入錄入指紋界面,顯示屏顯示“編號:”字體。先輸入編號,最多存儲20個指紋,編號從001-020。輸入編號001,按確認鍵液晶顯示屏出現(xiàn)“狀態(tài):”字體,這時再通過指紋模塊輸入指紋,直到顯示“狀態(tài):錄入成功”,完成一次指紋的錄入。第二章系統(tǒng)總體方案的設(shè)計和分析本設(shè)計主要是以51單片機為主控制芯片,用來控制指紋識別模塊的數(shù)據(jù)傳輸,LCD液晶顯示模塊來進行文字顯示,報警提示模塊進行鳴笛提示,電源模塊的供電,繼電器模塊控制電磁鎖的開斷,利用數(shù)據(jù)存儲芯片存儲數(shù)字密碼。2.1主控芯片的選擇對于一個系統(tǒng)來講,最重要的核心部分就是主控模塊,主控模塊通過I/O口外接外部電路實現(xiàn)主控模塊的控制,實現(xiàn)各種功能。主控模塊的選擇需要多方面的考慮,一旦其出現(xiàn)了問題,那么整個系統(tǒng)就不能正常運行,也有可能出現(xiàn)經(jīng)濟浪費等。選擇合適并且經(jīng)濟實惠的,本設(shè)計通過查詢各種資料,給出以下幾種方案來選擇。方案1:采用stm32控制方案,stm32具有多達11個定時器,兼容性強。且擁有高性能、低成本、低功耗、可剪裁等特點,但對于本設(shè)計的指紋識別密碼鎖所實現(xiàn)的功能來講,功能強大有點資源浪費,不是很適合用來設(shè)計指紋識別密碼鎖。所以不采用stm32來作為主控芯片。方案2:采用51單片機作為控制模塊,51單片機分為英特爾、艾特梅爾、宏晶等幾個生產(chǎn)商,都采用MCU-51內(nèi)核,無太大差別。而“89C”和“89S”這個是單片機型號。兩者內(nèi)部都含有Flash存儲器,但其中“89C”是CMOS產(chǎn)品,“89S”則是含有串行下載,而“51”和“52”表示的則是內(nèi)部程序存儲空間大小。其中“51”表示有4K程序存儲空間,“52”有8K程序存儲空間。經(jīng)過多年來的科技發(fā)展,51單片機技術(shù)已經(jīng)發(fā)展成熟了。在日常教學(xué)中也廣泛地運用,是作為系統(tǒng)控制的入門級別,并且功能強大,使用起來也較為靈活方便。綜上所述,采用了方案2,選擇以STC89C52單片機為主控模塊芯片的選擇。其結(jié)構(gòu)較為簡單容易理解運用,I/O口的控制效果較好,成本也比較低,所以相對來說STC89C52單片機比較符合本設(shè)計的要求選擇,可以很好的對整個系統(tǒng)進行控制。2.2指紋識別模塊方案的選擇本設(shè)計的指紋識別模塊采用了可二次開發(fā)的AS608芯片。AS608模塊供電電壓為DC3.3V,是一種光學(xué)指紋集成模塊。指紋錄入反應(yīng)時間小于0.1秒,可以精確地識別采集指紋特點,分辨率很高。綜合考慮,采用AS608指紋識別模塊。使得設(shè)計變得容易,易操作。2.3液晶顯示模塊方案的選擇對于顯示模塊,本設(shè)計應(yīng)該具備顯示編號、密碼、指紋識別密碼鎖的狀態(tài)等漢字的功能,為此提供以下方案進行對比選擇。方案1:選擇字符型液晶顯示模塊,字符型液晶顯示器專門用于顯示字母、數(shù)字、符號等,內(nèi)部具有字符庫ROM(CGROM),能顯示192個字符。成本也較低,但其顯示的字體及大小有局限,局限于它屏幕的大小可以同時顯示的內(nèi)容較少,不能顯示中文漢字,所以不太符合本次設(shè)計的要求及目的。方案2:選取LCD12864點陣式液晶顯示模塊,以ST7920為控制芯片,帶有ASCII和中文的點陣字庫。擁有20個引腳,內(nèi)置中文漢字庫,可以提供很多個16*16點陣漢字,通訊接口有串行、并口可以選擇。顯示功能比字符型1602強大,對比了兩者的編程難度也都差不多,都是些寫指令、寫地址、寫數(shù)據(jù)的順序。12864的顯示中文漢字效果可以很好的滿足本設(shè)計需求。所以,綜上對比考慮,本設(shè)計采用方案2的LCD12864來設(shè)計顯示模塊。可以很好的滿足本次設(shè)計需要的顯示要求。2.4報警模塊方案的選擇本模塊是采用蜂鳴器、三極管和電阻這三種元器件組合而成。蜂鳴器有種類之分??紤]到對整體電路的設(shè)計,采用了有源蜂鳴器。有源蜂鳴器只需要通過對高低電平的控制來實現(xiàn),而不像無源蜂鳴器那樣需要控制脈沖信號來實現(xiàn)。因為51單片機的4個雙向的8位并行I/O端口的輸出電流比較低,帶動不了蜂鳴器的使用,需要三極管進行放大電流。其中三極管分為NPN型和PNP型。對于本設(shè)計而言最適合采用PNP型,其原因是采用NPN型時,高電平導(dǎo)通,主控芯片通電后,單片機8位并行I/O端口短暫的為高電平,則三極管導(dǎo)通,蜂鳴器響,體驗效果不佳;采用PNP型時,低電平導(dǎo)通,主控芯片通電后,三極管不能導(dǎo)通,蜂鳴器不受影響。綜合考慮采用PNP型效果最好。綜合考慮,采用了有源蜂鳴器、PNP的三極管、1K色環(huán)電阻組成一個報警模塊,可以很好的滿足本次設(shè)計需要的報警要求。2.5電源模塊供電方案的選擇 電源模塊主要通過USB線的方式為主控模塊STC89C51提供驅(qū)動電源,設(shè)置USB接口方式便于和各種具體USB接口的設(shè)備進行連接[10]。USB能輸出穩(wěn)定的+5v電壓,因采用繼電器模塊控制電磁鎖,需要外加一個電源,采用了+12V,1A的電磁鎖,外加了一個+12V1A的電源適配器來驅(qū)動電磁鎖的吸合完成密碼鎖開鎖解鎖。在日常生活中,考慮到家庭用電會出現(xiàn)停電的情況,造成指紋識別密碼鎖沒有驅(qū)動電源打不開門的情況發(fā)生,所以準備接入電池盒,用5V電池提供備用電源,避免指紋識別密碼鎖因停電打不開門的情況發(fā)生。綜上所述,本設(shè)計考慮使用電源加電池盒的建議,避免停電帶來的困擾,而且這種電源供電方案使用性價比高,價格低,并且可以滿足設(shè)計的要求。2.6數(shù)據(jù)存儲芯片的選擇方案1:利用單片機內(nèi)部自帶的EEPROM進行存儲。stc系列單片機都是通過在系統(tǒng)編程實現(xiàn)存儲,更新數(shù)據(jù)前必須先擦除一個扇區(qū)的舊數(shù)據(jù)。方案2:采用特殊的數(shù)據(jù)存儲芯片。AT24C02是2Kbit串行電可擦除只讀存儲器,AT24C是器件的類型,02表示為存儲的大小。AT24C02有一個16字節(jié)頁寫緩沖器,有高數(shù)據(jù)傳送速率為400KHz和IIC總線兼容,還具有一個專門的寫保護功能。滿足對掉電保護數(shù)據(jù)不丟失的要求。綜合考慮單片機內(nèi)部自帶的EEPROM在執(zhí)行數(shù)據(jù)更新時,都要先擦除扇區(qū)數(shù)據(jù),數(shù)據(jù)更新前都必須要擦除原來的數(shù)據(jù)才可以存儲新數(shù)據(jù),不太符合本設(shè)計的掉電保護要求,所以最后決定采用AT24C02存儲芯片。2.7最終方案最終采用了STC89C52為主要控制,LCD12864液晶顯示器作為顯示模塊,清楚看到指紋識別密碼鎖的狀態(tài)。使用USB接口、電源適配器作為供電模塊接口為STC89C52單片機、電磁鎖供電,電池盒作為儲備電源使用。選用AS608作為指紋識別模塊,AT24c02作為數(shù)據(jù)儲存芯片。2.8本章小結(jié)本章主要介紹對比了各個模塊的方案選擇,選擇合適的模塊芯片,并進一步確認了設(shè)計中系統(tǒng)總體結(jié)構(gòu)。接下來通過選擇的方案來進行硬件設(shè)計。第三章系統(tǒng)硬件設(shè)計3.1系統(tǒng)總體框圖圖3-1系統(tǒng)總體框圖3.2主控電路的設(shè)計本設(shè)計使用的是STC89C52單片機作為主控。其優(yōu)點是具有較高的性能和較快的運行速度,并且功耗低,很符合本設(shè)計要求。本次采用了單片機的最小系統(tǒng),單片機的最小系統(tǒng)如下圖3-2所示。圖3-2單片機最小系統(tǒng)電源接口電路:使用了一個DC-002電源插座P1和雙擲開關(guān)SW1,電源插座一端接VCC,雙擲開關(guān)一端接GND。采用USB接口和電池盒的方式對整個單片機進行供電。晶振電路:通過連接單片機18/19引腳XTAL2、XTAL1,采用內(nèi)部時鐘方式,輸入端XTAL1和輸出端XTAL2兩者之間跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成穩(wěn)定的自激振蕩器。[11]復(fù)位電路:運用了一個獨立按鍵、10K電阻R1和10UF電容C1。電阻和電容串聯(lián),獨立按鍵和電容采用并聯(lián)的連接方式接主控第9引腳。電阻R1一端接GND,電容C1一端接VCC。通過連接單片機的第9引腳RST,形成復(fù)位電路。當RST為高電平1時,單片機跟電腦一樣重啟,實現(xiàn)復(fù)位。并聯(lián)一個手動按鍵復(fù)位是為了防止系統(tǒng)出現(xiàn)卡頓、收到干擾死機的情況發(fā)生。3.3LCD12864液晶顯示模塊的設(shè)計LCD12864是一個點陣式液晶顯示屏,有20個引腳,由128列、64行點陣組成??娠@示中文漢子和圖形。本設(shè)計采用了帶字庫的LCD12864,可直接顯示中文漢子,不需要單獨編程。通過顯示屏D0~D7引腳與單片機P2.0~P2.7引腳連接,進行8位的并口傳輸數(shù)據(jù),有著硬件簡單,編程容易,低功耗等特點。LCD12864原理圖如圖3-3所示:圖3-3LCD12864液晶顯示屏3.4指紋識別模塊的設(shè)計指紋模塊作為本設(shè)計的主要輸入模塊,采用的AS608指紋識別模塊是一個以As608芯片為主要控制芯片集成的模塊,可以二次開發(fā)使用。模塊可以存儲指紋120枚,序號從1到120。模塊中CMOS芯片采集一次指紋信息,處理生成0和1兩種記錄信息,存入指紋模塊的FLASH芯片里面[12]。本設(shè)計在軟件程序上設(shè)置可錄入的指紋采集數(shù)量為25枚。指紋識別模塊有8個引腳。本設(shè)計采用了3.3VVCC、TXD、RXD、GND四個引腳,數(shù)據(jù)發(fā)送腳TD連接單片機的數(shù)據(jù)接收端RXD,數(shù)據(jù)接收腳RD連接單片機的數(shù)據(jù)發(fā)送端TXD[13]。因為單片機和指紋模塊的供電電壓不同,所以在指紋模塊3.3v電源引腳VCC串聯(lián)N4007的兩個二極管D4、D5,對單片機5V供電電壓進行降壓作用對指紋模塊供電。AS608指紋模塊通過串口連接引腳TXD、RXD與單片機實現(xiàn)串口的通信,簡單的通過串口就可實現(xiàn)指紋的輸入。原理圖如下圖3-4所示。圖3-4指紋識別模塊3.5矩陣鍵盤控制模塊的設(shè)計本設(shè)計為了實現(xiàn)對一般模式和管理員模式兩種的選擇,設(shè)計了矩陣鍵盤控制模塊,通過按鍵實現(xiàn)模式的選擇和手動輸入密碼開鎖的功能。所以設(shè)計了一個4*4的矩陣鍵盤,整體設(shè)計與單片機的P1口連接進行數(shù)據(jù)的輸入。通過矩陣鍵盤的高低電平反饋到單片機判斷按鍵是否按下,按下為低電平,反之為高電平。各按鍵如圖3-5所示圖3-5矩陣鍵盤控制模塊3.6報警模塊的設(shè)計本設(shè)計采用了一個5V電磁式有源蜂鳴器,內(nèi)部含有振蕩器可以直接高低電平來控制,比無源蜂鳴器方便,不需要脈沖控制。因為其工作電流一般過大,單片機8位并行I/O端口無法直接驅(qū)動使用,所以要外加一個外部電路三極管開關(guān)電路來帶動。如圖3-6所示,當單片機的P3.7為低電平0時,三極管導(dǎo)通使用,有源蜂鳴器響,反之。圖3-6報警模塊3.7繼電器模塊的設(shè)計繼電器是一個利用電磁感應(yīng)現(xiàn)象的元器件。通過電磁鐵在通電斷電下磁力的產(chǎn)生與消失現(xiàn)象模擬鎖的開閉。整個繼電器模塊由一個S8550型號的三極管Q4、兩個1K電阻R6和R7、一個HK4100F的繼電器、一個接線柱U2、一個DC-002電源插座P2、一個黃色發(fā)光二極管組成。電阻R7一端接單片機的P3.6口,三極管發(fā)射基e接電源VCC。繼電器一端跟三極管集電極c連接,另一端接地GND。當單片機P3.6口輸出低電平0的時候,三極管導(dǎo)通帶動繼電器,繼電器吸合,常開端導(dǎo)通;當單片機P3.6口輸出號電平1的時候,三極管不導(dǎo)通帶動不了繼電器,繼電器斷開,常開端斷開。繼電器模塊原理圖如下圖3-7所示。圖3-7繼電器模塊3.8掉電保護模塊的設(shè)計本設(shè)計采用專業(yè)的數(shù)據(jù)存儲芯片。AT24C02是擁有2Kbit串行電可擦除只讀存儲器,有專門的寫保護功能,當WP引腳接高電平時才能進去寫保護狀態(tài)[14]。T24C是器件型號,02是存儲的大小,代表2kibt。通過矩陣鍵盤需要完成大量的密碼操作,所以設(shè)定了一個專門的存儲芯片電路[15]。其中IIC總線地址的計算方法等于器件地址加上可編程地址和操作模式。其中器件地址固定值為1010,可編程地址由A2.A1.A0的狀態(tài)決定,操作模式0代表寫操作,1代表讀操作??删幊痰刂窞?00,寫操作模式的IIC總線地址則為0xa0,讀操作模式的IIC總線地址則為0xa1。掉電保護模塊原理圖如下圖3-8所示。圖3-8掉電保護模塊3.9本章小結(jié)本章主要介紹了設(shè)計所用各個模塊的硬件設(shè)計。主要包括單片機的最小系統(tǒng)、指紋識別模塊、矩陣鍵盤控制模塊、液晶顯示模塊、報警模塊、繼電器模塊、掉電保護模塊。按各個模塊和設(shè)計的要求,首先在仿真軟件Proteus8.9畫出原理圖做出仿真,再在AltiumDesignerSummer09軟件中畫出原理圖和PCB圖,然后網(wǎng)上打板制作覆銅板,最后按照原理圖,使用電烙鐵把元器件焊上到板子上。接下來結(jié)合設(shè)計的硬件,進行軟件部分的設(shè)計。第四章系統(tǒng)軟件設(shè)計上一章主要介紹了指紋識別密碼鎖的硬件電路,但是電路中各模塊是否能實現(xiàn)還是得靠軟件的輔助,硬件與軟件兩者缺一不可。兩者完美的結(jié)合才能造就一個完美的設(shè)計。系統(tǒng)軟件設(shè)計程序主要是用編程軟件keiluVision4進行代碼的編程,先對主要的功能子程序模塊進行編程封裝,再編寫主函數(shù)main程序,通過采用低成本且穩(wěn)定性高的STC89C52單片機主控模塊,設(shè)計主程序?qū)⒏鱾€子程序模塊調(diào)用起來,實現(xiàn)整個系統(tǒng)。最后再控制達到本設(shè)計的需求。這種分模塊的設(shè)計方式,使程序可讀性強,也方便于后續(xù)的調(diào)試與修改。系統(tǒng)整體軟件程序設(shè)計主要包括主函數(shù)、液晶顯示模塊、AS608指紋搜索子函數(shù)模塊、矩陣鍵盤檢測模塊。4.1主程序設(shè)計主函數(shù)voidmain()是程序的核心函數(shù),一個完整的設(shè)計需要軟件和硬件的結(jié)合,其中軟件程序中必不可缺的就是主函數(shù),是一個程序的核心部分。該函數(shù)開頭首先對變量i進行整型定義,再對LCD12864、指紋傳感器串口、定時器T2進行初始化,接下來讀取在存儲芯片AT24C02中的密碼,實現(xiàn)了掉電保護。顯示屏出現(xiàn)初始界面,使用了死循環(huán),在其他指令發(fā)出前一直保持初始界面和實時檢測。死循環(huán)中首先檢測矩陣鍵盤和處理,再自定義mode,為0時是正常解鎖;1是管理員界面;2是錄入指紋模式;3是刪除指紋模式;4是修改密碼模式。主函數(shù)因不宜放大量的代碼,采用功能子函數(shù)程序封裝的方式,在主函數(shù)中靈活地調(diào)用,這樣不僅方便我們查看修改,也易找尋錯誤。流程圖如下圖4.1所示。圖4-1主程序流程圖4.2LCD12864顯示模塊程序設(shè)計按照LCD12864液晶中文資料對代碼進行編寫,首先對數(shù)據(jù)口、數(shù)據(jù)/命令選擇引腳、讀/寫選擇引腳、使能信號引腳進行定義。編寫一個簡單的機械延時函數(shù),再編寫一個讀忙函數(shù)Lcd_CheckBusy()。讀忙函數(shù)Lcd_CheckBusy()中先對8位數(shù)據(jù)口全置1操作,再根據(jù)資料中的控制器接口信號說明編寫RS、RW、E,參考指令表判斷數(shù)據(jù)口最高位是否為忙狀態(tài)。編寫寫命令函數(shù)write_com(),先調(diào)用讀忙函數(shù)判斷是否為空閑狀態(tài),空閑狀態(tài)下,編寫RS、RW、E狀態(tài)實現(xiàn)寫命令,將命令放在數(shù)據(jù)口上,使能E從高電平到低電平產(chǎn)生一個下降沿,將數(shù)據(jù)寫入顯示屏完成寫命令函數(shù)編寫。編寫寫數(shù)據(jù)函數(shù)write_data(),跟寫命令函數(shù)中一樣先調(diào)用讀忙函數(shù)判斷是否處于空閑狀態(tài)。改變RS、RW、E的高低電平,實現(xiàn)寫數(shù)據(jù)操作。最后進行顯示字符和字符串代碼編寫,根據(jù)資料中給出的字符顯示RAM在液晶模塊中的地址80H~9FH,LCD12864只能顯示4行編寫第1行到第4行8列中文漢字。程序?qū)Φ?行至第4行進行地址編寫,調(diào)用寫數(shù)據(jù)函數(shù)write_com(add)寫顯示的地址,再寫顯示內(nèi)容write_data(dat)。顯示字符串中,要判斷字符串是否顯示完成*s!='\0',未完成則繼續(xù)進入循環(huán),s加1,完成顯示全部字符串為止。顯示字符串函數(shù)流程圖如下圖4-2所示。還有一個LCD12864_init初始化函數(shù),在主函數(shù)main中開始調(diào)用。模塊控制芯片中有兩個指令集,分別是基本指令集和擴充指令集,本程序中采用了基本指令集,參考資料中指令表編寫初始化函數(shù),實現(xiàn)8位數(shù)據(jù)流、開顯示、清除顯示等功能。LCD12864顯示模塊程序就編寫完成了。圖4-2LCD12864顯示模塊4.3AS608指紋搜索子函數(shù)設(shè)計指紋模塊頭文件中編寫了10個函數(shù),其中搜索用戶函數(shù)search()、保存指紋函數(shù)savefingure()、刪除指紋函數(shù)dellfingure()、清空指紋函數(shù)clear_All()、錄入指紋函數(shù)enroll()尤為重要。程序編寫前需要對操作指令定義,根據(jù)對應(yīng)的指令包格式和應(yīng)答包格式編寫。本小節(jié)主要對搜索用戶函數(shù)search()流程特別講解。指紋搜索子函數(shù)流程圖如4-3所示。圖4-3AS608指紋搜索4.4矩陣鍵盤檢測函數(shù)設(shè)計在整個矩陣鍵盤頭文件中,編寫了三個函數(shù),分別為解碼函數(shù)jiema()、延時函數(shù)key_delay()、按鍵查詢函數(shù)keycan()。本設(shè)計對其中的按鍵查詢函數(shù)keycan()特別講解。根據(jù)原理圖所示,矩陣鍵盤中P1.0~P1.3是行線,P1.4~P1.7是列線。程序中先將全行線置低電平0,Key=0xF0,判斷列線的輸入。這時候檢測Key輸入值與0xF0是否一致,不同時返回0,相同則進行延時消抖,因為按鍵為金屬按鍵,有一些抖動的現(xiàn)象出來,所以在程序中有延時去抖動進行消抖。進行下一步檢測。下一步檢測中先對Key&0xF0!=0xF0進行再一次判斷,不同則返回;相同則賦行掃描初始值為0xFE。進入循環(huán)判斷是否本行有按鍵按下,是的話則等待按鍵的釋放,返回按鍵值;不是則行掃描碼左移一位繼續(xù)判斷。整個按鍵查詢函數(shù)的流程圖如下圖4-4所示。圖4-4矩陣鍵盤檢測4.5本章小結(jié)本章介紹了各個模塊的驅(qū)動程序設(shè)計思路和方法,從軟件的總體主程序介紹,到各個主要模塊的設(shè)計詳解:主函數(shù)控制輸出模塊設(shè)計,LCD12864顯示模塊程序設(shè)計,AS608指紋搜索子函數(shù)模塊程序設(shè)計,矩陣鍵盤輸入檢測模塊程序設(shè)計。通過軟硬件相結(jié)合設(shè)計方式,實現(xiàn)本指紋識別密碼鎖所需的各個功能。第五章系統(tǒng)整體功能調(diào)試與測試5.1仿真調(diào)試本設(shè)計在通過硬件制作出實物前,通過Proteus8.9版本軟件進行一些仿真調(diào)試,由于指紋模塊不能進行仿真手動輸入指紋特征,仿真圖只顯示了輸入密碼開鎖方式和進去管理員模式。采用了藍色LED燈和繼電器聯(lián)合模擬電磁鎖開鎖的狀態(tài),燈亮則開鎖成功。使用Keil4編寫程序,然后點擊STC89C52芯片中選擇.hex文件后進行運行。實驗各個功能后,對其進行仿真調(diào)試,可以實現(xiàn)開鎖模擬。仿真原理圖如下圖5-1所示。圖5-1原理圖5.2實物調(diào)試按照原理圖焊接好各元器件,通過電腦連接單片機下載線,電腦打開普中PZISP自動下載軟件,芯片類型選擇STC89C5XX系列,低速下載,選擇.hex文件進行下載程序到STC89C52單片機中,來驗證指紋識別密碼鎖需要達到的各個效果。采用USB接口連接充電寶的方式為單片機驅(qū)動供電,12V電源適配器為電磁鎖供電。還分別配了儲備電源電池盒,保證家庭用電停電時,對單片機供電進行手動輸入密碼打開門鎖。整體設(shè)計實物圖如下圖5-2所示。圖5-2整體實物圖系統(tǒng)采用了一般模式和管理員模式,開機則是一般模式的界面,顯示屏顯示“歡迎使用指紋鎖”“編號:”“狀態(tài):”字體。初始密碼是555555,因為密碼的重要性,所以采用了*對數(shù)字進行了隱藏處理,手動輸入555555后,如下圖5-3所示,數(shù)字全為******。圖5-3初始密碼輸入通過對初始密碼的輸入,按確認鍵確認密碼,液晶顯示屏字體“狀態(tài):”變成了“狀態(tài):解鎖成功”,其中二極管亮起,繼電器打開,實現(xiàn)密碼開鎖。如下圖5-4所示。圖5-4顯示屏、二極管和繼電器狀態(tài)當輸入初始密碼錯誤時,顯示“狀態(tài):密碼錯誤”,同時紅色二極管閃爍三次,伴隨著蜂鳴器響。如圖5-5所示。圖5-5初始密碼輸入錯誤系統(tǒng)上電后,默認處于一般模式,通過指紋識別模塊存儲好的指紋庫與當前按下的指紋的特征進行對比,兩個特征吻合則顯示“狀態(tài):解鎖成功”,反之顯示“狀態(tài):無效指紋”,伴隨著二極管閃爍三次并蜂鳴器響,如下圖5-6所示。圖5-6無限指紋按下管理員模式按鈕,屏幕出現(xiàn)“請輸入管理密碼:”字體,矩陣鍵盤輸入管理員密碼555555,按確認鍵,進入管理員模式界面,界面有三個功能選項,分別是錄入指紋,刪除指紋,修改密碼。通過“上翻”“下翻”兩個按鍵選擇功能,如下圖5-7、圖5-8所示。圖5-7進入管理員系統(tǒng)模式圖5-8管理系統(tǒng)界面選擇錄入指紋功能,屏幕顯示“錄取指紋”“編號:”字體,如下圖5-9所示。輸入編號010,按確認鍵,顯示“狀態(tài):”,輸入指紋編號后,如果長時間指紋模塊沒有指紋的輸入,會顯示“狀態(tài):采集失敗”,如下圖5-10所示。重新輸入指紋編號以后,再次進行指紋采集。再次輸入編號,按確認鍵,手放到指紋識別模塊上等待采集指紋成功,顯示字體“狀態(tài):錄入成功”。如下圖5-11所示。圖5-9進入錄入指紋功能界面圖5-10指紋錄入失敗圖5-11指紋錄入成功選擇刪除指紋選項,進入界面。屏幕顯示“刪除指紋”“編號:”字體,如下圖5-12所示。選擇需要刪除的指紋編號,例如輸入編號010,確認刪除,顯示“狀態(tài):刪除成功”,如下圖5-13所示。本設(shè)計考慮到刪除指紋數(shù)量多的情況,設(shè)計了一個清空指紋功能,輸入編號999,即可清空指紋庫。如下圖5-14所示。圖5-12刪除指紋界面圖5-13刪除010指紋圖5-14清空指紋庫選擇修改密碼功能,進入界面,如下圖5-15所示。屏幕顯示字體“請輸入舊密碼:”,輸入舊密碼555555,如下圖5-16所示。這里設(shè)置了一個連續(xù)輸入兩次新密碼,兩次密碼一致才修改成功。這時候顯示“密碼修改成功,請妥善保管好”,如下圖5-17所示。圖5-15修改密碼界面圖5-16輸入舊密碼圖5-17密碼修改成功在調(diào)試過程中,液晶顯示屏出現(xiàn)了字符串亂碼情況的發(fā)生,出現(xiàn)一些不該有的中文漢字,原本系統(tǒng)設(shè)定的“刪除指紋”字體變成了“刪持肝”,如圖5-18所示。通過查閱資料和請教他人,明白了這是編寫程序軟件keil出現(xiàn)的一個Bug,通過找尋keil液晶漢字顯示BUG修復(fù)工具來解決,將工具程序放置到keil安裝目錄

溫馨提示

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

最新文檔

評論

0/150

提交評論