通過STC89C51、52/AT89S51、52/AT89C51、52單片機作為主控制器設(shè)計。
2、由單片機+ LCD1602液晶+繼電器+指紋模塊+按鍵+聲光報警系統(tǒng)設(shè)計而成。 3、可以實現(xiàn)錄入指紋,識別指紋,刪除指紋,清空指紋4個基本功能。此外還有繼電器裝置和蜂鳴器報警。
4、識別的指紋正確或者錯誤,液晶會有相應(yīng)的提示和聲光報警 5、按鍵說明: 從左邊第一個起,模式切換按鍵(開鎖模式和錄入指紋模式)、刪除按鍵、添加指紋鍵。 6、功能操作說明: 開機后LCD1062顯示如下圖的界面
1.jpg (56.77 KB, 下載次數(shù): 44)
下載附件
2019-3-29 22:16 上傳
此時為開鎖模式(這個模式下第二個和第三個按鍵無效),將錄入指紋的手指放在指紋模塊上,開鎖成功繼電器控制的鎖打開(此時繼電器的指示燈會亮)。 在開鎖模式下按第一個按鍵,進入新指紋錄入模式(這時候第二個按鍵和第三個按鍵才有效),顯示界面如下圖:
2.jpg (59.96 KB, 下載次數(shù): 36)
下載附件
2019-3-29 22:16 上傳
在指紋錄入模式下按第二個鍵可以進行刪除指紋(當(dāng)聽到“滴..”,聲光報警的燈也閃爍一下,說明指紋刪除成功,將以前錄入的指紋全部刪除)。 按下第三個鍵后可以進行新的指紋錄入(當(dāng)聽到“滴”,聲光報警的燈也閃爍一下,就可以開始錄指紋了;將手指放在指紋模塊上兩次,聲光報警指示燈閃兩下說明指紋錄入成功,界面會顯示新錄入指紋的序號),如果指紋沒有錄入成功需再按一下第三個按鍵。 指紋錄入成功后再按下第一個鍵(進入開鎖模式)就可以用錄入指紋的手指進行指紋開鎖了。 用沒有錄入指紋的手指進行開鎖時,聲光報警系統(tǒng)會進行聲光報警。 7、下單就送條USB線供電。
單片機源程序如下:
- #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)有效模板個數(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)先級分組2
- delay_init(); //初始化延時函數(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)變量申請內(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);//讀庫指紋個數(shù)
- if(ensure!=0x00)
- printf("No vaild num\n");
- ensure=PS_ReadSysPara(&AS608Para); //讀AS608模塊參數(shù)
-
- while(1)
- {
- if(PS_Sta) //檢測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指紋識別模塊測試實驗.7z
(624.22 KB, 下載次數(shù): 41)
2019-3-29 22:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|