基于51单片机的指纹识别锁管理门禁密码锁系统方案原理图程序设计

news/2024/11/24 17:09:02/

硬件电路的设计

(附文件)
3.1系统的功能分析及体系结构设计
3.1.1系统功能分析
本系统由STC89C52单片机电路+指纹模块传感器电路+LCD1602液晶显示电路+继电器电路+按键电路+电源电路组成。
1、通过指纹传感器检测采集指纹。
2、通过按键可以增加指纹、删除指纹,具有掉电不丢失指纹数据功能。
3、如果指纹和录入的指纹库的指纹一致,则继电器1闭合,否则继电器1不动作(继电器1默认断开)。
4、继电器闭合后,可以通过按键进行断开处理。
3.1.2系统总体结构
本系统具体框图如下图所示:
在这里插入图片描述

原理图:
在这里插入图片描述
LCD1602液晶显示模块电路设计
LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。
一、LCD1602主要技术参数如下:
(1)显示容量为16×2个字符;
(2)芯片工作电压为4.5~5.5V;
(3)工作电流为2.0mA(5.0V);
(4)模块最佳工作电压为5.0V;
(5)字符尺寸为2.95×4.35(W×H)mm。
二、LCD1602采用标准的14脚,其接口的引脚说明如下:
(1)第1脚:VSS为地电源。
(2)第2脚:VDD接5V正电源。
(3)第3脚:V0为液晶显示器对比度调整端。
(4)第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
(5)第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
(6)第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
(7)第7~14脚:D0~D7为8位双向数据线。
(8)第15~16脚:空脚

AS608 光学指纹识别模块电路设计
指纹模块是指纹锁的核心部件,安装在如指纹门禁或者硬盘等器件上,用来完成指纹的采集和指纹的识别的模块。指纹模块主要由指纹采集模块、指纹识别模块和扩展功能模块(如锁具驱动模块)组成。指纹模块按其指纹识别方式可以分为:
光学指纹模块:靠光的折射和反射原理识别指纹。
电容指纹模块:通过电容的数值变化来采集指纹。
射频指纹模块(刮擦指纹模块):利用微量射频信号来探测纹路。
AS608指纹识别模块是基于光学的指纹模块。
一、模块工作原理
利用光的折射和反射原理,光从底部射向三棱镜,并经棱镜射出,射出的光线在手指表面指纹凹凸不平的线纹上折射的角度及反射回去的光线明暗就会不一样。CMOS或者CCD的光学器件就会收集到不同明暗程度的图片信息,就完成指纹的采集。
(1)指纹特征
指纹算法从获取的指纹图像中提取的特征,代表了指纹的信息。指纹的存储、比对和搜索等都是通过操作指纹特征来完成的。
(2)指纹处理包含两个过程:指纹登录过程和指纹匹配过程[其中指纹匹配分为指纹比对(1:1)和指纹搜索(1:N)两种方式]。
(3) 指纹登录时,对每一枚指纹录入 2 次,将 2 次录入的图像进行处理,合成模板存储于模块中。
指纹匹配时,通过指纹传感器,录入要验证指纹图像并进行处理,然后与模块中的指纹模板进行匹配比较(若与模块中指定的一个模板进行匹配,称为指纹比对方式,即 1:1 方式;若与多个模板进行匹配,称为指纹搜索方式,即1:N方式) ,模块给出匹配结果(通过或失败)。
二、模块参数
(1)模块通讯接口为USB和UART两种通信接口。
(2)供电电压:DC 3.3V。
(3)供电电流:工作电流:<60mA。
(4)峰值电流:<60mA
(5)指纹图像录入时间:<1.0秒
(6)窗口面积: 15.3╳ 18.2 mm
(7)分辨率:500dpi
三、块接口说明
(1)红线:电源VCC(3.3V,不能接5V,否则模块会烧掉)
(2)黄线:TXD(接单片机或TTL转接板的RXD)
(3)白线:RXD(接单片机或TTL转接板的TXD)
(4)黑线:接电源GND
(5)绿线:触摸感应电源(3.3V)(不接)
四、S608 光学指纹识别模块电路接口图如下图所示。
在这里插入图片描述
5V继电器控制电路(低电平有效)设计
继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、
通讯、自动控制、机电一体化及电力电子设备中,是最重要的控制元件之一故在电路中起着自动调节、安全保护、转换电路等作用。继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。在本系统中,通过三极管驱动继电器,当单片机的控制引脚为低电平时,三极管导通,此时继电器供电闭合,同时指示灯LED亮,与LED灯串联的电阻为限流作用保护LED灯,与三极管基集相连的电阻也是限流作用,保护三极管。继电器控制电路的原理图如下图所示。
在这里插入图片描述

系统软件设计

在这里插入图片描述

