国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于51單片機(jī)的指紋電子密碼鎖的設(shè)計(jì)與實(shí)現(xiàn)

2018-09-29 03:08:28馬樹(shù)軍史可福
實(shí)驗(yàn)室研究與探索 2018年8期
關(guān)鍵詞:液晶顯示密碼鎖指紋識(shí)別

張 萍, 馬樹(shù)軍, 史可福

(銀川能源學(xué)院,寧夏 銀川 750105)

0 引 言

隨著科技的飛速發(fā)展,傳統(tǒng)的安全防盜系統(tǒng)面臨極大的挑戰(zhàn),密碼鎖被廣泛應(yīng)用于各種場(chǎng)所。又因?yàn)橹讣y具有惟一性,且終身不變、隨身攜帶[1],還方便管理,省去了使用卡、鑰匙開(kāi)鎖的麻煩,因此成為了密碼鎖的首選[2]。加之當(dāng)今時(shí)代單片機(jī)控制器技術(shù)的發(fā)展非常成熟,其控制性能穩(wěn)定、可靠,使得電子產(chǎn)品的應(yīng)用幾乎與單片機(jī)的控制密不可分。本項(xiàng)目是在學(xué)生學(xué)習(xí)了單片機(jī)基礎(chǔ)知識(shí)及相應(yīng)的實(shí)驗(yàn)以后,提出申請(qǐng)立項(xiàng)的,并希望項(xiàng)目成果能應(yīng)用于實(shí)際生活中。項(xiàng)目組結(jié)合指紋識(shí)別技術(shù)和單片機(jī)原理,設(shè)計(jì)并實(shí)現(xiàn)了一款指紋電子密碼鎖,可以將其應(yīng)用于實(shí)驗(yàn)室的門(mén)禁系統(tǒng),使得實(shí)驗(yàn)室的管理更加安全、可靠,也可以用于學(xué)生宿舍的門(mén)禁系統(tǒng),無(wú)需反復(fù)換鎖、配鑰匙,節(jié)省開(kāi)支、節(jié)約資源。

1 指紋識(shí)別原理

指紋是人類手指上的條狀紋路,指紋識(shí)別技術(shù)就是將一個(gè)具體的人同他的指紋對(duì)應(yīng)起來(lái),通過(guò)把他的指紋和預(yù)先采集保存起來(lái)的指紋進(jìn)行比較,就能夠驗(yàn)證他的真實(shí)身份[3]。它主要利用特殊的光電轉(zhuǎn)換設(shè)備及圖像處理技術(shù),通過(guò)對(duì)指紋進(jìn)行采集及進(jìn)一步的分析和比對(duì),從而迅速、準(zhǔn)確地鑒別出個(gè)人身份。

指紋識(shí)別系統(tǒng)主要包括對(duì)指紋圖像的采集與處理、特征數(shù)據(jù)的提取與保存、特征值的比對(duì)與匹配等過(guò)程。具體操作步驟是:首先,通過(guò)指紋采集設(shè)備采集到人體指紋的圖像,之后對(duì)原始圖像進(jìn)行初步的處理,使之更清晰[4];然后,利用指紋辨識(shí)軟件建立指紋的數(shù)字表示也就是指紋的特征數(shù)據(jù),并將其保存起來(lái);最后,利用計(jì)算機(jī)進(jìn)行模糊比較,將當(dāng)前指紋與先前采集保存起來(lái)的兩個(gè)指紋的模板進(jìn)行比較并計(jì)算出相似度,最終得到兩個(gè)指紋的匹配結(jié)果[5-6]。

2 系統(tǒng)總體方案設(shè)計(jì)

