找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3287|回复: 1
收起左侧

来论坛这么久没有贡献,发一个我做的STM32 AS608指纹程序吧

[复制链接]
ID:488955 发表于 2019-3-29 20:33 | 显示全部楼层 |阅读模式
通过STC89C51、52/AT89S51、52/AT89C51、52单片机作为主控制器设计。

2单片机+ LCD1602液晶+继电器+指纹模块+按键+声光报警系统设计而成。
3可以实现录入指纹,识别指纹,删除指纹,清空指纹4个基本功能。此外还有继电器装置和蜂鸣器报警。

4识别的指纹正确或者错误,液晶会有相应的提示和声光报警
5、按键说明:
从左边第一个起,模式切换按键(开锁模式和录入指纹模式)、删除按键、添加指纹键
6、功能操作说明:
     开机后LCD1062显示如下图的界面 1.jpg
       此时为开锁模式(这个模式下第二个和第三个按键无效),将录入指纹的手指放在指纹模块上,开锁成功继电器控制的锁打开(此时继电器的指示灯会亮)。
        在开锁模式下按第一个按键,进入新指纹录入模式(这时候第二个按键和第三个按键才有效),显示界面如下图:
2.jpg
       在指纹录入模式下按第二个键可以进行删除指纹(当听到“滴..”,声光报警的灯也闪烁一下,说明指纹删除成功,将以前录入的指纹全部删除)
       按下第三个键后可以进行新的指纹录入(当听到“滴”,声光报警的灯也闪烁一下,就可以开始录指纹了;将手指放在指纹模块上两次,声光报警指示灯闪两下说明指纹录入成功,界面会显示新录入指纹的序号),如果指纹没有录入成功需再按一下第三个按键。        指纹录入成功后再按下第一个键(进入开锁模式)就可以用录入指纹的手指进行指纹开锁了。
用没有录入指纹的手指进行开锁时,声光报警系统会进行声光报警。
7、下单就送条USB线供电。


单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "lcd.h"
  5. #include "key.h"
  6. #include "touch.h"         
  7. #include "malloc.h"
  8. #include "usmart.h"  
  9. #include "MMC_SD.h"   
  10. #include "ff.h"  
  11. #include "exfuns.h"   
  12. #include "fontupd.h"
  13. #include "text.h"        
  14. #include "usart2.h"
  15. #include "AS608.h"
  16. #include "timer.h"

  17. #define usart2_baund  57600//串口2波特率,根据指纹模块波特率更改(注意:指纹模块默认57600)
  18. SysPara AS608Para;//指纹模块AS608参数
  19. u16 ValidN;//模块内有效模板个数
  20. u8** kbd_tbl;

  21. void press_FR(void);//刷指纹

  22. u16 GET_NUM(void);//获取数值  

  23. int main(void)
  24. {                 
  25.         u8 ensure;
  26.         u8 key_num;
  27.         char *str;
  28.         
  29.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  30.         delay_init();              //初始化延时函数
  31.         uart_init(115200);        //初始化串口1波特率为115200,用于支持USMART
  32.         usart2_init(usart2_baund);//初始化串口2,用于与指纹模块通讯
  33.         PS_StaGPIO_Init();        //初始化FR读状态引脚

  34.         usmart_dev.init(72);//初始化USMART
  35.         mem_init();                                        //初始化内存池
  36.         exfuns_init();                        //为fatfs相关变量申请内存  
  37.          f_mount(fs[1],"1:",1);  //挂载FLASH.
  38.      
  39.                  printf("test1");
  40.         while(PS_HandShake(&AS608Addr))//与AS608模块握手   程序死这里了
  41.         {
  42.       printf("握手不成功\n");               
  43.         }
  44.         printf("Connect success!\n");                //通讯成功

  45.         ensure=PS_ValidTempleteNum(&ValidN);//读库指纹个数
  46.         if(ensure!=0x00)
  47.                       printf("No vaild num\n");  
  48.         ensure=PS_ReadSysPara(&AS608Para);  //读AS608模块参数
  49.         
  50.         while(1)                                                           
  51.         {
  52.                 if(PS_Sta)         //检测PS_Sta状态,如果有手指按下
  53.                 {
  54.                         press_FR();//刷指纹                                      
  55.                 }                                 
  56.         }         
  57. }

  58. //刷指纹
  59. void press_FR(void)
  60. {
  61.         SearchResult seach;
  62.         u8 ensure;
  63.         char *str;
  64.         ensure=PS_GetImage();
  65.         if(ensure==0x00)//获取图像成功
  66.         {        
  67.                 ensure=PS_GenChar(CharBuffer1);
  68.                 if(ensure==0x00) //生成特征成功
  69.                 {               
  70.                         ensure=PS_HighSpeedSearch(CharBuffer1,0,300,&seach);
  71.                         if(ensure==0x00)//搜索成功
  72.                         {                                
  73.          printf("Search fingerprint success\n");                                
  74.                                 str=mymalloc(50);
  75.                                 printf("Match ID:%d  Match score:%d",seach.pageID,seach.mathscore);//显示匹配指纹的ID和分数
  76.                         }
  77.                         else
  78.                                         printf("Search fingerprint failed\n");                                       
  79.           }
  80.                 else
  81.                 printf("Search fingerprint failed\n");                        
  82.         }
  83.                
  84. }
复制代码

所有资料51hei提供下载:
AS608指纹识别模块测试实验.7z (624.22 KB, 下载次数: 41)
回复

使用道具 举报

ID:526988 发表于 2019-5-5 10:52 | 显示全部楼层
这哪里是32的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表