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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mfrc500uc.lst

?? RC500的mifare卡開發備用程序及電路
?? LST
?? 第 1 頁 / 共 4 頁
字號:
 683                                             // all tags within this 5 bits have to
 684                                             // provide a bitwise anticollision
 685                {
 686                   status = MI_NOBITWISEANTICOLL;
 687                }
 688             }
 689             if (status == MI_OK)
 690             {
 691                //Get UID in 1 - 3 levels (standard, [double], [triple] )
 692                //-------
 693                switch(br)
 694                {
 695                   case 0: cmdASEL = PICC_ANTICOLL1; break;
 696                   default:
 697                        status = MI_BAUDRATE_NOT_SUPPORTED; break;
 698                }
 699             }
 700             if (status == MI_OK)
 701             {
 702                //Select UID in up to 3 cascade levels (standard, [double], [triple] )
 703                //------------------------------------
 704                cascade_level = 0;
 705                uid_index     = 0;
 706                tmpuid[0] = 0x88;     //first byte of cascaded UIDs is 0x88 (cascaded tag)
 707          
 708                do
 709                {
 710                  sel_code   = cmdASEL + (2 * cascade_level);
 711                  cmdASEL = PICC_ANTICOLL1; // reset anticollistion level for calculation
 712                  //get the next UID part if we need to cascade
 713                  if((uid_len - uid_index) > 4)
 714                  {
 715                    //ok, we need to cascade the UID
 716                    memcpy(&tmpuid[1], &uid[uid_index], 3);
 717                    uid_index += 3;
 718                  }
 719                  else
 720                  {
 721                    //ah, how nice. no need to cascade
 722                    memcpy(tmpuid, &uid[uid_index], 4);
 723                    uid_index += 4;
 724                  }
 725          
 726                  status = Mf500PiccCascSelect(sel_code, tmpuid, sak);
 727          
 728                  if(status == MI_OK)
 729                  {
 730                    cascade_level++;
C51 COMPILER V6.12  MFRC500UC                                                              08/18/2008 15:29:35 PAGE 13  

 731                  }
 732                }
 733                while((status == MI_OK )    // error occured
 734                      && (*sak & 0x04)       // no further cascade level
 735                      && ((uid_index + 1) < uid_len) // all bytes of snr sent
 736                      && (cascade_level < 3)); // highest cascade level reached
 737             }
 738             if ( status == MI_OK) 
 739             {
 740                //Exit function, if UID length is not of expected length
 741                if ((uid_index) != uid_len)
 742                {
 743                   status =  MI_SERNRERR ;
 744                }
 745             }
 746             if (status == MI_OK)
 747             {
 748                //Exit function, if cascade level is triple and sak indicates another
 749                //cascase level.
 750                if ((cascade_level == 3) && (*sak & 0x04))
 751                {
 752                   status = MI_SERNRERR;
 753                }
 754             }
 755             return status;
 756          }
 757          
 758          ///////////////////////////////////////////////////////////////////////
 759          //          M I F A R E      A U T H E N T I C A T I O N
 760          //   calling compatible version    
 761          ///////////////////////////////////////////////////////////////////////
 762          char Mf500PiccAuth(unsigned char key_type,    // PICC_AUTHENT1A or PICC_AUTHENT1B
 763                             unsigned char key_addr,    // key address in reader storage
 764                             unsigned char block)       // block number which should be 
 765                                                        // authenticated
 766          {
 767             char            status = MI_OK;
 768          
 769             status = Mf500PiccAuthE2(  key_type,
 770                                        MLastSelectedSnr,
 771                                        key_addr,
 772                                        block);
 773             return status;
 774          }
 775          
 776          ///////////////////////////////////////////////////////////////////////
 777          //                  A U T H E N T I C A T I O N   
 778          //             W I T H   K E Y S   F R O M   E 2 P R O M
 779          ///////////////////////////////////////////////////////////////////////
 780          char Mf500PiccAuthE2(   unsigned char auth_mode,   // PICC_AUTHENT1A or PICC_AUTHENT1B
 781                               unsigned char *snr,        // 4 bytes card serial number
 782                               unsigned char key_sector,  // 0 <= key_sector <= 15                     
 783                               unsigned char block)      //  0 <= block <= 256
 784          {
 785             char status = MI_OK;
 786             // eeprom address calculation
 787             // 0x80 ... offset
 788             // key_sector ... sector
 789             // 0x18 ... 2 * 12 = 24 = 0x18
 790             unsigned short e2addr = 0x80 + key_sector * 0x18;
 791             unsigned char *e2addrbuf = (unsigned char*)&e2addr;
 792             
C51 COMPILER V6.12  MFRC500UC                                                              08/18/2008 15:29:35 PAGE 14  

 793             PcdSetTmo(106);
 794             if (auth_mode == PICC_AUTHENT1B)
 795                e2addr += 12; // key B offset   
 796             FlushFIFO();    // empty FIFO
 797             ResetInfo(MInfo);
 798          
 799             memcpy(MSndBuffer,e2addrbuf,2); // write low and high byte of address
 800             MInfo.nBytesToSend   = 2;
 801              // write load command
 802             if ((status=PcdSingleResponseCmd(PCD_LOADKEYE2,MSndBuffer,MRcvBuffer,&MInfo)) == MI_OK)
 803             {      
 804                // execute authentication
 805                status = Mf500PiccAuthState(auth_mode,snr,block);  
 806             }
 807             return status;
 808          }                        
 809          
 810          ///////////////////////////////////////////////////////////////////////
 811          //                      C O D E   K E Y S  
 812          ///////////////////////////////////////////////////////////////////////
 813          char Mf500HostCodeKey(  unsigned char *uncoded, // 6 bytes key value uncoded
 814                               unsigned char *coded)   // 12 bytes key value coded
 815          {
 816             char status = MI_OK;
 817             unsigned char cnt = 0;
 818             unsigned char ln  = 0;     // low nibble
 819             unsigned char hn  = 0;     // high nibble
 820             
 821             for (cnt = 0; cnt < 6; cnt++)
 822             {
 823                ln = uncoded[cnt] & 0x0F;
 824                hn = uncoded[cnt] >> 4;
 825                coded[cnt * 2 + 1]     =  (~ln << 4) | ln;
 826                coded[cnt * 2 ] =  (~hn << 4) | hn;
 827          
 828             }
 829             return MI_OK;
 830          }
 831          
 832          ///////////////////////////////////////////////////////////////////////
 833          //                  A U T H E N T I C A T I O N   
 834          //             W I T H   P R O V I D E D   K E Y S
 835          ///////////////////////////////////////////////////////////////////////
 836          char Mf500PiccAuthKey(  unsigned char auth_mode,
 837                               unsigned char *snr,       
 838                               unsigned char *keys,      
 839                               unsigned char block)      
 840          {
 841             char status     = MI_OK;
 842             unsigned char i = 0;
 843             
 844             PcdSetTmo(106);
 845             FlushFIFO();    // empty FIFO
 846             ResetInfo(MInfo);
 847             memcpy(MSndBuffer,keys,12);                  // write 12 bytes of the key
 848             MInfo.nBytesToSend = 12;
 849              // write load command
 850             if ((status=PcdSingleResponseCmd(PCD_LOADKEY,MSndBuffer,MRcvBuffer,&MInfo)) == MI_OK)
 851             {      
 852                // execute authentication
 853                status = Mf500PiccAuthState(auth_mode,snr,block); 
 854             }
C51 COMPILER V6.12  MFRC500UC                                                              08/18/2008 15:29:35 PAGE 15  

 855             return status;
 856          }
 857          
 858          ///////////////////////////////////////////////////////////////////////
 859          //        S T O R E   K E Y S   I N   E E P R O M
 860          ///////////////////////////////////////////////////////////////////////
 861          char Mf500PcdLoadKeyE2(unsigned char key_type,
 862                                 unsigned char sector,
 863                                 unsigned char *uncoded_keys)
 864          {
 865             // eeprom address calculation
 866             // 0x80 ... offset
 867             // key_sector ... sector
 868             // 0x18 ... 2 * 12 = 24 = 0x18
 869             signed char status = MI_OK;
 870             unsigned short e2addr = 0x80 + sector * 0x18;
 871             unsigned char coded_keys[12];
 872          
 873             if (key_type == PICC_AUTHENT1B)
 874                e2addr += 12; // key B offset   
 875             if ((status = Mf500HostCodeKey(uncoded_keys,coded_keys)) == MI_OK)
 876                status = PcdWriteE2(  e2addr,12,coded_keys);
 877             return status;
 878          }                       
 879                                    
 880          ///////////////////////////////////////////////////////////////////////
 881          //        A U T H E N T I C A T I O N   S T A T E S
 882          ///////////////////////////////////////////////////////////////////////
 883          char Mf500PiccAuthState(   unsigned char auth_mode,
 884                                  unsigned char *snr,
 885                                  unsigned char block)
 886          {
 887             char status = MI_OK;
 888             unsigned char i = 0;
 889             
 890             status = ReadRC(RegErrorFlag);    // read error flags of the previous
 891                                              // key load
 892             if (status != MI_OK)
 893             {
 894                if (status & 0x40)            // key error flag set
 895                   status = MI_KEYERR;
 896                else
 897                   status = MI_AUTHERR;       // generic authentication error 
 898             }
 899             else
 900             {
 901                PcdSetTmo(106);
 902                MSndBuffer[0] = auth_mode;        // write authentication command
 903          
 904                MSndBuffer[1] = block;    // write block number for authentication
 905                memcpy(MSndBuffer + 2,snr,4); // write 4 bytes card serial number 
 906                ResetInfo(MInfo);
 907                MInfo.nBytesToSend = 6;
 908                if ((status = PcdSingleResponseCmd(PCD_AUTHENT1,
 909                                         MSndBuffer,
 910                                         MRcvBuffer,
 911                                         &MInfo)) == MI_OK)
 912                {
 913                   if (ReadRC(RegSecondaryStatus) & 0x07) // RxLastBits mu

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本黄色一区二区| 久久精品99国产国产精| av在线不卡电影| 国产精品传媒视频| 色伊人久久综合中文字幕| 高清av一区二区| 国产精品美女视频| 在线亚洲欧美专区二区| 午夜不卡在线视频| 欧美精品一区二区久久婷婷| 国模套图日韩精品一区二区| 久久免费看少妇高潮| 成人自拍视频在线| 亚洲伦在线观看| 欧美精品vⅰdeose4hd| 久久激情五月婷婷| 国产精品欧美综合在线| 色哟哟日韩精品| 免费成人在线视频观看| 国产婷婷一区二区| 91久久精品国产91性色tv| 偷窥少妇高潮呻吟av久久免费| 日韩美女一区二区三区| 成人黄页在线观看| 婷婷综合久久一区二区三区| 精品欧美乱码久久久久久| 国产999精品久久| 亚洲国产精品麻豆| 久久久久久久国产精品影院| 91在线视频播放| 另类综合日韩欧美亚洲| 亚洲欧美在线视频| 欧美一区二区三区免费视频| 成人丝袜视频网| 爽爽淫人综合网网站| 欧美国产日本韩| 7777精品伊人久久久大香线蕉超级流畅 | 免费在线成人网| 国产精品久久久久一区二区三区共| 欧美揉bbbbb揉bbbbb| 国产精品夜夜爽| 91丨九色丨国产丨porny| 美女精品一区二区| 亚洲无线码一区二区三区| 国产欧美综合在线| 欧美www视频| 欧美老年两性高潮| 97se狠狠狠综合亚洲狠狠| 韩国女主播一区二区三区| 日韩二区三区四区| 亚洲欧美福利一区二区| 国产日韩精品一区| 日韩免费看网站| 欧美挠脚心视频网站| 91年精品国产| 成人国产视频在线观看| 国产综合久久久久久鬼色| 午夜激情久久久| 亚洲狠狠爱一区二区三区| 国产精品国产三级国产aⅴ入口| 精品国产伦一区二区三区观看方式| 欧美性xxxxxxxx| 欧美中文字幕一区| 91最新地址在线播放| 成人在线综合网站| 国产99精品视频| 成人免费视频caoporn| 国产乱淫av一区二区三区| 美女视频黄频大全不卡视频在线播放 | 久久成人av少妇免费| 香港成人在线视频| 午夜日韩在线观看| 亚洲成a人片在线观看中文| 亚洲一区二区三区四区在线免费观看| 国产精品国产馆在线真实露脸 | 不卡一区二区在线| 成人av在线资源网站| 成人精品一区二区三区中文字幕| 国产在线精品免费| 国产福利一区二区三区视频| 国产老女人精品毛片久久| 日韩三级在线观看| 5858s免费视频成人| 91超碰这里只有精品国产| 欧美精品一二三四| 日韩一区二区影院| 精品国产电影一区二区| 久久这里只精品最新地址| 久久久久久麻豆| 中文字幕第一区第二区| 成人欧美一区二区三区在线播放| 国产精品进线69影院| 一区二区三区免费网站| 亚洲电影在线播放| 久久精品免费观看| 国产成人在线视频免费播放| 99综合电影在线视频| 欧美在线三级电影| 日韩三级视频在线观看| 2020国产成人综合网| 中文字幕在线免费不卡| 一区二区三区 在线观看视频| 亚洲va欧美va人人爽| 蜜桃视频一区二区| 国产成人免费视频一区| 91亚洲精品久久久蜜桃| 欧美三级日韩在线| 欧美精品一区二区三区四区| 国产欧美精品一区二区色综合 | 亚洲一二三四区| 精品写真视频在线观看| 成人h动漫精品| 777午夜精品免费视频| 久久精品视频免费观看| 亚洲精品第一国产综合野| 日韩 欧美一区二区三区| 福利视频网站一区二区三区| 欧美日韩亚洲高清一区二区| 久久综合色一综合色88| 一区二区成人在线视频| 老汉av免费一区二区三区| av电影一区二区| 欧美一区二区啪啪| 亚洲色图在线看| 国内精品国产成人国产三级粉色| 91麻豆免费视频| 欧美精品一区二区三区在线| 亚洲一区中文在线| 国产成人精品一区二区三区四区 | 97se亚洲国产综合自在线不卡 | 久久综合久色欧美综合狠狠| 一区二区三区av电影| 国产成人精品免费网站| 欧美老肥妇做.爰bbww| 亚洲女同ⅹxx女同tv| 激情五月婷婷综合| 欧美日韩视频专区在线播放| 国产精品久久久久久久久久免费看| 亚洲成人av一区二区| aaa亚洲精品| 久久网站最新地址| 日韩精品亚洲一区二区三区免费| av一区二区三区| 国产色91在线| 久久精品噜噜噜成人88aⅴ | 欧美精品第1页| 亚洲黄色片在线观看| 成人永久免费视频| 精品国产123| 美女精品自拍一二三四| 欧美三级日韩在线| 一区二区欧美国产| 在线观看三级视频欧美| 亚洲欧洲av另类| 国产99久久久国产精品| 久久久一区二区三区捆绑**| 奇米影视一区二区三区小说| 欧美老肥妇做.爰bbww| 亚洲男女一区二区三区| 99re这里只有精品视频首页| 中文字幕巨乱亚洲| 成人免费视频一区二区| 欧美韩国日本一区| 成人永久看片免费视频天堂| 国产视频一区二区在线| 国产激情一区二区三区四区| 久久综合99re88久久爱| 国产一区二区三区精品视频| 精品成人佐山爱一区二区| 蜜乳av一区二区三区| 日韩精品中文字幕一区二区三区| 日本中文一区二区三区| 欧美一区二区三区在线看| 蜜桃免费网站一区二区三区| 日韩欧美aaaaaa| 国精产品一区一区三区mba桃花| 欧美刺激午夜性久久久久久久 | 久久久久久久久一| 国产精品一区二区在线看| 久久久久88色偷偷免费| 成人免费视频视频| 一区二区三区毛片| 制服丝袜成人动漫| 免费成人小视频| 久久久国际精品| 99精品视频一区二区三区| 亚洲精品写真福利| 在线不卡中文字幕| 韩国午夜理伦三级不卡影院| 国产亚洲精久久久久久| 不卡电影免费在线播放一区| 尤物视频一区二区| 日韩一区二区在线看片| 国产激情一区二区三区桃花岛亚洲| 国产精品久久午夜夜伦鲁鲁| 色菇凉天天综合网| 蜜桃视频免费观看一区| 中文在线一区二区| 欧洲一区在线电影| 麻豆国产一区二区|