• 51驱动AS608光学指纹识别模块 12864显示


    AS608光学指纹识别模块

    在这里插入图片描述

    模块工作原理

    1、指纹特征

    指纹算法从获取的指纹图像提取的特征,代表了指纹的信息。指纹的存储、对比和搜索都是通过操作指纹特征来完成的。

    2、指纹处理

    指纹处理包括两个过程:指纹登录过程和指纹匹配过程(其中指纹匹配分为指纹对比(1:1)和指纹搜索(1:N)两种方式)。
    指纹登录时,对每一枚指纹录入2次,将2次录入的图像进行处理,合成模块存储于模块中。
    指纹匹配时,通过指纹传感器,录入要验证指纹图像并进行处理,然后与模块中的指纹模板进行匹配比较(若与模块指定的一个模块进行匹配,称为指纹对比方式,即1:1方式;若与多个模板进行匹配,称为指纹搜索方式,即1:N方式),模块给出的匹配结果(通过或者失败)。

    模块参数

    在这里插入图片描述

    引脚说明

    在这里插入图片描述
    1脚(红线):模块主电源,接3.3V供电(请勿接3.3V以上电源,否则烧毁模块!);

    2脚(黄线):模块串口TX(发送端),接MCU或TTL串口的RX(接收端);

    3脚(白线):模块串口RX(接收端),接MCU或TTL串口的TX(发送端);

    4脚(黑线):模块电源地,接3.3V电源地(负极);

    5脚(蓝线):模块触摸感应信号输出(高电平为检测到触摸),需接VTI到3.3V。

    6脚(绿线):模块触摸感应电路电源(3.3V),可以与1脚(红线)并接。

    7脚,8脚为USB信号线,使用串口控制模块时可以悬空不用。

    实验程序

    硬件设备和接线

    本文用的是STC89C52RC单片机的开发板,其他的硬件需要一个12864屏和蜂鸣器,本次还借用了两个USB转TTL做额外供电用;一个给指纹模块供电,一个给蜂鸣器供电(板子上的蜂鸣器坏了,额外接一个蜂鸣器)。
    接线:
    蜂鸣器接的是单片机的P1_0,
    指纹模块TX和RX分别接单片机的P3_0和P3_1
    12864根据原理图改程序定义即可

    sbit RS = P0^7;
    sbit RW = P0^6;
    sbit E  = P0^5;
    sbit PSB   = P0^4;
    sbit RES   = P0^3;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    程序讲解

    按键

    KEY_UP和KEY_DOWN 是上下移动,KEY_OK和KEY_CANCEL 是确认和取消。

    sbit KEY_UP=P3^5;         //定义按键输入端口
    sbit KEY_DOWN=P3^4;
    sbit KEY_OK=P3^3;
    sbit KEY_CANCEL=P3^2;
    
    • 1
    • 2
    • 3
    • 4

    主函数

    while(1)
    {
    if(local_date!=base_date) //光标位置变化,则更新显示 
    		{
    	    DisplayUpdata();
    			base_date=local_date;
    		}
    
    		if(KEY_OK == 0)
    			{	 
    		 	 while(KEY_OK == 0);//等待松开按键								
    			 switch(local_date)
    				{
    					case 0:	 //添加指纹
    					Led_Green_On();
    					FPM10A_Add_Fingerprint();
    					Led_Green_Off();
    					local_date = 0;
    					DisplayUpdata();	
    					break; 
    												
    					case 1://搜索指纹
    					Led_Yellow_On();						
    					FPM10A_Find_Fingerprint();
    					Led_Yellow_Off();							
    					local_date = 1;
    					DisplayUpdata();																	
    					break;									
    					
    					case 2:	//清空指纹
    					FPM10A_Delete_All_Fingerprint();
    					local_date = 2;									
    					DisplayUpdata();
    		  		break;
    				}
    			}
    		  //下
    			if(KEY_DOWN == 0)
    			{
    			 while(KEY_DOWN == 0); //等待松开按键				
    	  	 if(local_date<=2)
    				{
    					local_date++;
    					if(local_date==3)
    						local_date=0;						
    				}				
    			}			
    		  //上
    			if(KEY_UP == 0)
    			{ 
    			  while(KEY_UP == 0); //等待松开按键
    		    if(local_date>=0)
    				{
    					local_date--;
    					if(local_date==-1)
    						local_date=2;	
    				}					
    			}			
    			Delay_Ms(100); //延时判断100MS检测一次		
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    实验步骤

    下载好程序之后模块会进行初始化,初始化过程,蜂鸣器会响,初始化完成会再响一次。
    初始化完成之后,选择添加搜索指纹,确认ok后按提示操作即可录入指纹
    搜索指纹是自动对比指纹库,把手指放上去验证即可。
    在这里插入图片描述

    注意事项

    1,指纹模块的供电是3.3V,不能接5V供电,否则会烧坏;
    2,指纹模块工作的电流比较大,如果遇到通讯不正常,可能是供电不够,可以试试额外电源供电;
    3,指纹模块的通讯电平是3.3V,如果遇到不兼容3.3VTTL的单片机,可以加一个电平转换模块;

    总结

    程序还预留了录入指示灯和识别指示灯,需要的可以自己加LED;需要完整工程的可在评论留言获取。

  • 相关阅读:
    69.Qt 实现Https ssl证书与内网服务器ip进行双向认证
    SQLServer过滤数据(二)
    【6】Docker中部署Nginx
    模型预测控制(MPC)中考虑约束中的不确定性(Matlab代码实现)
    2022/6/27 Quartz(定时任务)讲解+入门案例
    Spring Security(十九)--OAuth2:实现授权服务器(下)--环境准备以及骨架代码搭建
    计算机系统(11)----- 线程概念
    深度学习神经网络协同过滤模型(NCF)与用户协同过滤(UCF)的区别
    脚本是什么意思?有什么特点?与RPA有哪些区别?
    electron-vite:轻松保护你的 Electron 源代码
  • 原文地址:https://blog.csdn.net/qq_42250136/article/details/127195685