本項(xiàng)目是一個(gè)基于51單片機(jī)的指紋電子密碼鎖系統(tǒng)的設(shè)計(jì),選用STC89C52單片機(jī)作為主控芯片,利用串口通信的方式實(shí)時(shí)地接收并處理來(lái)自指紋模塊與鍵盤(pán)模塊傳送過(guò)來(lái)的數(shù)據(jù),并在液晶顯示的提示下進(jìn)行操作,從而實(shí)現(xiàn)開(kāi)鎖。系統(tǒng)包含有兩種模式,即一般模式和管理員模式。在一般模式下,分為兩種情況:若是指紋識(shí)別成功,則指示燈亮、繼電器動(dòng)作開(kāi)鎖,人員能夠進(jìn)入;反之,則人員不能進(jìn)入。管理員模式下,主要完成指紋的錄入與刪除、緊急開(kāi)鎖及密碼修改等功能:錄入指紋時(shí),指紋模塊綠燈點(diǎn)亮,把手指放到指紋頭上,錄入同一個(gè)手指的指紋兩次,正確后液晶顯示“指紋采集成功”;刪除指紋時(shí),液晶顯示“輸入刪去的指紋號(hào)”,輸入后按確認(rèn)鍵完成指定指紋的刪除,同時(shí)液晶顯示“刪指紋號(hào)成功”;非正常的情況下,比如指紋模塊識(shí)別不了,亦或是緊急情況下,開(kāi)啟緊急開(kāi)鎖功能;密碼修改功能能夠修改并保存進(jìn)入管理員模式中的6位密碼。

本系統(tǒng)的整體操作過(guò)程是:首先,設(shè)定密碼,利用4×4矩陣鍵盤(pán)實(shí)現(xiàn)數(shù)字密碼的輸入功能,若數(shù)字密碼輸入正確,即可進(jìn)入管理員模式,準(zhǔn)備進(jìn)行其他開(kāi)鎖人員指紋的錄入工作,收錄完后退出管理員模式。然后,再次進(jìn)入開(kāi)始解鎖頁(yè)面,利用指紋模塊輸入指紋,開(kāi)始驗(yàn)證指紋,若指紋與先前錄入指紋比對(duì)相同則鎖打開(kāi)。開(kāi)鎖時(shí)3次輸入指紋錯(cuò)誤后,報(bào)警電路進(jìn)行報(bào)警。也可以使用紅外遙控鍵盤(pán)輸入密碼,正確后方可開(kāi)鎖。

3 系統(tǒng)硬件電路設(shè)計(jì)

本系統(tǒng)的硬件電路部分主要由單片機(jī)、指紋識(shí)別模塊、4×4矩陣鍵盤(pán)、液晶屏幕顯示模塊、紅外遙控模塊、密碼儲(chǔ)存和報(bào)警系統(tǒng)等組成[7]。在設(shè)計(jì)中指紋識(shí)別模塊用于指紋的錄入與識(shí)別;紅外遙控模塊可以通過(guò)紅外遙控器進(jìn)行數(shù)字密碼的鍵入操作,從而實(shí)現(xiàn)開(kāi)鎖功能;密碼儲(chǔ)存芯片可以把先前所存儲(chǔ)的密碼和指紋掉電保存;液晶顯示屏用于顯示輸入信息及提示要執(zhí)行的操作。本裝置可以使用指紋與密碼對(duì)應(yīng)開(kāi)鎖,采用軟件與硬件相結(jié)合的方法來(lái)實(shí)現(xiàn),使得身份識(shí)別能夠更加安全可靠。系統(tǒng)可以實(shí)現(xiàn)本機(jī)開(kāi)鎖、錯(cuò)誤報(bào)警、修改用戶密碼等功能。

該系統(tǒng)原理框圖如圖1所示。

圖1 系統(tǒng)原理框圖

3.1 單片機(jī)及其最小系統(tǒng)

3.1.1單片機(jī)

單片機(jī),亦稱單片微型計(jì)算機(jī),它將主要的計(jì)算機(jī)功能部件,如中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、輸入/輸出端口(I/O)等都集成在一塊電路芯片上,來(lái)實(shí)現(xiàn)控制功能[8]。

本系統(tǒng)采用STC89C52RC新一代高速單片機(jī)。具有功耗低、抗干擾性強(qiáng)的優(yōu)點(diǎn),且指令代碼完全兼容傳統(tǒng)8051單片機(jī),還可以任意選擇12時(shí)鐘/機(jī)器周期或6時(shí)鐘/機(jī)器周期工作[9]。具體結(jié)構(gòu)組成有8 KByte Flash,256 KByte RAM,32個(gè)可編程的I/O口,可編程的串行USART等。詳細(xì)使用方法可查閱芯片資料,作為常用芯片,此處不再贅述。

