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

📄 main.lst

📁 RFID实现代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
 603   2                                  {
 604   3                                                      SendBuffer[0]=0x02;
 605   3                                                      SendBuffer[1]=~cmd;
 606   3                                                              cStatus=1;
 607   3                                      }
 608   2                              
 609   2                              break;
 610   2      
 611   2                      case 0x24:         //读钱包
 612   2                                                      //数据内容"1字节密钥标识+1 块号+6 字节密钥”
C51 COMPILER V8.02   MAIN                                                                  01/26/2007 15:08:37 PAGE 11  

 613   2                              
 614   2                                  cStatus =IicSendHY502(g_cReceBuf);    // 发送命令                           
 615   2                                  cStatus =IicReadHY502(cp);            // 读取并存入到cP
 616   2                                      if((cStatus==SUCCESS)&&(cp[1]==READ_PURSE))     
 617   2                                      {              
 618   3                                              SendBuffer[0]=0x06;
 619   3                                                      SendBuffer[1]=cmd;      
 620   3                                                              memcpy(&SendBuffer[2],&cp[2],4);                                        
 621   3                                              
 622   3                                      }
 623   2                                                      
 624   2                                  else
 625   2                                  {
 626   3                                                      SendBuffer[0]=0x02;
 627   3                                                      SendBuffer[1]=~cmd;
 628   3                                                              cStatus=1;
 629   3                                      }
 630   2                      
 631   2                              break;
 632   2      
 633   2      
 634   2                      case 0x25:      //钱包充值
 635   2                                              //数据内容“1 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
 636   2                      
 637   2                                  cStatus =IicSendHY502(g_cReceBuf);    // 发送命令                         
 638   2                                  cStatus =IicReadHY502(cp);            // 读取并存入到cP
 639   2                                      if((cStatus==SUCCESS)&&(cp[1]==ADD_PURSE))      
 640   2                                      {              
 641   3                                              SendBuffer[0]=0x02;
 642   3                                                      SendBuffer[1]=cmd;                                              
 643   3                                              
 644   3                                      }
 645   2                                                      
 646   2                                  else
 647   2                                  {
 648   3                                                      SendBuffer[0]=0x02;
 649   3                                                      SendBuffer[1]=~cmd;
 650   3                                                              cStatus=1;
 651   3                                      }
 652   2                      
 653   2                  break;
 654   2                      
 655   2       
 656   2                      case 0x26:      //钱包扣款                                                      
 657   2                                              //数据内容“11 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
 658   2              
 659   2                                  cStatus =IicSendHY502(g_cReceBuf);    // 发送命令                                           
 660   2                                  cStatus =IicReadHY502(cp);            // 读取并存入到cP
 661   2                                      if((cStatus==SUCCESS)&&(cp[1]==DEC_PURSE))      
 662   2                                      {              
 663   3                                              SendBuffer[0]=0x02;
 664   3                                                      SendBuffer[1]=cmd;                                              
 665   3                                      
 666   3                                      }
 667   2                                                      
 668   2                                  else
 669   2                                  {
 670   3                                                      SendBuffer[0]=0x02;
 671   3                                                      SendBuffer[1]=~cmd;
 672   3                                                              cStatus=1;
 673   3                                      }
 674   2                              
C51 COMPILER V8.02   MAIN                                                                  01/26/2007 15:08:37 PAGE 12  

 675   2                  break;
 676   2      
 677   2          
 678   2                      default:
 679   2                              SendBuffer[0]=0x02;
 680   2                              SendBuffer[1]=0xFF;     
 681   2                          break;
 682   2      
 683   2              }
 684   1              return cStatus;
 685   1      }
 686          
 687          
 688          /************************** main function start here *******************************/
 689          void main()
 690          {                  
 691   1              uchar idata cStatus;
 692   1      
 693   1              InitializeSystem();                // 初始化系统                
 694   1      
 695   1              //设置IIC地址:0xA2 
 696   1          //IIC地址设置说明:单字节,高四位固定为A;低四位为:a2 a1 a0 R/W 
 697   1         //设置IIC地址后,需要一定时间的延时,等待读卡器配置完成。
 698   1             a0=1;
 699   1             a1=0;
 700   1             a2=0;    
 701   1      
 702   1      
 703   1              RST_HY=0;                         // 复位模块 ,复位后等模块稳定再开始操作
 704   1          delay(500);          //延时等待模块初始化
 705   1              RST_HY=1;            
 706   1              LED_YELLOW=0;
 707   1              LED_GREEN=0;
 708   1              delay(500);     
 709   1          LED_YELLOW=1;       
 710   1          LED_GREEN=1;   
 711   1      
 712   1      
 713   1              while (1)
 714   1          {
 715   2                          LED_GREEN=sig;     // detect module inturrupt ,if there is a card in ,then sig=0,unless you colse th
             -e auto search.                                 
 716   2                           // KeyPress();     处理按键
 717   2                               // add your code here
 718   2      
 719   2                      //检查命令标志
 720   2                  if (g_bReceCommandOk)                       
 721   2                      {                                                                                               
 722   3                          g_bReceCommandOk = FALSE;                           
 723   3                              cStatus=uart_process();
 724   3                              if(cStatus)
 725   3                              {
 726   4                                      cStatus=0;
 727   4                                      if(g_cBeeps==0x10)
 728   4                                      {
 729   5                                              g_cBeeps+=2;       //错误响2声
 730   5                                      }
 731   4                              }
 732   3                              else
 733   3                              {
 734   4                                      if(g_cBeeps==0x10)
 735   4                                      {
C51 COMPILER V8.02   MAIN                                                                  01/26/2007 15:08:37 PAGE 13  

 736   5                                              g_cBeeps+=1;             //正确响一声
 737   5                                      }
 738   4      
 739   4                              }
 740   3                              if(g_cBeeps>0x10)
 741   3                              {
 742   4                                 g_cBeepDiv0=g_cBeeps-0x10;
 743   4                                 g_cBeeps=0x10;    
 744   4                                 g_cBeepDiv0<<=5;
 745   4                              }
 746   3                      
 747   3                              UartSend(SendBuffer);   // Send data to uart.
 748   3                              // add your code here
 749   3              }        
 750   2              
 751   2              }
 752   1      }
 753          
 754          
 755          /*****************************************************************************
 756          *system initialize
 757          *UART baudrate = 19200bps, baud generator is T1
 758          *****************************************************************************/
 759          void InitializeSystem()
 760          {
 761   1         
 762   1              ET2 = 0;
 763   1              T2CON = 0x04;
 764   1          PCON = 0x80;
 765   1          SCON = 0x70;
 766   1          TMOD = 0x21;        //TMOD = 0x22;
 767   1      
 768   1              TH1   = BAUD_19200;  //默认波特率
 769   1              TL1   = TH1;
 770   1              TR1   = TRUE;             // 波特率发生器
 771   1      
 772   1              TH0 = 0xDC;
 773   1          TL0 = 0x00;
 774   1          TR0 = 1;
 775   1          ET0=1;
 776   1      
 777   1              ET1=0;
 778   1              EA=1;
 779   1              EX0=0;//1;
 780   1              IT0 = 1;
 781   1              TR2=0;
 782   1              ES = TRUE;
 783   1              g_bReceCommandOk=0;                                                             
 784   1              BUZ=0;
 785   1      }
 786          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1496    ----
   CONSTANT SIZE    =    152    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =     22      13
   DATA SIZE        =     93       3
   IDATA SIZE       =      5       1
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.

C51 COMPILER V8.02   MAIN                                                                  01/26/2007 15:08:37 PAGE 14  


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

⌨️ 快捷键说明

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