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

📄 main.lst

📁 这是一个rfid读卡器程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 629   4                                              SendBuffer[0]=0x02;
 630   4                                                      SendBuffer[1]=cmd;                                              
 631   4                                                              cnt=5;
 632   4                                              
 633   4                                      }
 634   3                                                      
 635   3                                  else
 636   3                                  {
 637   4                                                      SendBuffer[0]=0x02;
 638   4                                                      SendBuffer[1]=~cmd;
 639   4                                                              cStatus=1;
 640   4                                      }
 641   3                                      }                       
 642   2                              break;
 643   2      
 644   2                      case 0x24:         //读钱包
 645   2                                                      //数据内容"1字节密钥标识+1 块号+6 字节密钥”
 646   2                              
 647   2                              for(cnt=0;cnt<3;cnt++)
 648   2                      {
 649   3                                  cStatus =SPI_Write(g_cReceBuf);       // 发送命令
 650   3                                  delay_10ms(2);                                                // 延时等待模块执行命令
 651   3                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 652   3                                      if((cStatus==SUCCESS)&&(cp[1]==READ_PURSE))     
 653   3                                      {              
 654   4                                              SendBuffer[0]=0x06;
 655   4                                                      SendBuffer[1]=cmd;      
 656   4                                                              memcpy(&SendBuffer[2],&cp[2],4);                                        
 657   4                                                              cnt=5;
 658   4                                                      
 659   4                                      }
 660   3                                                      
 661   3                                  else
 662   3                                  {
 663   4                                                      SendBuffer[0]=0x02;
 664   4                                                      SendBuffer[1]=~cmd;
 665   4                                                              cStatus=1;
 666   4                                      }
 667   3                                      }               
 668   2                              break;
 669   2      
 670   2      
 671   2                      case 0x25:      //钱包充值
 672   2                                              //数据内容“1 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
 673   2                      
 674   2                              for(cnt=0;cnt<3;cnt++)
 675   2                      {
C51 COMPILER V8.02   MAIN                                                                  12/27/2006 08:14:28 PAGE 12  

 676   3                                  cStatus =SPI_Write(g_cReceBuf);       // 发送命令
 677   3                                  delay_10ms(2);                                                // 延时等待模块执行命令
 678   3                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 679   3                                      if((cStatus==SUCCESS)&&(cp[1]==ADD_PURSE))      
 680   3                                      {              
 681   4                                              SendBuffer[0]=0x02;
 682   4                                                      SendBuffer[1]=cmd;                                              
 683   4                                                              cnt=5;
 684   4                                                      
 685   4                                      }
 686   3                                                      
 687   3                                  else
 688   3                                  {
 689   4                                                      SendBuffer[0]=0x02;
 690   4                                                      SendBuffer[1]=~cmd;
 691   4                                                              cStatus=1;
 692   4                                      }
 693   3                                      }               
 694   2                  break;
 695   2                      
 696   2       
 697   2                      case 0x26:      //钱包扣款                                                      
 698   2                                              //数据内容“11 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
 699   2                      
 700   2                              for(cnt=0;cnt<3;cnt++)
 701   2                      {
 702   3                                  cStatus =SPI_Write(g_cReceBuf);       // 发送命令
 703   3                                  delay_10ms(2);                                                // 延时等待模块执行命令
 704   3                                  cStatus =SPI_Read(cp);                // 读取并存入到cP
 705   3                                      if((cStatus==SUCCESS)&&(cp[1]==DEC_PURSE))      
 706   3                                      {              
 707   4                                              SendBuffer[0]=0x02;
 708   4                                                      SendBuffer[1]=cmd;                                              
 709   4                                                              cnt=5;
 710   4                                              
 711   4                                      }
 712   3                                                      
 713   3                                  else
 714   3                                  {
 715   4                                                      SendBuffer[0]=0x02;
 716   4                                                      SendBuffer[1]=~cmd;
 717   4                                                              cStatus=1;
 718   4                                      }
 719   3                                      }               
 720   2                  break;
 721   2      
 722   2           
 723   2                      default:
 724   2                              SendBuffer[0]=0x02;
 725   2                              SendBuffer[1]=0xFF;     
 726   2                          break;
 727   2      
 728   2              }
 729   1              return cStatus;
 730   1      }
 731          
 732          
 733          
 734          /************************** main function start here *******************************/
 735          void main()
 736          {                       
 737   1              uchar idata cStatus;        
C51 COMPILER V8.02   MAIN                                                                  12/27/2006 08:14:28 PAGE 13  

 738   1          
 739   1      
 740   1              InitializeSystem();                // 初始化系统        
 741   1      
 742   1      
 743   1              RST_HY=0;                         // 复位模块 ,复位后等模块稳定再开始操作
 744   1          delay_1ms(1);          //延时0.5s等待模块初始化
 745   1              RST_HY=1;            
 746   1              LED_YELLOW=0;
 747   1              LED_GREEN=0;
 748   1              delay_10ms(50); 
 749   1         // LED_YELLOW=1;     
 750   1          LED_GREEN=1;   //LED light 0.5s
 751   1      
 752   1              while (1)
 753   1              {
 754   2                      
 755   2                          LED_GREEN=sig;     // detect module inturrupt ,if there is a card in ,then sig=0,unless you colse th
             -e auto search.                                 
 756   2                           // KeyPress();     处理按键
 757   2                               // add your code here
 758   2                      //检查命令标志
 759   2                  if (g_bReceCommandOk)
 760   2                  {   
 761   3                          g_bReceCommandOk = FALSE;
 762   3                              cStatus=uart_process();
 763   3                              if(cStatus)
 764   3                              {
 765   4                                      cStatus=0;
 766   4                                      if(g_cBeeps==0x10)
 767   4                                      {
 768   5                                              g_cBeeps+=2;       //错误响2声
 769   5                                      }
 770   4                              }
 771   3                              else
 772   3                              {
 773   4                                      if(g_cBeeps==0x10)
 774   4                                      {
 775   5                                              g_cBeeps+=1;             //正确响一声
 776   5                                      }
 777   4      
 778   4                              }
 779   3                              if(g_cBeeps>0x10)
 780   3                              {
 781   4                                 g_cBeepDiv0=g_cBeeps-0x10;
 782   4                                 g_cBeeps=0x10;    //add
 783   4                                 g_cBeepDiv0<<=5;
 784   4                              }
 785   3                      
 786   3                              UartSend(SendBuffer);   // Send data to uart.
 787   3                              // add your code here
 788   3              }                       
 789   2              
 790   2              }
 791   1      }
 792          
 793          
 794          /*****************************************************************************
 795          *system initialize
 796          *UART baudrate = 19200bps, baud generator is T1
 797          *****************************************************************************/
 798          void InitializeSystem()
C51 COMPILER V8.02   MAIN                                                                  12/27/2006 08:14:28 PAGE 14  

 799          {
 800   1        
 801   1              ET2 = 0;
 802   1              T2CON = 0x04;
 803   1          PCON = 0x80;
 804   1          SCON = 0x70;
 805   1          TMOD = 0x21;        //TMOD = 0x22;
 806   1      
 807   1              TH1   = BAUD_19200;  //默认波特率
 808   1              TL1   = TH1;
 809   1              TR1   = TRUE;             // 波特率发生器
 810   1      
 811   1              TH0 = 0xDC;
 812   1          TL0 = 0x00;
 813   1          TR0 = 1;
 814   1          ET0=1;
 815   1      
 816   1              ET1=0;
 817   1              EA=1;
 818   1              EX0=1;
 819   1              IT0 = 1;
 820   1              TR2=0;
 821   1              ES = TRUE;
 822   1              g_bReceCommandOk=0;        
 823   1      
 824   1      }
 825          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1882    ----
   CONSTANT SIZE    =    138    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =     26      14
   DATA SIZE        =     93       1
   IDATA SIZE       =      5       1
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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