




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、任務(wù)書課程設(shè)計題目:指紋識別功能簡述:1)根據(jù)所學(xué)的知識和能力,設(shè)計程序可以實(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è)計的內(nèi)容與意義 第二章方案選擇2.1 系統(tǒng)原理圖設(shè)計2.2 方案說明2.3 方案比較2.4 方案選擇第三章硬件設(shè)計3. 1 AT89C5彈片機(jī)設(shè)計3.2
2、電源電路設(shè)計3.3 按鍵控制部分電路3.4 LED指示燈電路3.5 蜂鳴器電路3.6 指紋傳感器模塊第四章 軟件程序設(shè)計 4.1 程序流程圖4.2 程序第五章 調(diào)試5.1硬件調(diào)試隨著時代的發(fā)展,社會越來越需要高效、可靠的身份識別系統(tǒng)傳統(tǒng)的 個人身份鑒別手段如鑰匙、口令、密碼、身份證件,甚至 IC卡等識 別方式,由于它們具有可假冒、可偽造、可盜用、可破譯的弱點(diǎn),已 不能完全滿足現(xiàn)代社會經(jīng)濟(jì)活動和社會安全防范的需要。隨著識別技術(shù)的不斷成熟和計算機(jī)技術(shù)的飛速發(fā)展,各種基于人體生理特征的身 份識別系統(tǒng)如:指紋、手掌、聲音、視網(wǎng)膜、瞳孔和面紋等識別技術(shù) 紛紛從實(shí)驗(yàn)室中走出來。目前,從實(shí)用的角度看,指紋識
3、別技術(shù)是優(yōu) 于其它生物識別技術(shù)的身份鑒別方法。本次設(shè)計我們利用指紋識別傳 感器進(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)用等因素的推動,在全球范圍內(nèi), 指紋識別技術(shù)得到了更加廣泛的應(yīng)用,指紋識別市場進(jìn)入高速發(fā)展階段。利用人 的生理特征,例如像指紋等來識別個人的身份,將成為今
4、后幾年IT產(chǎn)業(yè)的重要革新。指紋在所有的生物特征中,相對穩(wěn)定、不隨年齡而變化和采集較為便捷, 同時它的研究歷史最長、相對更為成熟。與現(xiàn)有的智能卡、身份證號碼和密碼的 身份識別系統(tǒng)相比,指紋識別的性價比最高,也更適于應(yīng)用到大眾生活中。因此 指紋識別以其革命性的便捷和安全性成為一個理想的卓越的解決方案。1.1、 指紋識別中的基本概念指紋識別是成熟的生物識別(Biometric)技術(shù),由于人體的身體特征具有不可復(fù) 制的特點(diǎn),人們把目光轉(zhuǎn)向了生物識別技術(shù),希望可以籍此技術(shù)來應(yīng)付現(xiàn)行系統(tǒng) 安全所面臨的的挑戰(zhàn)。要把人體的特證用于身份識別,這些特征必須具有唯一性 和穩(wěn)定性。研究和經(jīng)驗(yàn)表明,人的指紋、掌紋、面孔
5、、發(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ù)計,指紋產(chǎn)品將是未來IT產(chǎn)業(yè)新的增長點(diǎn):利潤率最高、發(fā)展?jié)?力最大。于是,世界頂尖的指紋識別技術(shù)得到了全球范圍內(nèi)的高度重視,指紋識別技術(shù)的應(yīng)用如火如荼地迅速發(fā)展起來。目前,國內(nèi)已經(jīng)有不少企業(yè)在參與指紋識別
6、技術(shù)的開發(fā)和應(yīng)用。指紋技術(shù)在現(xiàn)代生活和工作中的應(yīng)用已越來越普遍,例如:指紋考勤、指紋社保、指紋銀行、指紋商場、指紋接送幼兒等等生活和工作 的新現(xiàn)象已廣為人知,指紋技術(shù)正在日益刷新著我們的現(xiàn)代化生活方式。1.3、 指紋識別課題設(shè)計的內(nèi)容與意義指紋識別技術(shù)相對于其他識別方法有許多獨(dú)到之處,具有很高的實(shí)用性和可行 性。因此,指紋識別成為最流行、最方便、最可靠的身份認(rèn)證方式,己經(jīng)在社會 生活的諸多方面得到廣泛應(yīng)用。這是由于指紋是獨(dú)一無二的,兩人之間不存在著 相同的指紋,指紋是獨(dú)一無二的,兩人之間不存在著相同的指紋,同時指紋樣本 易于采集,難以偽造,便于開發(fā),實(shí)用性強(qiáng),可以利用多個指紋構(gòu)成多重口令, 提
7、高系統(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è)計2.2方案說明2.1.1 方案一:攝像頭采集、飛思卡爾單片機(jī)處理這種方案由指紋圖像采集、指紋圖像預(yù)處理、指紋特征提取、指紋特征匹配、特征數(shù)據(jù)庫等幾部分組成。指紋識別系統(tǒng)的原理框圖如圖1所示。圖2-1、指紋識別系統(tǒng)框圖該系統(tǒng)首先由數(shù)字?jǐn)z像頭ov6620采集指紋,并將指紋圖像轉(zhuǎn)化為數(shù)字圖像; 然后用16位的飛思卡爾X128單片機(jī)對指紋數(shù)字圖像進(jìn)行預(yù)處理,再通過圖像增 強(qiáng)、分割、平滑、細(xì)化等
8、處理過程得到便于指紋特征提取的數(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 方案二 指紋識別傳感器代替第一種方案中的攝像頭和飛思卡爾單片機(jī),我們利用一個指紋識別傳感器來對指紋進(jìn)行采集,識別以及部分處理,然后將信息輸送到AT89C5彈片機(jī)中,利用按鍵控制當(dāng)前指紋識別的狀態(tài),用 LED燈進(jìn)行顯示,即錄入狀態(tài),
9、識別狀 態(tài)清除狀態(tài);利用液晶1602能夠顯示當(dāng)前指紋識別的狀態(tài)信息,即錄入指紋的編 號以及當(dāng)前指紋;利用繼電器,對當(dāng)前信息的判斷,例如提醒當(dāng)前指紋識別錯誤 利用蜂鳴器提醒當(dāng)前指紋識別是否正確,如果指紋錄入正確,蜂鳴器發(fā)出響聲。1.3 方案比較1)復(fù)雜性:方案一采取用數(shù)字?jǐn)z像頭 ov6620采集指紋圖像,然后用16位 的飛思卡爾X128單片機(jī)進(jìn)行圖像處理,還要進(jìn)行圖像增強(qiáng)、分割、平滑、細(xì)化 等處理過程才能得到便于指紋特征提取的數(shù)字圖像;而這些過程在方案二中只用 一個指紋傳感器模塊就可以代替,所以方案二設(shè)計簡單。2)準(zhǔn)確性:方案一中所采集的攝像頭分辨率有限,所以采集的指紋信息有一定的誤差,方案二中
10、指紋傳感器模塊是利用集成的光學(xué)頭進(jìn)行處理的,比較精確。3)局限性:由于方案一中使用的飛思卡爾單片機(jī)處理程序比較復(fù)雜,超出 了我們的學(xué)習(xí)范圍,而方案二傳感器就使程序簡單化了。1.4 方案選擇鑒于各種原因,我們最終選擇第二種方案,使用指紋傳感器模塊來設(shè)計系統(tǒng)。第三章硬件設(shè)計3. 1 AT89C5彈片機(jī)設(shè)計3.1 .1 主要性能有12k字節(jié)Flash閃速存儲器,1024字節(jié)內(nèi)部RAM 32個I/O 口線,兩個16位定時/計數(shù)器,5個中斷向量,一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。3.2 .2引腳結(jié)構(gòu)圖(如圖3-1)U1XTAL2RSTPSENALE EAP1.0/T2P1.1/T2EXP1.2
11、P1.3P1.4P1.5P1.6P1.7P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INTTP3.4/T0P3.5/T1P3.6/WRP3.7/RD393633一32一21222324252627281 01 11 21 31 41 51 61 7圖3-1AT89C52管腳圖AT89C523.3 .3 一些端口的介紹:P30 口:
12、 RXD(串行輸入口)P31 口: TXD (用行輸出口)XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2振蕩器反相放大器的輸出端。3.4 .4單片機(jī)最小系統(tǒng)1)外部晶振的設(shè)計STC89C52勺內(nèi)部有一個用于構(gòu)成振蕩器白高增益反相放大器,通過 XTAL1 ATAL2外部接上一片作為反饋元件的晶體,與 C1和C2構(gòu)成了并聯(lián)諧振電路,使 其構(gòu)成自激振蕩器,電容的值具有微調(diào)的作用,我們?nèi)?30PF,具體的接法如圖 3-2外部晶振電路。C122pFC2X112M圖3-3復(fù)位電路22pF圖3-2外部晶振電路STC89C52勺工作頻率范圍在0-24MHZ。我們選用的是11.0592MHZ
13、的晶振, 振蕩周期約為1us機(jī)器周期約為0.1us,所以這個晶振可以滿足這個系統(tǒng)的要求。 并且晶振不能離單片機(jī)太遠(yuǎn),不然使用外部晶振進(jìn)行軟件調(diào)試時就會發(fā)現(xiàn)找不到 信號。2)復(fù)位電路的設(shè)計MCS51單片機(jī)通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式,本系統(tǒng)采用簡單 的自動復(fù)位電路如圖2-2所示。單片機(jī)在上電瞬間,RC電路充電,RST弓I腳端出 現(xiàn)正脈沖,只要RS礎(chǔ)保持兩個機(jī)器周期以上的高電平,就能使單片機(jī)有效復(fù)位。 其中電容選10uF、電容選10K。3.2電源電路設(shè)計本系統(tǒng)采用的5V電源主要采用兩種方法,第一是直接用 9V電池然后通過一 個變壓電路,利用7805將轉(zhuǎn)化成5V供單片機(jī)和液晶顯示部分使用;
14、其二是用 220V通過變壓器等將其轉(zhuǎn)化成5V。兩種方法都可以,但是由于第一種方法便于攜帶、而且成本相對較低所以我們選 用第一種方案。圖3-4電源電路3.5 按鍵控制部分電路1)消除抖動按鍵的閉合與否反應(yīng)在電壓上就是呈現(xiàn)出高電平或低電平,如果高電平表示 斷開,那么低電平則表示閉合,通過電平的高低狀態(tài)的檢測可確認(rèn)鍵按下與否。 為了確保CPU寸一次按鍵動作只確認(rèn)一次,并且防止干擾信號的影響,必需加入 消除電平抖動的措施,下圖3-5為按鍵抖動示意圖:熊耳礴版價網(wǎng),fM圖3-5按鍵閉合及斷開前后的電壓消除抖動通常有硬、軟硬兩種方法,硬件消除抖動可采取雙穩(wěn)態(tài)電路或?yàn)V波消抖 電路;軟件消抖是在第一次檢測到有
15、鍵按下時,執(zhí)行一段延時程序再確認(rèn)該鍵是 否仍閉合,如果還是閉合狀態(tài)則確認(rèn)該鍵按下, 從而消除抖動和干擾影響。當(dāng)按 鍵較多時,我們多采用硬件件消抖法。本系統(tǒng)中按鍵少直接采用直接接入的方式。 2)按鍵接口設(shè)計按鍵接口設(shè)計有兩種方法,獨(dú)立式按鍵和矩陣式鍵盤。獨(dú)立式按鍵各鍵相獨(dú) 立,每個按鍵各接入一根輸入線,只要檢測輸入線的電平就可以識別按鍵狀態(tài)。 這種方法電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵需占用一根輸入口。由于該設(shè)計方案IO資源浪費(fèi)大。故此方法只適用于按鍵少或其他控制功能很簡單的場 合。由于本設(shè)計中的按鍵只有3個,考慮系統(tǒng)可靠性和鍵盤設(shè)計的簡單所以采用 獨(dú)立式按鍵。本系統(tǒng)的按鍵電路如圖 3-6所
16、示:圖3-6獨(dú)立按鍵電路按鍵按下是呈低電平,我們采用軟件消抖來減少對的單片機(jī)影響3.6 LED指示燈電路圖3-7 LED燈指示電路當(dāng)k2鍵按下時,錄入模式指示燈red亮;當(dāng)k1鍵按下時,識別模式指示燈green 亮。3.7 蜂鳴器電路蜂鳴器圖3-8蜂鳴器電路3.8 指紋傳感器模塊1)指紋模塊電路如下所示:vcc圖3-9指紋識別模塊指紋模塊里面主要是 DSP芯片,型號為PS1802加上外面的CMOS5片,CMOS 芯片主要是對指紋進(jìn)行“照相”,生成指紋特征,如圖3-8所示就是一個指紋模 板,錄入兩次這樣的指紋特征就能生成一個指紋模板。具體的工作過程是:掃描指紋(錄入圖像)、生成特征、合成模板(建
17、立一個指 紋庫文件,成功錄入一個指紋)。圖3-10指紋模板指紋模板就是“照一次相”,指紋模塊里面的CMOS5片采集一次指紋信息,然后 進(jìn)行模糊處理生成0和1兩種記錄信息,存入指紋模塊的FLASH5片里面。當(dāng)切換到識別模式的時候,指紋模塊就會先讓CMOS5片采集一次指紋,然后和FLASH5片的數(shù)據(jù)進(jìn)行對比??词遣皇谴嬖冢绻嬖诰湍芊祷厥菐滋栔讣y。這樣我們就能通過單片機(jī)或者電腦進(jìn)行指紋識別與登記了。2)指紋傳感器模塊實(shí)物圖指紋模塊型號是:FM-18Q此模塊上里面包含了 :1、光學(xué)頭2、通信連接線3、DSPE片(在模塊里面)4、穩(wěn)壓芯片5、FLASHED 6、CMS焚感器(在模塊里面)等部件組成。
18、圖3-11指紋傳感器模塊實(shí)物圖第四章軟件程序設(shè)計該設(shè)計主要通過設(shè)定的3個按鍵來實(shí)現(xiàn)一定的功能,3個按鍵分別為模式切換(識 別模式和錄入指紋模式)、指紋錄入、刪除所有指紋。4. 1程序流程圖4.1 .1程序主流程圖(1)指紋錄入:先進(jìn)行錄入模式,然后按一下錄入指紋,燈會閃爍,錄入成功 一次,蜂鳴器響一次,這時候拿開手指,1秒放入同一個手指,會再錄入一次, 如果兩次都成功,就成功錄入了一個指紋。蜂鳴器會響兩次,同時顯示錄入指紋 成功。如果不成功就會顯示錄入失敗。錄入完成后,可以進(jìn)入識別模式,或者接 著錄入下一個指紋。錄入完成,按一次指紋轉(zhuǎn)換,進(jìn)入指紋識別開鎖模式。單片機(jī)主程序流程設(shè)計:4.2 系統(tǒng)
19、關(guān)鍵代碼引腳使用:sbit relay =P1A4; /sbit buzzer=P1A5; / sbit red= P2A7;/ sbit green= P2A0;/繼電器引腳蜂鳴器引腳錄入模式指示燈在板子靠近單片機(jī)處識別模式指示燈在板子遠(yuǎn)離單片機(jī)處sbit k2=P3A4; 錄入一次指紋sbit k1=P3A3; 模式識別轉(zhuǎn)換sbit k3=P3A2; 清除所有指紋(10個指紋清除)部分主函數(shù)代碼:void main(void)/ 主函數(shù)unsigned char i=0;ET0=1; /定時器0開中斷TL0=0x97; 17ms 的初值TH0=0xBD;delay1ms(5);LcdRw=
20、0; /只對液晶進(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,用于UAR誠特率 TH1=0xFD;TL1=0xFD; /UART波特率設(shè)置:9600TR1=1;TR0=1;/ 開定時器0IT0=0;/中斷0低電平中斷IT1=1;/中斷1低電平中斷EX0=1;/開中斷0 EX1=1;/開
21、中斷1 EA=1;mode();/看當(dāng)前是什么模式for(i=0;i<6;i+)/ 開始握手6次,如果沒有一次成功,表示模塊通信不正 常。只要成功就跳出此循環(huán)if(VefPSW()/與模塊握手通過,綠燈亮起。進(jìn)入識別模式green=0; /讀一次 buzzer=0;shownum(0);delay1ms(300);buzzer=1; break; else red=1; green=1; break;while(1)if(k2=0)/ 錄入一個指紋delay1ms(10);if(k2=0) 如果仍為低電平,表示按鍵有效while(k2=0);/等待松手if(VefPSW()=1&
22、&modeflag=1&&SaveNumber<10)/ 與 模塊握手通過一if(enroll()=1)/ 采集兩次,生成1個指紋模板成功也成功if(savefingure(SaveNumber+1)=1)/ 保存 SaveNumber+;/ 力口一次 shownum(SaveNumber); else buzzer=0; for(i=0;i<8;i+) delay1ms(100); red=red; red=0; buzzer=1; if(modeflag=0)/為識別模式searchnum=search();if(searchnum>=1&
23、&searchnum<=162)/ 最多是 162 個指紋shownum(searchnum);/ 蜂鳴器響一聲relay=0;buzzer=0;delay1ms(100);buzzer=1;for(i=0;i<20;i+)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
24、); buzzer=1;delay1ms(100);if(clearallflag=1)clearallflag=0;Clear_All();red=0; /紅色燈亮green=1;/蜂鳴器長響一次,表示清除所有指紋結(jié)束modeflag=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 intO(void) interrupt 0/
25、 中斷 0,消除所有指紋if(k3=0) /清除所有指紋delay1ms(10);if(k3=0)/如果仍為低電平,表示按鍵有效while(k3=0);/等待松手clearallflag=1;changeflag=1;void TimerO(void) interrupt 1 定時器 0 中斷函數(shù) TL0=0x97;TH0=0xBD;clk0+; / 延時 17msvoid int1(void) interrupt 2/ 中斷 1,模式轉(zhuǎn)換if(k1=0) 模式轉(zhuǎn)換其中用modeflag來標(biāo)志,默認(rèn)從第1個指紋開始錄delay1ms(10);if(k1=0)/如果仍為低電平,表示按鍵有效whi
26、le(k1=0);/ 等待松手modeflag=modeflag;/0表示錄入指紋1表示識別指紋changeflag=1;/模式發(fā)生了轉(zhuǎn)換 第五章調(diào)試完成了硬件的設(shè)計、制作和軟件編程之后,要使系統(tǒng)能夠按設(shè)計正常運(yùn)行,必須 進(jìn)行硬件調(diào)試和軟件調(diào)試。5.1硬件調(diào)試硬件調(diào)試的主要任務(wù)是排除硬件故障,其中包括設(shè)計錯誤和工藝性故障。(1)在電路的電源焊接一個電源指示燈,判斷電路中通電是否正常。(2)將電路中的電源線布置在通用板的四周,這樣使用電源很方便,減少干擾, 同時可以減少短路故障發(fā)生的可能。(3)元器件合理布局,且盡量減少占用板子的面積,力爭做到節(jié)儉。特別是單片機(jī)的晶振盡量靠近單片機(jī),減少干擾。(
27、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)一個模塊一個模塊地進(jìn)行, 首先單獨(dú)調(diào)試各功能子程序,檢驗(yàn)程序 是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各子程序連 接起來總調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊間能否正確傳遞參數(shù), 特別要注意 各子程序的現(xiàn)場保護(hù)與恢復(fù)。本設(shè)計主要有:指紋識別傳感器圖像采集模塊0單片機(jī)圖像處理(3按鍵模塊和指示燈模塊指紋液晶顯示和蜂鳴器、繼電器模塊不斷地對單片機(jī)下程序,觀看調(diào)試結(jié)果。參考文獻(xiàn)1河橋,段清明,邱春玲.單片機(jī)原理及應(yīng)用.北
28、京:中國鐵道出版社,2007.12 2馮星奎,李林艷,顏?zhàn)嫒?一種新的指紋圖像細(xì)化算法.中國圖像圖形學(xué)報, 1999, 4(10)835-838.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é)報,2002.34 (1) : 132-1366 簡兵,莊鎮(zhèn)泉等.基于脊線跟蹤的指紋圖細(xì)節(jié)提取算法.電路與系統(tǒng)學(xué)報,20017劉旭,田捷.自動指紋識別算法
29、在嵌入式系統(tǒng)的實(shí)現(xiàn)J.計算機(jī)工程與應(yīng)用,2002.8周毅,等著.基于SPI協(xié)議的實(shí)現(xiàn),計算機(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 <reg52.h>#include <intrins.h>#include"lcd1602.h”sbit relay =P1A4; /sbit
30、 buzzer=P1A5; / sbit red= P2A7;/ sbit green= P2A0;/sbit k2=P3A4sbit k1=P3A3sbit k3=P3A2/繼電器引腳蜂鳴器引腳錄入模式指示燈在板子靠近單片機(jī)處識別模式指示燈在板子遠(yuǎn)離單片機(jī)處錄入一次指紋模式識別轉(zhuǎn)換消除所有指紋(10個指紋清除)#define Max_User 10#define error 2unsigned charSaveNumber=0,searchnum=0;unsigned intSearchNumber=0;unsigned int clk0=0;unsigned char str3=0,
31、9;0','0'unsigned char code Identify16="Lock: Idenfity"unsigned char code Input16 ="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,0x0
32、0,0x00,0x1b;/ 回送 12 個/設(shè)置設(shè)備握手口令unsigned char code STWD16=16,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7,0x12,0x00,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ù)原始圖像生成指紋特征1unsignedcharcodeGENT114=13,
33、0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,1,0x00,0x08;/回送12 /Gen Templet2:根據(jù)原始圖像生成指紋特征2unsignedcharcodeGENT214=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
34、 ; 將 CharBufferA 模板,結(jié)果存于ModelBuffer。0X01 ,0Xff,0xff,0xff,0xff, 0x01, /回送16個與CharBufferB中的特征文件合并生成unsigned char code 0,3,5,0x00,0x09;/ /Store TempletMERG14=12,0X01 ,0Xff,0xff,0xff,0xff, 0x01,回送12個:將ModelBuffer中的文件儲存到flash 指紋庫中0x01,0x01,0x01,unsigned char code STOR16=15,0X01 ,0Xff,0xff,0xff,0xff,0,6,6
35、,2,0x00,0x00,0x00,0x0f; /回送 12 個/Read Noteunsigned char code RDNT14=13,0X01 ,0Xff,0xff,0xff,0xff, 0,4,0x19, 0, 0x00,0x1e;/Clear Noteunsigned char code DENT46=45,0X01 ,0Xff,0xff,0xff,0xff, 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
36、char code DELE_one16=16, 0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7, 0x0c, 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#def
37、ine _Nop() _nop_()/ 宏定義結(jié)束/unsigned charFifoNumber=0;xdata unsigned char FIFOMAX_NUMBER+1=0;/*1 毫秒延時程序 */void delay1ms(unsigned int t)unsigned int i,j;for(i=0;i<t;i+)for(j=0;j<120;j+);void TxdByte(unsigned char dat)/用口發(fā)送信息,通過查詢方式發(fā)送一個字符TI = 0;/ 讓 TI =0SBUF = dat; /讀入數(shù)據(jù)while(!TI);/等待發(fā)送完畢TI = 0;/
38、清零bit Command(unsigned char *p,unsigned char MaxTime) / 命令解析,給模塊 發(fā)送一個命令unsignedcharcount=0,tmpdat=0,temp=0,i=0,package=0,flag=0,checksum=0;bit result=0, start=0,stop=0;TxdByte(0xef);/ 數(shù)據(jù)包包頭識別碼TxdByte(0x01);/ 數(shù)據(jù)包包頭識別碼i=*p;/數(shù)組的第“ 0”個元素、里面存放了本數(shù)組的長度,把這個長度給變量i ,方便進(jìn)行操作p+;p+;for (count=i-1; count!=1;count-
39、) /Sent command Stringtemp=*p+;/取第個“1”個元素的內(nèi)容,然后發(fā)送TxdByte(temp);/ 將數(shù)據(jù)發(fā)送出去result=TURE;/發(fā)送完成,結(jié)果為真(真為1)FifoNumber=0;for (count=MAX_NUMBER+1; count!=0; count-)/ 清空所有 FIFO口 數(shù)組里 面的內(nèi)容,寫入0X00FIFOcount-1=0x00;if (result)result=FALSE;start =FALSE;stop =FALSE;count=0;clk0=0;/清零CL0計數(shù)do /do 的內(nèi)容 / restart。:if (RI=
40、1)/如果接收到數(shù)據(jù)tmpdat=SBUF;/先把接收至U的數(shù)據(jù)放至U tmpdat中RI=0;if (tmpdat=0xef)&&(start=FALSE)這個數(shù)據(jù)為第一個傳回來的數(shù)據(jù),也就是“指令應(yīng)答”的第一個字節(jié)count=0;FIFO0=tmpdat;/ 讀入第一個應(yīng)答字節(jié)(0XEF),存 在第“0”個元素中flag=1;gotorestart。;/可以用中斷方式進(jìn)行if(flag=1)/第一個字節(jié)已經(jīng)回來,所以 flag=1成立if(tmpdat!=0x01) / 接收數(shù)據(jù)錯誤,將重新從緩 沖區(qū)接收數(shù)據(jù)flag=0;/ 接收應(yīng)答失敗 result=FALSE;star
41、t =FALSE;stop=FALSE;count=0;goto restart。;/如果成功接收到0xef01 ,可以開始接收數(shù)據(jù)flag=2;/flag=2; 表示應(yīng)答成功,可以開始接收數(shù) 據(jù)了count+;/ 現(xiàn)在 count=1;FIFOcount=tmpdat; 讀入第二個應(yīng)答字節(jié)(0X01),存在第“1”個元素中start=TURE; /應(yīng)答成功可以開始接收數(shù)據(jù) gotorestart。;if(flag=2)&&(start=TURE)/flag=2;可以開始接收數(shù)據(jù)了表示應(yīng)答成功,count+; / 數(shù)據(jù)元素下標(biāo)+FIFOcount=tmpdat;存入數(shù)據(jù)if(c
42、ount>=6)checksum=FIFOcount+checksum; / 計算 校驗(yàn)和包長度標(biāo)志為0if(count=8)package=FIFO7*0X100+FIFO8; / 計算stop= TURE;if(stop)if(count=package+8)checksum=checksum-FIFOcount-1;if(checksum!=FIFOcount&0xff) result=FALSE; /校驗(yàn)失敗,置結(jié)果elseresult=TURE;flag=0;break;/do的內(nèi)容 結(jié)束/while (clk0<=MaxTime)&&(count
43、<=MAX_NUMBER)&&Changeflag=0);/由定時器以及最大接收數(shù)據(jù)來控制,保證不會粒匕一直循環(huán)FifoNumber=count;/保存接收到的數(shù)據(jù)個數(shù)return (result);bit VefPSW(void)/驗(yàn)證設(shè)備握手口令,成功返回1unsigned char count=0;while (1)if(Command(VPWD,20) && (FifoNumber=11) && (FIFO9=0x00) return(1);count+;if (count>=2)/如果不成功,再驗(yàn)證一次,如果兩次不成功,返回
44、失敗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) && (FifoNumber=11) && (FIFO9=0x00)if(BUFID=1)if(Command(GENT1,60) &&(FifoNumber=11) &&
45、(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 SearcMinger(void)/搜索指紋(發(fā)送搜索命令、以及根據(jù)返回值確定是否存在)if( Command(SEAT,60) && (FifoNumber=15) && (FIFO9=0x00) ) / 搜 索到指紋S
46、earchNumber=FIFO10*0x100+FIFO11;/ 搜索到的頁碼/MatchScore=FIFO12*0x100+FIFO13可以在此計算得分,從而進(jìn)行安全級別設(shè)定,本程序忽略return 1; elsereturn 0; unsigned char search(void)/搜索用戶unsigned char SearchBuf=0,i=0;while (i<20) if (ImgProcess(1)=1)/首先讀入一次指紋SearchBuf=Searchfinger();/進(jìn)行指紋比對,如果搜索到,返回搜索到的指紋序號if(SearchBuf=1) return Se
47、archNumber; elsereturn 255;/表示搜索到的指紋不正確 i+; return 0;bit savefingure(unsigned char ID)/保存指紋unsigned char i=0;/現(xiàn)在開始進(jìn)行存儲指紋模板的操作for (i=0;i<16;i+)保存指紋信息FIFOi=STORi;FIFO12=ID;/把指紋模板存放的 PAGE_I電就是FLASH勺位置FIFO14=FIFO14+ID;/ 校驗(yàn)和if (Command(FIFO,70)=1)不成功返回0/此處進(jìn)行存放指紋模板的命return(1); elsereturn(0); /不成功返回0uns
48、igned char enroll(void) /采集兩次指紋,生成1個 指紋模板unsigned char temp=0,count=0;while(1) temp=ImgProcess(1);/ 生成特征 1 if (temp=1)/生成特征文件成功 break; elseif (temp=0)/ 采集指紋沒有成功 count+;if (count>=40)/如果采集了 40次,還不成功,直接采集失敗, 直接退出enroll函數(shù)返回0return(0); /采集第一個特征成功count=0;buzzer=0;delay1ms(100);buzzer=1;delay1ms(2000);
49、延時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);/響兩聲,表示生成一個模板成功buzze
50、r=1;return 1; elseif (temp=1)/ 采集指紋沒有成功count+;if (count>=25)return。; void shownum(unsigned char dat) unsigned char numdat=0; numdat=dat;GotoXY(0,1);/x,y Print("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,y Pr
51、int(Identify); green=0;red=1; else GotoXY(0,0);/x,y Print(Input);red=0; green=1; shownum(0); void main(void)/ 主函數(shù) unsigned char i=0;ET0=1;/ 定時器0開中斷TL0=0x97; /17ms 的初值 TH0=0xBD;delay1ms(5);LcdRw=0; /只對液晶進(jìn)行寫操作,不進(jìn)行讀操作delay1ms(5);LCD_Initial();/液晶初始化delay1ms(5);GotoXY(0,0);/x,y Print(Identify);/用口初始化SCON=0x50; /UART 方式 1:8 位 UART; REN=1:允許接收 PCON=0x00; /SMOD=0:波特率不加倍 T
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《項(xiàng)目管理基本概念》課件
- 優(yōu)化領(lǐng)導(dǎo)力與決策執(zhí)行力:課件指導(dǎo)提升權(quán)力+能力+魅力的領(lǐng)導(dǎo)藝術(shù)
- 教師任現(xiàn)職工作總結(jié)模版
- 防暴力安全教育(中班適用)
- 幼兒園普法總結(jié)模版
- 檢驗(yàn)檢疫業(yè)務(wù)培訓(xùn)大綱
- 藥店的經(jīng)營和管理
- 2022-2023學(xué)年山東省濟(jì)寧市泗水縣四年級上學(xué)期期末語文真題及答案
- 2025氧氣乙炔供應(yīng)協(xié)議合同
- 高潛人才培訓(xùn)課后體系構(gòu)建
- CT圖像的主要偽影
- 六年級下冊科學(xué)知識點(diǎn)(浙教版新)
- 2024年滌綸FDY油劑項(xiàng)目可行性研究報告
- 《形形色色的人》習(xí)作教學(xué)課件
- RhD抗原陰性孕產(chǎn)婦血液安全管理專家共識
- 2023年遼寧營口中考滿分作文《你是我成長中的榜樣》
- YYT 0316-2003醫(yī)療器械風(fēng)險管理對醫(yī)療器械的應(yīng)用
- 病例匯報課件(完整版)
- “互聯(lián)網(wǎng)+護(hù)理服務(wù)”探索與實(shí)踐
- 2023年黑龍江省哈爾濱市中考數(shù)學(xué)試題及參考答案
- 民法典婚姻家庭編民法典系列解讀課件
評論
0/150
提交評論