指紋識(shí)別系統(tǒng)設(shè)計(jì)與系統(tǒng)
詳細(xì)功能模塊描述:
1、系統(tǒng)硬件模塊設(shè)計(jì)與實(shí)現(xiàn):
指紋通過指紋識(shí)別模塊采集處理;并將處理后的指紋特征值等以數(shù)據(jù)包的形式發(fā)給主控模塊;主控模塊發(fā)送指令包對(duì)指紋識(shí)別模塊進(jìn)行控制以及對(duì)鍵盤模塊、報(bào)警模塊、液晶顯示模塊進(jìn)行控制。在液晶顯示屏上顯示錄入和識(shí)別成功的指紋號(hào)碼。報(bào)警模塊中以開發(fā)板自帶的蜂鳴器為主,在不同的狀態(tài)和結(jié)果下進(jìn)行不同間隔和次數(shù)的蜂鳴。鍵盤模塊主要通過三個(gè)按鍵分別實(shí)現(xiàn)模式轉(zhuǎn)換、錄入、清除等功能。
指紋模塊擬選用光學(xué)指紋傳感器,指紋識(shí)別模塊能完成外部指紋的采集、存儲(chǔ)、識(shí)別等功能,內(nèi)部擁有存儲(chǔ)空間,能夠存儲(chǔ)采集中同一個(gè)指紋的兩個(gè)特征值的合并之和。完成此次設(shè)計(jì)最基本和核心的功能。也就是指紋的錄入和識(shí)別。
液晶顯示模塊擬選用液晶顯示屏,主要完成顯示指紋的錄入、識(shí)別、和清除等各個(gè)模式下的操作過程和操作結(jié)果。
鍵盤模塊能讓用戶通過不同按鍵對(duì)應(yīng)的操作指令,實(shí)現(xiàn)模式的切換、指紋的持續(xù)錄入以及指紋的清除等功能。
報(bào)警模塊擬通過對(duì)蜂鳴器的控制來實(shí)現(xiàn),系統(tǒng)在接收到指紋識(shí)別設(shè)備在指紋錄入、識(shí)別以及清除不同狀態(tài)下執(zhí)行結(jié)果的信號(hào)后,對(duì)蜂鳴器發(fā)送不同的信號(hào)和不同間隔進(jìn)行控制。在進(jìn)行不同操作時(shí),響應(yīng)不同的操作。
2、系統(tǒng)軟件模塊設(shè)計(jì)與實(shí)現(xiàn):
主控制器作為主要的控制中心對(duì)其他四個(gè)模塊進(jìn)行控制,其中指紋識(shí)別主要接收主控制器的指令并發(fā)送數(shù)據(jù)給主控制器并且對(duì)輸入指紋進(jìn)行采集處理。顯示屏顯示各個(gè)狀態(tài)特別是錄入的指紋號(hào)和識(shí)別的指紋號(hào)。按鍵主要實(shí)現(xiàn)模式切換、指紋錄入、指紋清除三個(gè)功能。報(bào)警程序以蜂鳴器為主,通過驅(qū)動(dòng)程序?qū)崿F(xiàn)不同狀態(tài)下不同次數(shù)和間隔的蜂鳴。
編寫代碼實(shí)現(xiàn)硬件功能。擬添加一項(xiàng)安全保障體系,使用加密算法對(duì)指紋進(jìn)行加密。該指紋鎖的加密算法會(huì)把一個(gè)指紋轉(zhuǎn)化為一個(gè)不超過1e7的數(shù)字,兩個(gè)指紋數(shù)值之差越小,就說明兩個(gè)指紋越相似,當(dāng)兩個(gè)指紋的數(shù)值差≤k時(shí),這兩個(gè)指紋的持有者會(huì)被系統(tǒng)判定為同一個(gè)人。
硬件清單:stm32f103zet6 AS608 key按鍵 oled顯示屏 蜂鳴器(SG90舵機(jī)亦可)文章來源:http://www.zghlxwxcb.cn/news/detail-460485.html
WX:ng170607
功能實(shí)現(xiàn)截圖:
硬件實(shí)現(xiàn)代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-460485.html
#include "sys.h"
#include "delay.h"
#include "oled_iic.h"
#include "stdio.h"
#include "key.h"
#include "timer.h"
#include "as608.h"
#include "usart3.h"
#include "led.h"
#include "usart.h"
int main(void)
{
extern const u8 BMP1[];
HZ= GB16_NUM();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éè???D??ó??è??·?×é?a×é2£o2???à??ó??è??£?2???ìó|ó??è??
delay_init();
usart3_init(57600);
KEY_Init();
OLED_Init();
OLED_Clear();
uart_init(9600);
LED_Init();
printf("3?ê??ˉ3é1|\r\n");
OLED_ShowCH(16,0,"???????????μí3");
OLED_ShowCH(16,2,"K1?üìí?ó????");
OLED_ShowCH(16,4,"K3?üé?3y????");
OLED_ShowCH(16,6,"K5?ü?é?¤????");
while(1)
{
key_num=KEY_Scan(0);
if(key_num==1)
{
key_num=0;
// printf("°′?ü1");
OLED_Clear();
Add_FR();
GPIO_SetBits(GPIOB,GPIO_Pin_6); //·??ù?÷±¨?ˉ
delay_ms(2000);
GPIO_ResetBits(GPIOB,GPIO_Pin_6); //·??ù?÷±¨?ˉ
}
if(key_num==3)
{
key_num=0;
printf("°′?ü3");
OLED_Clear();
Del_FR();
GPIO_SetBits(GPIOB,GPIO_Pin_6); //·??ù?÷±¨?ˉ
delay_ms(1000);
GPIO_ResetBits(GPIOB,GPIO_Pin_6); //·??ù?÷±¨?ˉ
delay_ms(1000);
GPIO_SetBits(GPIOB,GPIO_Pin_6); //·??ù?÷±¨?ˉ
delay_ms(1000);
GPIO_ResetBits(GPIOB,GPIO_Pin_6); //·??ù?÷±¨?ˉ
}
if(key_num==5)
{
key_num=0;
OLED_Clear();
OLED_ShowCH(32,2,"??°′ê???");
press_FR();
}
}
}
到了這里,關(guān)于基于stm32的指紋識(shí)別系統(tǒng)設(shè)計(jì)與系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!