#include<reg52.h> 
#include<intrins.h>
#include"buzz.h"
#include"key.h"
#include"uart.h"
#include"delay.h"
#include"FPM10A.h"
#include"lcd_1602.h"
#include <stdio.h>sbit key1  = P1^0;
sbit key2  = P1^1;
sbit key_c  = P1^5;
sbit relay  = P1^6;unsigned char intFlag = 0; //进入模式
xdata unsigned char dis0[16];
unsigned char relayFlag = 0;  //继电器状态标志void intoZhiWen(void);	 		//函数声明
void MY_FPM10A_Find_Fingerprint(void);void main()
{			relay = 0;//继电器上电控制下 方便测试 DelayMs(200);relay = 1; relayFlag = 0 ;LCD1602_Init();			//初始化液晶LCD1602_Display(0x80,"Fingerprint Test",0,16);	 //液晶开机显示界面Uart_Init();			//初始化串口Key_Init();				//初始化按键DelayMs(200);DelayMs(200);DelayMs(200);          //延时500MS,等待指纹模块复位Device_Check();		   	//校对指纹模块是否接入正确,液晶做出相应的提示DelayMs(200);DelayMs(200);DelayMs(200);			//对接成功界面停留一定时间LCD1602_Display(0x80,"key1:int zhi wen",0,16); //显示LCD1602_Display(0xc0,"key2:int jdq ctr",0,16);do{DelayMs(10);if(key1 == 0) intFlag = 1;	//按键选择if(key2 == 0) intFlag = 2;}while((key1==1)&&(key2==1));while(1){if(intFlag == 1)	 //按键key1{intoZhiWen();}	//指纹管理模式else  if(intFlag == 2){	if(relayFlag == 1)		//显示继电器状态{LCD1602_Display(0xc0,"Relay State: C  ",0,16);	//显示状态}else{LCD1602_Display(0xc0,"Relay State: O  ",0,16); //显示状态}if(key_c == 0 )	 //按键按下 关闭继电器{relay = 1; 		   //继电器断开relayFlag = 0 ;}MY_FPM10A_Find_Fingerprint(); //搜索指纹DelayMs(50);				  }}
}void OpenRelay (void) //打开继电器
{relay = 0; relayFlag = 1 ;
}void intoZhiWen(void)
{/**************进入主功能界面****************/LCD1602_Display(0x80,"  search finger ",0,16);	 //第一排显示搜索指纹LCD1602_Display(0xc0,"  Add     delete",0,16);	 //添加和删除指纹if(local_date==0){LCD1602_Display(0x80,  " *",0,2);LCD1602_Display(0xc0,  "  ",0,2);LCD1602_Display(0xc0+8,"  ",0,2);	}else if(local_date==1){LCD1602_Display(0x80,  "  ",0,2);LCD1602_Display(0xc0,  " *",0,2);LCD1602_Display(0xc0+8,"  ",0,2);	}else if(local_date==2){LCD1602_Display(0x80,  "  ",0,2);LCD1602_Display(0xc0,  "  ",0,2);LCD1602_Display(0xc0+8," *",0,2);	}			//确认键if(KEY_OK == 0){	 while(KEY_OK == 0);//等待松开按键								switch(local_date){case 0:  //搜索指纹						FPM10A_Find_Fingerprint();																								break;	case 1:	 //添加指纹FPM10A_Add_Fingerprint();break; 					case 2:	//清空指纹FPM10A_Delete_All_Fingerprint();break;}}//切换键if(KEY_DOWN == 0){while(KEY_DOWN == 0); //等待松开按键				if(local_date<=2){local_date++;if(local_date==3)local_date=0;						}		}						DelayMs(20); //延时判断100MS检测一次	
}

.

链接:https://pan.baidu.com/s/1u1VovuYJJ1q2plzv5J015g
提取码:8826

.


http://www.ppmy.cn/news/482622.html

相关文章

linux系统修改普通用户密码和破解管理员密码

Linux的基础操作破解密码 1、用户之间的切换 (1)、点击系统桌面右上角退出切换 (2)、通过终端命令切换 命令&#xff1a; su - 目标用户名&#xff08;必须是已建有的&#xff09; 实例代码&#xff1a; [rootserver ~]# su - xbai [rhcsaserver ~]$ #输入exit退出 [xbail…

6-系统管理员密码破解

这一章是密码破解&#xff0c;前提是你有一张光盘 boot设置U盘启动 详情可见https://blog.csdn.net/u011134865/article/details/80963113 在开机如下界面按回车键&#xff0c;进入系统安装界面 进入如下界面&#xff0c;然后按快捷键ShiftF10&#xff0c;进入命令行 从下图…

三种方法破解系统管理员密码

三种方法实现“破解系统管理密码” <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 1. 纯ODS下替换SAM文件 2.

简单几招破解Windows管理员密码

相信记忆力炒鸡不好的你&#xff0c;一定经历过这样的窘境——忘记自己的Windows开机密码进去系统。。。。。。或者是调皮捣蛋的你&#xff08;像我一样&#xff09;&#xff0c;自己没带电脑&#xff0c;却急需电脑&#xff0c;然而面前有一台电脑却被设了开机密码&#xff0c…

商品支付金额篡改测试-业务安全测试实操(16)

商品支付金额篡改测试,商品订购数量篡改测试 商品支付金额篡改测试 测试原理和方法 电商类网站在业务流程整个环节,需要对业务数据的完整性和一致性进行保护,特别是确保在用户客户端与服务、业务系统接口之间的数据传输的一致性,通常在订购类交易流程中,容易出现服务器端未…

studio 新建grade7.0以上的项目 报错

在setting.grade文件中: //pluginManagement { // repositories { // gradlePluginPortal() // google() // mavenCentral() // } //} //dependencyResolutionManagement { // repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) /…

这个传感器真的可以解决问题吗?

倒闭了 之前在文章里面写了我创业开发的猫塔&#xff0c;其中有一个问题是&#xff0c;因为猫砂重量不一致&#xff0c;磁铁老化等等问题&#xff0c;可能导致在倒砂的时候不能准确让沙仓回到正确的位置。 有个朋友在文章后面回复了一个方案&#xff0c;就是用编码器。 先简单说…

【70期分享】5款中国风PPT模板免费下载

免费下载地址&#xff1a;https://www.pptmb360.com