基于單片機(jī)指紋識別系統(tǒng)設(shè)計(jì)_第1頁
基于單片機(jī)指紋識別系統(tǒng)設(shè)計(jì)_第2頁
基于單片機(jī)指紋識別系統(tǒng)設(shè)計(jì)_第3頁
基于單片機(jī)指紋識別系統(tǒng)設(shè)計(jì)_第4頁
基于單片機(jī)指紋識別系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于單片機(jī)指紋識別系統(tǒng)設(shè)計(jì)任務(wù)書 課程設(shè)計(jì)題目:指紋識別功能簡述:1)根據(jù)所學(xué)的知識和能力,設(shè)計(jì)程序可以實(shí)現(xiàn)根據(jù)指紋的大小、 形狀等特征,識別出不同的指紋。2)利用按鍵標(biāo)志當(dāng)前指紋識別的狀態(tài),例如錄入狀態(tài),識別狀態(tài) 清楚狀態(tài) ;利用液晶 1602 能夠顯示當(dāng)前指紋識別的狀態(tài)信息。3)利用繼電器,對當(dāng)前信息的判斷,例如提醒當(dāng)前指紋識別錯誤 利用蜂鳴器和 LED 等提醒當(dāng)前指紋識別是否正確目錄第一章 緒論 1 1、指紋識別中的基本概念 1.2 指紋識別的發(fā)展前景 1.3、指紋識別課題設(shè)計(jì)的內(nèi)容與意義 第二章 方案選擇 2.1 系統(tǒng)原理圖設(shè)計(jì) 2.2方案說明 2.3 方案比較 2.4 方案選擇 第三

2、章 硬件設(shè)計(jì) 31 AT89C52單片機(jī)設(shè)計(jì)3.2 電源電路設(shè)計(jì)3.3 按鍵控制部分電路 3.4 LED 指示燈電路3.5 蜂鳴器電路3.6 指紋傳感器模塊 第四章 軟件程序設(shè)計(jì) 4.1 程序流程圖4.2 程序 第五章 調(diào)試 5.1硬件調(diào)試 5.2軟件調(diào)試 摘要隨著時代的發(fā)展, 社會越來越需要高效、 可靠的身份識別系統(tǒng)傳統(tǒng)的 個人身份鑒別手段如鑰匙、口令、密碼、身份證件,甚至 IC 卡等識 別方式,由于它們具有可假冒、可偽造、可盜用、可破譯的弱點(diǎn),已 不能完全滿足現(xiàn)代社會經(jīng)濟(jì)活動和社會安全防范的需要。 隨著識別技 術(shù)的不斷成熟和計(jì)算機(jī)技術(shù)的飛速發(fā)展, 各種基于人體生理特征的身 份識別系統(tǒng)如:指

3、紋、手掌、聲音、視網(wǎng)膜、瞳孔和面紋等識別技術(shù) 紛紛從實(shí)驗(yàn)室中走出來。 目前,從實(shí)用的角度看, 指紋識別技術(shù)是優(yōu) 于其它生物識別技術(shù)的身份鑒別方法。 本次設(shè)計(jì)我們利用指紋識別傳 感器進(jìn)行指紋采集與識別 , 在單片機(jī)中對指紋進(jìn)行處理 , 用按鍵標(biāo)志 當(dāng)前指紋識別的狀態(tài),錄入狀態(tài),識別狀態(tài) ,清除狀態(tài) ,用液晶 1602 能夠顯示當(dāng)前指紋識別的狀態(tài)信息 ;用繼電器對當(dāng)前信息進(jìn)行判斷, 例如提醒當(dāng)前指紋識別錯誤 ;利用蜂鳴器和 LED 等提醒當(dāng)前指紋識 別是否正確關(guān)鍵詞:指紋識別;單片機(jī);指紋識別傳感器 ; 液晶 1602; 繼電器第一章 緒論進(jìn)入 21 世紀(jì)后, 由于國際反恐、 互聯(lián)網(wǎng)應(yīng)用等因素的推

4、動, 在全球范圍內(nèi), 指紋識別技術(shù)得到了更加廣泛的應(yīng)用,指紋識別市場進(jìn)入高速發(fā)展階段。利用 人的生理特征,例如像指紋等來識別個人的身份,將成為今后幾年 IT 產(chǎn)業(yè)的重 要革新。指紋在所有的生物特征中,相對穩(wěn)定、不隨年齡而變化和采集較為便 捷,同時它的研究歷史最長、相對更為成熟。與現(xiàn)有的智能卡、身份證號碼和 密碼的身份識別系統(tǒng)相比,指紋識別的性價比最高,也更適于應(yīng)用到大眾生活 中。因此指紋識別以其革命性的便捷和安全性成為一個理想的卓越的解決方案。 11、指紋識別中的基本概念 指紋識別是成熟的生物識別 (Biometric) 技術(shù),由于人體的身體特征具有不可復(fù) 制的特點(diǎn),人們把目光轉(zhuǎn)向了生物識別技

