基于單片機指紋識別系統設計_第1頁
基于單片機指紋識別系統設計_第2頁
基于單片機指紋識別系統設計_第3頁
基于單片機指紋識別系統設計_第4頁
基于單片機指紋識別系統設計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

11、, 1024 字節(jié)內部 RAM,32 個 I/O 口線,兩個 16 位 定時/ 計數器,5 個中斷向量,一個全雙工串行通信口,片內振蕩器及時鐘電路。3.1.2 引腳結構圖(如圖 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:振蕩器反相放大器的及內部時鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端。3.1.4 單片機最小系統1)外部晶振的設計STC89C52的內部有一個用于構成振蕩器的高增益反相放大器,通過XTAL1,ATAL2外部接上一

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

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

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

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

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

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

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

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

21、液晶進行寫操作,不進行讀操作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 波特率設置 :9600TR1=1;TR0=1;/ 開定時器 0IT0=0;/ 中斷 0 低電平中斷IT1=1;/ 中斷 1 低電平中斷EX0=1;/ 開中

22、斷 0EX1=1;/ 開中斷 1EA=1;mode();/ 看當前是什么模式for(i=0;i6;i+)/ 開始握手 6 次,如果沒有一次成功, 表示模塊通信不正 常。只要成功就跳出此循環(huán)if(VefPSW()/ 與模塊握手通過,綠燈亮起。進入識別模式 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;/ 蜂鳴器長響一次,表示清除所有指紋結束modefl

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

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

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

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

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

30、機仿真 .2003.9 竇振中.單片機外圍器件實用手冊 (存儲器分冊 ) 北京:北京航空航天大學 出版社, 20O010 李華MCS-51系列單片機實用接口技術 北京:北京航空航天大學出版社, 199811 張培仁,孫占輝,張村峰基于 c 語言編程 MCS一 51 單片機原理與應用M 北京:清華大學出版社, 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; /繼電器引腳蜂鳴器引腳錄入模式指示燈 在板子靠近單片機處識別模式指示燈 在板子遠離單片機處錄入一次指紋模式識別轉換清除所有指紋( 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;/ 默認為識別模式/ 常用指令定義 /Verify Password :驗證設備握手口令unsigned char code VPWD16=16,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7,0x13,0x00,0x00,0x00,0x00,0x00,0x1b; / 回送 12 個/ 設置設備握手口令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:根據原始圖像生成指紋特征 1unsigned charcodeGENT114=13,0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,1,0x00,0x08; / 回送 12 個/Gen Templet2:根據原始圖像生成指紋特征 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 成模板,結果存于 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;/ 常用指令定義 結束 /宏定義 /#define FALSE 0#define TURE 1/ 狀態(tài)定義表#define on1#define off0#define MAX_NUMBER 63#define _Nop() _nop_()/ 宏定義 結束/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; / 計算校驗和if(count=8)包長度標志為 0package=FIFO7*0X100+FIFO8; / 計算stop= TURE;if(stop)if(count=package+8)checksum=checksum-FIFOcount-1; if(checksum!=FIFOcount&0xff) resu

39、lt=FALSE; / 校驗失敗 , 置結果elseresult=TURE;flag=0;break;的內容 結束/do/while (clk0=MaxTime)&(count=2)/ 如果不成功,再驗證一次,如果兩次不成功,返回失 敗return(0);void Clear_All(void) /清空指紋庫 delay1ms(200);Command(DELE_all,50); / 清空指紋庫 unsigned char ImgProcess(unsigned char BUFID) / 發(fā)獲取圖像并生成特征 文件,存入 BUFID中/ 輸入參數為緩沖區(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ā)送搜索命令、以及根據返回值確定是否存在 )if( Command(S

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

42、 進行指紋比對,如果搜索到,返 回搜索到的指紋序號if(SearchBuf=1)return SearchNumber;elsereturn 255;/ 表示搜索到的指紋不正確i+;return 0;bit savefingure(unsigned char ID)/ 保存指紋unsigned char i=0;/ 現在開始進行存儲指紋模板的操作 for (i=0;i=40)/ 如果采集了 40 次,還不成功,直接采集失敗, 直接退出 enroll 函數返回 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/ 特征文件合并生成模板,結果存于 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)/ 主函數unsigned char i=0;ET0=1; / 定時器 0 開中斷TL0=0x97; /17ms 的初值TH0=0xB

溫馨提示

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

評論

0/150

提交評論