3.1.2單片機(jī)最小系統(tǒng)

單片機(jī)最小系統(tǒng)是利用最少的外圍器件而使單片機(jī)工作的電路組織形式,包含單片機(jī)、時(shí)鐘電路、復(fù)位電路和電源[10]。其電路圖如圖2所示。

圖2 單片機(jī)最小系統(tǒng)原理圖

時(shí)鐘電路負(fù)責(zé)為單片機(jī)提供工作信號(hào)脈沖,這個(gè)脈沖便是單片機(jī)的工作速度。時(shí)鐘電路提供的時(shí)鐘頻率越高,單片機(jī)運(yùn)行速度就越快。當(dāng)然,單片機(jī)的工作頻率也是有范圍的,不能太大,否則系統(tǒng)不穩(wěn)定。

STC89C52單片機(jī)的時(shí)鐘電路使用11.059 2 MHz的晶體振蕩器作為振蕩源,該電路通過(guò)單片機(jī)的XTAL1、XTAL2引腳再在外部連接一個(gè)晶振和兩個(gè)電容即可。電容容量一般在15~50 pF之間,本系統(tǒng)取30 pF。晶體振蕩器與C1和C2構(gòu)成了并聯(lián)諧振電路,產(chǎn)生自激振蕩,為單片機(jī)提供工作脈沖。具體的接法如圖2中的時(shí)鐘電路部分所示。

單片機(jī)復(fù)位電路用于系統(tǒng)在受到外部環(huán)境干擾時(shí)會(huì)出現(xiàn)程序跑飛的現(xiàn)象,此時(shí)按下復(fù)位按鈕,內(nèi)部的程序自動(dòng)地從頭開(kāi)始執(zhí)行。其工作原理是在單片機(jī)復(fù)位引腳RST上外接電阻和電容,實(shí)現(xiàn)上電復(fù)位,要求復(fù)位電平的持續(xù)時(shí)間必須大于單片機(jī)的兩個(gè)機(jī)器周期以上,復(fù)位才有效,具體數(shù)值可以由RC電路計(jì)算出時(shí)間常數(shù)。或者可以在復(fù)位電容上并聯(lián)一個(gè)按鍵,按下按鍵電容被放電、RST引腳也被拉到高電平,此時(shí)由于電容的充電特性,會(huì)保持一段時(shí)間的高電平,從而使得單片機(jī)完成復(fù)位。本系統(tǒng)采用按鍵復(fù)位的方式。

3.2 指紋識(shí)別模塊

本系統(tǒng)采用的指紋識(shí)別模塊是ZFM608,接口電路如圖3所示。其工作流程是掃描指紋、生成指紋特征、合成模板。首先掃描指紋,然后對(duì)指紋信息進(jìn)行模糊處理,生成0和1的指紋信息,完成后存入到ZFM608里的FLASH芯片,這就完成了指紋信息的錄入。實(shí)際電子密碼鎖在進(jìn)入指紋識(shí)別模式時(shí),指紋模塊就開(kāi)始閃爍綠色光。通常就會(huì)錄入自己的指紋,這時(shí)指紋模塊采集的指紋信息,再與之前存儲(chǔ)的指紋數(shù)據(jù)進(jìn)行比對(duì),看是否與之前所錄入的指紋信息一致[11]。如果比對(duì)成功,液晶屏就會(huì)顯示指紋的編號(hào),同時(shí)繼電器吸合,鎖就被打開(kāi)。

圖3 指紋模塊ZFM608接口電路圖

3.3 矩陣鍵盤(pán)模塊

由于本設(shè)計(jì)中的按鍵較多,考慮系統(tǒng)可靠性和鍵盤(pán)設(shè)計(jì)的簡(jiǎn)單、合理,所以采用矩陣按鍵。按鍵電路如圖4所示。按鍵按下時(shí)呈低電平,系統(tǒng)采用軟件消抖法消除抖動(dòng),防止按鍵過(guò)程中干擾信號(hào)的影響[12]。

