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

📄 m500auc.lst

📁 RC500 MF1 非接触读卡器 开发板 资料
💻 LST
📖 第 1 页 / 共 5 页
字号:
 239      =1                        unsigned char sector,
 240      =1                        unsigned char *uncoded_keys); 
 241      =1  
 242      =1  // _____________________________________________________________________________
 243      =1  //
 244      =1  //  FUNCTION: PcdReadE2
 245      =1  //        IN: startaddr     2 bytes of starting address of the E2PROM 
 246      =1  //            length        number of byte of data to be read
 247      =1  //       OUT: *_data        buffer for the read bytes 
 248      =1  //    RETURN: 
 249      =1  //   COMMENT: This functions reads out data stored in the MF RC500's EERPOM   
 250      =1  //            beginning ataddress startaddr. The number of bytes to be read are  
 251      =1  //            given by  the variablelength and the read out data are stored in  
 252      =1  //            the provided data buffer.
C51 COMPILER V7.50   M500AUC                                                               03/21/2008 00:23:11 PAGE 12  

 253      =1  //
 254      =1  char PcdReadE2(unsigned short startaddr,  
 255      =1                 unsigned char length,
 256      =1                 unsigned char* _data);
 257      =1  
 258      =1  // _____________________________________________________________________________
 259      =1  //
 260      =1  //  FUNCTION: PcdWriteE2
 261      =1  //        IN: startaddr     2 bytes of starting address of the E2PROM 
 262      =1  //            length        number of byte of data to be write
 263      =1  //       OUT: *_data        buffer for the write bytes 
 264      =1  //    RETURN: 
 265      =1  //   COMMENT: This function writes a given length of data bytes stored in the data  
 266      =1  //            buffer to the reader IC's EEPROM beginning at address <em>startaddr</em>. 
 267      =1  //
 268      =1  char PcdWriteE2(unsigned short startaddr,
 269      =1                  unsigned char length,
 270      =1                  unsigned char* _data);
 271      =1  
 272      =1  // _____________________________________________________________________________
 273      =1  //
 274      =1  //  FUNCTION: M500PcdMfOutSelect
 275      =1  //        IN: type      The signal to be appear at MfOut pin 
 276      =1  //
 277      =1  //              000: Constant Low
 278      =1  //              001: Constant High
 279      =1  //              010: Modulation signal from the internal coder, Miller coded
 280      =1  //              011: Serial data stream, not Miller coded
 281      =1  //              100: Output signal of the energy carrier demodulator
 282      =1  //              101: Output signal of the subcarrier demodulator
 283      =1  //              110: RFU
 284      =1  //              111: RFU
 285      =1  //       OUT: -
 286      =1  //    RETURN: 
 287      =1  //   COMMENT: This function config the output of the MfOut pin
 288      =1  //                     
 289      =1  char M500PcdMfOutSelect(unsigned char type);
 290      =1                       
 291      =1  // _____________________________________________________________________________
 292      =1  //
 293      =1  //  FUNCTION: M500PcdWriteRegister
 294      =1  //        IN: Reg       Register address
 295      =1  //            value     value to be written      
 296      =1  //       OUT: -
 297      =1  //    RETURN: 
 298      =1  //   COMMENT: This function write the value to the RC500 register
 299      =1  //                     
 300      =1  char M500PcdWriteRegister(unsigned char Reg, unsigned char value);
 301      =1  
 302      =1  // _____________________________________________________________________________
 303      =1  //
 304      =1  //  FUNCTION: M500PcdReadRegister
 305      =1  //        IN: Reg       Register address 
 306      =1  //       OUT: -
 307      =1  //    RETURN: value     value of register
 308      =1  //   COMMENT: This function read the value of the RC500 register
 309      =1  //                     
 310      =1  char M500PcdReadRegister(unsigned char Reg);
 311      =1  
 312      =1  // _____________________________________________________________________________
 313      =1  //
 314      =1  //  FUNCTION: M500PiccRequest
