基于51单片机的密码指纹识别门锁

您所在的位置:网站首页 51单片机指纹解锁程序 基于51单片机的密码指纹识别门锁

基于51单片机的密码指纹识别门锁

2024-07-10 08:32| 来源: 网络整理| 查看: 265

大一期间学51单片机时做的小作品,功能如下:

1、密码解锁,输入正确的密码会提示'OPEN',当输入密码错误次数超过三次则会提示'已锁定';

2、指纹解锁,若该指纹存在指纹库中则会提示'OPEN';

3、修改密码,需先输入当前密码;

4、修改指纹,有添加指纹、搜索指纹、清空指纹库,三个功能。

功能展示视频链接:

https://www.bilibili.com/video/BV11y4y187jU/

原理图的AD工程、源代码的keil工程:

链接:https://pan.baidu.com/s/1c5jMNadqDgQBc1UeQcf5yg

提取码:xt85

(一)材料

最小系统:

STC89C52芯片

11.0592MHz的2脚无源脚晶振

30pf直插瓷片电容

4.7k直插色环电阻

10uf直插电解电容

3x6轻触开关

电源系统:

USB母座

电源适配器5V2A

双公USB数据线

模块:

LED灯

5V有源蜂鸣器

4*4薄膜开关

降压模块(5V降压至3.3V,供指纹模块)

LCD12864液晶屏

AS608光学指纹识别模块

AT24C02(掉电保存密码)

(二)原理图

图片

图片

注意:图中LCD的BLA背光正应该连接5V(中间最好带一个限流电阻),BLK背光负连接GND。

(三)程序

分为控制功能的程序、LCD12864驱动程序(为了节约IO口用的串行模式)、AS608光学指纹识别模块驱动程序、AT24C02驱动程序(掉电保存修改后的密码)、’4*4按键检测程序、UART程序。

(四)注意事项

在网上看了很多ATK-AS608相关的程序,大部分几乎都是一样的,可是我的模块总是无法初始化。

用串口查看,单片机发送的指令没错,指纹模块返回的应答也没问题;

找了很久发现问题出现在接收缓冲函数中:

图片

图片

图片

发送完指令后,跳到 FPM10A_Receive_Data( ) 函数中循环接收模块的数据,这会出现一个问题:

函数还没进入循环,模块就已经回应数据了,这就导致数据的丢失,初始化失败。

修改:添加 Receive_Data 接收数据标志位,修改接收缓冲函数,用串口中断接收数据

图片

图片

串口中断接收数据,在 FPM10A_Receive_Data( ) 中等待数据接收完毕,这样一来就不怕数据的丢失了。

博客里还有,感兴趣的可以去看看。

个人公众号:拾一札记



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3