51单片机指纹解锁

main.c 文件 带注释

#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)  //按键K1{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检测一次
}

此为主程序,要想获取工程文档可以直接点击链接百度网盘下载

  • 链接:点击 这儿 提取码:x4jx

我的资源—里面有源码(不要积分)

点击链接获取资源.

加我QQ:1805623022

相关原理图

图片:
基于51单片机指纹管理门禁系统设计-模块框图:

基于51单片机指纹管理门禁系统设计-流程图

希望可以帮到大家

基于stc51单片机的指纹解锁模块相关推荐

  1. 基于51单片机的指纹解锁自动开门

    基于51单片机的指纹解锁自动开门 目录 基于51单片机的指纹解锁自动开门 一.设计说明 二.总体设计思路 三.系统硬件设计 四.系统软件设计 五. 实物制作与现象 七.体会 一.设计说明 指纹解锁:手 ...

  2. 基于stm32单片机的指纹解锁门禁系统

    基于stm32单片机的指纹解锁门禁系统 1.包含三个模式,正常模式,录入模式,删除模式 正常模式下,需要管理员指纹开锁,其他人才能正常打卡,实验室人数清零后,重新需要管理员指纹开锁 录入与删除指纹模式 ...

  3. 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)

    本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...

  4. 基于51单片机的指纹密码锁设计

    目录 具体实现功能 设计介绍 单片机介绍 设计思路 资料内容 原理图 程序 仿真实现 全部资料 具体实现功能 具体功能: 本设计采用STC89C52.AT89C52.AT89S52作为主控芯片,LCD ...

  5. 创意发明: 基于STC51单片机超声波测距(精简设计只需三个元件)

    基于STC51单片机超声波测距精简设计只需三个元件(测距模块暂且算做是一个元件吧) 1.所需元件:STC单片机+超声波模块+4位共阳数码管 2.原理:单片机向测距模块trig脚发送20us的高电平触发 ...

  6. 基于51单片机的指纹密码锁

    1.系统功能概述 本次分享的是一款基于51单片机的指纹识别电子密码锁系统,该系统以STC89C52单片机作为模块核心,通过串口通信控制指纹模块AS608实现录取指纹并存储指纹数据,并通过LCD1286 ...

  7. 51单片机 普中V2 超声波测距 报警 显示 基于MCS51单片机的超声波测距模块的开发

    基于MCS51单片机的超声波测距模块的开发 采用C51程序设计语言,完成下列功能要求. l 必选功能: (1) 超声波模块和单片机的接口设计,画出完整的电路原理图.(15分) (2) 开发板上电时,显 ...

  8. 基于51单片机驱动HC-SR04超声波模块(LCD1602显示)

    基于51单片机驱动HC-SR04超声波模块(LCD1602显示) 一.基本参数 二.通信时序 三.部分代码展示 四.实际效果 总结 一.基本参数 点击图片购买 HC- SR04+是一款宽电压工作的超声 ...

  9. 基于51单片机、DS1302时钟模块的电子闹钟设计

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.设计原理 1.DS1302介绍 2.闹钟音乐播放原理 二.程序设计 1.DS1302.h 2.ds1302.c 3.mu ...

最新文章

  1. Java 数组长度和访问
  2. viterbi算法_HMM模型和Viterbi算法如何应用于分词
  3. 关于IE7 兼容问题
  4. python列表生成式原理_三元表达式/和/或如何在Python中工作/真与假的性质/列表生成/生成器,and,or,执行,原理,True,False,本质,生成式...
  5. Java判断某年是不是闰年
  6. Leetcode 30.串联所有单词的子串
  7. 【linux】修改某一行
  8. SQL数据库置疑修复说明文档
  9. 基于人体姿态识别的AI健身系统(浅谈
  10. 康师傅被“水和面”糊住了眼睛?
  11. HR不排斥的三大跳槽理由
  12. 活法 - 第五章 宇宙潮涌 因果之法
  13. 4篇YouTube推荐系统论文, 一起来看看别人家的孩子
  14. 方差分析(ANOVA)分类、应用举例及matlab代码
  15. Lombok Plugin
  16. python 高斯约当消元法求逆矩阵
  17. K210学习笔记(五)——MAIX BIT(K210)与STM32串口通讯
  18. 英语语法-- 第二讲、Be动词的形式和用法
  19. 计算机应用知识,什么是Ose.exe程序解析?
  20. EMNLP 2020 | Facebook稠密向量召回方案

热门文章

  1. RTX3090ti和rtx2080ti参数对比
  2. 成为高薪的AI人工智能工程师的条件
  3. 解决ECharts中使用tooltip时鼠标移入抖动问题
  4. HTTP ERROR 403 No valid crumb was included in the request ~jenkins 太高的版本错误。降低版本
  5. HTML 编码规范之布尔型属性
  6. C语言——宏定义及保留n位小数
  7. linux 切换左右声道,linux下怎么把数据分别给左右声道
  8. 09.5. 机器翻译与数据集
  9. 移远通信亮相CCBN2021,助推视听媒体等领域不断创新
  10. 1月书单 2月新书预告 | 百万册畅销书全新续作来啦