实物图

功能
利用单片机和指纹识别模块实现指纹密码锁,通过指纹模块采集识别指纹,4*4矩阵键盘输入密码,能够进入管理系统,进入管理后能修改密码、注册指纹,删除指纹等操作。
要求:
(1)查阅相关文献,熟悉课题背景、任务;
(2)深入学习51系列单片机原理及C语言并且会用Keil软件进行编程;
(3)学习矩阵键盘和LCD的工作原理;
(4)学会利用Protel99se或DXP软件进行原理图绘制;
(5)焊接并完成作品调试。
原理图

PCB图

程序源代码
/*************************************************************
指纹密码锁
补充说明:
***************************************************************/
#include //头文件
#include
#include
#include
#include
#include
#define uchar unsigned char //宏定义
#define uint unsigned int
#define ulong unsigned long
/************************引脚定义************************/
sbit buzz=P3^7; //蜂鸣器
sbit led=P0^0; //LED灯
/************************变量定义************************/
#define MAX 5 //指纹最大数量
#define ID_MAX 3//输入ID最大位数
uchar mode=0; //0正常解锁,1管理界面,2注册模式,3删除模式,4修改密码
uchar mode_num=0;//管理界面选择项
uint ID=0; //存储输入编号ID
uchar n=0; //输入的位数
bit zhiwen_f=0; //1=标记进入指纹采集
uchar a; //存储按键值
uchar num; //记录输入的密码位数
bit in_f; //输入密码的标志
bit reset_f; //重设密码的标志
bit input_f; //六位密码输完的标志
uchar reset_num; //标记修改密码阶段,=1输入旧密码,=2输入新密码,=3再次输入新密码
ulong low_mima=0;//系统密码
ulong in_mima=0; //暂存输入的密码
ulong new_mima=0;//暂存输入新密码
uchar temp[5]=" �";//存储显示内容
/********************************************************
函数名称:void delayms(uint ms)
函数作用:毫秒延时函数
参数说明:
********************************************************/
void delayms(uint ms)
{
unsigned char i=100,j;
for(;ms;ms--)
{
while(--i)
{
j=10;
while(--j);
}
}
}
/********************************************************
函数名称:void didi(uchar i)
函数作用:蜂鸣器鸣叫
参数说明:i为鸣叫次数
********************************************************/
void didi(uchar i)
{
uchar j;
for(j=0;j=1&&searchnum<=MAX)||searchnum==255)//最多MAX个指纹
{
if(searchnum>=1&&searchnum<=MAX) //指纹识别成功
{
temp[0]=searchnum%1000/100+0x30;
temp[1]=searchnum%100/10+0x30;
temp[2]=searchnum%10+0x30;
temp[3]=' ';
LCD12864_display_string(3,2,temp);//显示卡号
LCD12864_display_string(3,3,"指纹解锁");
LCD12864_display_string(1,4," ");
in_mima=0; //清除以输入的密码
num=0; //清除以输入的密码位数
input_f=0; //清除输入密码标志
jdq=0; //打开电磁锁
T2_num=0; //开启重新开始计时
TR2=1;
}
else //不正确的指纹
{
LCD12864_display_string(3,3,"无效指纹");
didi(3); //报警三次
}
delay1ms(500); //延时后自动清除显示内容
LCD12864_display_string(3,2," ");
LCD12864_display_string(3,3," ");
}
}
/********************************************************
函数名称:void cunchu()
函数作用:存储指纹
参数说明:
********************************************************/
void cunchu()
{
LCD12864_display_string(0,3,"状态: ");
if(ID>0&&ID<=MAX) //输入的存储指纹位置正确
{
if(enroll()==1)//采集两次,生成1个指纹模板成功
{
if(savefingure(ID)==1)//保存指纹成功
{
LCD12864_display_string(3,3,"录入成功");
}
else //保存指纹失败
LCD12864_display_string(3,3,"存储失败");
}
else //采集指纹失败
LCD12864_display_string(3,3,"采集失败");
}
else //输入指纹编号错误
LCD12864_display_string(3,3,"编号错误");
n=0; //清除输入编号位数
ID=0; //清除输入编号
zhiwen_f=0;//关闭指纹采集
}
/********************************************************
函数名称:void shanchu()
函数作用:删除指纹
参数说明:
********************************************************/
void shanchu()
{
LCD12864_display_string(0,3,"状态: ");
if(ID>0&&ID<=MAX) //输入的存储指纹位置正确
{
if(dellfingure(ID)==1)//删除指纹成功
{
LCD12864_display_string(3,3,"删除成功");
}
else //删除指纹失败
LCD12864_display_string(3,3,"删除失败");
}
else
{
if(ID==999) //如果输入的是999表示清空指纹
{
if(Clear_All()==1)//清空指纹成功
LCD12864_display_string(3,3,"清空指纹");
else //清空指纹失败
LCD12864_display_string(3,3,"清空失败");
}
else //输入的是其它错误编号
LCD12864_display_string(3,3,"编号错误");
}
n=0; //清除输入编号位数
ID=0; //清除输入编号
zhiwen_f=0;//关闭指纹采集
}
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6034文章
44539浏览量
634029 -
lcd
+关注
关注
34文章
4419浏览量
167322 -
密码锁
+关注
关注
6文章
249浏览量
34985 -
指纹模块
+关注
关注
0文章
26浏览量
3891
原文标题:【毕业设计010】基于单片机指纹密码锁(源代码、原理图、参考论文、调试步骤、答辩解答等)
文章出处:【微信号:精通单片机与嵌入式,微信公众号:精通单片机与嵌入式】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
基于51单片机的指纹密码锁 精选资料推荐
1.系统功能概述本次分享的是一款基于51单片机的指纹识别电子密码锁系统,该系统以STC89C52单片机作为模块核心,通过串口通信控制指纹模块
发表于 07-20 06:43
如何去实现一种基于51单片机的指纹密码锁设计
系统由STC89C51单片机+AT24C02数据存储模块+按键模块+LCD12864显示+FM10A指纹模块等构成。具体功能:1、能够对指纹进行录入、识别和删除;2、能够实现最多1000枚的指
发表于 11-10 06:18
基于单片机指纹密码锁毕业设计资料分享
【资源下载】下载地址如下1553:https://docs.qq.com/doc/DTlRSd01BZXNpRUxl#include #include//包含头文件#include"24C0x.h"//包含24C02函数#include"LCD12864.h" //包含液晶函数#define uchar unsigned char#define uint unsigned int//宏定义 #de
发表于 01-13 07:43
如何去实现一种基于单片机指纹密码锁指纹识别系统设计
【资源下载】下载地址:点击下载(751)百度网盘基于单片机的指纹识别和键盘密码锁。里面包括程序,原理图,pcb图,原件清单和实物图。#include #include//包含头文件
发表于 01-13 07:48
如何去实现一种基于单片机的指纹密码锁双重加密设计
设计简介:本设计是基于单片机的指纹密码锁双重加密设计,主要实现以下功能:LCD1602显示提示信息具有指纹与密码双重加密(先确定
发表于 02-18 07:28
基于单片机的指纹密码锁系统论文
发表于 10-26 10:14
•9次下载
基于51单片机的指纹密码锁
1.系统功能概述本次分享的是一款基于51单片机的指纹识别电子密码锁系统,该系统以STC89C52单片机作为模块核心,通过串口通信控制指纹模块
发表于 11-04 18:36
•34次下载
52-基于51单片机的指纹密码锁设计
系统由STC89C51单片机+AT24C02数据存储模块+按键模块+LCD12864显示+FM10A指纹模块等构成。具体功能:1、能够对指纹进行录入、识别和删除;2、能够实现最多1000枚的指
发表于 11-05 13:36
•8次下载
基于51单片机的指纹密码锁
本设计是基于单片机的指纹密码锁,主要实现以下功能:可实现LCD1602显示门状态以及密码状态 通过步进电机模拟门开关 通过4*4矩阵按键输入开门密码
发表于 11-23 16:36
•54次下载
52-基于51单片机的指纹密码锁设计
能够对指纹进行录入、识别和删除,能够实现最多1000枚的指纹录入识别,能够实现指纹识别成功开锁功能,并设有4*4按键键盘,实现密码录入、修改和特殊功能。
发表于 11-23 17:06
•11次下载
基于单片机的指纹密码锁双重加密设计
设计简介:本设计是基于单片机的指纹密码锁双重加密设计,主要实现以下功能:LCD1602显示提示信息 具有指纹与密码双重加密(先确定
发表于 12-23 19:32
•28次下载

基于单片机的指纹密码锁设计
评论