⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keypad.lst

📁 指纹识别源代码,用于智能门紧,还有配合MF800卡使用
💻 LST
📖 第 1 页 / 共 5 页
字号:
 257   6                                              }
 258   5                                              else if(checkts())
 259   5                                              {
 260   6                                                      checkthrough();
 261   6                                              }
 262   5                                              else
 263   5                                              {
 264   6                                              }
 265   5                                      }
 266   4                              }
 267   3                      }
 268   2                      idinflag=0;
 269   2                      keycounter=0;
 270   2              }
 271   1              else            //press enter and check finger
 272   1              {
 273   2                      if(readfpmode())
 274   2                      {
 275   3                              if(readsecumode()==FPONLY)
 276   3                              {
 277   4                                      if(captureandfinduser())
 278   4                                      {
 279   5                                              tempsn=uart0buff[PAFIMPARAM+1]<<8;
 280   5                                              tempsn+=uart0buff[PAFIMPARAM];
 281   5      
 282   5                                              readuserdata(tempsn);
 283   5                                              userid[0]=tempbuff[8];
 284   5                                              userid[1]=tempbuff[9];
 285   5                                              userid[2]=tempbuff[10];
 286   5                                              userid[3]=tempbuff[11];
 287   5                                              eventtype=EVENTKEYPAD;
 288   5      
 289   5                                              tempdata=(tempbuff[15]>>4);
 290   5                                              if(!tempdata)
 291   5                                              {
 292   6                                                      accessevent(eventtype|MESSAGEDOORERR);
 293   6                                              }
 294   5                                              else if((tempdata==INONLY)&&(eventtype>=2))
 295   5                                              {
 296   6                                                      accessevent(eventtype|MESSAGEDOORERR);
 297   6                                              }
 298   5                                              else if((tempdata==OUTONLY)&&(eventtype<2))
 299   5                                              {
 300   6                                                      accessevent(eventtype|MESSAGEDOORERR);
 301   6                                              }
 302   5                                              else if(checkts())
C51 COMPILER V7.01  KEYPAD                                                                 03/08/2007 12:09:34 PAGE 6   

 303   5                                              {
 304   6                                                      accessok();
 305   6                                              }
 306   5                                              else
 307   5                                              {
 308   6                                              }
 309   5                                      }
 310   4                                      else
 311   4                                      {
 312   5                                              userid[0]=0xff;
 313   5                                              userid[1]=0xff;
 314   5                                              userid[2]=0xff;
 315   5                                              userid[3]=0xff;
 316   5                                              accessevent(EVENTKEYPAD|MESSAGEDENIED);
 317   5                                      }
 318   4                              }
 319   3                      }
 320   2              }
 321   1      }
 322          /////////////////////////////////////////////////////////////////////////////////
 323          void function1()
 324          {
 325   1              if(setflag)
 326   1              {
 327   2              
 328   2                      if(submenuflag)
 329   2                      {
 330   3                              if(setupitem==SETKEYTEST)setkeytest();
 331   3                              return;
 332   3                      }
 333   2                      if((setupitem!=SETMASTERPASS)&&(setupitem!=SETPOWERINITPASS))
 334   2                              setmodedisp();
 335   2                      //setmode(0xff);
 336   2              }
 337   1              else
 338   1              {
 339   2                      dispbuff[0][12]='[';
 340   2                      dispbuff[0][13]='F';
 341   2                      dispbuff[0][14]=0x31;
 342   2                      dispbuff[0][15]=']';
 343   2                      display(LINE1);
 344   2                      ram_writep0(FUNCTIONS,0);
 345   2              }
 346   1      }
 347          /////////////////////////////////////////////////////////////////////////////////
 348          void function2()
 349          {
 350   1              if(setflag)
 351   1              {
 352   2                      if(submenuflag)
 353   2                      {
 354   3                              if(setupitem==SETKEYTEST)setkeytest();
 355   3                              return;
 356   3                      }
 357   2                      if((setupitem!=SETMASTERPASS)&&(setupitem!=SETPOWERINITPASS))
 358   2                              settsdisp();
 359   2              
 360   2              }
 361   1              else
 362   1              {
 363   2                      dispbuff[0][12]='[';
 364   2                      dispbuff[0][13]='F';
C51 COMPILER V7.01  KEYPAD                                                                 03/08/2007 12:09:34 PAGE 7   

 365   2                      dispbuff[0][14]=0x32;
 366   2                      dispbuff[0][15]=']';
 367   2                      display(LINE1);
 368   2                      ram_writep0(FUNCTIONS,1);
 369   2                      //setflag=1;
 370   2                      //submenuflag=0;
 371   2                      //settsdisp();
 372   2              }
 373   1      }
 374          /////////////////////////////////////////////////////////////////////////////////
 375          void function3()
 376          {
 377   1              if(setflag)
 378   1              {
 379   2                      if(submenuflag)
 380   2                      {
 381   3                              if(setupitem==SETKEYTEST)setkeytest();
 382   3                              return;
 383   3                      }
 384   2                      if((setupitem!=SETMASTERPASS)&&(setupitem!=SETPOWERINITPASS))
 385   2                              setidregisterdisp();
 386   2      
 387   2              }
 388   1              else
 389   1              {
 390   2                      dispbuff[0][12]='[';
 391   2                      dispbuff[0][13]='F';
 392   2                      dispbuff[0][14]=0x33;
 393   2                      dispbuff[0][15]=']';
 394   2                      display(LINE1);
 395   2                      ram_writep0(FUNCTIONS,2);
 396   2              }
 397   1      }
 398          /////////////////////////////////////////////////////////////////////////////////
 399          void function4()
 400          {
 401   1              if(setflag)
 402   1              {
 403   2                      if(submenuflag)
 404   2                      {
 405   3                              if(setupitem==SETKEYTEST)
 406   3                              {
 407   4                                      setkeytest();                           
 408   4                              }
 409   3                              return;
 410   3                      }
 411   2                      if((setupitem!=SETMASTERPASS)&&(setupitem!=SETPOWERINITPASS))
 412   2                              setfwverdisp();
 413   2      
 414   2              }
 415   1              else
 416   1              {
 417   2                      dispbuff[0][12]='[';
 418   2                      dispbuff[0][13]='F';
 419   2                      dispbuff[0][14]=0x34;
 420   2                      dispbuff[0][15]=']';
 421   2                      display(LINE1);
 422   2                      ram_writep0(FUNCTIONS,3);
 423   2              }
 424   1      }
 425          /////////////////////////////////////////////////////////////////////////////////
 426          void delay60ms()
