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

📄 main.lst

📁 SPI接口读写模块c程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 401   3                                                      g_cReceBuf[1]=~cmd;
 402   3                                                              cStatus=1;
 403   3                                      }
 404   2                              break;
 405   2                      case 0x11:        // 软件掉电模式 ,1字节数据,非0退出软件掉电模式,0x00进入软件掉电
 406   2                                      //任何一条对卡的操作命令或自动寻卡被设置后都将终止掉电模式
 407   2                      
 408   2                              cStatus =SPI_Write(g_cReceBuf);   // 发送命令
 409   2                                  delay_1ms(2);                                                 // 延时等待模块执行命令
 410   2                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 411   2                                      if((cStatus==SUCCESS)&&(cp[1]==SOFTDOWN))
 412   2                                              {
 413   3                                              g_cReceBuf[0]=0x02;
 414   3                                                      g_cReceBuf[1]=cmd;
 415   3                              
 416   3                                              }       
 417   2                              else
 418   2                              {
 419   3                                      g_cReceBuf[0]=0x02;
 420   3                                      g_cReceBuf[1]=~cmd;
 421   3                                      cStatus=1;
 422   3                              }
 423   2                          break;
 424   2      
 425   2                      case 0x12:     // Idle the card     //卡休眠    
 426   2                  
C51 COMPILER V8.02   MAIN                                                                  02/25/2008 12:13:54 PAGE 8   

 427   2                                               cStatus =SPI_Write(g_cReceBuf);          
 428   2                                       delay_1ms(2);                                // 延时等待模块执行命令
 429   2                                       cStatus =SPI_Read(cp);           // 保存到数组cP
 430   2                                           if((cStatus==SUCCESS)&&(cp[1]==HALT_CARD))
 431   2                                        {
 432   3                                              g_cReceBuf[0]=0x02;
 433   3                                                                      g_cReceBuf[1]=cmd;      
 434   3                                      
 435   3                                          }
 436   2                                
 437   2                                                       else
 438   2                                                      {
 439   3                                                              g_cReceBuf[0]=0x02;
 440   3                                                              g_cReceBuf[1]=~cmd;
 441   3                                                      }
 442   2                                      
 443   2                              break;
 444   2      
 445   2                      case 0x13:    // 自动寻卡 ,1字节数据,0x01 开启自动寻卡,0x00关闭               
 446   2                      
 447   2                               cStatus =SPI_Write(g_cReceBuf);          // 发送命令
 448   2                                  delay_1ms(2);                                                 // 延时等待模块执行命令
 449   2                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 450   2                                      if((cStatus==SUCCESS)&&(cp[1]==AUTOSEARCH))
 451   2                                              {
 452   3                                              g_cReceBuf[0]=0x02;
 453   3                                                      g_cReceBuf[1]=cmd;
 454   3                                      
 455   3                                                      cStatus=0;
 456   3                                              }
 457   2                               else
 458   2                              {
 459   3                                      g_cReceBuf[0]=0x02;
 460   3                                      g_cReceBuf[1]=~cmd;
 461   3                                      cStatus=1;
 462   3                              }
 463   2                              break; 
 464   2                                      
 465   2                              
 466   2                      case 0x19://读卡类型  //无数据    返回卡类型(2 bytes)      
 467   2          
 468   2              
 469   2                                  cStatus =SPI_Write(g_cReceBuf);       // 发送命令
 470   2                                  delay_1ms(2);                                                 // 延时等待模块执行命令
 471   2                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 472   2                                      if((cStatus==SUCCESS)&&(cp[1]==CARD_TYPE))      
 473   2                                      {              
 474   3                                              g_cReceBuf[0]=4;
 475   3                                                      g_cReceBuf[1]=cmd;
 476   3                                                      g_cReceBuf[2]=cp[2];
 477   3                                                      g_cReceBuf[3]=cp[3];
 478   3      
 479   3                                              }
 480   2                                                      
 481   2                                  else
 482   2                                  {
 483   3                                                      g_cReceBuf[0]=0x02;
 484   3                                                      g_cReceBuf[1]=~cmd;
 485   3                                                              cStatus=1;
 486   3                                      }
 487   2                              
 488   2                          break;              
