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

📄 iso14443a.lst

📁 RFID读卡器TRH031开发源码
💻 LST
字号:
C51 COMPILER V7.20   ISO14443A                                                             11/02/2005 12:55:38 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE ISO14443A
OBJECT MODULE PLACED IN ISO14443A.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ISO14443A.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***********************************************************
   2          * Company       :       3ALOGICS                                   *
   3          ************************************************************/
   4          #include <stdio.h>
   5          
   6          #include "common.h"
   7          #include "base.h"
   8          
   9          void AREG_Set(void) 
  10          { 
  11   1          Write(0x31, 0x00); //CWConduct
  12   1      
  13   1          Write(0x11, 0x5B); //CWConduct
  14   1              Write(0x12, 0x3F); //CWConduct
  15   1              Write(0x19, 0x01); //rxcontrol1 0111_0011
  16   1              Write(0x1C, 0x18); //rxthreshold, for analog
  17   1          Write(0x15, 0x10); //Modwidth(AType, Default : 13) 
  18   1      
  19   1              Write(0x14, 0x01); // Coder A Set.
  20   1              Write(0x1A, 0x08); // DeCoder A Set.
  21   1              Write(0x21, 0x06); // RxWait Set.
  22   1              
  23   1              if (AutoMode != 0xAF) {
  24   2                      printf("A Type Register Set !! \n " );
  25   2              }
  26   1              
  27   1              Write(0x1E, 0x81); 
  28   1      //  Write(0x1F, 0x85); // AThresh high/ Athersh low 
  29   1      //      Write(0x22, 0x03); //ChannelRedundancy |0|0|CRC3309|CRC8|RxCRCEn|TxCRCEn|ParityOdd|ParityEn|
  30   1              Write(0x0a, 0x00); //Error Clear
  31   1      }
  32          
  33          void Exec_REQA(void)
  34          {
  35   1         BYTE i;
  36   1              //Write(0x31, 0x01); //Option Select A/B Type
  37   1              Write(0x0F, 0x07); //BITFRAME   |0| RxAlign  | 0 | TxLastBits | 
  38   1              Write(0x22, 0x03); //ChannelRedundancy |0|0|CRC3309|CRC8|RxCRCEn|TxCRCEn|ParityOdd|ParityEn|
  39   1              Write(0x09, 0x01); //Control |0|0|StandBy|PowerDown|Crypto1On|TStopNow|TStartNow|FlushFIFO|
  40   1              Write(0x02, 0x26); //transmit data
  41   1              Write(0x01, 0x1E); //Transceive
  42   1              DelayIdleTime(4);
  43   1      
  44   1              
  45   1              if( Read(0x04) == 0x02 )   // ATQA Response O.K
  46   1              {
  47   2                      for(i=0; i<2; i++) CIDBuf[i] = Read(0x02);
  48   2                      printf("REQA O.K!! = %02X %02X \n ", (int)CIDBuf[0], (int)CIDBuf[1] );
  49   2                      LCDType = 1;
  50   2                      DisplayLCD();
  51   2              }
  52   1              else    {    // No ATQA Response 
  53   2                      printf("No Response !! \n " );
  54   2                      Write(0x01, 0x00);
  55   2                      return;
C51 COMPILER V7.20   ISO14443A                                                             11/02/2005 12:55:38 PAGE 2   

  56   2              }
  57   1      }
  58          
  59          void Exec_RDID(void)
  60          {
  61   1          BYTE i;
  62   1      
  63   1              //Write(0x31, 0x01); //Option Select A/B Type
  64   1            
  65   1                      Write(0x1A, 0x28);                              // ZeroAfterColl activation   
  66   1                      Write(0x09, 0x01);                              // Clear FIFO
  67   1                      Write(0x02, 0x93);                              // 93 -> FIFO
  68   1                      Write(0x02, 0x20);                              // NVB -> FIFO
  69   1      
  70   1                      Write(0x01, 0x1E);                                      // Transceive
  71   1      
  72   1                      DelayIdleTime(5);
  73   1                      //Display_SFR();
  74   1                      
  75   1                 if( Read(0x04) == 0x05 ) {    // UID Read O.K
  76   2                              //printf("ERR = %02X  \n ",  (int)Read(0x0A));
  77   2                              SUMA = 0x00; 
  78   2                              for(i=0; i<0x05; i++) { 
  79   3                                      CIDBuf[i] = Read(0x02);
  80   3                                      SUMA = SUMA | CIDBuf[i];
  81   3                              };
  82   2                              if (SUMA == 0x00) { return; };
  83   2      
  84   2                      
  85   2                              printf("A Type ID = %02X %02X %02X %02X %02X \n ",  
  86   2                                 (int)CIDBuf[0], (int)CIDBuf[1], (int)CIDBuf[2], (int)CIDBuf[3], (int)CIDBuf[4]);     
  87   2                                 LCDType = 2;
  88   2                                 DisplayLCD();
  89   2                  
  90   2                              Write(0x01, 0x00);
  91   2                              return;
  92   2                      }
  93   1                      else {          // UID Read Fail
  94   2                              printf("ID Read Fail !! \n " ) ;   // Fail Indicator
  95   2                              Write(0x01, 0x00);
  96   2                              return;
  97   2                      }
  98   1      }
  99          
 100          void Exec_REQA_RDID(void)
 101          {
 102   1          BYTE i;
 103   1          
 104   1              Write(0x0F, 0x07); //BITFRAME   |0| RxAlign  | 0 | TxLastBits | 
 105   1              Write(0x22, 0x03); //ChannelRedundancy |0|0|CRC3309|CRC8|RxCRCEn|TxCRCEn|ParityOdd|ParityEn|
 106   1              Write(0x09, 0x01); //Control |0|0|StandBy|PowerDown|Crypto1On|TStopNow|TStartNow|FlushFIFO|
 107   1              Write(0x02, 0x26); //transmit data
 108   1      
 109   1              Write(0x01, 0x1E); //Transceive
 110   1      
 111   1              DelayIdleTime(1);
 112   1                      
 113   1              if( Read(0x04) == 0x02 )   // ATQA Response O.K
 114   1              {
 115   2                      Write(0x1A, 0x28);                              // ZeroAfterColl activation   
 116   2                      Write(0x09, 0x01);                              // Clear FIFO
 117   2                      Write(0x02, 0x93);                              // 93 -> FIFO
C51 COMPILER V7.20   ISO14443A                                                             11/02/2005 12:55:38 PAGE 3   

 118   2                      Write(0x02, 0x20);                              // NVB -> FIFO
 119   2      
 120   2                      Write(0x01, 0x1E);                                      // Transceive
 121   2      
 122   2                      DelayIdleTime(2);
 123   2              
 124   2                      if( Read(0x04) == 0x05 ) {    // UID Read O.K
 125   3                              for(i=0; i<5; i++) CIDBuf[i] = Read(0x02);
 126   3                              printf("A Type ID = %02X %02X %02X %02X %02X \n " , 
 127   3                                (int)CIDBuf[0], (int)CIDBuf[1], (int)CIDBuf[2], (int)CIDBuf[3], (int)CIDBuf[4]);      
 128   3                                 LCDType = 2;
 129   3                                      DisplayLCD();
 130   3                                      //printf("ERR = %02X  \n ",  (int)Read(0x0A));
 131   3                        Write(0x01, 0x00);
 132   3                              return;
 133   3                      }
 134   2                      else {          // UID Read Fail
 135   3                              printf("ID Read Fail !! \n " ) ;   // Fail Indicator
 136   3                              Write(0x01, 0x00);
 137   3                              return;
 138   3                      }
 139   2              }
 140   1              else    {    // No ATQA Response 
 141   2                      printf("No Response !! \n " );
 142   2                      Write(0x01, 0x00);
 143   2                      return;
 144   2              }
 145   1      }
 146          
 147          void Exec_REQA_RDID_Auto(void)
 148          {
 149   1          BYTE i;
 150   1          
 151   1              Write(0x0F, 0x07); //BITFRAME   |0| RxAlign  | 0 | TxLastBits | 
 152   1              Write(0x22, 0x03); //ChannelRedundancy |0|0|CRC3309|CRC8|RxCRCEn|TxCRCEn|ParityOdd|ParityEn|
 153   1              Write(0x09, 0x01); //Control |0|0|StandBy|PowerDown|Crypto1On|TStopNow|TStartNow|FlushFIFO|
 154   1              Write(0x02, 0x26); //transmit data
 155   1      
 156   1              Write(0x01, 0x1E); //Transceive
 157   1      
 158   1              DelayIdleTime(1);
 159   1                      
 160   1              if( Read(0x04) == 0x02 )   // ATQA Response O.K
 161   1              {
 162   2                      Write(0x1A, 0x28);                              // ZeroAfterColl activation   
 163   2                      Write(0x09, 0x01);                              // Clear FIFO
 164   2                      Write(0x02, 0x93);                              // 93 -> FIFO
 165   2                      Write(0x02, 0x20);                              // NVB -> FIFO
 166   2      
 167   2                      Write(0x01, 0x1E);                                      // Transceive
 168   2      
 169   2                      DelayIdleTime(2);
 170   2                  
 171   2                      if (Read(0x0A) != 0x00) 
 172   2                      { 
 173   3                         Write(0x01, 0x00);
 174   3                         return; 
 175   3                      }
 176   2                      else if( Read(0x04) == 0x05 ) {    // UID Read O.K
 177   3                              for(i=0; i<5; i++) CIDBuf[i] = Read(0x02);
 178   3                              printf("A Type ID = %02X %02X %02X %02X %02X \n " , 
 179   3                                (int)CIDBuf[0], (int)CIDBuf[1], (int)CIDBuf[2], (int)CIDBuf[3], (int)CIDBuf[4]);      
C51 COMPILER V7.20   ISO14443A                                                             11/02/2005 12:55:38 PAGE 4   

 180   3                                 LCDType = 2;
 181   3                                      DisplayLCD();
 182   3                        Write(0x01, 0x00);
 183   3                              return;
 184   3                      }
 185   2                      else {          // UID Read Fail
 186   3                              //printf("ID Read Fail !! \n " ) ;   // Fail Indicator
 187   3                              Write(0x01, 0x00);
 188   3                              return;
 189   3                      }
 190   2              }
 191   1              else    {    // No ATQA Response 
 192   2                      //printf("No Response !! \n " );
 193   2                      Write(0x01, 0x00);
 194   2                      return;
 195   2              }
 196   1      }
 197          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    845    ----
   CONSTANT SIZE    =    129    ----
   XDATA SIZE       =   ----       4
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   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 + -