【毕业设计】20 您所在的位置:网站首页 指纹锁原理结构图详解视频教学 【毕业设计】20

【毕业设计】20

2024-06-02 03:39| 来源: 网络整理| 查看: 265

typora-root-url: ./ 【毕业设计】20-基于单片机的指纹识别系统设计(原理图工程+源代码工程+实物操作图+答辩论文+答辩PPT)

文章目录 typora-root-url: ./ 【毕业设计】20-基于单片机的指纹识别系统设计(原理图工程+源代码工程+实物操作图+答辩论文+答辩PPT)设计说明书摘要设计框架架构设计说明书及设计文件源码展示

设计说明书 摘要

对于如何实现家庭防盗这一问题,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。本设计以单片机STC89C52作为密码锁监控装置的检测和控制核心,采用矩阵键盘输入的电子密码和指纹密码解锁两种解锁方式。系统采用LCD12864液晶显示屏实时更新显示信息,并设有修改密码功能,在解锁或修改密码时如果在未确定时发现自己按错了可以进行退格或重输的操作,如果发现旁边有人看着或者不想输入密码了可以进行退出输入的操作,从一定程度上将确保安全性。测试结果表明,本系统各项功能已达到本设计的所有要求。

原理图工程文件 原理图截图 搭建视频 答辩论文低重复率文档,25354字 英文文献及翻译 答辩PPT 实物操作图

设计框架架构

前 言… 1

第一章 绪论… 2

第一节 研究背景与研究意义… 2

第二节 指纹识别应用及前景… 3

第三节 本文的主要研究内容… 4

第四节 本章小结… 4

第二章 基于单片机的指纹识别系统设计系统方案分析… 5

第一节 系统设计方案需求… 5

第二节 系统元器件方案选择… 5

一、主控芯片选择… 5

二、指纹模块选择… 6

三、显示器选择… 6

四、数据存储芯片选择… 7

五、人机交互按键选择… 7

第三节 系统结构总框图… 7

第四节 本章小结… 8

第三章 基于单片机的指纹识别系统硬件设计… 9

第一节 单片机最小系统电路设计… 9

一、单片机介绍… 9

二、单片机最小系统电路设计… 10

第二节 电源电路设计… 11

第三节 按键电路设计… 12

第四节 LED显示模块电路… 12

第五节 LCD液晶显示模块电路… 13

一、LCD12864介绍… 13

二、LCD12864电路设计… 13

第六节 指纹识别电路设计… 14

第七节 蜂鸣器报警模块电路… 15

第八节 24C02存储电路设计… 16

一、24C02芯片介绍… 16

二、24C02电路设计… 16

第九节 继电器电路设计… 17

第十节 系统总电路图… 18

第十一节 本章小结… 18

第四章 基于单片机的指纹识别系统软件设计… 19

第一节 Keil软件介绍… 19

第二节 主函数设计… 19

一、主函数流程… 19

二、主函数程序源码… 21

第三节 按键程序设计… 22

一、按键程序流程… 22

二、按键程序源码… 23

第四节 LCD程序设计… 25

一、LCD程序流程… 25

二、LCD程序源码… 26

第五节 蜂鸣器及LED程序设计… 26

一、蜂鸣器及LED程序流程… 26

二、蜂鸣器及LED程序源码… 27

第六节 本章小结… 28

第五章 基基于单片机的指纹识别系统的实现… 29

第一节 系统调试及遇到的问题… 29

第二节 系统功能测试… 31

第三节 本章小结… 34

总 结… 35

致 谢… 36

参考文献… 37

附 录… 39

一、英文原文… 39

二、英文翻译… 44

三、工程图纸… 48

四、源代码… 49

设计说明书及设计文件

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