C51 COMPILER V8.02   MAIN                                                                  02/25/2008 12:13:54 PAGE 9   

 489   2         
 490   2      
 491   2                      case 0x20:     // Request,Anticoll,Select,return CardSerialNo(4 bytes)
 492   2                                      // 寻卡,防冲突,选择卡    返回卡系列号(4 bytes)
 493   2                      
 494   2                                  cStatus =SPI_Write(g_cReceBuf);       // 发送寻卡命令
 495   2                                  delay_1ms(5);                                                 // 延时等待模块执行命令
 496   2                                  cStatus =SPI_Read(cp);                // 读取卡号并存入到cP
 497   2                                      if((cStatus==SUCCESS)&&(cp[1]==CARD_SN))
 498   2                                      {                                             
 499   3                                                                              g_cReceBuf[0]=6;
 500   3                                                                              g_cReceBuf[1]=cmd;
 501   3                                                                              memcpy(&g_cReceBuf[2],&cp[2],4);
 502   3                                               
 503   3                                                                                                       
 504   3                                          }           
 505   2                            
 506   2                              else
 507   2                              {
 508   3                                      g_cReceBuf[0]=0x02;
 509   3                                      g_cReceBuf[1]=~cmd;
 510   3                                      cStatus=1;
 511   3                              }
 512   2              
 513   2                              break;     
 514   2               
 515   2                      case 0x21:              //读块                     
 516   2                                                      //数据内容  1 字节密钥标识+1 块号+6 字节密钥                                  
 517   2              
 518   2                                  cStatus =SPI_Write(g_cReceBuf);       // 发送命令
 519   2                                  delay_10ms(5);                                                // 延时等待模块执行命令
 520   2                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 521   2                                      if((cStatus==SUCCESS)&&(cp[1]==READ_BLOCK))     
 522   2                                      {              
 523   3                                              g_cReceBuf[0]=0x12;
 524   3                                                      g_cReceBuf[1]=cmd;        
 525   3                                                              memcpy(&g_cReceBuf[2],&cp[2],16);                                       
 526   3                              
 527   3                                                      }
 528   2                                  else
 529   2                                  {
 530   3                                                      g_cReceBuf[0]=0x02;
 531   3                                                      g_cReceBuf[1]=~cmd;
 532   3                                                              cStatus=1;
 533   3                                      }
 534   2                      
 535   2                      break;  
 536   2       
 537   2                      case 0x22 :             //写块      
 538   2                                                      //1 字节密钥标识+1 块号+6 字节密钥+16 字节写入数据
 539   2                                      
 540   2                                  cStatus =SPI_Write(g_cReceBuf);       // 发送命令
 541   2                                  delay_10ms(5);                                                // 延时等待模块执行命令
 542   2                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 543   2                                      if((cStatus==SUCCESS)&&(cp[1]==WRITE_BLOCK))    
 544   2                                      {              
 545   3                                              g_cReceBuf[0]=0x02;
 546   3                                                      g_cReceBuf[1]=cmd;                                              
 547   3                                              
 548   3                                                      
 549   3                                      }
 550   2                                                      
C51 COMPILER V8.02   MAIN                                                                  02/25/2008 12:13:54 PAGE 10  

 551   2                                  else
 552   2                                  {
 553   3                                                      g_cReceBuf[0]=0x02;
 554   3                                                      g_cReceBuf[1]=~cmd;
 555   3                                                              cStatus=1;
 556   3                                      }
 557   2                                      
 558   2                      
 559   2                              break;
 560   2      
 561   2                      case 0x23 :             //初始化钱包           
 562   2                                                      //数据内容“1 字节密钥标识+1 块号+6 字节密钥+4 字节钱包”
 563   2                      
 564   2                                      cStatus =SPI_Write(g_cReceBuf);   // 发送命令
 565   2                                  delay_10ms(5);                                                // 延时等待模块执行命令
 566   2                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 567   2                                      if((cStatus==SUCCESS)&&(cp[1]==INIT_PURSE))     
 568   2                                      {              
 569   3                                              g_cReceBuf[0]=0x02;
 570   3                                                      g_cReceBuf[1]=cmd;                                              
 571   3                                                              
 572   3                                              
 573   3                                      }
 574   2                                                      
 575   2                                  else
 576   2                                  {
 577   3                                                      g_cReceBuf[0]=0x02;
 578   3                                                      g_cReceBuf[1]=~cmd;
 579   3                                                              cStatus=1;
 580   3                                      }
 581   2                                                              
 582   2                              break;
 583   2      
 584   2                      case 0x24:         //读钱包
 585   2                                                      //数据内容"1字节密钥标识+1 块号+6 字节密钥”
 586   2                              
 587   2                              
 588   2                                  cStatus =SPI_Write(g_cReceBuf);       // 发送命令
 589   2                                  delay_10ms(5);                                                // 延时等待模块执行命令
 590   2                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 591   2                                      if((cStatus==SUCCESS)&&(cp[1]==READ_PURSE))     
 592   2                                      {              
 593   3                                              g_cReceBuf[0]=0x06;
 594   3                                                      g_cReceBuf[1]=cmd;      
 595   3                                                              memcpy(&g_cReceBuf[2],&cp[2],4);                                        
 596   3                                                              
 597   3                                                      
 598   3                                      }
 599   2                                                      
 600   2                                  else
 601   2                                  {
 602   3                                                      g_cReceBuf[0]=0x02;
 603   3                                                      g_cReceBuf[1]=~cmd;
 604   3                                                              cStatus=1;
 605   3                                      }

⌨️ 快捷键说明

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