C51 COMPILER V7.01  KEYPAD                                                                 03/08/2007 12:09:34 PAGE 8   

 427          {
 428   1              delayTimerl(T20MS);
 429   1              delayTimerl(T20MS);
 430   1              delayTimerl(T20MS);
 431   1      }
 432          /////////////////////////////////////////////////////////////////////////////////
 433          void keyfun()
 434          {
 435   1              if(keynumber<NULLKEY)
 436   1              {
 437   2                      set_373(BEEPPORT);
 438   2                      delay60ms();
 439   2                      clr_373(BEEPPORT);
 440   2                      switch(keynumber)
 441   2                      {
 442   3                      case NUMBER0:
 443   3                      case NUMBER1:
 444   3                      case NUMBER2:
 445   3                      case NUMBER3:
 446   3                      case NUMBER4:
 447   3                      case NUMBER5:
 448   3                      case NUMBER6:
 449   3                      case NUMBER7:
 450   3                      case NUMBER8:
 451   3                      case NUMBER9:numberfun();break;
 452   3                      case CANCEL:
 453   3                              if(setflag)
 454   3                              {
 455   4                                      numberfun();break;
 456   4                              }
 457   3                              else
 458   3                              {
 459   4                                      cancelfun();break;
 460   4                              }
 461   3                      case ENTER:
 462   3                              if(setflag)
 463   3                              {
 464   4                                      numberfun();break;
 465   4                              }
 466   3                              else
 467   3                              {
 468   4                                      if(readpinkeyin())enterfun();
 469   4                                      //enterfun();
 470   4                                      break;
 471   4                              }
 472   3                      case FUNCTION1:function1();break;
 473   3                      case FUNCTION2:function2();break;
 474   3                      case FUNCTION3:function3();break;
 475   3                      case FUNCTION4:function4();break;
 476   3                      }
 477   2              }
 478   1      }
 479          /////////////////////////////////////////////////////////////////////////////////
 480          bit checkismaster()
 481          {
 482   1              if(!readmasterchange())
 483   1              {
 484   2                      if(userid[0])return FALSE;
 485   2                      if(userid[1])return FALSE;
 486   2                      if(userid[2])return FALSE;
 487   2                      if(userid[3])return FALSE;
 488   2      
C51 COMPILER V7.01  KEYPAD                                                                 03/08/2007 12:09:34 PAGE 9   

 489   2                      return TRUE;
 490   2              }
 491   1              else
 492   1              {
 493   2      
 494   2                      readuserdata(MASTERUSERSN);
 495   2                      if(tempbuff[8]!=userid[0])return FALSE;
 496   2                      if(tempbuff[9]!=userid[1])return FALSE;
 497   2                      if(tempbuff[10]!=userid[2])return FALSE;
 498   2                      if(tempbuff[11]!=userid[3])return FALSE;
 499   2      
 500   2                      return TRUE;
 501   2              }
 502   1      }
 503          /////////////////////////////////////////////////////////////////////
 504          bit checkts()
 505          {
 506   1              unsigned char holindex,i,typeofday;
 507   1      
 508   1              if(tempbuff[14]&0xf)
 509   1              {
 510   2                      holindex=readholindex((tempbuff[14]&0xf)-1);
 511   2                      if(!holindex)
 512   2                      {
 513   3                              typeofday=datetime[DTWEEK];
 514   3                      }
 515   2                      else
 516   2                      {
 517   3                              //holiday--;
 518   3                              holindex--;
 519   3                              for(i=0;i<32;i++)
 520   3                              {
 521   4                                      getholdata(holindex*32+i);
 522   4                                      if((datetime[DTMON]==tempbuff[0])&&(datetime[DTDAY]==tempbuff[1]))break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -