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

📄 rxd.lst

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


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

stmt level    source

   1          #include "reg58.h"
   2          
   3          #define _RXD_C_
   4          #include "rxd.h"
   5          
   6          #include "intrins.h"
   7          #include "define.h"
   8          #include "keypad.h"
   9          #include "finger.h"
  10          #include "bus.h"
  11          #include "pccomm.h"
  12          #include "timer.h"
  13          #include "system.h"
  14          #include "373.h"
  15          /////////////////////////////////////////////////////////////////////////////////
  16          //unsigned char UARTDATA uart1buff[MAXUART1LEN];
  17          //unsigned char data uart0buff[2];
  18          unsigned char data rxd0chksum;
  19          
  20          bit rxd0flag,rxd0packflag,rxd1flag;
  21          bit     keypackflag;
  22          //unsigned short idata rxd1len;
  23          unsigned short data rxd0len,rxd0counter;
  24          unsigned char data rxd0timer;
  25          /////////////////////////////////////////////////////////////////////////////////
  26          void rxd1() interrupt 7 using 1
  27          {
  28   1              if(RI_1)                //receive interrupt
  29   1              {
  30   2                      RI_1=0;
  31   2                      
  32   2                      if(!rxd0packflag)
  33   2                      {       
  34   3                              if(!rxd0flag)           //if uart0 is receiving data, uart1 do nothing
  35   3                              {
  36   4                                      if(!rxd1flag)
  37   4                                      {       
  38   5                                              if(SBUF1==PCPACKAGEHEAD)                //receive pc data
  39   5                                              {
  40   6                                                      uart0buff[0]=PCPACKAGEHEAD;
  41   6                                                      rxd1flag=1;
  42   6                                                      rxd0counter=1;
  43   6                                                      rxd0timer=timerh;
  44   6                                              }
  45   5                                      }
  46   4                                      else
  47   4                                      {
  48   5                                              if(rxd0counter==1)
  49   5                                              {
  50   6                                                      rxd0len=SBUF1+0x100;    //+0x100 for fear  that rxd0counter can be larger than rxd0len
  51   6                                              }
  52   5                                              else if(rxd0counter==2)
  53   5                                              {
  54   6                                                      rxd0len&=0xff;  
C51 COMPILER V7.01  RXD                                                                    03/08/2007 12:10:01 PAGE 2   

  55   6                                                      rxd0len+=SBUF1<<8;
  56   6                                                      rxd0len+=3;                     //package length is 5 bytes longer than packagelen
  57   6                                              }
  58   5                                              uart0buff[rxd0counter]=SBUF1;
  59   5                                              rxd0counter++;
  60   5                                              if(rxd0counter>=rxd0len)
  61   5                                              {
  62   6                                                      rxd0packflag=1;
  63   6                                                      rxd1flag=0;
  64   6                                              }
  65   5                                      }
  66   4                              }
  67   3                      }
  68   2              }
  69   1              else                    //transmit interrupt
  70   1              {
  71   2      
  72   2              }
  73   1      }
  74          /////////////////////////////////////////////////////////////////////////////////
  75          void rxd0() interrupt 4 using 1
  76          {
  77   1      
  78   1              if(RI)                  //receive interrupt
  79   1              {
  80   2                      RI=0;
  81   2      
  82   2                      if(!rxd0flag)
  83   2                      {
  84   3                              if(SBUF==FIMPACKHEAD)
  85   3                              {
  86   4                                      keypackflag=0;
  87   4                                      uart0buff[0]=FIMPACKHEAD;
  88   4                                      rxd0flag=1;
  89   4                                      rxd0counter=1;
  90   4                                      rxd0timer=timerh;
  91   4                                      rxd1flag=0;                             //to keep uart1 from receiving any data
  92   4                              }
  93   3                              else if(SBUF==KEYPACKHEAD)
  94   3                              {
  95   4                                      keypackflag=1;
  96   4                                      rxd0chksum=SBUF;
  97   4                                      rxd0flag=1;
  98   4                                      rxd0counter=1;
  99   4                                      rxd0timer=timerh;
 100   4                              }
 101   3      
 102   3                      }
 103   2                      else
 104   2                      {
 105   3                              if(keypackflag)
 106   3                              {
 107   4                                      if(rxd0counter<KEYPACKLEN-1)
 108   4                                      {
 109   5                                              if(rxd0counter==2)
 110   5                                              {
 111   6                                                      keytype=SBUF;
 112   6                                              }
 113   5                                              else if(rxd0counter==3)
 114   5                                              {
 115   6                                                      keynumber=SBUF;
 116   6                                              }
C51 COMPILER V7.01  RXD                                                                    03/08/2007 12:10:01 PAGE 3   

 117   5                                              else if(rxd0counter==4)
 118   5                                              {
 119   6                                                      cardnumhigh=SBUF;
 120   6                                              }
 121   5                                              rxd0counter++;
 122   5                                              rxd0chksum+=SBUF;
 123   5                                      }
 124   4                                      else
 125   4                                      {
 126   5                                              if(!(rxd0chksum+SBUF))
 127   5                                              {
 128   6                                                      keydownflag=1;
 129   6                                                      rxd0flag=0;
 130   6                                              }
 131   5                                      }       
 132   4                              }
 133   3                              else
 134   3                              {
 135   4                                      if(rxd0counter==1)
 136   4                                      {
 137   5                                              rxd0len=SBUF+0X100;
 138   5                                      }
 139   4                                      else if(rxd0counter==2)
 140   4                                      {
 141   5                                              //rxd1len<<=8;
 142   5                                              rxd0len&=0xff;
 143   5                                              rxd0len+=(SBUF<<8);
 144   5                                              rxd0len+=5;                     //package length is 5 bytes longer than packagelen
 145   5                                      }
 146   4                                      uart0buff[rxd0counter]=SBUF;
 147   4                                      rxd0counter++;
 148   4                                      if(rxd0counter>=rxd0len)
 149   4                                      {
 150   5                                              rxd0packflag=1;
 151   5                                              rxd0flag=0;
 152   5                                      }
 153   4                              }
 154   3                      }
 155   2                      /*if(!rxd0flag)                                 //PC&KEYPAD
 156   2                      {
 157   2                              if(SBUF==PCPACKAGEHEAD)
 158   2                              {
 159   2                                      keypackflag=0;
 160   2                                      uart0buff[0]=PCPACKAGEHEAD;
 161   2                                      rxd0flag=1;
 162   2                                      rxd0counter=1;
 163   2                                      rxd0timer=timerh;
 164   2                                      rxd1flag=1;                             //to keep uart1 from receiving any data
 165   2                              }
 166   2                              else if(SBUF==KEYPACKHEAD)
 167   2                              {
 168   2                                      keypackflag=1;
 169   2                                      rxd0chksum=SBUF;
 170   2                                      rxd0flag=1;
 171   2                                      rxd0counter=1;
 172   2                                      rxd0timer=timerh;
 173   2                              }
 174   2      
 175   2                      }
 176   2                      else
 177   2                      {
 178   2                              if(keypackflag)
C51 COMPILER V7.01  RXD                                                                    03/08/2007 12:10:01 PAGE 4   

 179   2                              {
 180   2                                      if(rxd0counter<KEYPACKLEN-1)
 181   2                                      {
 182   2                                              if(rxd0counter==2)
 183   2                                              {
 184   2                                                      keytype=SBUF;
 185   2                                              }
 186   2                                              else if(rxd0counter==3)
 187   2                                              {
 188   2                                                      keynumber=SBUF;
 189   2                                              }
 190   2                                              else if(rxd0counter==4)
 191   2                                              {
 192   2                                                      cardnumhigh=SBUF;
 193   2                                              }
 194   2                                              rxd0counter++;
 195   2                                              rxd0chksum+=SBUF;
 196   2                                      }
 197   2                                      else
 198   2                                      {
 199   2                                              if(!(rxd0chksum+SBUF))
 200   2                                              {
 201   2                                                      keydownflag=1;
 202   2                                                      rxd0flag=0;
 203   2                                              }
 204   2                                      }       
 205   2                              }
 206   2                              else
 207   2                              {
 208   2                                      if(rxd0counter==1)
 209   2                                      {
 210   2                                              rxd0len=SBUF+0x100;
 211   2                                      }
 212   2                                      else if(rxd0counter==2)
 213   2                                      {
 214   2                                              //rxd1len<<=8;
 215   2                                              rxd0len&=0xff;
 216   2                                              rxd0len+=SBUF<<8;
 217   2                                              rxd0len+=3;                     //package length is 5 bytes longer than packagelen
 218   2                                      }
 219   2                                      uart0buff[rxd0counter]=SBUF;
 220   2                                      rxd0counter++;
 221   2                                      if(rxd0counter>=rxd0len)
 222   2                                      {
 223   2                                              rxd0packflag=1;
 224   2                                              rxd0flag=0;
 225   2                                      }
 226   2                              }
 227   2                      }*/
 228   2                      /*if(!rxd0flag)                 //KEYPAD
 229   2                      {
 230   2                              if(SBUF==KEYPACKHEAD)
 231   2                              {
 232   2                                      keypackflag=1;
 233   2                                      rxd0chksum=SBUF;
 234   2                                      rxd0flag=1;
 235   2                                      rxd0counter=1;
 236   2                                      rxd0timer=timerh;
 237   2                              }
 238   2                              else if(SBUF==FIMPACKHEAD)
 239   2                              {
 240   2                                      keypackflag=0;
C51 COMPILER V7.01  RXD                                                                    03/08/2007 12:10:01 PAGE 5   

 241   2                                      uart0buff[0]=FIMPACKHEAD;
 242   2                                      rxd0flag=1;
 243   2                                      rxd0counter=1;
 244   2                                      rxd0timer=timerh;
 245   2                              }
 246   2                              else return;
 247   2                      }
 248   2                      else 
 249   2                      {
 250   2                              if(keypackflag)
 251   2                              {
 252   2                                      if(rxd0counter<KEYPACKLEN-1)
 253   2                                      {
 254   2                                              if(rxd0counter==2)
 255   2                                              {
 256   2                                                      keytype=SBUF;
 257   2                                              }
 258   2                                              else if(rxd0counter==3)
 259   2                                              {
 260   2                                                      keynumber=SBUF;
 261   2                                              }
 262   2                                              else if(rxd0counter==4)
 263   2                                              {
 264   2                                                      cardnumhigh=SBUF;
 265   2                                              }
 266   2                                              rxd0counter++;
 267   2                                              rxd0chksum+=SBUF;
 268   2                                      }
 269   2                                      else
 270   2                                      {
 271   2                                              if(!(rxd0chksum+SBUF))
 272   2                                              {
 273   2                                                      keydownflag=1;
 274   2                                                      rxd0flag=0;
 275   2                                              }
 276   2                                      }       
 277   2                              }
 278   2                              else
 279   2                              {
 280   2                                      if(rxd0counter==1)
 281   2                                      {
 282   2                                              rxd0len=(unsigned short)SBUF;
 283   2                                      }
 284   2                                      else if(rxd0counter==2)
 285   2                                      {
 286   2                                              //rxd1len<<=8;
 287   2                                              rxd0len+=(SBUF<<8);

⌨️ 快捷键说明

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