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

📄 zlg500.lst

📁 根据ZLG500A系列非接触式IC卡模块写的读写程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 246   1      }
 247          
 248          uchar mifs_increment(uchar _Adr,long idata *_Value)
 249          {       uchar *temp=(uchar *)_Value;
 250   1              spi_buffer[SEQNR]=0;
 251   1              spi_buffer[COMMAND]=0x48;
 252   1              spi_buffer[LENGTH]=5;
 253   1              spi_buffer[ADR]=_Adr;
 254   1              spi_buffer[VALUE]=*(temp+3);
 255   1              spi_buffer[VALUE+1]=*(temp+2);
 256   1              spi_buffer[VALUE+2]=*(temp+1);
 257   1              spi_buffer[VALUE+3]=*temp;
 258   1                              
 259   1              if(zlg500cmd(8)!=SPI_OK)
 260   1                      return SPI_ERR;
 261   1              
 262   1              return spi_buffer[STATUS];
 263   1      }
 264          
 265          uchar mifs_decrement(uchar _Adr,long idata *_Value)
 266          {
 267   1              uchar *temp=(uchar *)_Value;
 268   1              spi_buffer[SEQNR]=0;
 269   1              spi_buffer[COMMAND]=0x49;
 270   1              spi_buffer[LENGTH]=5;
 271   1              spi_buffer[ADR]=_Adr;
 272   1              spi_buffer[VALUE]=*(temp+3);
 273   1              spi_buffer[VALUE+1]=*(temp+2);
 274   1              spi_buffer[VALUE+2]=*(temp+1);
 275   1              spi_buffer[VALUE+3]=*temp;
 276   1                              
 277   1              if(zlg500cmd(8)!=SPI_OK)
 278   1                      return SPI_ERR;
 279   1              
 280   1              return spi_buffer[STATUS];
 281   1      }
 282          
 283          uchar mifs_restore(uchar _Adr)
 284          {
 285   1              spi_buffer[SEQNR]=0;
 286   1              spi_buffer[COMMAND]=0x4A;
 287   1              spi_buffer[LENGTH]=1;
 288   1              spi_buffer[ADR]=_Adr;
 289   1              
 290   1              if(zlg500cmd(4)!=SPI_OK)
 291   1                      return SPI_ERR;
 292   1              
 293   1              return spi_buffer[STATUS];      
 294   1      }
 295          
 296          uchar mifs_transfer(uchar _Adr)
 297          {
 298   1              spi_buffer[SEQNR]=0;
 299   1              spi_buffer[COMMAND]=0x4B;
 300   1              spi_buffer[LENGTH]=1;
 301   1              spi_buffer[ADR]=_Adr;
 302   1              
 303   1              if(zlg500cmd(4)!=SPI_OK)
C51 COMPILER V7.06   ZLG500                                                                03/17/2008 18:53:41 PAGE 6   

 304   1                      return SPI_ERR;
 305   1              
 306   1              return spi_buffer[STATUS];
 307   1      }
 308          
 309          uchar mifs_load_key(uchar _Mode,uchar _SecNr,uchar *_Nkey)
 310          {
 311   1              spi_buffer[SEQNR]=0;
 312   1              spi_buffer[COMMAND]=0x4C;
 313   1              spi_buffer[LENGTH]=0x08;
 314   1              spi_buffer[MODE]=_Mode;
 315   1              spi_buffer[SECNR]=_SecNr;
 316   1              memcpy(&spi_buffer[NKEY],_Nkey,6);
 317   1              
 318   1              if(zlg500cmd(11)!=SPI_OK)
 319   1                      return SPI_ERR;
 320   1              
 321   1              return spi_buffer[STATUS];
 322   1      }
 323          
 324          uchar mifs_reset(uchar _Msec)
 325          {
 326   1              spi_buffer[SEQNR]=0;
 327   1              spi_buffer[COMMAND]=0x4E;
 328   1              spi_buffer[LENGTH]=1;
 329   1              spi_buffer[TIME]=_Msec;
 330   1              
 331   1              if(zlg500cmd(4)!=SPI_OK)
 332   1                      return SPI_ERR;
 333   1              
 334   1              return spi_buffer[STATUS];
 335   1      }
 336          
 337          uchar mifs_get_info(uchar idata *_Info)
 338          {
 339   1              spi_buffer[SEQNR]=0;
 340   1              spi_buffer[COMMAND]=0x4F;
 341   1              spi_buffer[LENGTH]=0;
 342   1              
 343   1              if(zlg500cmd(3)!=SPI_OK)
 344   1                      return SPI_ERR;
 345   1                      
 346   1              if(spi_buffer[STATUS]==MI_OK)
 347   1              {
 348   2                      memcpy(_Info,&spi_buffer[INFO],spi_buffer[LENGTH]);
 349   2              }
 350   1              return spi_buffer[STATUS];      
 351   1      }
 352          
 353          uchar mifs_close(void)
 354          {
 355   1              spi_buffer[SEQNR]=0;
 356   1              spi_buffer[COMMAND]=0x3F;
 357   1              spi_buffer[LENGTH]=0;
 358   1              
 359   1              if(zlg500cmd(3)!=SPI_OK)
 360   1                      return SPI_ERR;
 361   1              
 362   1              return spi_buffer[STATUS];
 363   1      }
 364          
 365          uchar mifs_config(void)
