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

📄 rc500.lst

📁 矿工定位系统单端
💻 LST
📖 第 1 页 / 共 3 页
字号:
 502   2            {
 503   3                status=MI_RESETERR;
 504   3            }
 505   2         }
 506   1         else
 507   1         {
 508   2             status=MI_RESETERR;
 509   2         }
 510   1         if(status==MI_OK)
 511   1         {
 512   2           WriteRC(RegClockQControl,0x0);
 513   2           WriteRC(RegClockQControl,0x40);
 514   2           DelayUs(100);
 515   2           ClearBitMask(RegClockQControl,0x40);
 516   2           WriteRC(RegBitPhase,0xad);
 517   2           WriteRC(RegRxThreshold,0xff);
 518   2           WriteRC(RegRxControl2,01);
 519   2           WriteRC(RegFIFOLevel,0x1a);
 520   2           WriteRC(RegTimerControl,0x02);
 521   2           WriteRC(RegIRqPinConfig,0x02);
 522   2           WriteRC(RegTxControl,0x5b);
 523   2         }
 524   1         return status;
 525   1      }
 526          
 527          /*****************************************************************************
 528          *         延时
 529          *****************************************************************************/
 530          void DelayMS(uchar j)
 531          {
 532   1         uchar i,n;
 533   1         for(i=0;i<j;i++)
 534   1         {   for(n=0;n<230;n++);
 535   2         }
 536   1      }
 537          void DelayUs(uchar j)
 538          {
 539   1         uchar i,n;
 540   1         n=j/5;
 541   1         for(i=0;i<n;i++);
 542   1      }
 543          //**********************************************************************
 544          uchar ReadRawRC(uchar Address)
 545          {
 546   1        /* uchar pdata *pa;
 547   1         pa=Address;//+Base_addr;
 548   1         return(*pa);*/
 549   1         uchar xdata *pa;
 550   1         pa=Address+Base_addr;
 551   1         return(*pa);
C51 COMPILER V7.05   RC500                                                                 12/20/2004 15:31:09 PAGE 10  

 552   1      
 553   1      }
 554          //**************************************************
 555          uchar ReadRC(uchar Address)
 556          {
 557   1         /*uchar pdata *pa;
 558   1         pa=RegPage;
 559   1         *pa=Address>>3;
 560   1         pa=Address;
 561   1         return(*pa);*/
 562   1      
 563   1          uchar xdata *pa;
 564   1               pa=Base_addr;
 565   1         *pa=Address>>3;
 566   1         pa=Address+Base_addr;
 567   1         return(*pa);
 568   1      }
 569          //***********************************************
 570          void SetBitMask(uchar reg,uchar mask)
 571          {
 572   1         char tmp=0x0;
 573   1         tmp=ReadRC(reg);
 574   1         WriteRC(reg,tmp|mask);
 575   1      }
 576          //************************************************
 577          void WriteRawRC(uchar Address,uchar value)
 578          {
 579   1         /*uchar pdata *pa;
 580   1         pa=Address+Base_addr;
 581   1         *pa=value;*/
 582   1         uchar xdata *pa;
 583   1         pa=Address+Base_addr;
 584   1         *pa=value;
 585   1      }
 586          //**************************************************
 587          char ChangeCodeKey(uchar *uncoded,uchar *coded)
 588          {
 589   1         uchar idata cnt=0;
 590   1         uchar idata ln=0;
 591   1         uchar idata hn=0;
 592   1      
 593   1         for(cnt=0;cnt<6;cnt++)
 594   1         {
 595   2            ln=uncoded[cnt]&0x0F;
 596   2            hn=uncoded[cnt]>>4;
 597   2            coded[cnt*2+1]=(~ln<<4)|ln;
 598   2            coded[cnt*2]=(~hn<<4)|hn;
 599   2         }
 600   1         return MI_OK;
 601   1      }
 602          //***************************************************
 603          char PcdHalt(void)
 604          {
 605   1          char status=MI_OK;
 606   1          idata struct TranSciveBuffer{uchar MfCommand;
 607   1                                       uchar MfLength;
 608   1                                       uchar MfData[2];
 609   1                                      }MfComData;
 610   1          struct TranSciveBuffer *pi;
 611   1          pi=&MfComData;
 612   1      
 613   1          PcdSetTmo(106);
C51 COMPILER V7.05   RC500                                                                 12/20/2004 15:31:09 PAGE 11  

 614   1          MfComData.MfCommand=PCD_TRANSCEIVE;
 615   1          MfComData.MfLength=2;
 616   1          MfComData.MfData[0]=PICC_HALT;
 617   1          MfComData.MfData[1]=0;
 618   1      
 619   1          status=PcdComTransceive(pi);
 620   1          if (status)
 621   1          {
 622   2              if(status==MI_NOTAGERR||status==MI_ACCESSTIMEOUT)
 623   2              status = MI_OK;
 624   2          }
 625   1          WriteRC(RegCommand,PCD_IDLE);
 626   1          return status;
 627   1      }
 628          /********************************************************
 629          char PcdValue(uchar dd_mode,uchar addr,uchar *value)
 630          {
 631              char status;
 632              uchar i;
 633              idata struct TranSciveBuffer{uchar MfCommand;
 634                                           uchar MfLength;
 635                                           uchar MfData[4];
 636                                          }MfComData;
 637              struct TranSciveBuffer *pi;
 638              pi=&MfComData;
 639          
 640              PcdSetTmo(106);
 641              MfComData.MfCommand=PCD_TRANSCEIVE;
 642              MfComData.MfLength=2;
 643              MfComData.MfData[0]=dd_mode;
 644              MfComData.MfData[1]=addr;
 645          
 646              status=PcdComTransceive(pi);
 647              if(status!=MI_NOTAGERR)
 648              {
 649                  if(MfComData.MfLength!=4)
 650                  {
 651                     status=MI_BITCOUNTERR;
 652                  }
 653                  else
 654                  {
 655                     MfComData.MfData[0]&=0x0f;
 656                     switch(MfComData.MfData[0])
 657                     {
 658                        case 0x00:
 659                           status=MI_NOTAUTHERR;
 660                           break;
 661                        case 0x0a:
 662                           status=MI_OK;
 663                           break;
 664                        case 0x01:
 665                           status=MI_VALERR;
 666                           break;
 667                        default:
 668                           status=MI_CODEERR;
 669                           break;
 670                     }
 671                  }
 672               }
 673               if(status==MI_OK)
 674               {
 675                  PcdSetTmo(4);
C51 COMPILER V7.05   RC500                                                                 12/20/2004 15:31:09 PAGE 12  

 676                  MfComData.MfCommand=PCD_TRANSCEIVE;
 677                  MfComData.MfLength=4;
 678                  pi=&MfComData;
 679                  for(i=0;i<4;i++)
 680                  {
 681                      MfComData.MfData[i]=*(value+i);
 682                  }
 683                  status=PcdComTransceive(pi);
 684                  if(status==MI_OK||status==MI_NOTAGERR)
 685                  {
 686                     if(MfComData.MfLength!=4)
 687                     {
 688                        status = MI_BITCOUNTERR;
 689                     }
 690                     else
 691                     {
 692                        status=MI_OK;
 693                      }
 694                   }
 695                   else
 696                   {
 697                        status=MI_COM_ERR;
 698                    }
 699               }
 700               if(status==MI_OK)
 701               {
 702                  MfComData.MfCommand=PCD_TRANSCEIVE;
 703                  MfComData.MfLength=2;
 704                  MfComData.MfData[0]=PICC_TRANSFER;
 705                  MfComData.MfData[1]=addr;
 706                  status=PcdComTransceive(pi);
 707                  if(status!=MI_NOTAGERR)
 708                  {
 709                      if(MfComData.MfLength!=4)
 710                      {
 711                         status=MI_BITCOUNTERR;
 712                      }
 713                      else
 714                      {
 715                         MfComData.MfData[0]&=0x0f;
 716                         switch(MfComData.MfData[0])
 717                         {
 718                            case 0x00:
 719                               status=MI_NOTAUTHERR;
 720                               break;
 721                            case 0x0a:
 722                               status=MI_OK;
 723                               break;
 724                            case 0x01:
 725                               status=MI_VALERR;
 726                               break;
 727                            default:
 728                               status=MI_CODEERR;
 729                               break;
 730                         }
 731                      }
 732                  }
 733               }
 734             return status;
 735          }*/
 736          
 737          
C51 COMPILER V7.05   RC500                                                                 12/20/2004 15:31:09 PAGE 13  

 738          
 739          
 740          
 741          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1856    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      69
   IDATA SIZE       =   ----      84
   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 + -