矩陣式鍵盤(pán)由4根行線、4根列線組成,按鍵位于行、列的交叉點(diǎn)上,行線和列線分別接到按鍵的兩端。按鍵被按下,其交點(diǎn)的行線和列線接通,相應(yīng)的行線或列線上的電平發(fā)生變化,單片機(jī)通過(guò)檢測(cè)行或列線上的電平變化可以確定哪個(gè)按鍵被按下。

圖4 矩陣鍵盤(pán)的按鍵電路

矩陣鍵盤(pán)的檢測(cè)方式有多種,常見(jiàn)的有:逐點(diǎn)掃描法、逐行掃描法、全局掃描法等。在本系統(tǒng)中采用逐行掃描法來(lái)實(shí)現(xiàn)按鍵檢測(cè),其中P1.0-P1.3為行線,P1.4-P1.7為列線。識(shí)別過(guò)程如下:

(1) 判斷鍵盤(pán)上有無(wú)按鍵按下。由單片機(jī)向所有行線發(fā)出低電平信號(hào),如果該行線所連接的鍵沒(méi)有按下,則連線所連接的輸出口端得到的是全1信號(hào);如果有鍵按下,則得到的是非全1信號(hào)[13]。

(2) 判斷被按下按鍵所在的位置。確認(rèn)有鍵按下后,再具體確定是哪個(gè)按鍵被按下,采用方法:順次將每根行線設(shè)置為輸出口,并輸出低電平(同時(shí)剩余行線輸出高電平),然后逐列檢查每根列線的電平狀態(tài),若某列為低電平,則該列線與設(shè)置為輸出低電平的行線交叉處的按鍵就是被按下的按鍵。

(3) 鍵碼計(jì)算。程序設(shè)計(jì)中常用計(jì)算法或查表法對(duì)按鍵進(jìn)行編碼,本系統(tǒng)采用計(jì)算法編碼。

3.4 密碼存儲(chǔ)設(shè)計(jì)

本系統(tǒng)設(shè)計(jì)采用AT24C02存儲(chǔ)芯片,這款存儲(chǔ)芯片在其內(nèi)部含有256個(gè)8位字節(jié)。它還有專門(mén)的寫(xiě)保護(hù)功能,僅當(dāng)WP引腳接高電平時(shí)才能進(jìn)入寫(xiě)保護(hù)狀態(tài)。工作電壓從1.8~6 V之間。如圖5所示。其中A0、A1、A2引腳用于選擇器件地址,SDA是串行數(shù)據(jù)/地址引腳,SCL是串行時(shí)鐘引腳,WP是寫(xiě)保護(hù)引腳。

圖5 AT24C02存儲(chǔ)芯片連接圖

3.5 開(kāi)鎖電路、液晶顯示及報(bào)警電路

開(kāi)鎖電路由繼電器、三極管、電阻、發(fā)光二極管等組成,當(dāng)指紋輸入并比對(duì)正確后,開(kāi)鎖繼電器就會(huì)吸合。密碼錯(cuò)誤,則鎖無(wú)法打開(kāi),且伴隨有蜂鳴器長(zhǎng)鳴,以引起他人注意。開(kāi)鎖電路如圖6所示。

圖6 開(kāi)鎖電路圖

本系統(tǒng)液晶顯示部分選用常用的LCD12864液晶顯示屏,能顯示8×4行16×16點(diǎn)陣的漢字,也能完成圖形顯示[14]。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,有較強(qiáng)的優(yōu)勢(shì),如硬件電路結(jié)構(gòu)簡(jiǎn)單,顯示程序編寫(xiě)容易,而且成本和功耗也低、易于操作。系統(tǒng)中主要完成相關(guān)數(shù)據(jù)及內(nèi)容的顯示功能。

系統(tǒng)報(bào)警電路是蜂鳴器和外圍電路組成的,在上電以后蜂鳴器不會(huì)發(fā)出報(bào)警聲,但當(dāng)指紋密碼連續(xù)3次輸入都錯(cuò)誤時(shí),進(jìn)行報(bào)警。報(bào)警聲可以引起周圍人的注意,如果是竊賊就很容易會(huì)被發(fā)現(xiàn),報(bào)警電路的設(shè)計(jì)使這類電子密碼鎖安全性能大大提高。報(bào)警電路如圖7所示。