C51 COMPILER V7.06   ZLG500                                                                03/17/2008 18:53:41 PAGE 7   

 366          {
 367   1              spi_buffer[SEQNR]=0;
 368   1              spi_buffer[COMMAND]=0x52;
 369   1              spi_buffer[LENGTH]=0;
 370   1              
 371   1              if(zlg500cmd(3)!=SPI_OK)
 372   1                      return SPI_ERR;
 373   1              
 374   1              return spi_buffer[STATUS];
 375   1      }
 376          
 377          uchar mifs_check_write(uchar idata *_SNR,uchar _Authmode,uchar _Adr,uchar idata *_Data)
 378          {
 379   1              spi_buffer[0]=0;
 380   1              spi_buffer[COMMAND]=0x53;
 381   1              spi_buffer[LENGTH]=22;
 382   1              memcpy(&spi_buffer[SERNR],_SNR,4);
 383   1              spi_buffer[AUTHMODE]=_Authmode;
 384   1              spi_buffer[ADRCHKWR]=_Adr;
 385   1              memcpy(&spi_buffer[DATACHKWR],_Data,16);
 386   1              
 387   1              if(zlg500cmd(25)!=SPI_OK)
 388   1                      return SPI_ERR;
 389   1              
 390   1              return spi_buffer[STATUS];
 391   1      }
 392          
 393          uchar mifs_set_control_bit()
 394          {
 395   1              spi_buffer[0]=0;
 396   1              spi_buffer[COMMAND]=0x50;
 397   1              spi_buffer[LENGTH]=0;
 398   1                              
 399   1              if(zlg500cmd(3)!=SPI_OK)
 400   1                      return SPI_ERR;
 401   1              
 402   1              return spi_buffer[STATUS];
 403   1      }
 404          
 405          uchar mifs_clr_control_bit()
 406          {
 407   1              spi_buffer[0]=0;
 408   1              spi_buffer[COMMAND]=0x51;
 409   1              spi_buffer[LENGTH]=0;
 410   1                              
 411   1              if(zlg500cmd(3)!=SPI_OK)
 412   1                      return SPI_ERR;
 413   1              
 414   1              return spi_buffer[STATUS];
 415   1      }
 416          
 417          uchar mifs_buzzer(uchar _Frquence,uchar _10ms)
 418          {
 419   1              spi_buffer[0]=0;
 420   1              spi_buffer[COMMAND]=0x60;
 421   1              spi_buffer[LENGTH]=2;
 422   1              spi_buffer[3]=_Frquence;
 423   1              spi_buffer[4]=_10ms;
 424   1                      
 425   1              if(zlg500cmd(5)!=SPI_OK)
 426   1                      return SPI_ERR;
 427   1              
C51 COMPILER V7.06   ZLG500                                                                03/17/2008 18:53:41 PAGE 8   

 428   1              return spi_buffer[STATUS];
 429   1      }
 430          
 431          uchar mifs_read_E2(uchar _Adr,uchar _Length,uchar idata *_Data)
 432          {
 433   1              spi_buffer[0]=0;
 434   1              spi_buffer[COMMAND]=0x61;
 435   1              spi_buffer[LENGTH]=2;
 436   1              spi_buffer[ADR]=_Adr;
 437   1              spi_buffer[4]=_Length;
 438   1                      
 439   1              if(zlg500cmd(5)!=SPI_OK)
 440   1                      return SPI_ERR;
 441   1                      
 442   1              if(spi_buffer[STATUS]==MI_OK)
 443   1              {
 444   2                      memcpy(_Data,&spi_buffer[INFO],_Length);
 445   2              }
 446   1              return spi_buffer[STATUS];
 447   1      }
 448          
 449          uchar mifs_write_E2(uchar _Adr,uchar _Length,uchar idata *_Data)
 450          {
 451   1              spi_buffer[0]=0;
 452   1              spi_buffer[COMMAND]=0x62;
 453   1              spi_buffer[LENGTH]=_Length+2;
 454   1              spi_buffer[ADR]=_Adr;
 455   1              spi_buffer[4]=_Length;
 456   1              memcpy(&spi_buffer[5],_Data,_Length);
 457   1                      
 458   1              if(zlg500cmd(_Length+5)!=SPI_OK)
 459   1                      return SPI_ERR;
 460   1                      
 461   1              return spi_buffer[STATUS];
 462   1      }
 463          
 464          uchar mifs_value(uchar _Mode,uchar _Adr,long idata *_Value,uchar _Trans_Adr)
 465          {
 466   1              uchar *temp=(uchar *)_Value;
 467   1      
 468   1              spi_buffer[SEQNR]=0;
 469   1              spi_buffer[COMMAND]=0x70;
 470   1              spi_buffer[LENGTH]=7;
 471   1              spi_buffer[DATA]=_Mode;
 472   1              spi_buffer[DATA+1]=_Adr;
 473   1              spi_buffer[DATA+2]=*(temp+3);
 474   1              spi_buffer[DATA+3]=*(temp+2);
 475   1              spi_buffer[DATA+4]=*(temp+1);
 476   1              spi_buffer[DATA+5]=*temp;
 477   1              spi_buffer[DATA+6]=_Trans_Adr;
 478   1                      
 479   1              if(zlg500cmd(10)!=SPI_OK)
 480   1                      return SPI_ERR;
 481   1              
 482   1              return spi_buffer[STATUS];
 483   1      }  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1283    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.06   ZLG500                                                                03/17/2008 18:53:41 PAGE 9   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      18
   IDATA SIZE       =     26    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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