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

📄 fm1715_fun.lst

📁 fm1702 13.56m rfid 读卡程序
💻 LST
字号:
C51 COMPILER V7.50   FM1715_FUN                                                            03/03/2006 13:09:37 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE FM1715_FUN
OBJECT MODULE PLACED IN FM1715_fun.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE FM1715_fun.c COMPACT OPTIMIZE(0,SPEED) BROWSE MODP2 DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <absacc.h>
   3          #include "FM1715_reg.h"
   4          #include "FM1715.h"
   5          
   6          /****************************************************************/
   7          /*名称: HL_Active                                               */
   8          /*功能:  该函数实现高级 MIFARE 卡激活命令       */
   9          /*输入: Secnr:  扇区号                                  */
  10          /*      Block_Adr:  块地址                                          */
  11          /*          */
  12          /*输出:  操作状态码                                                                    
  13             */   
  14          /*      读出数据存于 buffer 中                                                  */      
  15          /****************************************************************/
  16          uchar HL_Active(uchar Block_Adr,uchar Mode)
  17          {
  18   1              uchar  temp;
  19   1      
  20   1              Secnr = Block_Adr/4;                                                    //?????????
  21   1      
  22   1              MIF_Halt();                                     //Halt 
  23   1              temp = Request(RF_CMD_REQUEST_STD);                             //Request 
  24   1              if(temp != FM1715_OK)
  25   1          {
  26   2                      return(FM1715_REQERR);
  27   2          }
  28   1      
  29   1          temp  =  AntiColl();                                //AntiCol 
  30   1              if(temp != FM1715_OK)
  31   1          {
  32   2                      return(FM1715_ANTICOLLERR);
  33   2          }
  34   1      
  35   1          temp  =  Select_Card();                             //Select 
  36   1              if(temp != FM1715_OK)
  37   1          {
  38   2                      return(FM1715_SELERR);
  39   2          }
  40   1          Load_key_CPY();                                                     //LoadKey
  41   1      
  42   1              temp = Authentication(UID, Secnr, Mode);                //Authentication 
  43   1              if(temp != FM1715_OK)
  44   1          {
  45   2              return(FM1715_AUTHERR);
  46   2          }
  47   1      
  48   1          return  FM1715_OK;
  49   1      }
  50          
  51          
  52          
  53          /****************************************************************/
  54          /*名称: MIF_Initival                                            */
  55          /*功能:  该函数实现 MIFARE 卡初始化值操作       */
