版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上任 務(wù) 書課程設(shè)計題目:指紋識別功能簡述:1)根據(jù)所學(xué)的知識和能力,設(shè)計程序可以實現(xiàn)根據(jù)指紋的大小、形狀等特征,識別出不同的指紋。2)利用按鍵標志當(dāng)前指紋識別的狀態(tài),例如錄入狀態(tài),識別狀態(tài),清楚狀態(tài);利用液晶1602能夠顯示當(dāng)前指紋識別的狀態(tài)信息。3)利用繼電器,對當(dāng)前信息的判斷,例如提醒當(dāng)前指紋識別錯誤;利用蜂鳴器和LED等提醒當(dāng)前指紋識別是否正確目錄第一章 緒論.11、指紋識別中的基本概念1.2 指紋識別的發(fā)展前景1.3、指紋識別課題設(shè)計的內(nèi)容與意義.第二章 方案選擇2.1 系統(tǒng)原理圖設(shè)計2.2方案說明2.3 方案比較2.4 方案選擇第三章 硬件設(shè)計31 AT89
2、C52單片機設(shè)計3.2 電源電路設(shè)計3.3 按鍵控制部分電路3.4 LED指示燈電路3.5 蜂鳴器電路3.6 指紋傳感器模塊第四章 軟件程序設(shè)計.4.1程序流程圖4.2程序.第五章 調(diào)試5.1硬件調(diào)試.5.2軟件調(diào)試摘 要隨著時代的發(fā)展,社會越來越需要高效、可靠的身份識別系統(tǒng)傳統(tǒng)的個人身份鑒別手段如鑰匙、口令、密碼、身份證件,甚至IC卡等識別方式,由于它們具有可假冒、可偽造、可盜用、可破譯的弱點,已不能完全滿足現(xiàn)代社會經(jīng)濟活動和社會安全防范的需要。隨著識別技術(shù)的不斷成熟和計算機技術(shù)的飛速發(fā)展,各種基于人體生理特征的身份識別系統(tǒng)如:指紋、手掌、聲音、視網(wǎng)膜、瞳孔和面紋等識別技術(shù)紛紛從實驗室中走出
3、來。目前,從實用的角度看,指紋識別技術(shù)是優(yōu)于其它生物識別技術(shù)的身份鑒別方法。本次設(shè)計我們利用指紋識別傳感器進行指紋采集與識別,在單片機中對指紋進行處理, 用按鍵標志當(dāng)前指紋識別的狀態(tài),錄入狀態(tài),識別狀態(tài),清除狀態(tài),用液晶1602能夠顯示當(dāng)前指紋識別的狀態(tài)信息;用繼電器對當(dāng)前信息進行判斷,例如提醒當(dāng)前指紋識別錯誤;利用蜂鳴器和LED等提醒當(dāng)前指紋識別是否正確關(guān)鍵詞:指紋識別;單片機;指紋識別傳感器;液晶1602;繼電器第一章 緒論進入21世紀后,由于國際反恐、互聯(lián)網(wǎng)應(yīng)用等因素的推動,在全球范圍內(nèi),指紋識別技術(shù)得到了更加廣泛的應(yīng)用,指紋識別市場進入高速發(fā)展階段。利用人的生理特征,例如像指紋等來識別
4、個人的身份,將成為今后幾年IT產(chǎn)業(yè)的重要革新。指紋在所有的生物特征中,相對穩(wěn)定、不隨年齡而變化和采集較為便捷,同時它的研究歷史最長、相對更為成熟。與現(xiàn)有的智能卡、身份證號碼和密碼的身份識別系統(tǒng)相比,指紋識別的性價比最高,也更適于應(yīng)用到大眾生活中。因此指紋識別以其革命性的便捷和安全性成為一個理想的卓越的解決方案。11、指紋識別中的基本概念指紋識別是成熟的生物識別(Biometric)技術(shù),由于人體的身體特征具有不可復(fù)制的特點,人們把目光轉(zhuǎn)向了生物識別技術(shù),希望可以籍此技術(shù)來應(yīng)付現(xiàn)行系統(tǒng)安全所面臨的的挑戰(zhàn)。要把人體的特證用于身份識別,這些特征必須具有唯一性和穩(wěn)定性。研究和經(jīng)驗表明,人的指紋、掌紋、
5、面孔、發(fā)音、虹膜、視網(wǎng)膜、骨架等都具有唯一性和穩(wěn)定性的特征,即每個人的這些特征都與別人不同、且終生不變,因此就可以據(jù)此識別出人的身份?;谶@些特征,人們發(fā)展了指紋識別、面部識別、發(fā)音識別等多種生物識別技術(shù),目前許多技術(shù)都已經(jīng)成熟并得以應(yīng)用,其中的指紋識別技術(shù)更是生物識別技術(shù)的熱點。1.2 指紋識別的發(fā)展前景指紋行業(yè)是一個新興的行業(yè),本身具有很高的科技含量,相對利潤高發(fā)展前景廣闊。經(jīng)專家預(yù)計,指紋產(chǎn)品將是未來IT產(chǎn)業(yè)新的增長點:利潤率最高、發(fā)展?jié)摿ψ畲?。于是,世界頂尖的指紋識別技術(shù)得到了全球范圍內(nèi)的高度重視,指紋識別技術(shù)的應(yīng)用如火如荼地迅速發(fā)展起來。目前,國內(nèi)已經(jīng)有不少企業(yè)在參與指紋識別技術(shù)的開
6、發(fā)和應(yīng)用。指紋技術(shù)在現(xiàn)代生活和工作中的應(yīng)用已越來越普遍,例如:指紋考勤、指紋社保、指紋銀行、指紋商場、指紋接送幼兒等等生活和工作的新現(xiàn)象已廣為人知,指紋技術(shù)正在日益刷新著我們的現(xiàn)代化生活方式。1.3、指紋識別課題設(shè)計的內(nèi)容與意義指紋識別技術(shù)相對于其他識別方法有許多獨到之處,具有很高的實用性和可行性。因此,指紋識別成為最流行、最方便、最可靠的身份認證方式,己經(jīng)在社會生活的諸多方面得到廣泛應(yīng)用。這是由于指紋是獨一無二的,兩人之間不存在著相同的指紋,指紋是獨一無二的,兩人之間不存在著相同的指紋,同時指紋樣本易于采集,難以偽造,便于開發(fā),實用性強,可以利用多個指紋構(gòu)成多重口令,提高系統(tǒng)的安全性。本文主
7、要通過對MCS-51系列單片機的結(jié)構(gòu)和功能進行分析,來研究基于單片機指紋識別系統(tǒng)的內(nèi)部結(jié)構(gòu)特點和功能闡述以及工作原理,更好的了解了指紋識別系統(tǒng)的未來前景。第二章 方案選擇2.1系統(tǒng)原理圖設(shè)計2.2方案說明2.1.1方案一:攝像頭采集、飛思卡爾單片機處理這種方案由指紋圖像采集、指紋圖像預(yù)處理、指紋特征提取、指紋特征匹配、特征數(shù)據(jù)庫等幾部分組成。指紋識別系統(tǒng)的原理框圖如圖1所示。 圖2-1、指紋識別系統(tǒng)框圖 該系統(tǒng)首先由數(shù)字攝像頭ov6620采集指紋,并將指紋圖像轉(zhuǎn)化為數(shù)字圖像;然后用16位的飛思卡爾X128單片機對指紋數(shù)字圖像進行預(yù)處理,再通過圖像增強、分割、平滑、細化等處理過程得到便于指紋特征
8、提取的數(shù)字圖像:接著提取細化后的圖像細節(jié)特征點; 然后將指紋信息數(shù)據(jù)送入STC89C52單片機中,一塊液晶1602與STC89C52單片機相連,液晶用于顯示當(dāng)前指紋采集系統(tǒng)的工作狀態(tài)和經(jīng)對比后指紋采集的信息是否正確,用一個蜂鳴器和LED指示燈指示當(dāng)前采集的指紋信息正確。當(dāng)采集到的指紋信息正確,蜂鳴器發(fā)出響聲并且LED指示燈點亮。2.1.2方案二 指紋識別傳感器代替第一種方案中的攝像頭和飛思卡爾單片機,我們利用一個指紋識別傳感器來對指紋進行采集,識別以及部分處理,然后將信息輸送到AT89C52單片機中,利用按鍵控制當(dāng)前指紋識別的狀態(tài),用LED燈進行顯示,即錄入狀態(tài),識別狀態(tài),清除狀態(tài);利用液晶1
9、602能夠顯示當(dāng)前指紋識別的狀態(tài)信息,即錄入指紋的編號以及當(dāng)前指紋;利用繼電器,對當(dāng)前信息的判斷,例如提醒當(dāng)前指紋識別錯誤;利用蜂鳴器提醒當(dāng)前指紋識別是否正確,如果指紋錄入正確,蜂鳴器發(fā)出響聲。2.3 方案比較1)復(fù)雜性:方案一采取用數(shù)字攝像頭ov6620采集指紋圖像,然后用16位的飛思卡爾X128單片機進行圖像處理,還要進行圖像增強、分割、平滑、細化等處理過程才能得到便于指紋特征提取的數(shù)字圖像;而這些過程在方案二中只用一個指紋傳感器模塊就可以代替,所以方案二設(shè)計簡單。2)準確性:方案一中所采集的攝像頭分辨率有限,所以采集的指紋信息有一定的誤差,方案二中指紋傳感器模塊是利用集成的光學(xué)頭進行處理
10、的,比較精確。3)局限性:由于方案一中使用的飛思卡爾單片機處理程序比較復(fù)雜,超出了我們的學(xué)習(xí)范圍,而方案二傳感器就使程序簡單化了。2.4 方案選擇鑒于各種原因,我們最終選擇第二種方案,使用指紋傳感器模塊來設(shè)計系統(tǒng)。第三章 硬件設(shè)計31 AT89C52單片機設(shè)計3.1.1 主要性能有12k字節(jié)Flash閃速存儲器,1024字節(jié)內(nèi)部RAM,32個I/O口線,兩個16位定時/計數(shù)器,5個中斷向量,一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。3.1.2引腳結(jié)構(gòu)圖(如圖3-1) 圖3-1 AT89C52管腳圖3.1.3 一些端口的介紹:P30口:RXD(串行輸入口)P31口:TXD(串行輸出口)XTAL
11、1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。3.1.4 單片機最小系統(tǒng)1)外部晶振的設(shè)計STC89C52的內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,通過XTAL1,ATAL2外部接上一片作為反饋元件的晶體,與C1和C2構(gòu)成了并聯(lián)諧振電路,使其構(gòu)成自激振蕩器,電容的值具有微調(diào)的作用,我們?nèi)?0PF,具體的接法如圖3-2外部晶振電路。圖3-2 外部晶振電路STC89C52的工作頻率范圍在 0-24MHZ。我們選用的是11.0592MHZ的晶振,振蕩周期約為1us機器周期約為0.1us,所以這個晶振可以滿足這個系統(tǒng)的要求。并且晶振不能離單片機太遠,不然使用
12、外部晶振進行軟件調(diào)試時就會發(fā)現(xiàn)找不到信號。2)復(fù)位電路的設(shè)計MCS51單片機通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式,本系統(tǒng)采用簡單的自動復(fù)位電路如圖2-2所示。單片機在上電瞬間,RC電路充電,RST引腳端出現(xiàn)正脈沖,只要RST端保持兩個機器周期以上的高電平,就能使單片機有效復(fù)位。其中電容選10uF、電容選10K。圖3-3復(fù)位電路3.2 電源電路設(shè)計本系統(tǒng)采用的5V電源主要采用兩種方法,第一是直接用9V電池然后通過一個變壓電路,利用7805將轉(zhuǎn)化成5V供單片機和液晶顯示部分使用;其二是用220V通過變壓器等將其轉(zhuǎn)化成5V。兩種方法都可以,但是由于第一種方法便于攜帶、而且成本相對較低所以我們選用第
13、一種方案。圖3-4 電源電路3.3 按鍵控制部分電路1)消除抖動按鍵的閉合與否反應(yīng)在電壓上就是呈現(xiàn)出高電平或低電平,如果高電平表示斷開,那么低電平則表示閉合,通過電平的高低狀態(tài)的檢測可確認鍵按下與否。為了確保CPU對一次按鍵動作只確認一次,并且防止干擾信號的影響,必需加入消除電平抖動的措施,下圖3-5為按鍵抖動示意圖:圖3-5按鍵閉合及斷開前后的電壓 消除抖動通常有硬、軟硬兩種方法,硬件消除抖動可采取雙穩(wěn)態(tài)電路或濾波消抖電路;軟件消抖是在第一次檢測到有鍵按下時,執(zhí)行一段延時程序再確認該鍵是否仍閉合,如果還是閉合狀態(tài)則確認該鍵按下,從而消除抖動和干擾影響。當(dāng)按鍵較多時,我們多采用硬件件消抖法。本
14、系統(tǒng)中按鍵少直接采用直接接入的方式。2)按鍵接口設(shè)計按鍵接口設(shè)計有兩種方法,獨立式按鍵和矩陣式鍵盤。獨立式按鍵各鍵相獨立,每個按鍵各接入一根輸入線,只要檢測輸入線的電平就可以識別按鍵狀態(tài)。這種方法電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵需占用一根輸入口。由于該設(shè)計方案IO資源浪費大。故此方法只適用于按鍵少或其他控制功能很簡單的場合。由于本設(shè)計中的按鍵只有3個,考慮系統(tǒng)可靠性和鍵盤設(shè)計的簡單所以采用獨立式按鍵。本系統(tǒng)的按鍵電路如圖3-6所示:圖3-6獨立按鍵電路按鍵按下是呈低電平,我們采用軟件消抖來減少對的單片機影響。3.4 LED指示燈電路圖3-7 LED燈指示電路當(dāng)k2鍵按下時,錄入模式指示燈
15、red亮;當(dāng)k1鍵按下時,識別模式指示燈green亮。3.5 蜂鳴器電路圖3-8蜂鳴器電路3.6 指紋傳感器模塊1)指紋模塊電路如下所示:圖3-9指紋識別模塊指紋模塊里面主要是DSP芯片,型號為PS1802,加上外面的CMOS芯片,CMOS芯片主要是對指紋進行“照相”,生成指紋特征,如圖3-8所示就是一個指紋模板,錄入兩次這樣的指紋特征就能生成一個指紋模板。具體的工作過程是:掃描指紋(錄入圖像)、生成特征、合成模板(建立一個指紋庫文件,成功錄入一個指紋)。圖 3-10 指紋模板指紋模板就是“照一次相”,指紋模塊里面的CMOS芯片采集一次指紋信息,然后進行模糊處理生成0和1兩種記錄信息,存入指紋
16、模塊的FLASH芯片里面。當(dāng)切換到識別模式的時候,指紋模塊就會先讓CMOS芯片采集一次指紋,然后和FLASH芯片的數(shù)據(jù)進行對比??词遣皇谴嬖冢绻嬖诰湍芊祷厥菐滋栔讣y。這樣我們就能通過單片機或者電腦進行指紋識別與登記了。2)指紋傳感器模塊實物圖指紋模塊型號是:FM-180,此模塊上里面包含了:1、光學(xué)頭 2、通信連接線 3、DSP芯片(在模塊里面) 4、穩(wěn)壓芯片5、FLASH芯片 6、CMSO傳感器(在模塊里面) 等部件組成。3、DSP芯片2、通信連接線1、光學(xué)頭6、CMOS傳感器5、FLASH芯片4、穩(wěn)壓芯片圖3-11指紋傳感器模塊實物圖第四章 軟件程序設(shè)計該設(shè)計主要通過設(shè)定的3個按鍵來實
17、現(xiàn)一定的功能,3個按鍵分別為模式切換(識別模式和錄入指紋模式)、指紋錄入、刪除所有指紋。 41程序流程圖4.1.1程序主流程圖(1)指紋錄入: 先進行錄入模式,然后按一下錄入指紋,燈會閃爍,錄入成功一次,蜂鳴器響一次,這時候拿開手指,1秒放入同一個手指,會再錄入一次,如果兩次都成功,就成功錄入了一個指紋。蜂鳴器會響兩次,同時顯示錄入指紋成功。如果不成功就會顯示錄入失敗。錄入完成后,可以進入識別模式,或者接著錄入下一個指紋。錄入完成,按一次指紋轉(zhuǎn)換,進入指紋識別開鎖模式。單片機主程序流程設(shè)計:4.2 系統(tǒng)關(guān)鍵代碼引腳使用:sbit relay =P14; /繼電器引腳sbit buzzer=P1
18、5; /蜂鳴器引腳sbit red= P27;/錄入模式指示燈 在板子靠近單片機處sbit green= P20;/識別模式指示燈 在板子遠離單片機處sbit k2=P34; /錄入一次指紋sbit k1=P33; /模式識別轉(zhuǎn)換sbit k3=P32; /清除所有指紋(10個指紋清除)部分主函數(shù)代碼:void main(void)/主函數(shù)unsigned char i=0;ET0=1; /定時器0開中斷TL0=0x97; /17ms的初值TH0=0xBD; delay1ms(5); LcdRw=0; /只對液晶進行寫操作,不進行讀操作 delay1ms(5); LCD_Initial();/
19、液晶初始化 delay1ms(5); GotoXY(0,0);/x,y Print(Identify); /串口初始化 SCON=0x50; /UART方式1:8位UART; REN=1:允許接收 PCON=0x00; /SMOD=0:波特率不加倍 TMOD=0x21; /T1方式2,用于UART波特率 TH1=0xFD; TL1=0xFD; /UART波特率設(shè)置:9600 TR1=1; TR0=1;/ 開定時器0IT0=0;/中斷0低電平中斷IT1=1;/中斷1低電平中斷EX0=1;/開中斷0EX1=1;/開中斷1EA=1;mode();/看當(dāng)前是什么模式for(i=0;i<6;i+)
20、/開始握手6次,如果沒有一次成功,表示模塊通信不正常。只要成功就跳出此循環(huán)if(VefPSW()/與模塊握手通過,綠燈亮起。進入識別模式 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&&modeflag=1&&SaveNumber<10
21、)/與模塊握手通過 if(enroll()=1)/采集兩次,生成1個指紋模板成功 if(savefingure(SaveNumber+1)=1)/保存也成功 SaveNumber+;/加一次shownum(SaveNumber); elsebuzzer=0; for(i=0;i<8;i+) delay1ms(100); red=red;red=0;buzzer=1; if(modeflag=0)/為識別模式 searchnum=search(); if(searchnum>=1&&searchnum<=162)/最多是162個指紋 shownum(search
22、num); /蜂鳴器響一聲 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); buzzer=1;delay1ms(100); if(clearal
23、lflag=1)clearallflag=0;Clear_All(); red=0; /紅色燈亮 green=1;/蜂鳴器長響一次,表示清除所有指紋結(jié)束modeflag=1;/進入錄入指紋模式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
24、(10);if(k3=0)/如果仍為低電平,表示按鍵有效while(k3=0);/等待松手clearallflag=1;changeflag=1; void Timer0(void) interrupt 1/定時器0中斷函數(shù) TL0=0x97;TH0=0xBD;clk0+; /延時17msvoid int1(void) interrupt 2/中斷1,模式轉(zhuǎn)換if(k1=0)/模式轉(zhuǎn)換 其中用modeflag 來標志,默認從第1個指紋開始錄入 delay1ms(10); if(k1=0)/如果仍為低電平,表示按鍵有效 while(k1=0);/等待松手 modeflag=modeflag;/0
25、表示錄入指紋 1表示識別指紋 changeflag=1;/模式發(fā)生了轉(zhuǎn)換第五章 調(diào)試完成了硬件的設(shè)計、制作和軟件編程之后,要使系統(tǒng)能夠按設(shè)計正常運行,必須進行硬件調(diào)試和軟件調(diào)試。 5.1硬件調(diào)試硬件調(diào)試的主要任務(wù)是排除硬件故障,其中包括設(shè)計錯誤和工藝性故障。(1) 在電路的電源焊接一個電源指示燈,判斷電路中通電是否正常。(2)將電路中的電源線布置在通用板的四周,這樣使用電源很方便,減少干擾,同時可以減少短路故障發(fā)生的可能。(3)元器件合理布局,且盡量減少占用板子的面積,力爭做到節(jié)儉。特別是單片機的晶振盡量靠近單片機,減少干擾。(4)液晶的焊接注意方向,且調(diào)節(jié)背光的電位器不可以少。 5.2軟件調(diào)
26、試軟件調(diào)試的任務(wù)是利用開發(fā)工具進行在線仿真調(diào)試,發(fā)現(xiàn)和糾正程序錯誤,同時也能發(fā)現(xiàn)硬件故障。程序的調(diào)試應(yīng)一個模塊一個模塊地進行,首先單獨調(diào)試各功能子程序,檢驗程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各子程序連接起來總調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊間能否正確傳遞參數(shù),特別要注意各子程序的現(xiàn)場保護與恢復(fù)。 本設(shè)計主要有:指紋識別傳感器圖像采集模塊 單片機圖像處理 按鍵模塊和指示燈模塊 指紋液晶顯示和蜂鳴器、繼電器模塊不斷地對單片機下程序,觀看調(diào)試結(jié)果。 參考文獻1 河橋,段清明,邱春玲.單片機原理及應(yīng)用.北京:中國鐵道出版社,2007.122 馮星奎,李林艷,顏祖泉.一種新
27、的指紋圖像細化算法.中國圖像圖形學(xué)報,1999, 4(10)835-838.3呂鳳軍.數(shù)字圖象處理編程入門一一做一個自己的Photoshop.北京:清華大學(xué)出版社,1999.4 劉文星,王雄沂,母國光.紋線跟蹤及其在細化指紋后處理中的應(yīng)用.光電子·傲光,2002,13 (2):184-187.5 劉家鋒,唐降龍,趙泉.一個基于特征點匹配的聯(lián)機指紋鑒別系統(tǒng).哈爾濱工業(yè)大學(xué)學(xué)報,2002.34 (1):132-1366 簡兵,莊鎮(zhèn)泉等.基于脊線跟蹤的指紋圖細節(jié)提取算法.電路與系統(tǒng)學(xué)報,2001 7 劉旭,田捷.自動指紋識別算法在嵌入式系統(tǒng)的實現(xiàn) J.計算機工程與應(yīng)用,2002.8 周毅,
28、等著.基于SPI協(xié)議的實現(xiàn),計算機仿真.2003.9 竇振中.單片機外圍器件實用手冊(存儲器分冊)北京:北京航空航天大學(xué)出版社,20O0 10 李華MCS-51系列單片機實用接口技術(shù)北京:北京航空航天大學(xué)出版社,199811 張培仁,孫占輝,張村峰基于c語言編程MCS一51單片機原理與應(yīng)用M北京:清華大學(xué)出版社,2003附件2 程序清單#include <reg52.h>#include <intrins.h>#include"lcd1602.h"sbit relay =P14; /繼電器引腳sbit buzzer=P15; /蜂鳴器引腳sbit r
29、ed= P27;/錄入模式指示燈 在板子靠近單片機處sbit green= P20;/識別模式指示燈 在板子遠離單片機處sbit k2=P34; /錄入一次指紋sbit k1=P33; /模式識別轉(zhuǎn)換sbit k3=P32; /清除所有指紋(10個指紋清除)#define Max_User 10#define error 2unsigned char SaveNumber=0,searchnum=0;unsigned int SearchNumber=0;unsigned int clk0=0;unsigned char str3=0,'0','0'unsign
30、ed char code Identify16="Lock: Idenfity"unsigned char code Input16 ="Lock: Input "bit modeflag=0,clearallflag=0,changeflag=0;/默認為識別模式/常用指令定義/Verify Password :驗證設(shè)備握手口令unsigned char code VPWD16=16,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7,0x13,0x00,0x00,0x00,0x00,0x00,0x1b; /回送12個/設(shè)置設(shè)備握手
31、口令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ù)原始圖像生成指紋特征1unsigned char code GENT114=13,0X01 ,0Xff,0xff,0xff,0x
32、ff,0x01,0,4,2,1,0x00,0x08;/回送12個/Gen Templet2 :根據(jù)原始圖像生成指紋特征2unsigned char code GENT214=13,0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,2,0x00,0x09; /回送12個/Search Finger :以CharBufferA或CharBufferB中的特征文件搜索整個或部分指紋庫unsigned char code SEAT18=17, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,8, 4,1,0,0, 0,0x65, 0x00,0x73;/回送
33、16個/Merge Templet ;將CharBufferA與CharBufferB中的特征文件合并生成模板,結(jié)果存于ModelBuffer。unsigned char code MERG14=12, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,3,5 , 0x00,0x09;/回送12個/Store Templet :將ModelBuffer中的文件儲存到flash指紋庫中unsigned char code STOR16=15, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,6,6,2, 0x00,0x00, 0x00,0x0f; /回送
34、12個/Read Noteunsigned char code RDNT14=13,0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,4,0x19, 0, 0x00,0x1e;/Clear Noteunsigned char code DENT46=45,0X01 ,0Xff,0xff,0xff,0xff, 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_one
35、16=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 on 1#define off 0#define MAX_NUMBER 63 #define _Nop() _nop_(
36、)/宏定義-結(jié)束/unsigned char FifoNumber=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; /讓TI0 SBUF = dat; /讀入數(shù)據(jù) while(!TI); /等待發(fā)送完畢 TI = 0; /清零bit Command
37、(unsigned char *p,unsigned char MaxTime) /命令解析,給模塊發(fā)送一個命令 unsigned char count=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,方便進行操作 p+; p+; for (count=i-1; count!=1;count-) /Sent
38、command String temp=*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)容,寫入0X00 FIFOcount-1=0x00; if (result) result=FALSE; start =FALSE; stop =FALSE; count=0; clk0=0;/清零CL0計數(shù) do /do的內(nèi)容/restart0: if (RI=1)
39、/如果接收到數(shù)據(jù) tmpdat=SBUF;/先把接收到的數(shù)據(jù)放到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;goto restart0;/可以用中斷方式進行 if(flag=1)/第一個字節(jié)已經(jīng)回來,所以flag=1成立 if(tmpdat!=0x01) /接收數(shù)據(jù)錯誤,將重新從緩沖區(qū)接收數(shù)據(jù) flag=0;/接收應(yīng)答失敗result=FALSE; star
40、t =FALSE; stop=FALSE; count=0;goto restart0;/如果成功接收到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ù) goto restart0; if(flag=2)&&(start=TURE)/flag=2;表示應(yīng)答成功,可以開始接收數(shù)據(jù)了 count+; /數(shù)據(jù)元素下標+ FIFOcount=tmpdat;/存入數(shù)據(jù)if(
41、count>=6)checksum=FIFOcount+checksum; /計算校驗和if(count=8) package=FIFO7*0X100+FIFO8;/計算包長度stop= TURE;if(stop)if(count=package+8)checksum=checksum-FIFOcount-1;if(checksum!=FIFOcount&0xff) result=FALSE; /校驗失敗,置結(jié)果標志為0else result=TURE;flag=0;break; /do的內(nèi)容-結(jié)束/ while (clk0<=MaxTime)&&(coun
42、t<=MAX_NUMBER)&& (changeflag=0) ); /由定時器以及最大接收數(shù)據(jù)來控制,保證不會在此一直循環(huán) FifoNumber=count;/保存接收到的數(shù)據(jù)個數(shù) return (result);bit VefPSW(void)/驗證設(shè)備握手口令,成功返回1 unsigned char count=0;while (1) if(Command(VPWD,20) && (FifoNumber=11) && (FIFO9=0x00) return(1); count+; if (count>=2)/如果不成功,再驗證一
43、次,如果兩次不成功,返回失敗 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) && (FifoNum
44、ber=11) && (FIFO9=0x00) return 1; else return 0; else if(BUFID=2) if(Command(GENT2,60) && (FifoNumber=11) && (FIFO9=0x00) return 1; else return 0; else return 0; return 0; bit Searchfinger(void)/搜索指紋(發(fā)送搜索命令、以及根據(jù)返回值確定是否存在) if( Command(SEAT,60) && (FifoNumber=15) && (FIFO9=0x00) ) /搜索到指紋 SearchNumber=FIFO10*0x100+FIFO11;/搜索到的頁碼/MatchScore=FIFO12*0x100+FIFO13 可以在此計算得分,從而進行安全級別設(shè)定,本程序忽略 return 1; else return 0; unsign
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 風(fēng)景名勝區(qū)自行車租借協(xié)議
- 建筑安裝工程承包合作協(xié)議
- 廣告委托制作協(xié)議書
- 民間借款協(xié)議書的格式要求
- 私車出租給機構(gòu)協(xié)議
- 2024年加盟經(jīng)銷合同范本
- 建筑工程勞務(wù)擴大分包合同完整2024年
- 2024正規(guī)版私人借款合同樣本
- 吉林省農(nóng)業(yè)產(chǎn)品訂購協(xié)議
- 房產(chǎn)物業(yè)抵押借款協(xié)議
- 牛津深圳版(廣州沈陽通用)九年級英語上冊 期中復(fù)習(xí) Unit1-Unit4 詞匯練習(xí)(無答案)
- 禮儀與教化下外國篇
- 景物描寫作用及練習(xí)
- PPT模板:熱烈歡迎兄弟單位領(lǐng)導(dǎo)蒞臨指導(dǎo)工作匯報課件
- 西游記詹納爾英譯本鑒賞
- 保險基礎(chǔ)知識在線練習(xí)題庫-1講解
- 幼兒園小班繪本:《一步一步_走啊走》 PPT課件
- 高海拔地區(qū)電氣設(shè)備選型
- 九田回米-練字格(excel版本)
- 售后服務(wù)控制程序文件
- 管道壓力和壁厚對照表
評論
0/150
提交評論