亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rc500.lst

?? RC500的全部操作,讀卡
?? LST
?? 第 1 頁 / 共 4 頁
字號:
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 11  

 614              }
 615              return status;
 616          }*/
 617          
 618          ///////////////////////////////////////////////////////////////////////
 619          // Write the MF RC500's EEPROM
 620          //從FIFO 緩沖區(qū)獲得數(shù)據(jù)并寫入內(nèi)部 E2PROM
 621          ///////////////////////////////////////////////////////////////////////
 622          /*char PcdWriteE2(unsigned int startaddr,
 623                          unsigned char length,
 624                          unsigned char* _data)
 625          {
 626              char status = MI_OK;
 627              ResetInfo(MInfo);   
 628              SerBuffer[0] = startaddr & 0xFF;
 629              SerBuffer[1] = (startaddr >> 8) & 0xFF;
 630              memcpy(SerBuffer + 2,_data,length);
 631          
 632              MInfo.nBytesToSend   = length + 2;
 633                   
 634              status = M500PcdCmd(PCD_WRITEE2,
 635                                 SerBuffer,
 636                                 &MInfo); 
 637              return status;
 638          } */  
 639          
 640          ///////////////////////////////////////////////////////////////////////
 641          // Select Command defined in ISO14443(MIFARE)
 642          ///////////////////////////////////////////////////////////////////////
 643          char M500PcdMfOutSelect(unsigned char type)
 644          {
 645   1          WriteIO(RegMfOutSelect,type&0x7);
 646   1          return MI_OK;
 647   1      }
 648          
 649          ///////////////////////////////////////////////////////////////////////
 650          // Request Command defined in ISO14443(MIFARE)
 651          // Request,Anticoll,Select,return CardType(2 bytes)+CardSerialNo(4 bytes)    
 652          // 尋卡,防沖突,選擇卡    返回卡類型(2 bytes)+ 卡系列號(4 bytes)
 653          ///////////////////////////////////////////////////////////////////////
 654          char M500PiccCommonRequest(unsigned char req_code,unsigned char *atq)
 655          {
 656   1          char idata status = MI_OK;
 657   1              
 658   1          M500PcdSetTmo(3);
 659   1          WriteIO(RegChannelRedundancy,0x03);
 660   1          ClearBitMask(RegControl,0x08);
 661   1          WriteIO(RegBitFraming,0x07);     
 662   1          SetBitMask(RegTxControl,0x03);     
 663   1          ResetInfo(MInfo);
 664   1          SerBuffer[0] = req_code;
 665   1          MInfo.nBytesToSend = 1;   
 666   1          
 667   1          status = M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);
 668   1          if (status)     
 669   1          {
 670   2              *atq = 0;
 671   2          } 
 672   1          else 
 673   1          {
 674   2              if (MInfo.nBitsReceived != 16) 
 675   2              {
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 12  

 676   3                  *atq = 0;
 677   3                  status = MI_BITCOUNTERR;
 678   3              } 
 679   2              else 
 680   2              {
 681   3                  status = MI_OK;
 682   3                  memcpy(atq,SerBuffer,2);
 683   3              }
 684   2          }
 685   1          return status; 
 686   1      }
 687          
 688          ///////////////////////////////////////////////////////////////////
 689          // Cascaded Anti-Collision Command defined in ISO14443(MIFARE)
 690          // 防沖突 讀卡的系列號 MLastSelectedSnr
 691          ///////////////////////////////////////////////////////////////////
 692          char M500PiccCascAnticoll (unsigned char bcnt,unsigned char *snr)       
 693          {
 694   1          char idata status = MI_OK;
 695   1          char idata snr_in[4];    
 696   1          char idata nbytes = 0;
 697   1          char idata nbits = 0;
 698   1          char idata complete = 0;
 699   1          char idata i        = 0;
 700   1          char idata byteOffset = 0;
 701   1          unsigned char dummyShift1;       
 702   1          unsigned char dummyShift2;      
 703   1          
 704   1          M500PcdSetTmo(106);
 705   1          memcpy(snr_in,snr,4);   
 706   1         
 707   1          WriteIO(RegDecoderControl,0x28); 
 708   1          ClearBitMask(RegControl,0x08);   
 709   1          complete = 0;
 710   1          while (!complete && (status == MI_OK) )
 711   1          {
 712   2              ResetInfo(MInfo);           
 713   2              WriteIO(RegChannelRedundancy,0x03);
 714   2              nbits = bcnt % 8;  
 715   2              if(nbits)
 716   2              {
 717   3                  WriteIO(RegBitFraming,nbits << 4 | nbits); 
 718   3                  nbytes = bcnt / 8 + 1;   
 719   3                  if (nbits == 7)
 720   3                  {
 721   4                      MInfo.cmd = PICC_ANTICOLL1;  
 722   4                      WriteIO(RegBitFraming,nbits); 
 723   4                  }
 724   3              }  
 725   2              else
 726   2              {
 727   3                  nbytes = bcnt / 8;
 728   3              }
 729   2              SerBuffer[0] = 0x93;
 730   2              SerBuffer[1] = 0x20 + ((bcnt/8) << 4) + nbits;
 731   2                     
 732   2              for (i = 0; i < nbytes; i++)  
 733   2              {
 734   3                  SerBuffer[i + 2] = snr_in[i];
 735   3              }
 736   2              MInfo.nBytesToSend   = 2 + nbytes;   
 737   2       
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 13  

 738   2              status = M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);
 739   2              if (nbits == 7)
 740   2              {
 741   3                  dummyShift1 = 0x00;
 742   3                  for (i = 0; i < MInfo.nBytesReceived; i++)
 743   3                  {
 744   4                      dummyShift2 = SerBuffer[i];
 745   4                      SerBuffer[i] = (dummyShift1 >> (i+1)) | (SerBuffer[i] << (7-i));
 746   4                      dummyShift1 = dummyShift2;
 747   4                  }
 748   3                  MInfo.nBitsReceived -= MInfo.nBytesReceived;       
 749   3                  if ( MInfo.collPos ) MInfo.collPos += 7 - (MInfo.collPos + 6) / 9;
 750   3              }
 751   2              if ( status == MI_OK || status == MI_COLLERR)    
 752   2              {
 753   3                  if ( MInfo.nBitsReceived != (40 - bcnt) )
 754   3                  {
 755   4                      status = MI_BITCOUNTERR; 
 756   4                  } 
 757   3                  else 
 758   3                  {
 759   4                      byteOffset = 0;
 760   4                      if( nbits != 0 ) 
 761   4                      {
 762   5                          snr_in[nbytes - 1] = snr_in[nbytes - 1] | SerBuffer[0];
 763   5                          byteOffset = 1;
 764   5                      }
 765   4      
 766   4                      for ( i =0; i < (4 - nbytes); i++)     
 767   4                      {
 768   5                          snr_in[nbytes + i] = SerBuffer[i + byteOffset];
 769   5                      }
 770   4        
 771   4                      if (status != MI_COLLERR ) 
 772   4                      {
 773   5                          dummyShift2 = snr_in[0] ^ snr_in[1] ^ snr_in[2] ^ snr_in[3];
 774   5                          dummyShift1 = SerBuffer[MInfo.nBytesReceived - 1];
 775   5                          if (dummyShift2 != dummyShift1)
 776   5                          {
 777   6                              status = MI_SERNRERR;
 778   6                          } 
 779   5                          else   
 780   5                          {
 781   6                              complete = 1;
 782   6                          }
 783   5                      }
 784   4                      else                 
 785   4                      {
 786   5                          bcnt = bcnt + MInfo.collPos - nbits;
 787   5                          status = MI_OK;
 788   5                      }
 789   4                  }
 790   3              }
 791   2          }
 792   1          if (status == MI_OK)
 793   1          {
 794   2              memcpy(snr,snr_in,4);
 795   2          }
 796   1          else
 797   1          {
 798   2              memcpy(snr,"0000",4);
 799   2          }
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 14  

 800   1          ClearBitMask(RegDecoderControl,0x20); 
 801   1         
 802   1          return status;  
 803   1      }
 804          
 805          //////////////////////////////////////////////////////////////////
 806          // Cascaded Select command defined in ISO14443(MIFARE)
 807          // 選擇卡 Select Card
 808          //////////////////////////////////////////////////////////////////
 809          char M500PiccCascSelect(unsigned char *snr,unsigned char *sak)
 810          {
 811   1          char idata status = MI_OK; 
 812   1       
 813   1          M500PcdSetTmo(106);
 814   1              
 815   1          WriteIO(RegChannelRedundancy,0x0F); 
 816   1          ClearBitMask(RegControl,0x08);    
 817   1          ResetInfo(MInfo);   
 818   1          SerBuffer[0] = 0x93;
 819   1          SerBuffer[1] = 0x70;        
 820   1         
 821   1          memcpy(SerBuffer + 2,snr,4);
 822   1          SerBuffer[6] = SerBuffer[2] ^ SerBuffer[3] ^ SerBuffer[4] ^ SerBuffer[5];
 823   1          MInfo.nBytesToSend   = 7;
 824   1          status = M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);
 825   1      
 826   1          *sak = 0;   
 827   1          if (status == MI_OK)  
 828   1          {
 829   2              if (MInfo.nBitsReceived != 8)   
 830   2              {
 831   3                  status = MI_BITCOUNTERR;
 832   3              }
 833   2              else
 834   2              {
 835   3                      *sak = SerBuffer[0];
 836   3              }       
 837   2          }
 838   1          return status;
 839   1      }
 840          
 841          ///////////////////////////////////////////////////////////////////////
 842          // Key loading into the MF RC500's EEPROM
 843          // 校驗卡密碼(E2)
 844          ///////////////////////////////////////////////////////////////////////
 845          /*char M500PiccAuthE2( unsigned char auth_mode,unsigned char *snr,      
 846                               unsigned char keynr,unsigned char block)     
 847                                                        
 848          {
 849              char idata status = MI_OK;
 850              unsigned int e2addr = 0x80 + keynr * 0x18;
 851              //unsigned char *e2addrbuf = (unsigned char*)&e2addr;
 852              unsigned char *e2addrbuf;
 853              
 854              e2addrbuf = (unsigned char *)&e2addr;
 855              if (auth_mode == PICC_AUTHENT1B)
 856              {
 857                  e2addr += 12; 
 858              }
 859              FlushFIFO();    
 860              ResetInfo(MInfo);
 861          
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 15  

 862              memcpy(SerBuffer,e2addrbuf,2); 
 863              SerBuffer[2] = SerBuffer[0];      
 864              SerBuffer[0] = SerBuffer[1]; 
 865              SerBuffer[1] = SerBuffer[2];
 866              MInfo.nBytesToSend   = 2;
 867              if ((status=M500PcdCmd(PCD_LOADKEYE2,SerBuffer,&MInfo)) == MI_OK)
 868              {  
 869                  status = M500PiccAuthState(auth_mode,snr,block);  //11.9
 870              }
 871              return status;
 872          }*/
 873          
 874          ///////////////////////////////////////////////////////////////////////
 875          // Authentication key coding
 876          ///////////////////////////////////////////////////////////////////////
 877          /*char M500HostCodeKey(  unsigned char *uncoded, unsigned char *coded)   
 878          {
 879              char idata status = MI_OK;
 880              unsigned char idata cnt = 0;
 881              unsigned char idata ln  = 0;     
 882              unsigned char idata hn  = 0;      
 883              for (cnt = 0; cnt < 6; cnt++)
 884              {
 885                  ln = uncoded[cnt] & 0x0F;
 886                  hn = uncoded[cnt] >> 4;
 887                  coded[cnt * 2 + 1] = (~ln << 4) | ln;
 888                  coded[cnt * 2 ] = (~hn << 4) | hn;
 889              }
 890              return MI_OK;
 891          }*/
 892          
 893          ///////////////////////////////////////////////////////////////////
 894          // Authentication with direct key loading from the uC
 895          // 直接校驗密碼
 896          //////////////////////////////////////////////////////////////////
 897          /*char M500PiccAuthKey(  unsigned char auth_mode,
 898                                 unsigned char *snr,       
 899                                 unsigned char *keys,      
 900                                 unsigned char block)      
 901          {
 902              char idata status = MI_OK;
 903              //PcdSetTmo(2);
 904              FlushFIFO();   
 905              ResetInfo(MInfo);
 906              memcpy(SerBuffer,keys,12);                 
 907              MInfo.nBytesToSend = 12;
 908              if ((status=M500PcdCmd(PCD_LOADKEY,SerBuffer,&MInfo)) == MI_OK)
 909              {      
 910                  status = M500PiccAuthState(auth_mode,snr,block); 
 911              }
 912              return status;
 913          }*/
 914          
 915          ///////////////////////////////////////////////////////////////////////
 916          ///////////////////////////////////////////////////////////////////////
 917          /*char M500PiccAuthState( unsigned char auth_mode,unsigned char *snr,unsigned char block)
 918          {
 919              char idata status = MI_OK;
 920              unsigned char idata i = 0;
 921             
 922              status = ReadIO(RegErrorFlag);                                     
 923              if (status != MI_OK)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品福利视频网站| 日本免费在线视频不卡一不卡二| 欧美亚洲综合久久| 国产一区91精品张津瑜| 亚洲综合久久久| 久久免费午夜影院| 欧美精品一二三| a级精品国产片在线观看| 日韩av网站免费在线| 亚洲欧美日韩在线不卡| 精品久久久网站| 精品视频一区三区九区| 不卡在线视频中文字幕| 极品尤物av久久免费看| 图片区日韩欧美亚洲| 中文字幕一区不卡| 国产日产欧美一区二区三区| 精品日产卡一卡二卡麻豆| 日本精品免费观看高清观看| 国产凹凸在线观看一区二区| 日韩和欧美一区二区三区| 亚洲日本va午夜在线影院| 久久精品一区二区三区不卡| 日韩一卡二卡三卡| 欧美日韩久久久久久| 99riav一区二区三区| 成人午夜在线播放| 国产精品影视在线| 精品一区二区三区av| 日韩精品电影在线观看| 国产在线播放一区三区四| 亚洲第一在线综合网站| 一区二区三区四区五区视频在线观看| 国产免费久久精品| www久久精品| 精品国产不卡一区二区三区| 欧美一区二区三区四区五区| 欧美精品久久久久久久多人混战| 日本韩国欧美三级| 日本精品一区二区三区高清 | 亚洲一区二区三区四区五区中文| 国产精品免费观看视频| 国产亲近乱来精品视频 | 亚洲第四色夜色| 亚洲自拍偷拍图区| 亚洲最大色网站| 亚洲国产欧美另类丝袜| 亚洲一区国产视频| 午夜国产精品影院在线观看| 奇米综合一区二区三区精品视频| 蜜臀av一区二区| 九九**精品视频免费播放| 激情六月婷婷综合| 国产成人在线网站| jlzzjlzz亚洲日本少妇| 91麻豆免费观看| 欧美偷拍一区二区| 欧美肥妇毛茸茸| 日韩美女主播在线视频一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 日韩精品自拍偷拍| 欧美国产精品一区二区三区| 亚洲天堂成人网| 亚洲成人综合网站| 久久精品噜噜噜成人88aⅴ| 国产老肥熟一区二区三区| 成人91在线观看| 欧美日韩高清影院| 久久先锋资源网| 中文字幕亚洲欧美在线不卡| 亚洲日本韩国一区| 美女在线视频一区| 成人三级伦理片| 欧美唯美清纯偷拍| 久久毛片高清国产| 亚洲激情在线激情| 欧美色倩网站大全免费| 成人午夜精品一区二区三区| 中文av字幕一区| 中文字幕在线播放不卡一区| 亚洲一区二区三区四区不卡| 捆绑紧缚一区二区三区视频| 成人性色生活片| 欧美猛男超大videosgay| 风流少妇一区二区| 色狠狠综合天天综合综合| 91久久精品国产91性色tv| 日韩午夜电影在线观看| 性欧美疯狂xxxxbbbb| 97久久人人超碰| 国产精品全国免费观看高清 | 91在线视频18| 欧美精品一区二区三区在线| 日韩精品一二三| 欧美日韩亚洲丝袜制服| 亚洲乱码国产乱码精品精可以看| 国产ts人妖一区二区| 久久久精品免费网站| 久久er99精品| 日韩精品专区在线| 蜜臀久久99精品久久久久久9| 欧美色大人视频| 一区二区三区在线观看欧美| 91一区一区三区| 成人欧美一区二区三区视频网页| 国产成人福利片| 国产三区在线成人av| 国产尤物一区二区在线| 久久你懂得1024| 成人一区二区在线观看| 欧美国产精品专区| 成人av电影在线观看| 亚洲色图欧美偷拍| 色狠狠色狠狠综合| 亚洲高清三级视频| 欧美挠脚心视频网站| 日韩综合小视频| 欧美一级免费观看| 精品无码三级在线观看视频| 久久久国产精品麻豆| 国产福利不卡视频| 国产精品你懂的在线| 91网站黄www| 亚洲一区二区三区四区中文字幕| 欧美日韩在线精品一区二区三区激情| 亚洲图片欧美综合| 欧美一区二区在线不卡| 久久99国产精品免费| 国产色产综合产在线视频| 99在线热播精品免费| 亚洲一区二区五区| 日韩一区二区免费视频| 国产乱国产乱300精品| 成人免费在线播放视频| 欧美在线看片a免费观看| 天天影视网天天综合色在线播放| 91麻豆精品国产91久久久久久久久| 蜜桃久久精品一区二区| 欧美国产97人人爽人人喊| 色综合久久综合| 无码av中文一区二区三区桃花岛| 26uuu欧美| 91麻豆福利精品推荐| 日韩vs国产vs欧美| 国产亚洲一区二区三区在线观看 | 国产精品夜夜嗨| 亚洲综合网站在线观看| 日韩欧美国产一区二区在线播放| 成人福利在线看| 日韩精品亚洲一区| 中文字幕乱码亚洲精品一区| 欧美色精品在线视频| 国产精品一线二线三线精华| 一区二区在线免费观看| 精品黑人一区二区三区久久| 成人精品电影在线观看| 亚洲国产日韩在线一区模特| 久久久久久久久久美女| 欧美性猛交xxxxxxxx| 国产大陆a不卡| 五月婷婷综合网| 国产欧美精品国产国产专区| 69堂成人精品免费视频| 99精品欧美一区二区蜜桃免费| 青青草视频一区| 亚洲免费观看在线视频| 精品精品欲导航| 色94色欧美sute亚洲线路一ni| 韩国v欧美v亚洲v日本v| 一区二区免费在线| 久久无码av三级| 精品视频在线视频| 成人av一区二区三区| 六月丁香婷婷久久| 亚洲国产综合色| 国产精品视频在线看| 日韩欧美一区二区久久婷婷| 日本道免费精品一区二区三区| 激情久久五月天| 午夜精品久久久久久久久| 中文字幕在线不卡| 国产欧美一区二区精品性色| 欧美一区二区三区在线电影 | 国产欧美精品一区aⅴ影院 | 亚洲综合免费观看高清完整版 | 日韩精品免费视频人成| 亚洲蜜桃精久久久久久久| 中文字幕欧美区| 国产亚洲欧美日韩日本| www日韩大片| 日韩精品在线看片z| 欧美老肥妇做.爰bbww| 色先锋久久av资源部| 高清在线不卡av| 国产精品99久久久久久宅男| 久久精工是国产品牌吗| 日本欧美肥老太交大片| 日韩精品一级中文字幕精品视频免费观看 | www.亚洲精品| 国产馆精品极品|