久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
uid:237440 日志

城章R307指紋識別模塊做指紋鎖

已有 995 次閱讀2017-10-6 11:08 |個人分類:c51單片機| c51指紋鎖

#include < at89x51.h>
#define uchar unsigned char
#define uint unsigned int  
                                      
                                            
void rs232_init();                         
uchar key=0;     //接收計數器
 int i=0;
uchar data   table1[15];


 sbit K2=P2^1;
 sbit K1=P2^0;
 sbit led= P3^7;
 sbit p1=P0^0;
 sbit cumo=P1^4;  //觸摸輸入信號
 sbit fmp=P3^2;  //蜂鳴器控制腳低電平響


uchar  flag=0;  //觸摸標志 0是有效  1為無效
uchar  zcid=0;   //指紋注冊標志1為有效0無效

  void delay1ms(uint x)
{
  uchar  q=124;
  while(x--)
     while(q--);

}


void rs232_init()
{
         TMOD=0x20;
         TH1=0xfd;
         TL1=0xfd;
         TR1=1;
         SM0=0;
         SM1=1;
         REN=1;                                                        //先設定號工作方式,在打開允許接收
         EA=1;
         ES=1; 
 TI=0;
           RI=0;

for( i=0;i<15;i++) //初始化table1[]數組
{
table1[i]=0xFF;
    }



}

void ser()interrupt 4
{                 
                RI=0;
                table1[key++]=SBUF;                                //存數據到接收緩存
}



void  GR_Enroll()      // 自動注冊模板 
{
     uchar sendbuffer[]={0xef,0x01,0xff,0xff,0xff,0x0ff,0x01,0x00,0x03,0x33,0x00,0x37};
uchar j=0;

  ES=0;  //禁止中斷
    for(j=0;j<12;j++)
{
SBUF=sendbuffer[j];
      while(!TI);
      TI=0;  }
ES=1;  //允許中斷

while(key<13); //等待發送到0-13即14位數據

 if(table1[9]==0x00) //判斷命令數組10位返回0x00即指紋驗證通過返回其它數就不通過
{
  fmp=0;  //蜂鳴器響
  delay1ms(200); 
  
   fmp=1;  //停止蜂鳴器響
delay1ms(500);
  
                  }
else

{
fmp=0;  //蜂鳴器響
  delay1ms(80); 
   fmp=1;  //停止蜂鳴器響  
 delay1ms(80);
fmp=0;  //蜂鳴器響
  delay1ms(80); 
   fmp=1;  //停止蜂鳴器響  

  }
for( i=0;i<13;i++) //接收完數據把數據置為0xFF
{
table1[i]=0xff;
    }    
key=0;  //接收完畢把數據個數標志清零
        zcid=0; //清空指紋注冊標志

                   }   



void GR_Identity()    // 自動驗證指紋
{   
uchar j=0;
  uchar sendbuffer[]={0xef,0x01,0xff,0xff,0xff,0x0ff,0x01,0x00,0x03,0x34,0x00,0x38}; //指紋驗證數組命令
if(cumo==0 && flag==0)     //滿足指紋感應有手指并且感應標志為0時候才執行指紋驗證程序
  {           
ES=0;  //禁止中斷
    for(j=0;j<12;j++)       //發送指紋驗證數組命令
{
SBUF=sendbuffer[j];
      while(!TI);
      TI=0;   } 
                                        
            ES=1;  //允許中斷

while(key<15) ; //等待發送到0-14個數據即15位數據接收完畢

 if(table1[9]==0x00) //判斷命令數組10位返回0x00即指紋驗證通過返回其它數就不通過
{

   if( table1[10]==0x00 &&  table1[11]==0x00) //如果指紋庫里0個指紋那就啟動注冊新指紋函數
{
   
zcid=1;
fmp=0;  //蜂鳴器響
  delay1ms(200);   
   fmp=1;  //停止蜂鳴器響
          delay1ms(500); 
 }

 else

{ p1=0;  //驗證通過p1指示燈亮 不通過即滅
  fmp=0;  //蜂鳴器響
  delay1ms(200); 
  
   fmp=1;  //停止蜂鳴器響
delay1ms(500);
    p1=1; //1秒時間到關閉
                             }   
  
  }
else

{ p1=1;
fmp=0;  //蜂鳴器響
  delay1ms(80); 
   fmp=1;  //停止蜂鳴器響  
 delay1ms(80);
fmp=0;  //蜂鳴器響
  delay1ms(80); 
   fmp=1;  //停止蜂鳴器響  

  }
for( i=0;i<15;i++) //接收完數據把數據置為0xFF
{
table1[i]=0xff;
    }    
flag=1;   //標志置1待重新拿出手指置0指紋驗證才起效
 
  delay1ms(250);//延時等待
             
 }
 
key=0;  //接收完畢把數據個數標志清零    

}



