|
通過STC89C51、52/AT89S51、52/AT89C51、52單片機(jī)作為主控制器設(shè)計(jì)。
2、由單片機(jī)+ LCD1602液晶+繼電器+指紋模塊+按鍵+聲光報(bào)警系統(tǒng)設(shè)計(jì)而成。 3、可以實(shí)現(xiàn)錄入指紋,識(shí)別指紋,刪除指紋,清空指紋4個(gè)基本功能。此外還有繼電器裝置和蜂鳴器報(bào)警。
4、識(shí)別的指紋正確或者錯(cuò)誤,液晶會(huì)有相應(yīng)的提示和聲光報(bào)警 5、按鍵說明: 從左邊第一個(gè)起,模式切換按鍵(開鎖模式和錄入指紋模式)、刪除按鍵、添加指紋鍵。 6、功能操作說明: 開機(jī)后LCD1062顯示如下圖的界面
此時(shí)為開鎖模式(這個(gè)模式下第二個(gè)和第三個(gè)按鍵無效),將錄入指紋的手指放在指紋模塊上,開鎖成功繼電器控制的鎖打開(此時(shí)繼電器的指示燈會(huì)亮)。 在開鎖模式下按第一個(gè)按鍵,進(jìn)入新指紋錄入模式(這時(shí)候第二個(gè)按鍵和第三個(gè)按鍵才有效),顯示界面如下圖: 在指紋錄入模式下按第二個(gè)鍵可以進(jìn)行刪除指紋(當(dāng)聽到“滴..”,聲光報(bào)警的燈也閃爍一下,說明指紋刪除成功,將以前錄入的指紋全部刪除)。 按下第三個(gè)鍵后可以進(jìn)行新的指紋錄入(當(dāng)聽到“滴”,聲光報(bào)警的燈也閃爍一下,就可以開始錄指紋了;將手指放在指紋模塊上兩次,聲光報(bào)警指示燈閃兩下說明指紋錄入成功,界面會(huì)顯示新錄入指紋的序號(hào)),如果指紋沒有錄入成功需再按一下第三個(gè)按鍵。 指紋錄入成功后再按下第一個(gè)鍵(進(jìn)入開鎖模式)就可以用錄入指紋的手指進(jìn)行指紋開鎖了。 用沒有錄入指紋的手指進(jìn)行開鎖時(shí),聲光報(bào)警系統(tǒng)會(huì)進(jìn)行聲光報(bào)警。 7、下單就送條USB線供電。
單片機(jī)源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "lcd.h"
- #include "key.h"
- #include "touch.h"
- #include "malloc.h"
- #include "usmart.h"
- #include "MMC_SD.h"
- #include "ff.h"
- #include "exfuns.h"
- #include "fontupd.h"
- #include "text.h"
- #include "usart2.h"
- #include "AS608.h"
- #include "timer.h"
- #define usart2_baund 57600//串口2波特率,根據(jù)指紋模塊波特率更改(注意:指紋模塊默認(rèn)57600)
- SysPara AS608Para;//指紋模塊AS608參數(shù)
- u16 ValidN;//模塊內(nèi)有效模板個(gè)數(shù)
- u8** kbd_tbl;
- void press_FR(void);//刷指紋
- u16 GET_NUM(void);//獲取數(shù)值
- int main(void)
- {
- u8 ensure;
- u8 key_num;
- char *str;
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
- delay_init(); //初始化延時(shí)函數(shù)
- uart_init(115200); //初始化串口1波特率為115200,用于支持USMART
- usart2_init(usart2_baund);//初始化串口2,用于與指紋模塊通訊
- PS_StaGPIO_Init(); //初始化FR讀狀態(tài)引腳
- usmart_dev.init(72);//初始化USMART
- mem_init(); //初始化內(nèi)存池
- exfuns_init(); //為fatfs相關(guān)變量申請(qǐng)內(nèi)存
- f_mount(fs[1],"1:",1); //掛載FLASH.
-
- printf("test1");
- while(PS_HandShake(&AS608Addr))//與AS608模塊握手 程序死這里了
- {
- printf("握手不成功\n");
- }
- printf("Connect success!\n"); //通訊成功
- ensure=PS_ValidTempleteNum(&ValidN);//讀庫指紋個(gè)數(shù)
- if(ensure!=0x00)
- printf("No vaild num\n");
- ensure=PS_ReadSysPara(&AS608Para); //讀AS608模塊參數(shù)
-
- while(1)
- {
- if(PS_Sta) //檢測(cè)PS_Sta狀態(tài),如果有手指按下
- {
- press_FR();//刷指紋
- }
- }
- }
- //刷指紋
- void press_FR(void)
- {
- SearchResult seach;
- u8 ensure;
- char *str;
- ensure=PS_GetImage();
- if(ensure==0x00)//獲取圖像成功
- {
- ensure=PS_GenChar(CharBuffer1);
- if(ensure==0x00) //生成特征成功
- {
- ensure=PS_HighSpeedSearch(CharBuffer1,0,300,&seach);
- if(ensure==0x00)//搜索成功
- {
- printf("Search fingerprint success\n");
- str=mymalloc(50);
- printf("Match ID:%d Match score:%d",seach.pageID,seach.mathscore);//顯示匹配指紋的ID和分?jǐn)?shù)
- }
- else
- printf("Search fingerprint failed\n");
- }
- else
- printf("Search fingerprint failed\n");
- }
-
- }
復(fù)制代碼
所有資料51hei提供下載:
AS608指紋識(shí)別模塊測(cè)試實(shí)驗(yàn).7z
(624.22 KB, 下載次數(shù): 41)
2019-3-29 22:14 上傳
點(diǎn)擊文件名下載附件
|