C51 COMPILER V7.50   FM1715_FUN                                                            03/03/2006 13:09:37 PAGE 2   

  56          /*输入: buff:  四个字节初始化数值起始地址                                     */        
  57          /*      Block_Adr:  块地址                                       */
  58          /*输出: FM1715_NOTAGERR:  无卡  */
  59          /*      FM1715_BYTECOUNTERR:  接收字节错误                                    */        
  60          /*      FM1715_NOTAUTHERR:  未经权威认证                                      */        
  61          /*      FM1715_EMPTY:  数据溢出错误                                               */    
  62          /*      FM1715_CRCERR:  CRC 校验错                                                */    
  63          /*      FM1715_PARITYERR:  奇偶校验错                                       */  
  64          /*      FM1715_WRITEERR:  写卡块数据出错                                      */        
  65          /*      FM1715_OK:  应答正确                                                        
  66          */      
  67          /****************************************************************/
  68          uchar MIF_Initival(uchar idata *buff,uchar Block_Adr)
  69          {
  70   1              uchar idata temp;
  71   1          uchar  i;
  72   1      
  73   1              temp = HL_Active(Block_Adr, 0);
  74   1              if(temp != FM1715_OK)
  75   1          {
  76   2                      return  temp;
  77   2          }
  78   1      
  79   1              for (i = 0; i < 4; i++)
  80   1          {
  81   2                      *(buff + 4 + i)=~(*(buff + i));
  82   2          }
  83   1              for (i = 0; i < 4; i++)
  84   1          {
  85   2                      *(buff + 8 + i)=*(buff + i);
  86   2          }
  87   1              *(buff + 12) = Block_Adr;
  88   1              *(buff + 13) = ~Block_Adr;
  89   1              *(buff + 14) = Block_Adr;
  90   1              *(buff + 15) = ~Block_Adr;
  91   1              temp = MIF_Write(buff, Block_Adr);
  92   1          return  temp;
  93   1      }
  94          
  95          
  96          
  97          /****************************************************************/
  98          /*名称: HL_Read                                                 */
  99          /*功能:  该函数实现高级读命令               */
 100          /*输入: Secnr:  扇区号                                  */
 101          /*      Block_Adr:  块地址                                                            */        
 102          
 103          /*输出:  操作状态码                                                                    
 104             */   
 105          /*      读出数据存于 buffer 中                                                  */      
 106          /****************************************************************/
 107          uchar HL_Read(uchar idata *buff,uchar Block_Adr,uchar Mode)
 108          {
 109   1          uchar  temp;
 110   1      
 111   1              temp = HL_Active(Block_Adr, Mode);
 112   1              if(temp != FM1715_OK)
 113   1          {
 114   2                      return  temp;
 115   2          }
 116   1      
 117   1          //Read
C51 COMPILER V7.50   FM1715_FUN                                                            03/03/2006 13:09:37 PAGE 3   

 118   1              temp = MIF_READ(buff,Block_Adr);
 119   1              if(temp != FM1715_OK)
 120   1          {
 121   2                      return  temp;
 122   2          }
 123   1          
 124   1      
 125   1              return  FM1715_OK;
 126   1      }
 127          
 128          
 129          /****************************************************************/
 130          /*名称: HL_Write                                                */
 131          /*功能:  该函数实现高级写命令               */
 132          /*输入: buff:  待写入数据的首地址                                                 */    
 133          /*      Secnr:  扇区号                                  */
 134          /*      Block_Adr:  块地址                                                            */        
 135          
 136          /*输出:操作状态码                                                                        
 137           */     
 138          /****************************************************************/
 139          uchar HL_Write(uchar idata *buff,uchar Block_Adr,uchar Mode)
 140          {
 141   1              uchar  temp;
 142   1      
 143   1              temp = HL_Active(Block_Adr, Mode);
 144   1              if(temp != FM1715_OK)
 145   1          {
 146   2                      return  temp;
 147   2          }
 148   1      
 149   1              //Write
 150   1              temp = MIF_Write(buff, Block_Adr);
 151   1              if(temp != FM1715_OK)
 152   1          {
 153   2                      return  FM1715_WRITEERR;
 154   2          }
 155   1          return  FM1715_OK;
 156   1      }
 157          
 158          
 159          /****************************************************************/
 160          /*名称: HL_add                                                 */
 161          /*功能:  该函数实现高级加命令               */
 162          /*输入: buff:  加数据的首地址                                             */    
 163          /*      Secnr:  扇区号                                  */
 164          /*      Block_Adr:  块地址                                                            */        
 165          
 166          /*输出:操作状态码                                                                        
 167           */     
 168          /****************************************************************/
 169          uchar HL_add(uchar idata *buff,uchar Block_Adr,uchar Mode)
 170          {
 171   1              uchar  temp;
 172   1      
 173   1              temp = HL_Active(Block_Adr, Mode);
 174   1              if(temp != FM1715_OK)
 175   1          {
 176   2                      return  temp;
 177   2          }
 178   1      
 179   1              //add
C51 COMPILER V7.50   FM1715_FUN                                                            03/03/2006 13:09:37 PAGE 4   

 180   1              temp =MIF_Restore(Block_Adr);
 181   1              temp =MIF_Increment(buff, Block_Adr);
 182   1              temp =MIF_Transfer(Block_Adr);
 183   1              if(temp != FM1715_OK)
 184   1          {
 185   2                      return  FM1715_WRITEERR;
 186   2          }
 187   1          return  FM1715_OK;
 188   1      }
 189          
 190          
 191          /****************************************************************/
 192          /*名称: HL_dec                                                */
 193          /*功能:  该函数实现高级减命令               */
 194          /*输入: buff:  减数据的首地址                                             */    
 195          /*      Secnr:  扇区号                                  */
 196          /*      Block_Adr:  块地址                                                            */        
 197          
 198          /*输出:操作状态码                                                                        
 199           */     
 200          /****************************************************************/
 201          uchar HL_dec(uchar idata *buff,uchar Block_Adr,uchar Mode)
 202          {
 203   1              uchar  temp;
 204   1      
 205   1              temp = HL_Active(Block_Adr, Mode);
 206   1              if(temp != FM1715_OK)
 207   1          {
 208   2                      return  temp;
 209   2          }
 210   1      
 211   1              //dec
 212   1              temp =MIF_Restore(Block_Adr);
 213   1              temp =MIF_Decrement(buff, Block_Adr);
 214   1              temp =MIF_Transfer(Block_Adr);
 215   1      
 216   1              if(temp != FM1715_OK)
 217   1          {
 218   2                      return  FM1715_WRITEERR;
 219   2          }
 220   1          return  FM1715_OK;
 221   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    661    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =     22    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =      1    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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