void GR_Empty() // 全部清空指紋庫函數
  {
     uchar sendbuffer[]={0xef,0x01,0xff,0xff,0xff,0x0ff,0x01,0x00,0x03,0x0D,0x00,0x11};
uchar j=0;

  ES=0;  //禁止中斷
    for(j=0;j<12;j++)
{
SBUF=sendbuffer[j];
      while(!TI);
      TI=0;  }
ES=1;  //允許中斷

while(key<11); //等待發送到0-11即12位數據

 if(table1[9]==0x00) //判斷命令數組10位返回0x00即指紋驗證通過返回其它數就不通過
{
  fmp=0;  //蜂鳴器響
  delay1ms(200); 
  
   fmp=1;  //停止蜂鳴器響
delay1ms(500);
  
                  }
else

{
fmp=0;  //蜂鳴器響
  delay1ms(80); 
   fmp=1;  //停止蜂鳴器響  
 delay1ms(80);
fmp=0;  //蜂鳴器響
  delay1ms(80); 
   fmp=1;  //停止蜂鳴器響  

  }
for( i=0;i<11;i++) //接收完數據把數據置為0xFF
{
table1[i]=0xff;
    }    
   key=0;  //接收完畢把數據個數標志清零


    }





















main()
{
   
led=0;
P0 = 0xFF; 
fmp=1;
zcid=0;
delay1ms(550);  //開機等待模塊延時函數
rs232_init();  //初始化函數
delay1ms(1000);//開機等待模塊延時函數

         while(1)
         {
key=0;  //接收完畢把數據個數標志清零

      if(cumo==1)  flag=0;   //待放開手指后標志重新置0

GR_Identity();    // 自動驗證指紋


 

if(K1==0 || zcid==1 ) //按下按鍵k1
               {
         delay1ms(20); //防抖動延時
if(K1==1 ||zcid==1)     //松開k1按鍵
  {                
GR_Enroll();      // 自動注冊模板 
}                        }




if(K2==0) //按下按鍵k2
               {
         delay1ms(20); //防抖動延時
if(K2==1)     //松開k1按鍵
  {              
            GR_Empty();   // 全部清空指紋庫函數
}                       }

}
 }

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

返回頂部
主站蜘蛛池模板: 亚洲精品乱码8久久久久久日本 | 人操人免费视频 | 久久精品手机视频 | 黄色免费三级 | 日韩中文一区 | 成人在线精品 | 久久久久国产 | 九九热免费视频在线观看 | 国产一二三区电影 | 夜夜操天天操 | 欧美日韩一区在线 | 成人免费淫片aa视频免费 | 亚洲一区二区三区免费在线观看 | 高清欧美性猛交 | 国产一区三区视频 | 久久噜噜噜精品国产亚洲综合 | 欧美一区二区久久 | 在线观看成年视频 | 99精品久久 | se婷婷| 深夜福利影院 | 国产日韩欧美在线观看 | h视频在线观看免费 | 91福利在线导航 | 免费黄色av | 成人av观看 | 成年人免费看的视频 | 午夜av免费| 自拍视频一区二区三区 | 99视频在线免费观看 | 懂色一区二区三区免费观看 | 免费h在线| 97av视频 | 久久精品国产精品青草 | 亚洲一区 中文字幕 | 九一视频在线观看 | 久久久这里只有17精品 | 国产免费一区二区三区免费视频 | 一二三在线视频 | 免费在线一区二区 | 国产一区二区三区视频 |