圖7 報(bào)警電路設(shè)計(jì)

3.6 紅外遙控電路

另外,為了保證還沒(méi)有錄入指紋的新入職教師或者業(yè)余時(shí)間開(kāi)放實(shí)驗(yàn)教學(xué)等情況時(shí)能按時(shí)打開(kāi)實(shí)驗(yàn)室門(mén)鎖,本系統(tǒng)還擴(kuò)展附加了紅外遙控功能,即采用了一個(gè)紅外遙控器來(lái)進(jìn)行紅外信號(hào)的發(fā)射,實(shí)現(xiàn)密碼的鍵入和相關(guān)功能的實(shí)現(xiàn)。系統(tǒng)選用1838紅外接收頭,主要原因是它除了能完成系統(tǒng)所需功能外,而且功耗低、靈敏度高、抗干擾特性強(qiáng),應(yīng)用十分廣泛。其電路圖如圖8所示。

4 軟件設(shè)計(jì)

系統(tǒng)微處理器采用STC89C52單片機(jī),編程采用模塊化設(shè)計(jì),系統(tǒng)程序由主程序和一系列的子程序構(gòu)成。主程序負(fù)責(zé)系統(tǒng)的初始化及各子程序的調(diào)用。各子程序包含有串口初始化、密碼檢測(cè)、鍵盤(pán)掃描、指紋的錄入比對(duì)、指紋密碼的增加和刪除、修改密碼、管理員和密碼開(kāi)鎖等程序。由于篇幅原因,下面給出刷指紋和密碼開(kāi)鎖兩個(gè)子程序。

圖8 1838紅外遙控電路圖

刷指紋子程序如下:

void Shuazhiwen()

{

uchar IDs1,IDs2,IDs3;

LcmClearTXT();

PutStr(1,1,"請(qǐng)按手指開(kāi)鎖:");

SFG_identify();

while(querenma==2)

SFG_identify();

if(querenma==0)

{

LcmClearTXT();

PutStr(1,2,"門(mén)已打開(kāi)!");

IDs1=PageID/100;

IDs2=PageID/10%10;

IDs3=PageID%10;

PutStr(2,1,"編號(hào)為:");

WriteCommand(0x8D);

WriteData(0x30+IDs1);

WriteData(0x30+IDs2);

WriteData(0x30+IDs3);

ErrorCount=0;

Feng=1;

jidianqi=0;

delay(2 500);

jidianqi=1;

}

else if(querenma==9)

{

LcmClearTXT();

PutStr(1,1,"沒(méi)搜索到指紋!");

PutStr(2,1,"請(qǐng)重新按手指!");

ErrorCount=3;

Feng=0;

}

else

{

LcmClearTXT();

PutStr(1,1,"接收包出錯(cuò)");

}

delay(2000);

}

系統(tǒng)密碼開(kāi)鎖的子程序如下[15-16]:

void mimakaisuo()

{

uchar i,j=0,x=1;

uchar Right_flag;

LcmClearTXT();

PutStr(1,0,"請(qǐng)輸入密碼開(kāi)鎖:");

for(i=0;i<6;i++)mima[i]=0;

Key=Keycan();

while(Key!=queren)

{

Key=Keycan();

KeyDeal(Key);

delay(30);

if(Key==0)K=10;

if((K>=0)&&(K<=9))

{

mima[j]=K;

if(j<6)

{

WriteCommand(0x89+j);

WriteData(0x0f); }

++j;

if(j==7)

j=6; } // LCD12864并行顯示

if(K==34) //按下刪除鍵

{

if(j==0)

{WriteCommand(0x89);

WriteData(0x20); }

else

{ --j;

WriteCommand(0x89+j);

WriteData(0x20); }

}

}

LcmClearTXT();

for(i=0;i<6;i++)

{ UserPassword[i]=mima[i]+0x30; }

if(j==6) { Right_flag=PassWord_Chack(); }

if (Right_flag==1&&ErrorCount<3)

{

Right_flag=0;

zhu();ErrorCount=0;

Feng=1;

for(i=0;i<6;i++)mima[i]=0;

}

else

{

if(ErrorCount<3)

ErrorCount++;

if(ErrorCount==3)

Feng=0;

PutStr(1,2,"密碼錯(cuò)誤!");

PutStr(2,0,"還有 次機(jī)會(huì)");

PutStr(3,0,"按任意鍵繼續(xù)");

WriteCommand(0x8a);

WriteData(′ ′);

WriteData(3-ErrorCount+0x30);

delay(1 000);

}

Key=0;

LcmClearTXT();

}