5、術(shù),希望可以籍此技術(shù)來應(yīng)付現(xiàn)行系 統(tǒng)安全所面臨的的挑戰(zhàn)。要把人體的特證用于身份識別,這些特征必須具有唯 一性和穩(wěn)定性。研究和經(jīng)驗(yàn)表明,人的指紋、掌紋、面孔、發(fā)音、虹膜、視網(wǎng) 膜、骨架等都具有唯一性和穩(wěn)定性的特征,即每個人的這些特征都與別人不同、 且終生不變,因此就可以據(jù)此識別出人的身份。基于這些特征,人們發(fā)展了指 紋識別、面部識別、發(fā)音識別等多種生物識別技術(shù),目前許多技術(shù)都已經(jīng)成熟 并得以應(yīng)用,其中的指紋識別技術(shù)更是生物識別技術(shù)的熱點(diǎn)。1.2 指紋識別的發(fā)展前景 指紋行業(yè)是一個新興的行業(yè),本身具有很高的科技含量,相對利潤高發(fā)展前景 廣闊。經(jīng)專家預(yù)計(jì),指紋產(chǎn)品將是未來 IT 產(chǎn)業(yè)新的增長點(diǎn):利潤

6、率最高、發(fā)展 潛力最大。于是,世界頂尖的指紋識別技術(shù)得到了全球范圍內(nèi)的高度重視,指 紋識別技術(shù)的應(yīng)用如火如荼地迅速發(fā)展起來。目前,國內(nèi)已經(jīng)有不少企業(yè)在參 與指紋識別技術(shù)的開發(fā)和應(yīng)用。指紋技術(shù)在現(xiàn)代生活和工作中的應(yīng)用已越來越 普遍,例如:指紋考勤、指紋社保、指紋銀行、指紋商場、指紋接送幼兒等等 生活和工作的新現(xiàn)象已廣為人知,指紋技術(shù)正在日益刷新著我們的現(xiàn)代化生活 方式。1.3、指紋識別課題設(shè)計(jì)的內(nèi)容與意義 指紋識別技術(shù)相對于其他識別方法有許多獨(dú)到之處,具有很高的實(shí)用性和可行 性。因此,指紋識別成為最流行、最方便、最可靠的身份認(rèn)證方式,己經(jīng)在社 會生活的諸多方面得到廣泛應(yīng)用。這是由于指紋是獨(dú)一無二

7、的,兩人之間不存 在著相同的指紋,指紋是獨(dú)一無二的,兩人之間不存在著相同的指紋,同時指 紋樣本易于采集,難以偽造,便于開發(fā),實(shí)用性強(qiáng),可以利用多個指紋構(gòu)成多 重口令,提高系統(tǒng)的安全性。本文主要通過對 MCS-51系列單片機(jī)的結(jié)構(gòu)和功能進(jìn)行分析,來研究基于單片機(jī) 指紋識別系統(tǒng)的內(nèi)部結(jié)構(gòu)特點(diǎn)和功能闡述以及工作原理,更好的了解了指紋識 別系統(tǒng)的未來前景。第二章 方案選擇2.1 系統(tǒng)原理圖設(shè)計(jì)2.2 方案說明2.1.1方案一:攝像頭采集、飛思卡爾單片機(jī)處理 這種方案由指紋圖像采集、指紋圖像預(yù)處理、指紋特征提取、指紋特征匹配、 特征數(shù)據(jù)庫等幾部分組成。指紋識別系統(tǒng)的原理框圖如圖1 所示。該系統(tǒng)首先由數(shù)字

