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

📄 keypad.lst

📁 指纹识别源代码,用于智能门紧,还有配合MF800卡使用
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.01  KEYPAD                                                                 03/08/2007 12:09:34 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE KEYPAD
OBJECT MODULE PLACED IN keypad.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE keypad.c OPTIMIZE(7,SPEED) REGFILE(.\fingerPRJ.ORC) BROWSE FLOATFUZZY(0) NO
                    -AREGS DEBUG OBJECTEXTEND CODE

stmt level    source

   1          #include "reg58.h"
   2          #include "intrins.h"
   3          
   4          #define _KEYPAD_C_
   5          #include "keypad.h"
   6          #include "lcd.h"
   7          #include "define.h"
   8          #include "rxd.h"
   9          #include "373.h"
  10          #include "timer.h"
  11          #include "system.h"
  12          #include "finger.h"
  13          #include "event.h"
  14          #include "setup.h"
  15          #include "sram.h"
  16          #include "user.h"
  17          #include "ts.h"
  18          #include "inout.h"
  19          
  20          
  21          bit idinflag,passinflag,keydownflag;
  22          unsigned char idata keybuff[8];
  23          unsigned char data keynumber,keycounter,keyinputtimer;
  24          unsigned char data keytype,cardnumhigh;
  25          //unsigned char xdata password[2];
  26          //bit keyackflag,keypackflag;
  27          //////////////////////////////////////////////////////////////////////////
  28          void numberfun()
  29          {
  30   1      
  31   1      
  32   1              //if(key>NUMBER9)return;
  33   1              //beepon();
  34   1              keyinputtimer=timerh;           //fresh the keyinputtimer,
  35   1      
  36   1              if(setflag)
  37   1              {
  38   2                      switch (setupitem)
  39   2                      {
  40   3                              case SETMODE:setmode( );break;
  41   3                              case SETTIME:settime( );break;
  42   3                              case SETAPB:setapb( );break;
  43   3                              case SETCOMMID:setcommid( );break;
  44   3                              case SETDURESS:setduress( );break;
  45   3                              case SETDURESSPW:setduresspw( );break;
  46   3                              case SETBAUDRATE:setbaudrate( );break;
  47   3                              case SETEVENTCLEAR:seteventclear( );break;
  48   3                              case SETMASTERCHANGE:setmasterchange( );break;
  49   3                              case SETSYSINIT:setsysinit( );break;
  50   3                              case SETCLEARID:setidclear( );break;
  51   3                              case SETCLEARTS:settsclear( );break;
  52   3                              case SETKEYIN:setkeyin( );break;
  53   3                              case SETTS:setts( );break;
  54   3                              case SETHOLDEF:setholdef( );break;
C51 COMPILER V7.01  KEYPAD                                                                 03/08/2007 12:09:34 PAGE 2   

  55   3                              case SETIODEF:setiodef( );break;
  56   3                              case SETHOLINDEX:setholindex( );break;
  57   3                              case SETMODEINDEX:setmodeindex( );break;
  58   3                              case SETIDREGISTER:setidregister( );break;
  59   3                              case SETIDDELETE:setiddelete( );break;
  60   3                              case SETIDLIST:setidlist( );break;
  61   3                              case SETIDCOUNT:setidcount( );break;
  62   3                              case SETEVENTCOUNT:seteventcount( );break;
  63   3                              case SETFWVER:setfwver( );break;
  64   3                              case SETRAMTEST:setramtest( );break;
  65   3                              case SETOUTTEST:setouttest( );break;
  66   3                              case SETLCDTEST:setlcdtest( );break;
  67   3                              case SETKEYTEST:setkeytest( );break;
  68   3                              case SETREADERTEST:setreadertest( );break;
  69   3                              case SETINTEST:setintest( );break;
  70   3                              case SETMASTERPASS:setmasterpass( );break;
  71   3                              case SETTYPE:settype();break;
  72   3                              case SETCOMMTEST:setcommtest();break;
  73   3                              case SETPOWERINITPASS:setpowerinitpass();break;
  74   3                              default: break;
  75   3      
  76   3                      }
  77   2              }
  78   1              else if(idinflag)
  79   1              {
  80   2                      if(keycounter<MAXUSERIDLEN)
  81   2                      {
  82   3                              keybuff[keycounter]=keynumber;
  83   3                              keycounter++;
  84   3                      }
  85   2              }
  86   1              else if(passinflag)
  87   1              {
  88   2                      keybuff[keycounter]=keynumber;
  89   2                      keycounter++;
  90   2                      if(keycounter>=4)
  91   2                      {
  92   3                              passinflag=0;
  93   3                              keybuff[0]=(keybuff[0]<<4)+keybuff[1];
  94   3                              keybuff[1]=(keybuff[2]<<4)+keybuff[3];
  95   3                              
  96   3                              if((keybuff[0]!=tempbuff[12])||(keybuff[1]!=tempbuff[13]))
  97   3                                      accessevent(eventtype|MESSAGEPASSWORDERR);
  98   3                              else 
  99   3                                      //accessevent(EVENTKEYPAD|ACCESSGRANTED);
 100   3                                      accessok();
 101   3                      }
 102   2              }
 103   1              else
 104   1              {
 105   2                      if(!idinflag)
 106   2                      {
 107   3                              //duressflag=0;
 108   3                              idinflag=1;
 109   3                              keycounter=1;
 110   3                              keybuff[0]=keynumber;
 111   3                      }
 112   2              }
 113   1              //set_373(BELLRELAY);                   //start a 100ms's beep
 114   1      }
 115          /////////////////////////////////////////////////////////////////////////////////
 116          void cancelfun()