C51 COMPILER V7.50   M500AUC                                                               03/21/2008 00:23:11 PAGE 13  

 315      =1  //        IN: rq_code  can take the following values
 316      =1  //                     ALL   Request Code 52hex is sent out to get also a 
 317      =1  //                           response from cards in halt state.
 318      =1  //                     IDLE  Request Code 26hex is sent out to get a response 
 319      =1  //                           only from cards that are not in halt state.
 320      =1  //                     Note: Future cards will work also with other request 
 321      =1  //                           codes.
 322      =1  //       OUT: atq      16 bit ATQ (answer to request). 
 323      =1  //                     atq[0] .. LSByte
 324      =1  //                     atq[1] .. MSByte
 325      =1  //    RETURN: 
 326      =1  //   COMMENT: This function accesses the reader module and activates sending the
 327      =1  //            REQ code to the MIFARE card. After sending the command to the card 
 328      =1  //            the function waits for the card's answer.
 329      =1  //
 330      =1  //            Please note, that the actual work is done by the function
 331      =1  //            M500PiccCommonRequest, because of the interface behaviour between
 332      =1  //            Mifare and ISO 14443
 333      =1  //
 334      =1  //            The Card replies the ATQ.
 335      =1  //
 336      =1  //            ATQ:
 337      =1  //
 338      =1  //                    +----+----+----+----+----+----+----+----+
 339      =1  //            LSByte  | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
 340      =1  //                    +----+----+----+----+----+----+----+----+
 341      =1  //                    |         |    |                        |
 342      =1  //                    | UID size| RFU|   bit-frame anticoll   |
 343      =1  //                    |         |    |                        |
 344      =1  //                    | 00..std |    |  (if any bit set .. Y, |
 345      =1  //                    | 01..dbl |    |             else .. N) |
 346      =1  //                    | 10..tpl |    |                        |
 347      =1  //
 348      =1  //
 349      =1  //
 350      =1  //                    +----+----+----+----+----+----+----+----+
 351      =1  //            MSByte  | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
 352      =1  //                    +----+----+----+----+----+----+----+----+
 353      =1  //                    |                                       |
 354      =1  //                    |                 RFU                   |
 355      =1  //                    |                                       |
 356      =1  //
 357      =1  char M500PiccRequest(unsigned char req_code, 
 358      =1                         unsigned char *atq);
 359      =1  // _____________________________________________________________________________
 360      =1  //
 361      =1  //  FUNCTION: M500PiccCommonRequest
 362      =1  //        IN: rq_code  can take the following values
 363      =1  //                     ALL   Request Code 52hex is sent out to get also a 
 364      =1  //                           response from cards in halt state.
 365      =1  //                     IDLE  Request Code 26hex is sent out to get a response 
 366      =1  //                           only from cards that are not in halt state.
 367      =1  //                     Note: Future cards will work also with other request 
 368      =1  //                           codes.
 369      =1  //       OUT: atq      16 bit ATQ (answer to request). 
 370      =1  //                     atq[0] .. LSByte
 371      =1  //                     atq[1] .. MSByte
 372      =1  //    RETURN: 
 373      =1  //   COMMENT: Please note, that this function does the actual work which is 
 374      =1  //            described in function M500PiccRequest.
 375      =1  //
 376      =1  char M500PiccCommonRequest(unsigned char req_code, 
C51 COMPILER V7.50   M500AUC                                                               03/21/2008 00:23:11 PAGE 14  

 377      =1                               unsigned char *atq);  
 378      =1  
 379      =1  // _____________________________________________________________________________
 380      =1  //
 381      =1  //  FUNCTION: M500PiccAnticoll
 382      =1  //        IN: bcnt       Number of snr-bits that are known (default value is 0)
 383      =1  //            *snr       4 bytes serial number (number of bits, which
 384      =1  //                       are known and indicated by "bcnt"
 385      =1  //       OUT: *snr       4 bytes serial number, determined by the anticollision
 386      =1  //                       sequence
 387      =1  //    RETURN: 
 388      =1  //   COMMENT: The actual anticollision loop is done by the function
 389      =1  //            "M500PiccCascAnticoll". Which is called with select_code 0x93.
 390      =1  //
 391      =1  char M500PiccAnticoll (unsigned char bcnt,
 392      =1                           unsigned char *snr);
 393      =1  
 394      =1  // _____________________________________________________________________________
 395      =1  //
 396      =1  //  FUNCTION: M500PiccCascAnticoll
 397      =1  //        IN: select_code    0x93  standard select code
 398      =1  //                           0x95  cascaded level 1
 399      =1  //                           0x97  cascaded level 2
 400      =1  //            bcnt       Number of snr-bits that are known (default value is 0)
 401      =1  //            *snr       4 bytes serial number (number of bits, which
 402      =1  //                       are known and indicated by "bcnt"
 403      =1  //       OUT: *snr       4 bytes serial number, determined by the anticollision
 404      =1  //                       sequence
 405      =1  //    RETURN: 
 406      =1  //   COMMENT: Corresponding to the specification in ISO 14443, this function
 407      =1  //            is able to handle extended serial numbers. Therefore more than
 408      =1  //            one select_code is possible. The function transmitts a 
 409      =1  //            select code and all ready tags are responding. The highest
 410      =1  //            serial number within all responding tags will be returned by 
 411      =1  //            this function.
 412      =1  //                     
 413      =1  char M500PiccCascAnticoll (unsigned char select_code,
 414      =1                               unsigned char bcnt,
 415      =1                               unsigned char *snr);                     
 416      =1  
 417      =1  // _____________________________________________________________________________
 418      =1  //
 419      =1  //  FUNCTION: M500PiccSelect
 420      =1  //        IN: *snr      4 bytes serial number
 421      =1  //       OUT: *sak      1 byte select acknowledge
 422      =1  //                      xxxxx1xx: Cascade bit set: UID not complete
 423      =1  //                      xx1xx0xx: UID complete,
 424      =1  //                                PICC compliant with ISO/IEC 14443-4
 425      =1  //                      xx0xx0xx: UID complete,
 426      =1  //                                PICC not compliant with ISO/IEC 14443-4
 427      =1  //    RETURN: 
 428      =1  //   COMMENT: The actual select procedure is done by the function
 429      =1  //            "M500PiccCascSelect". Which is called with select_code 0x93.
 430      =1  //             
 431      =1  char M500PiccSelect(unsigned char *snr, 
 432      =1                        unsigned char *sak);
 433      =1  
 434      =1  // _____________________________________________________________________________
 435      =1  //
 436      =1  //  FUNCTION: M500PiccCascSelect
 437      =1  //        IN: select_code 
 438      =1  //            *snr          4 bytes serial number
C51 COMPILER V7.50   M500AUC                                                               03/21/2008 00:23:11 PAGE 15  

 439      =1  //       OUT: *sak          1 byte select acknowledge
 440      =1  //    RETURN: 
 441      =1  //   COMMENT: Selects a UID level, depending on select code.
 442      =1  //            Returns Select Acknowledge byte.
 443      =1  //
 444      =1  //            Corresponding to the specification in ISO 14443, this function
 445      =1  //            is able to handle extended serial numbers. Therefore more than
 446      =1  //            one select_code is possible.
 447      =1  //
 448      =1  //            Select codes:
 449      =1  //
 450      =1  //            +----+----+----+----+----+----+----+----+
 451      =1  //            | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
 452      =1  //            +-|--+-|--+-|--+-|--+----+----+----+-|--+
 453      =1  //              |    |    |    |  |              | |
 454      =1  //                                |              |
 455      =1  //              1    0    0    1  | 001..std     | 1..bit frame anticoll
 456      =1  //                                | 010..double  |
 457      =1  //                                | 011..triple  |
 458      =1  //
 459      =1  //            SAK:
 460      =1  //

⌨️ 快捷键说明

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