8、攝像頭 ov6620 采集指紋,并將指紋圖像轉(zhuǎn)化為數(shù)字圖像 ; 然后用 16位的飛思卡爾 X128 單片機(jī)對指紋數(shù)字圖像進(jìn)行預(yù)處理 ,再通過圖像增 強(qiáng)、分割、平滑、細(xì)化等處理過程得到便于指紋特征提取的數(shù)字圖像:接著提 取細(xì)化后的圖像細(xì)節(jié)特征點(diǎn) ; 然后將指紋信息數(shù)據(jù)送入 STC89C52 單片機(jī)中, 一塊液晶 1602與 STC89C52 單片機(jī)相連, 液晶用于顯示當(dāng)前指紋采集系統(tǒng)的工 作狀態(tài)和經(jīng)對比后指紋采集的信息是否正確,用一個蜂鳴器和 LED 指示燈指示 當(dāng)前采集的指紋信息正確。 當(dāng)采集到的指紋信息正確, 蜂鳴器發(fā)出響聲并且 LED 指示燈點(diǎn)亮。2.1.2 方案二 指紋識別傳感器 代替第

9、一種方案中的攝像頭和飛思卡爾單片機(jī),我們利用一個指紋識別傳 感器來對指紋進(jìn)行采集,識別以及部分處理,然后將信息輸送到AT89C52 單片 機(jī)中,利用按鍵控制當(dāng)前指紋識別的狀態(tài),用 LED 燈進(jìn)行顯示,即錄入狀態(tài), 識別狀態(tài) ,清除狀態(tài) ;利用液晶 1602 能夠顯示當(dāng)前指紋識別的狀態(tài)信息,即錄入 指紋的編號以及當(dāng)前指紋;利用繼電器,對當(dāng)前信息的判斷,例如提醒當(dāng)前指 紋識別錯誤 ;利用蜂鳴器提醒當(dāng)前指紋識別是否正確,如果指紋錄入正確,蜂鳴 器發(fā)出響聲。2.3 方案比較1)復(fù)雜性:方案一采取用數(shù)字?jǐn)z像頭 ov6620采集指紋圖像,然后用 16 位 的飛思卡爾 X128 單片機(jī)進(jìn)行圖像處理,還要進(jìn)行

10、圖像增強(qiáng)、分割、平滑、細(xì)化 等處理過程才能得到便于指紋特征提取的數(shù)字圖像;而這些過程在方案二中只 用一個指紋傳感器模塊就可以代替,所以方案二設(shè)計(jì)簡單。2)準(zhǔn)確性:方案一中所采集的攝像頭分辨率有限,所以采集的指紋信息有 一定的誤差,方案二中指紋傳感器模塊是利用集成的光學(xué)頭進(jìn)行處理的,比較 精確。3)局限性:由于方案一中使用的飛思卡爾單片機(jī)處理程序比較復(fù)雜,超出 了我們的學(xué)習(xí)范圍,而方案二傳感器就使程序簡單化了。2.4 方案選擇鑒于各種原因,我們最終選擇第二種方案,使用指紋傳感器模塊來設(shè)計(jì)系統(tǒng)第三章 硬件設(shè)計(jì)31 AT89C52單片機(jī)設(shè)計(jì)3.1.1 主要性能有 12k 字節(jié) Flash 閃速存儲器

11、, 1024 字節(jié)內(nèi)部 RAM,32 個 I/O 口線,兩個 16 位 定時/ 計(jì)數(shù)器,5 個中斷向量,一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。3.1.2 引腳結(jié)構(gòu)圖(如圖 3-1 )U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0/T2P3.0/RXDP1.1/T2EXP3.1/TXDP1.2P3.2/INT0P1.3P3.3/IN

12、T1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RD19189322930313938371234567821222324252627281011121314151617363534AT89C52圖 3-1 AT89C52 管腳圖3.1.3 一些端口的介紹 :P30口:RXD(串行輸入口)P31口:TXD(串行輸出口) XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端。3.1.4 單片機(jī)最小系統(tǒng)1)外部晶振的設(shè)計(jì)STC89C52的內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,通過XTAL1,ATAL2外部接上一

13、片作為反饋元件的晶體, 與 C1和 C2構(gòu)成了并聯(lián)諧振電路, 使 其構(gòu)成自激振蕩器,電容的值具有微調(diào)的作用,我們?nèi)?0PF,具體的接法如圖3-2 外部晶振電路。C122pFX112MC2 12M22pF圖 3-2 外部晶振電路STC89C52的工作頻率范圍在 0-24MHZ。我們選用的是 11.0592MHZ的晶振, 振蕩周期約為 1us 機(jī)器周期約為 0.1us ,所以這個晶振可以滿足這個系統(tǒng)的要求。 并且晶振不能離單片機(jī)太遠(yuǎn),不然使用外部晶振進(jìn)行軟件調(diào)試時就會發(fā)現(xiàn)找不 到信號。2)復(fù)位電路的設(shè)計(jì) MCS51單片機(jī)通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式,本系統(tǒng)采用簡單 的自動復(fù)位電路如圖 2

