当前位置: 首页 > news >正文

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

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

  • AS608光学指纹识别模块
    • 模块工作原理
      • 1、指纹特征
      • 2、指纹处理
    • 模块参数
    • 引脚说明
  • 实验程序
    • 硬件设备和接线
    • 程序讲解
      • 按键
      • 主函数
    • 实验步骤
    • 注意事项
  • 总结

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;

在这里插入图片描述

程序讲解

按键

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;

主函数

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检测一次		
	}
}

实验步骤

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

注意事项

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

总结

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

相关文章:

  • RK3399平台开发系列讲解(内核入门篇)1.53、platform平台设备
  • 科研必备|找国自然快速捕捉科研热点
  • 10.7.复习
  • python专区--容器详解(字典与集合)
  • Java多线程10—如何使用线程池创建线程?
  • python数据分析及可视化(七)pandas数据清洗,显性问题(异常、缺失、重复),隐形问题(离散、面元、字符串)
  • Java实现拼图小游戏(5)—— 美化界面(含源码阅读)
  • 【MySQL从入门到精通】【高级篇】(二十五)EXPLAIN中ref、rows、filtered、Extra字段的剖析
  • C语言数组详解
  • DS | 冲刺阶段考点整理 —— 绪论、线性表、栈与队列、特殊矩阵、串
  • 实验5 循环结构
  • 【漏洞复现-Apache-目录穿越文件读取-RCE】vulfocus/apache(cve_2021_41773)
  • 基于matlab的SVM支持向量机分类仿真,核函数采用RBF函数(提供matlab仿真录像)
  • 机器学习基础:拉格朗日乘子法
  • Matlab 与 Python 基于窗函数的滤波器设计对比 之 凯瑟窗
  • .pyc 想到的一些问题
  • 【Leetcode】104. 二叉树的最大深度
  • 【知识碎片】第三方登录弹窗效果
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • HTTP 简介
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Laravel Mix运行时关于es2015报错解决方案
  • Less 日常用法
  • node.js
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • 安装python包到指定虚拟环境
  • 安卓应用性能调试和优化经验分享
  • 前端自动化解决方案
  • 浅谈web中前端模板引擎的使用
  • 一些关于Rust在2019年的思考
  • 7行Python代码的人脸识别
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • # Maven错误Error executing Maven
  • # 数据结构
  • (2)nginx 安装、启停
  • (4)事件处理——(7)简单事件(Simple events)
  • (Oracle)SQL优化技巧(一):分页查询
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)memcache、redis缓存
  • (转)ObjectiveC 深浅拷贝学习
  • (转)Sublime Text3配置Lua运行环境
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net 受管制代码
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @Async注解的坑,小心
  • @Responsebody与@RequestBody