硬件电路的设计
链接:https://pan.baidu.com/s/1u1VovuYJJ1q2plzv5J015g
提取码:8826
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://bianchenghao.cn/66041.html