14、-2 所示。單片機(jī)在上電瞬間, RC電路充電, RST引腳端 出現(xiàn)正脈沖,只要 RST 端保持兩個機(jī)器周期以上的高電平,就能使單片機(jī)有效 復(fù)位。其中電容選 10uF、電容選 10K。22pFC310ufR110K圖 3-3 復(fù)位電路3.2 電源電路設(shè)計(jì)圖 3-4電源電路本系統(tǒng)采用的 5V電源主要采用兩種方法,第一是直接用 9V 電池然后通過一 個變壓電路,利用 7805 將轉(zhuǎn)化成 5V 供單片機(jī)和液晶顯示部分使用;其二是用 220V通過變壓器等將其轉(zhuǎn)化成 5V。 兩種方法都可以,但是由于第一種方法便于攜帶、而且成本相對較低所以我們 選用第一種方案。3.3 按鍵控制部分電路1)消除抖動 按鍵的閉

15、合與否反應(yīng)在電壓上就是呈現(xiàn)出高電平或低電平,如果高電平表示 斷開,那么低電平則表示閉合,通過電平的高低狀態(tài)的檢測可確認(rèn)鍵按下與否。 為了確保 CPU對一次按鍵動作只確認(rèn)一次,并且防止干擾信號的影響,必需加 入消除電平抖動的措施,下圖 3-5 為按鍵抖動示意圖:圖 3-5 按鍵閉合及斷開前后的電壓消除抖動通常有硬、軟硬兩種方法,硬件消除抖動可采取雙穩(wěn)態(tài)電路或?yàn)V波消 抖電路;軟件消抖是在第一次檢測到有鍵按下時,執(zhí)行一段延時程序再確認(rèn)該 鍵是否仍閉合,如果還是閉合狀態(tài)則確認(rèn)該鍵按下,從而消除抖動和干擾影響。 當(dāng)按鍵較多時,我們多采用硬件件消抖法。本系統(tǒng)中按鍵少直接采用直接接入 的方式。2)按鍵接口設(shè)

16、計(jì)按鍵接口設(shè)計(jì)有兩種方法,獨(dú)立式按鍵和矩陣式鍵盤。獨(dú)立式按鍵各鍵相獨(dú)立,每個按鍵各接入一根輸入線,只要檢測輸入線的電平就可以識別按鍵狀態(tài)。 這種方法電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵需占用一根輸入口。由于 該設(shè)計(jì)方案 IO 資源浪費(fèi)大。故此方法只適用于按鍵少或其他控制功能很簡單的 場合。由于本設(shè)計(jì)中的按鍵只有 3 個,考慮系統(tǒng)可靠性和鍵盤設(shè)計(jì)的簡單所以 采用獨(dú)立式按鍵。本系統(tǒng)的按鍵電路如圖 3-6 所示:圖 3-6 獨(dú)立按鍵電路按鍵按下是呈低電平,我們采用軟件消抖來減少對的單片機(jī)影響3.4 LED 指示燈電路圖 3-7 LED 燈指示電路當(dāng) k2 鍵按下時,錄入模式指示燈 red 亮;當(dāng)

17、k1 鍵按下時,識別模式指示燈 green3.5 蜂鳴器電路圖 3-8 蜂鳴器電路3.6 指紋傳感器模塊1)指紋模塊電路如下所示:圖 3-9 指紋識別模塊指紋模塊里面主要是 DSP芯片,型號為 PS1802,加上外面的 CMOS芯片, CMOS 芯片主要是對指紋進(jìn)行“照相” ,生成指紋特征,如圖 3-8 所示就是一個指紋模 板,錄入兩次這樣的指紋特征就能生成一個指紋模板。具體的工作過程是:掃描指紋(錄入圖像) 、生成特征、合成模板(建立一個指 紋庫文件,成功錄入一個指紋) 。圖 3-10 指紋模板指紋模板就是“照一次相” ,指紋模塊里面的 CMOS芯片采集一次指紋信息,然 后進(jìn)行模糊處理生成