5 系統(tǒng)聯(lián)調(diào)

系統(tǒng)聯(lián)調(diào)需要用軟件Keil uVision5編程并錄入后進(jìn)行,需要聯(lián)調(diào)的程序主要有指紋、鍵盤(pán)和液晶顯示等模塊。系統(tǒng)聯(lián)調(diào)實(shí)物圖如圖9所示。

圖9 遙控指紋密碼鎖實(shí)物聯(lián)調(diào)圖

6 結(jié) 語(yǔ)

本文介紹了應(yīng)用單片機(jī)進(jìn)行指紋解鎖和遙控解鎖方式來(lái)實(shí)現(xiàn)開(kāi)鎖,具有防多次試探鍵入密碼、成本低等特點(diǎn)。系統(tǒng)以STC89C52單片機(jī)為主控制器,使用指紋識(shí)別模塊裝設(shè)在單片機(jī)的串口上,控制指紋的錄入及相應(yīng)數(shù)據(jù)的存儲(chǔ),當(dāng)開(kāi)門(mén)輸入指紋時(shí)通過(guò) LCD12864 液晶顯示密碼或指紋比對(duì)結(jié)果,指紋正確開(kāi)鎖,錯(cuò)誤3次后鎖無(wú)法打開(kāi)并報(bào)警。紅外遙控部分采用紅外通信實(shí)現(xiàn)。輔助電路以直流繼電器和發(fā)光二極管模擬開(kāi)鎖的動(dòng)作。系統(tǒng)由電池供電,并且24 h待機(jī),因此解決系統(tǒng)功耗是一個(gè)重要問(wèn)題。在查閱大量資料和做了相關(guān)試驗(yàn)后,對(duì)系統(tǒng)的軟、硬件做了多次改動(dòng),從各個(gè)方面去降低功耗。經(jīng)過(guò)多次測(cè)量,本項(xiàng)目組設(shè)計(jì)的指紋電子密碼鎖的功耗為150~350mA,達(dá)到了較理想的效果,可以應(yīng)用于實(shí)際實(shí)驗(yàn)室或?qū)W生宿舍的管理中,既安全可靠,又節(jié)約成本、節(jié)省資源,還可以在硬件及軟件方面進(jìn)行擴(kuò)展,增加新的功能,具有一定的推廣價(jià)值。

猜你喜歡
液晶顯示密碼鎖指紋識(shí)別
基于單片機(jī)指紋識(shí)別電子寄存柜設(shè)計(jì)
電子制作(2018年11期)2018-08-04 03:25:46
日記密碼鎖2
日記密碼鎖
開(kāi)啟密碼鎖
數(shù)字密碼鎖的邏輯實(shí)現(xiàn)
電子制作(2017年22期)2017-02-02 07:10:27
指紋識(shí)別技術(shù)綜述
122×32 點(diǎn)陣液晶顯示漢字原理實(shí)驗(yàn)
基于大容量指紋識(shí)別的實(shí)時(shí)身份認(rèn)證系統(tǒng)
基于線陣CCD的指紋識(shí)別實(shí)驗(yàn)
界面致穩(wěn)型柔性膽甾相液晶顯示器件的制備與性能
河西区| 平阴县| 普陀区| 报价| 定兴县| 丰原市| 若羌县| 彩票| 年辖:市辖区| 北京市| 太白县| 赣州市| 天峨县| 泾阳县| 称多县| 信宜市| 惠州市| 玉林市| 邵阳市| 江城| 庆阳市| 那曲县| 当雄县| 仁布县| 荥阳市| 乌审旗| 涿州市| 乐东| 修水县| 宁南县| 濉溪县| 聂荣县| 杭州市| 武宣县| 垫江县| 波密县| 米林县| 苗栗县| 和林格尔县| 云南省| 共和县|