源码展示 #include //头文件 #include #include #include #include #define uchar unsigned char //宏定义 #define uint unsigned int #define ulong unsigned long #define MAX 5 //指纹最大数量 #define ID_MAX 3//输入ID最大位数 sbitjdq=P3^6; sbit buzz=P3^7; sbit led=P0^0; uint T0_num=0; uchar mode=0; //0正常打卡,1管理界面,2注册模式,3删除模式,4查询模式,5修改密码,6校准时钟,7工作时间 uchar mode_num=0; uint ID=0; //存储输入编号ID uchar n=0; //输入的位数 bit zhiwen_f=0; //1=标记进入指纹采集 uchar shu; uchar a; //存储按键值 uchar num; //记录输入的密码位数 bit in_f; //输入密码的标志 bit reset_f; //重设密码的标志 bit input_f; //六位密码按完的标志 uchar reset_num; //标记修改密码阶段,=1输入旧密码,=2输入新密码,=3再次输入新密码 ulonglow_mima=0;//系统密码 ulongin_mima=0; //暂存输入的密码 ulongnew_mima=0;//暂存输入新密码 uchar set_f=0; uchar temp[5]=" \0"; /******************************************************** 函数名称:void delayms(uintms) 函数作用:毫秒延时函数 参数说明: ********************************************************/ void delayms(uintms) { 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=1&&searchnum0&&ID0&&ID=4) { AT24C02_write_date(200,0); AT24C02_write_date(201,0); AT24C02_write_date(202,0); low_mima=0; shu=0; } } else shu=0; if((mode==2||mode==3)&&a=2) mode_num=0; else mode_num++; } } if(a==13) //退格 { if(mode==0||mode==4)//在输入密码状态 { if(num!=0) { //输入密码个数减1 num--; if(in_f==1||mode==4) LCD12864_display_char(num+1,2,' '); else LCD12864_display_char(num+1,4,' '); in_mima=in_mima/10; input_f=0; } } if(mode==2||mode==3)//在ID编号输入状态 { if(n!=0) { LCD12864_display_char(2+n,2,' '); n--; ID=ID/10; zhiwen_f=0; } } } if(a==14)//确定 { if(mode==1) //确定选择管理操作 { write_com(0x01); mode=mode_num+2; n=0; ID=0; zhiwen_f=0; input_f=0; //清除确定标志 num=0; in_mima=0; new_mima=0; switch(mode_num) { case 0: LCD12864_display_string(0,1,">>录入指纹"); LCD12864_display_string(0,2,"编号: "); break; case 1: LCD12864_display_string(0,1,">>删除指纹"); LCD12864_display_string(0,2,"编号: "); break; case 2: reset_f=1; reset_num=1; LCD12864_display_string(0,1,"请输入旧密码: "); break; default: break; } } else { if(input_f==1)//密码输入完成确定 { if(reset_f==1/*&&num==6*/) //修改密码区间 { if(reset_num==3) { if(new_mima==in_mima) { low_mima=new_mima; AT24C02_write_date(200,low_mima/10000); AT24C02_write_date(201,low_mima%10000/100); AT24C02_write_date(202,low_mima%100); write_com(0x01); LCD12864_display_string(1,1,"密码修改成功"); LCD12864_display_string(1,3,"请妥善保管好"); } else { LCD12864_display_string(1,3,"密码修改失败"); } reset_num=0; reset_f=0; } if(reset_num==2) { write_com(0x01); LCD12864_display_string(0,1,"请再次输入新密码"); new_mima=in_mima; reset_num++; } if(reset_num==1) { if(low_mima==in_mima) { write_com(0x01); reset_num++; LCD12864_display_string(0,1,"请输入新密码: ");//显示输入新密码 } else { LCD12864_display_string(2,3,"密码错误");//显示密码错误 reset_num=1; LCD12864_display_string(1,2," "); } } } if(in_f==1) //进入管理输入密码时候 { if(low_mima==in_mima) { mode=1; write_com(0x01); in_f=0; } else { LCD12864_display_string(2,3,"密码错误"); //显示密码错误 LCD12864_display_string(1,2," "); } } if(mode==0&&in_f==0) { if(low_mima==in_mima) { LCD12864_display_string(3,3,"解锁成功"); jdq=0; T0_num=0; } else { LCD12864_display_string(3,3,"密码错误"); //显示密码错误 didi(3); } LCD12864_display_string(1,4," "); delay1ms(500); LCD12864_display_string(3,3," "); } in_mima=0; num=0; //清除密码计数。重新计算输入的密码个数 input_f=0; //清除确定标志 } if((mode==2||mode==3)&&n==ID_MAX) { zhiwen_f=1; } } } key_f=0; //清除按键标志 } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有