18、0和 1兩種記錄信息,存入指紋模塊的 FLASH芯片里面。 當(dāng)切換到識別模式的時候,指紋模塊就會先讓 CMOS芯片采集一次指紋,然后和 FLASH芯片的數(shù)據(jù)進(jìn)行對比??词遣皇谴嬖?,如果存在就能返回是幾號指紋。這 樣我們就能通過單片機(jī)或者電腦進(jìn)行指紋識別與登記了。2)指紋傳感器模塊實(shí)物圖 指紋模塊型號是: FM-180,此模塊上里面包含了 :1、光學(xué)頭 2 、通信連接線 3 、DSP芯片(在模塊里面)4、穩(wěn)壓芯片 5、FLASH芯片 6 、CMSO傳感器(在模塊里面) 等部件組成。1、光2、通信連3、DSP芯4、穩(wěn)壓芯5、 FLASH6 、 CMOS圖 3-11 指紋傳感器模塊實(shí)物圖第四章 軟件

19、程序設(shè)計(jì)該設(shè)計(jì)主要通過設(shè)定的 3個按鍵來實(shí)現(xiàn)一定的功能, 3個按鍵分別為模式切換 (識 別模式和錄入指紋模式) 、指紋錄入、刪除所有指紋。41 程序流程圖4.1.1程序主流程圖( 1)指紋錄入: 先進(jìn)行錄入模式,然后按一下錄入指紋,燈會閃爍,錄入成 功一次,蜂鳴器響一次, 這時候拿開手指, 1 秒放入同一個手指, 會再錄入一次, 如果兩次都成功,就成功錄入了一個指紋。蜂鳴器會響兩次,同時顯示錄入指 紋成功。如果不成功就會顯示錄入失敗。錄入完成后,可以進(jìn)入識別模式,或 者接著錄入下一個指紋。錄入完成,按一次指紋轉(zhuǎn)換,進(jìn)入指紋識別開鎖模式。 單片機(jī)主程序流程設(shè)計(jì):4.2 系統(tǒng)關(guān)鍵代碼引腳使用:sb

20、it relay =P14; /繼電器引腳sbit buzzer=P15; / 蜂鳴器引腳 sbit red= P27;/ 錄入模式指示燈 sbit green= P20;/ 識別模式指示燈在板子靠近單片機(jī)處在板子遠(yuǎn)離單片機(jī)處sbit k2=P34; /sbit k1=P33; /sbit k3=P32; /錄入一次指紋模式識別轉(zhuǎn)換清除所有指紋( 10 個指紋清除)部分主函數(shù)代碼:void main(void)/主函數(shù)unsigned char i=0;ET0=1; / 定時器 0 開中斷TL0=0x97; /17ms 的初值TH0=0xBD;delay1ms(5);LcdRw=0; / 只對

21、液晶進(jìn)行寫操作,不進(jìn)行讀操作delay1ms(5);LCD_Initial();/ 液晶初始化 delay1ms(5);GotoXY(0,0);/x,yPrint(Identify);/ 串口初始化SCON=0x50; /UART 方式 1:8 位 UART; REN=1: 允許接收PCON=0x00; /SMOD=0: 波特率不加倍TMOD=0x21; /T1方式 2, 用于 UART波特率TH1=0xFD;TL1=0xFD; /UART 波特率設(shè)置 :9600TR1=1;TR0=1;/ 開定時器 0IT0=0;/ 中斷 0 低電平中斷IT1=1;/ 中斷 1 低電平中斷EX0=1;/ 開中

