通过STC89C51、52/AT89S51、52/AT89C51、52单片机作为主控制器设计。
2、由单片机+ LCD1602液晶+继电器+指纹模块+按键+声光报警系统设计而成。 3、可以实现录入指纹,识别指纹,删除指纹,清空指纹4个基本功能。此外还有继电器装置和蜂鸣器报警。
4、识别的指纹正确或者错误,液晶会有相应的提示和声光报警 5、按键说明: 从左边第一个起,模式切换按键(开锁模式和录入指纹模式)、删除按键、添加指纹键。 6、功能操作说明: 开机后LCD1062显示如下图的界面
此时为开锁模式(这个模式下第二个和第三个按键无效),将录入指纹的手指放在指纹模块上,开锁成功继电器控制的锁打开(此时继电器的指示灯会亮)。 在开锁模式下按第一个按键,进入新指纹录入模式(这时候第二个按键和第三个按键才有效),显示界面如下图: 在指纹录入模式下按第二个键可以进行删除指纹(当听到“滴..”,声光报警的灯也闪烁一下,说明指纹删除成功,将以前录入的指纹全部删除)。 按下第三个键后可以进行新的指纹录入(当听到“滴”,声光报警的灯也闪烁一下,就可以开始录指纹了;将手指放在指纹模块上两次,声光报警指示灯闪两下说明指纹录入成功,界面会显示新录入指纹的序号),如果指纹没有录入成功需再按一下第三个按键。 指纹录入成功后再按下第一个键(进入开锁模式)就可以用录入指纹的手指进行指纹开锁了。 用没有录入指纹的手指进行开锁时,声光报警系统会进行声光报警。 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波特率,根据指纹模块波特率更改(注意:指纹模块默认57600)
- SysPara AS608Para;//指纹模块AS608参数
- u16 ValidN;//模块内有效模板个数
- u8** kbd_tbl;
- void press_FR(void);//刷指纹
- u16 GET_NUM(void);//获取数值
- int main(void)
- {
- u8 ensure;
- u8 key_num;
- char *str;
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
- delay_init(); //初始化延时函数
- uart_init(115200); //初始化串口1波特率为115200,用于支持USMART
- usart2_init(usart2_baund);//初始化串口2,用于与指纹模块通讯
- PS_StaGPIO_Init(); //初始化FR读状态引脚
- usmart_dev.init(72);//初始化USMART
- mem_init(); //初始化内存池
- exfuns_init(); //为fatfs相关变量申请内存
- f_mount(fs[1],"1:",1); //挂载FLASH.
-
- printf("test1");
- while(PS_HandShake(&AS608Addr))//与AS608模块握手 程序死这里了
- {
- printf("握手不成功\n");
- }
- printf("Connect success!\n"); //通讯成功
- ensure=PS_ValidTempleteNum(&ValidN);//读库指纹个数
- if(ensure!=0x00)
- printf("No vaild num\n");
- ensure=PS_ReadSysPara(&AS608Para); //读AS608模块参数
-
- while(1)
- {
- if(PS_Sta) //检测PS_Sta状态,如果有手指按下
- {
- 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和分数
- }
- else
- printf("Search fingerprint failed\n");
- }
- else
- printf("Search fingerprint failed\n");
- }
-
- }
复制代码
所有资料51hei提供下载:
AS608指纹识别模块测试实验.7z
(624.22 KB, 下载次数: 41)
|