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

📄 fm1715_fun.lst

📁 复旦FM1702源码,完整资料,已经编译通过.复旦FM1702的资料几乎就是RC500英文的翻译版
💻 LST
字号:
C51 COMPILER V7.07   FM1715_FUN                                                            02/28/2007 14:01:53 PAGE 1   


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

stmt 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.07   FM1715_FUN                                                            02/28/2007 14:01:53 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              for (i = 0; i < 4; i++)
  74   1          {
  75   2                      *(buff + 4 + i)=~(*(buff + i));
  76   2          }
  77   1              for (i = 0; i < 4; i++)
  78   1          {
  79   2                      *(buff + 8 + i)=*(buff + i);
  80   2          }
  81   1              *(buff + 12) = Block_Adr;
  82   1              *(buff + 13) = ~Block_Adr;
  83   1              *(buff + 14) = Block_Adr;
  84   1              *(buff + 15) = ~Block_Adr;
  85   1              temp = MIF_Write(buff, Block_Adr);
  86   1          return  temp;
  87   1      }
  88          
  89          
  90          
  91          /****************************************************************/
  92          /*名称: HL_Read                                                 */
  93          /*功能:  该函数实现高级读命令               */
  94          /*输入: Secnr:  扇区号                                  */
  95          /*      Block_Adr:  块地址                                                            */        
  96          
  97          /*输出:  操作状态码                                                                    
  98             */   
  99          /*      读出数据存于 buffer 中                                                  */      
 100          /****************************************************************/
 101          uchar HL_Read(uchar idata *buff,uchar Block_Adr,uchar Mode)
 102          {
 103   1          uchar  temp;
 104   1      
 105   1              temp = HL_Active(Block_Adr, Mode);
 106   1              if(temp != FM1715_OK)
 107   1          {
 108   2                      return  temp;
 109   2          }
 110   1      
 111   1          //Read
 112   1              temp = MIF_READ(buff,Block_Adr);
 113   1              if(temp != FM1715_OK)
 114   1          {
 115   2                      return  temp;
 116   2          }
 117   1          
C51 COMPILER V7.07   FM1715_FUN                                                            02/28/2007 14:01:53 PAGE 3   

 118   1      
 119   1              return  FM1715_OK;
 120   1      }
 121          
 122          
 123          /****************************************************************/
 124          /*名称: HL_Write                                                */
 125          /*功能:  该函数实现高级写命令               */
 126          /*输入: buff:  待写入数据的首地址                                                 */    
 127          /*      Secnr:  扇区号                                  */
 128          /*      Block_Adr:  块地址                                                            */        
 129          
 130          /*输出:操作状态码                                                                        
 131           */     
 132          /****************************************************************/
 133          uchar HL_Write(uchar idata *buff,uchar Block_Adr,uchar Mode)
 134          {
 135   1              uchar  temp;
 136   1      
 137   1              temp = HL_Active(Block_Adr, Mode);
 138   1              if(temp != FM1715_OK)
 139   1          {
 140   2                      return  temp;
 141   2          }
 142   1      
 143   1              //Write
 144   1              temp = MIF_Write(buff, Block_Adr);
 145   1              if(temp != FM1715_OK)
 146   1          {
 147   2                      return  FM1715_WRITEERR;
 148   2          }
 149   1          return  FM1715_OK;
 150   1      }
 151          
 152          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    315    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14    ----
   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 + -