22、斷 0EX1=1;/ 開中斷 1EA=1;mode();/ 看當(dāng)前是什么模式for(i=0;i6;i+)/ 開始握手 6 次,如果沒有一次成功, 表示模塊通信不正 常。只要成功就跳出此循環(huán)if(VefPSW()/ 與模塊握手通過,綠燈亮起。進(jìn)入識別模式 green=0; / 讀一次 buzzer=0; shownum(0); delay1ms(300); buzzer=1; break;elsered=1; green=1; break; while(1)if(k2=0)/ 錄入一個指紋 delay1ms(10); if(k2=0)/ 如果仍為低電平,表示按鍵有效 while(k2=0);/

23、等待松手 if(VefPSW()=1&modeflag=1&SaveNumber10)/ 與模 塊握手通過if(enroll()=1)/ 采集兩次,生成 1 個指紋模板 成功 if(savefingure(SaveNumber+1)=1)/ 保 存也成功SaveNumber+;/ 加一次 shownum(SaveNumber);elsebuzzer=0;for(i=0;i=1&searchnum=162)/ 最多是 162 個指紋 shownum(searchnum);/ 蜂鳴器響一聲relay=0;buzzer=0; delay1ms(100);buzzer=1;for(i=0;i20;i+

24、) delay1ms(150);relay=1;if(searchnum=255)/ 不正確的指紋 蜂鳴器響三聲shownum(0);buzzer=0;delay1ms(100); buzzer=1;delay1ms(100);buzzer=0;delay1ms(100); buzzer=1;delay1ms(100);buzzer=0;delay1ms(100); buzzer=1;delay1ms(100);if(clearallflag=1)clearallflag=0;Clear_All();red=0; / 紅色燈亮green=1;/ 蜂鳴器長響一次,表示清除所有指紋結(jié)束modefl

25、ag=1;/ 進(jìn)入錄入指紋模式GotoXY(0,0);/x,yPrint(Input);shownum(0);buzzer=0;delay1ms(800);buzzer=1;SaveNumber=0;if(changeflag=1)mode();/ 顯示當(dāng)前模式changeflag=0;/while(1)結(jié)束 /void int0(void) interrupt 0/中斷 0,清除所有指紋if(k3=0) / 清除所有指紋delay1ms(10);if(k3=0)/ 如果仍為低電平,表示按鍵有效while(k3=0);/ 等待松手clearallflag=1;changeflag=1;定時器

26、0 中斷函數(shù)中斷 1,模式轉(zhuǎn)換void Timer0(void) interrupt 1/TL0=0x97;TH0=0xBD;clk0+; / 延時 17ms void int1(void) interrupt 2/ if(k1=0)/ 模式轉(zhuǎn)換 其中用 modeflag 來標(biāo)志 , 默認(rèn)從第 1 個指紋開始錄 入 delay1ms(10); if(k1=0)/ 如果仍為低電平,表示按鍵有效 while(k1=0);/ 等待松手 modeflag=modeflag;/0 表示錄入指紋 1 表示識別指紋 changeflag=1;/ 模式發(fā)生了轉(zhuǎn)換第五章 調(diào)試完成了硬件的設(shè)計(jì)、制作和軟件編程之后

27、,要使系統(tǒng)能夠按設(shè)計(jì)正常運(yùn)行,必 須進(jìn)行硬件調(diào)試和軟件調(diào)試。5.1 硬件調(diào)試硬件調(diào)試的主要任務(wù)是排除硬件故障,其中包括設(shè)計(jì)錯誤和工藝性故障。(1) 在電路的電源焊接一個電源指示燈,判斷電路中通電是否正常。(2) 將電路中的電源線布置在通用板的四周,這樣使用電源很方便,減少干擾, 同時可以減少短路故障發(fā)生的可能。(3) 元器件合理布局,且盡量減少占用板子的面積,力爭做到節(jié)儉。特別是單 片機(jī)的晶振盡量靠近單片機(jī),減少干擾。(4) 液晶的焊接注意方向,且調(diào)節(jié)背光的電位器不可以少。5.2 軟件調(diào)試軟件調(diào)試的任務(wù)是利用開發(fā)工具進(jìn)行在線仿真調(diào)試,發(fā)現(xiàn)和糾正程序錯誤,同 時也能發(fā)現(xiàn)硬件故障。程序的調(diào)試應(yīng)一個

28、模塊一個模塊地進(jìn)行,首先單獨(dú)調(diào)試各功能子程序,檢驗(yàn)程 序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各子程 序連接起來總調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊間能否正確傳遞參數(shù),特別 要注意各子程序的現(xiàn)場保護(hù)與恢復(fù)。本設(shè)計(jì)主要有: 1 指紋識別傳感器圖像采集模塊2 單片機(jī)圖像處理3 按鍵模塊和指示燈模塊4 指紋液晶顯示和蜂鳴器、繼電器模塊不斷地對單片機(jī)下程序,觀看調(diào)試結(jié)果。參考文獻(xiàn)1 河橋,段清明, 邱春玲 .單片機(jī)原理及應(yīng)用 . 北京:中國鐵道出版社, 2007.122 馮星奎, 李林艷,顏?zhàn)嫒?.一種新的指紋圖像細(xì)化算法 . 中國圖像圖形學(xué)報(bào), 1999, 4(10)835-83