C51 COMPILER V7.01  KEYPAD                                                                 03/08/2007 12:09:34 PAGE 3   

 117          {
 118   1              if(idinflag||passinflag)
 119   1              {
 120   2                      idinflag=0;
 121   2                      passinflag=0;
 122   2                      keycounter=0;
 123   2                      //displaymessage(LMMAIN,LINE1);
 124   2                      displayMain();
 125   2                      displaytime();
 126   2              }
 127   1              else if(setflag)
 128   1              {
 129   2              
 130   2              }
 131   1      }
 132          /////////////////////////////////////////////////////////////////////////////////
 133          void getidfromkeybuff()
 134          {
 135   1                              tempbuff[0]=0;
 136   1                              tempbuff[1]=0;
 137   1                              tempbuff[2]=0;
 138   1                              tempbuff[3]=0;
 139   1                              tempbuff[4]=0;
 140   1                              tempbuff[5]=0;
 141   1                              tempbuff[6]=0;
 142   1                              tempbuff[7]=0;
 143   1      
 144   1                              idata2idata(keybuff,tempbuff+8-keycounter,keycounter);
 145   1      
 146   1                              userid[0]=(tempbuff[0]<<4)+tempbuff[1];
 147   1                              userid[1]=(tempbuff[2]<<4)+tempbuff[3];
 148   1                              userid[2]=(tempbuff[4]<<4)+tempbuff[5];
 149   1                              userid[3]=(tempbuff[6]<<4)+tempbuff[7];
 150   1      
 151   1      }
 152          /////////////////////////////////////////////////////////////////////////////////
 153          void checkthrough()
 154          {
 155   1              unsigned char secumode;
 156   1              //struct userdata idata* puserdata;
 157   1      
 158   1              secumode =readsecumode();
 159   1              if(secumode==IDONLY)accessok();//accessevent(EVENTKEYPAD|ACCESSGRANTED);
 160   1              else if(eventtype==EVENTREADER2)accessok();
 161   1              else 
 162   1              {
 163   2                      if((tempbuff[15]&0xf)&&readfpmode())
 164   2                      {
 165   3                              if(captureandmatchuser())
 166   3                              {
 167   4                                      if((secumode==IDFP)||(secumode==FPONLY))
 168   4                                      {
 169   5                                              accessok();
 170   5                                      }
 171   4                                      else
 172   4                                      {
 173   5                                              displaymessage(LMBLANK,LINE1);
 174   5                                              displayuserid();
 175   5                                              displaymessage(LMINPUTPASS,LINE2);
 176   5                                              passinflag=1;
 177   5                                              keycounter=0;
 178   5                                      }
C51 COMPILER V7.01  KEYPAD                                                                 03/08/2007 12:09:34 PAGE 4   

 179   4                              }
 180   3                              else
 181   3                              {
 182   4                                      //access event fp error
 183   4                                      accessevent(eventtype|MESSAGEFINGERERR);
 184   4                              }
 185   3                      }
 186   2                      else
 187   2                      {
 188   3                              displaymessage(LMBLANK,LINE1);
 189   3                              displayuserid();
 190   3                              displaymessage(LMINPUTPASS,LINE2);
 191   3                              passinflag=1;
 192   3                              keycounter=0;
 193   3                      }
 194   2              }
 195   1      }
 196          ////////////////////////////////////////////////////////////////////////////
 197          void enterfun()
 198          {
 199   1                      //unsigned short userid;
 200   1                      unsigned short duresspw;
 201   1                      unsigned char tempdata;
 202   1                      unsigned short tempsn;
 203   1      
 204   1      
 205   1       //     beepon();
 206   1              keyinputtimer=timerh;           //fresh the keyinputtimer,
 207   1      
 208   1              if(idinflag)
 209   1              {
 210   2              
 211   2                      if(keycounter<MINUSERIDLEN)
 212   2                      {
 213   3                              idinflag=0;
 214   3      
 215   3                              if(keycounter==2)
 216   3                              {
 217   4                                      if(readduress())
 218   4                                      {
 219   5                                              duresspw=readduresspw();
 220   5                                              if((keybuff[0]==duresspw/10)&&(keybuff[1]==duresspw%10))duressflag=1;                                   
 221   5                                      }
 222   4                              }
 223   3                              keycounter=0;
 224   3                      }
 225   2                      else if(keycounter<=MAXUSERIDLEN)
 226   2                      {
 227   3                              //for(i=0;i<8;i++)tempbuff[i]=0;
 228   3                              eventtype=keytype<<5;
 229   3                              getidfromkeybuff();
 230   3                              
 231   3                              if(checkismaster())
 232   3                              {
 233   4                                      clearsetup();
 234   4                                      masterpassdisp();
 235   4                                      passinflag=1;
 236   4                                      keycounter=0;
 237   4                              }
 238   3      
 239   3                              else
 240   3                              {
C51 COMPILER V7.01  KEYPAD                                                                 03/08/2007 12:09:34 PAGE 5   

 241   4                                      if(!getuserbyid())
 242   4                                              accessevent(eventtype|MESSAGEDENIED);
 243   4                                      else
 244   4                                      {
 245   5                                              tempdata=(tempbuff[15]>>4);
 246   5                                              if(!tempdata)
 247   5                                              {
 248   6                                                      accessevent(eventtype|MESSAGEDOORERR);
 249   6                                              }
 250   5                                              else if((tempdata==INONLY)&&(eventtype>=2))
 251   5                                              {
 252   6                                                      accessevent(eventtype|MESSAGEDOORERR);
 253   6                                              }
 254   5                                              else if((tempdata==OUTONLY)&&(eventtype<2))
 255   5                                              {
 256   6                                                      accessevent(eventtype|MESSAGEDOORERR);

⌨️ 快捷键说明

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