zoukankan      html  css  js  c++  java
  • 基于stc51单片机的指纹解锁模块

    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

    相关原理图

    图片:原理图
    基于51单片机指纹管理门禁系统设计-模块框图:
    在这里插入图片描述
    基于51单片机指纹管理门禁系统设计-流程图
    在这里插入图片描述

    希望可以帮到大家

    千里之行,始于足下!
  • 相关阅读:
    android的左右滑动效果实现-ViewFlipper
    ios学习之UISwipeGestureRecognizer手势识别
    iOS使用AVFoundation实现二维码扫描
    IOS开发之Core Location
    iOS中如何创建一个滑出式导航面板(1)
    消息推送之百度云推送Android集成与使用方法
    IOS开发之Storyboard应用
    用CocoaPods做iOS程序的依赖管理
    RelativeLayout 布局参数
    Android中获取应用程序(包)的信息-----PackageManager的使用
  • 原文地址:https://www.cnblogs.com/MINAIot/p/13041029.html
Copyright © 2011-2022 走看看