29、8.3 呂鳳軍.數(shù)字圖象處理編程入門一一做一個自己的Photoshop. 北京:清華大學(xué)出版社, 1999.4 劉文星,王雄沂,母國光 .紋線跟蹤及其在細(xì)化指紋后處理中的應(yīng)用 . 光電 子傲光, 2002,13 (2) :184-187.5 劉家鋒,唐降龍,趙泉 . 一個基于特征點(diǎn)匹配的聯(lián)機(jī)指紋鑒別系統(tǒng) . 哈爾濱 工業(yè)大學(xué)學(xué)報(bào), 2002.34 (1) :132-1366 簡兵,莊鎮(zhèn)泉等 .基于脊線跟蹤的指紋圖細(xì)節(jié)提取算法 . 電路與系統(tǒng)學(xué)報(bào), 20017 劉旭,田捷 .自動指紋識別算法在嵌入式系統(tǒng)的實(shí)現(xiàn) J. 計(jì)算機(jī)工程與應(yīng) 用, 2002.8 周毅,等著 .基于 SPI 協(xié)議的實(shí)現(xiàn),計(jì)算

30、機(jī)仿真 .2003.9 竇振中.單片機(jī)外圍器件實(shí)用手冊 (存儲器分冊 ) 北京:北京航空航天大學(xué) 出版社, 20O010 李華MCS-51系列單片機(jī)實(shí)用接口技術(shù) 北京:北京航空航天大學(xué)出版社, 199811 張培仁,孫占輝,張村峰基于 c 語言編程 MCS一 51 單片機(jī)原理與應(yīng)用M 北京:清華大學(xué)出版社, 2003附件 2 程序清單#include #include #includelcd1602.hsbit relay =P14; / sbit buzzer=P15; / sbit red= P27;/ sbit green= P20;/sbit k2=P34; /sbit k1=P33;

31、 /sbit k3=P32; /繼電器引腳蜂鳴器引腳錄入模式指示燈 在板子靠近單片機(jī)處識別模式指示燈 在板子遠(yuǎn)離單片機(jī)處錄入一次指紋模式識別轉(zhuǎn)換清除所有指紋( 10 個指紋清除)#define Max_User 10#define error 2unsigned char unsigned intSaveNumber=0,searchnum=0;SearchNumber=0;unsigned int clk0=0;unsigned char str3=0,0,0;unsigned char code Identify16=Lock: Idenfity;unsigned char code In

32、put16 =Lock: Input ;bit modeflag=0,clearallflag=0,changeflag=0;/ 默認(rèn)為識別模式/ 常用指令定義 /Verify Password :驗(yàn)證設(shè)備握手口令unsigned char code VPWD16=16,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7,0x13,0x00,0x00,0x00,0x00,0x00,0x1b; / 回送 12 個/ 設(shè)置設(shè)備握手口令unsigned char code STWD16=16,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7,0x12,0x0

33、0,0x00,0x00,0x00,0x00,0x1a; / 回送 12 個/GetImage :探測手指并從傳感器上讀入圖像unsigned char code GIMG14=12, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,3,1,0x00,0x05; / 回送 12 個/Gen Templet1:根據(jù)原始圖像生成指紋特征 1unsigned charcodeGENT114=13,0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,1,0x00,0x08; / 回送 12 個/Gen Templet2:根據(jù)原始圖像生成指紋特征 2unsign

34、ed char codeGENT214=13,0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,2,0x00,0x09; / 送 12 個 /Search Finger :以 CharBufferA 或 CharBufferB 中的特征文件搜索整 個或部分指紋庫unsigned char code SEAT18=17, 0,8, 4,1,0,0, 0,0x65, 0x00,0x73; /Merge Templet ; 將 CharBufferA 成模板,結(jié)果存于 ModelBuffer 。0X01 ,0Xff,0xff,0xff,0xff, 0x01, / 回送 16

35、個與 CharBufferB 中的特征文件合并生unsigned char code MERG14=12,0,3,5 , 0x00,0x09;/ 回送 12 個0X01 ,0Xff,0xff,0xff,0xff,0x01,/Store Templet:將 ModelBuffer 中的文件儲存到 flash 指紋庫中unsigned char code STOR16=15, 0X01 ,0Xff,0xff,0xff,0xff, 0,6,6,2, 0x00,0x00, 0x00,0x0f; / 回送 12 個 /Read Noteunsigned char code RDNT14=13,0X010

36、,4,0x19, 0, 0x00,0x1e;/Clear Noteunsigned char code DENT46=45,0X01,0Xff,0xff,0xff,0xff,0Xff,0xff,0xff,0xff,0x01,0x01,0x01,0,36,0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x00,0x3d;/DEL one templetunsigned char code DELE_one16=16, 0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7, 0x0c,

37、 0x00,0x00, 0,1, 0x00,0x15;/DEL templet ; 清空指紋庫unsigned char code DELE_all12=12,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,3, 0x0d,0x00,0x11;/ 常用指令定義 結(jié)束 /宏定義 /#define FALSE 0#define TURE 1/ 狀態(tài)定義表#define on1#define off0#define MAX_NUMBER 63#define _Nop() _nop_()/ 宏定義 結(jié)束/unsigned char FifoNumber=0; xdata unsig

38、ned char FIFOMAX_NUMBER+1=0;毫秒延時程序 */void delay1ms(unsigned int t) unsigned int i,j;for(i=0;it;i+) for(j=0;j=6) checksum=FIFOcount+checksum; / 計(jì)算校驗(yàn)和if(count=8)包長度標(biāo)志為 0package=FIFO7*0X100+FIFO8; / 計(jì)算stop= TURE;if(stop)if(count=package+8)checksum=checksum-FIFOcount-1; if(checksum!=FIFOcount&0xff) resu

39、lt=FALSE; / 校驗(yàn)失敗 , 置結(jié)果elseresult=TURE;flag=0;break;的內(nèi)容 結(jié)束/do/while (clk0=MaxTime)&(count=2)/ 如果不成功,再驗(yàn)證一次,如果兩次不成功,返回失 敗return(0);void Clear_All(void) /清空指紋庫 delay1ms(200);Command(DELE_all,50); / 清空指紋庫 unsigned char ImgProcess(unsigned char BUFID) / 發(fā)獲取圖像并生成特征 文件,存入 BUFID中/ 輸入?yún)?shù)為緩沖區(qū)號if(Command(GIMG,89

40、) & (FifoNumber=11) & (FIFO9=0x00)if(BUFID=1)if(Command(GENT1,60) & (FifoNumber=11) & (FIFO9=0x00) return 1;elsereturn 0;else if(BUFID=2)if(Command(GENT2,60) & (FifoNumber=11) & (FIFO9=0x00) return 1;elsereturn 0;elsereturn 0;return 0;bit Searchfinger(void)/搜索指紋 ( 發(fā)送搜索命令、以及根據(jù)返回值確定是否存在 )if( Command(S

41、EAT,60) & (FifoNumber=15) & (FIFO9=0x00) ) / 搜索到指紋SearchNumber=FIFO10*0x100+FIFO11;/ 搜索到的頁碼/MatchScore=FIFO12*0x100+FIFO13 可以在此計(jì)算得分,從而 進(jìn)行安全級別設(shè)定,本程序忽略return 1;elsereturn 0;unsigned char search(void)/ 搜索用戶unsigned char SearchBuf=0,i=0;while (i20)if (ImgProcess(1)=1)/ 首先讀入一次指紋SearchBuf=Searchfinger();/

42、 進(jìn)行指紋比對,如果搜索到,返 回搜索到的指紋序號if(SearchBuf=1)return SearchNumber;elsereturn 255;/ 表示搜索到的指紋不正確i+;return 0;bit savefingure(unsigned char ID)/ 保存指紋unsigned char i=0;/ 現(xiàn)在開始進(jìn)行存儲指紋模板的操作 for (i=0;i=40)/ 如果采集了 40 次,還不成功,直接采集失敗, 直接退出 enroll 函數(shù)返回 0return(0);/ 采集第一個特征成功count=0;buzzer=0;delay1ms(100);buzzer=1;delay1

43、ms(2000);/ 延時 2S 開始采集下一個特征/ 開始采集第二個特征while(1)temp=ImgProcess(2); / 生成特征 2if (temp=1)/ 生成特征文件 2 成功&if ( (Command(MERG,40)& (FifoNumber=11) (FIFO9=0x00)=0 ) /合并不成功返回 0,成功返回 1return 0;else/ 特征文件合并生成模板,結(jié)果存于 ModelBufferbuzzer=0;delay1ms(100);buzzer=1;delay1ms(100);buzzer=0;delay1ms(100); / 響兩聲,表示生成一個模板成功

44、 buzzer=1;return 1;elseif (temp=1)/ 采集指紋沒有成功count+;if (count=25) return(0);void shownum(unsigned char dat)unsigned char numdat=0; numdat=dat;GotoXY(0,1);/x,yPrint(Finger:);GotoXY(0,8);/x,y str0=0x30+numdat/10; str1=0x30+numdat%10; Print(str);void mode(void)if(modeflag=0)GotoXY(0,0);/x,yPrint(Identify);green=0;red=1;elseGotoXY(0,0);/x,yPrint(Input);red=0;green=1;shownum(0);void main(void)/ 主函數(shù)unsigned char i=0;ET0=1; / 定時器 0 開中斷TL0=0x97; /17ms 的初值TH0=0xB

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論