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

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

?? m500auc.lst

?? RC500的mifare卡開發備用程序及電路
?? LST
?? 第 1 頁 / 共 5 頁
字號:
 957   1         {
 958   2            if (MInfo.nBitsReceived != 16) // 2 bytes expected
 959   2            {
 960   3               *atq = 0;
 961   3               status = MI_BITCOUNTERR;
 962   3            } 
 963   2            else 
 964   2            {
 965   3               status = MI_OK;
 966   3               memcpy(atq,MRcvBuffer,2);
 967   3            }
 968   2         }
 969   1         return status; 
 970   1      }
 971          
 972          ///////////////////////////////////////////////////////////////////////
 973          //          MIFARE    ANTICOLLISION
 974          // for standard select
 975          ///////////////////////////////////////////////////////////////////////
 976          char M500PiccAnticoll (unsigned char bcnt,
 977                               unsigned char *snr)
 978          {
 979   1         return M500PiccCascAnticoll(0x93,bcnt,snr); // first cascade level
 980   1      }
 981          
 982          ///////////////////////////////////////////////////////////////////////
 983          //          MIFARE    ANTICOLLISION
 984          // for extended serial numbers
C51 COMPILER V6.12  M500AUC                                                                08/23/2008 14:34:32 PAGE 17  

 985          ///////////////////////////////////////////////////////////////////////
 986          char M500PiccCascAnticoll (unsigned char select_code,
 987                                     unsigned char bcnt,       
 988                                     unsigned char *snr)       
 989          {
 990   1         char idata status = MI_OK;
 991   1         char idata snr_in[4];     // copy of the input parameter snr
 992   1         char idata nbytes = 0;
 993   1         char idata nbits = 0;
 994   1         char idata complete = 0;
 995   1         char idata i        = 0;
 996   1         char idata byteOffset = 0;
 997   1         unsigned char idata snr_crc;
 998   1         unsigned char idata snr_check;
 999   1         unsigned char dummyShift1;       // dummy byte for snr shift
1000   1         unsigned char dummyShift2;       // dummy byte for snr shift   
1001   1       
1002   1         //************* Initialisation ******************************
1003   1         M500PcdSetTmo(106);
1004   1         memcpy(snr_in,snr,4);   
1005   1         
1006   1         WriteIO(RegDecoderControl,0x28); // ZeroAfterColl aktivieren   
1007   1         ClearBitMask(RegControl,0x08);    // disable crypto 1 unit
1008   1            
1009   1         //************** Anticollision Loop ***************************
1010   1         complete = 0;
1011   1      //   bcnt = 0;   // no part of the snr is known
1012   1         while (!complete && (status == MI_OK) )
1013   1         {
1014   2            ResetInfo(MInfo);           
1015   2            WriteIO(RegChannelRedundancy,0x03); // RxCRC and TxCRC disable, parity enable
1016   2            nbits = bcnt % 8;   // remaining number of bits
1017   2            if (nbits)
1018   2            {
1019   3               WriteIO(RegBitFraming,nbits << 4 | nbits); // TxLastBits/RxAlign auf nb_bi
1020   3               nbytes = bcnt / 8 + 1;   
1021   3               // number of bytes known
1022   3      
1023   3               // in order to solve an inconsistancy in the anticollision sequence
1024   3               // (will be solved soon), the case of 7 bits has to be treated in a
1025   3               // separate way - please note the errata sheet
1026   3               if (nbits == 7)
1027   3               {
1028   4                  MInfo.cmd = PICC_ANTICOLL1;   // pass command flag to ISR        
1029   4                  WriteIO(RegBitFraming,nbits); // reset RxAlign to zero
1030   4               }
1031   3            } 
1032   2            else
1033   2            {
1034   3               nbytes = bcnt / 8;
1035   3            }
1036   2      
1037   2            MSndBuffer[0] = select_code;
1038   2            MSndBuffer[1] = 0x20 + ((bcnt/8) << 4) + nbits; //number of bytes send
1039   2                     
1040   2            for (i = 0; i < nbytes; i++)  // Sende Buffer beschreiben
1041   2            {
1042   3               MSndBuffer[i + 2] = snr_in[i];
1043   3            }
1044   2            MInfo.nBytesToSend   = 2 + nbytes;   
1045   2       
1046   2            status = M500PcdCmd(PCD_TRANSCEIVE,
C51 COMPILER V6.12  M500AUC                                                                08/23/2008 14:34:32 PAGE 18  

1047   2                               MSndBuffer,
1048   2                               MRcvBuffer,
1049   2                               &MInfo);
1050   2         
1051   2          
1052   2            // in order to solve an inconsistancy in the anticollision sequence
1053   2            // (will be solved soon), the case of 7 bits has to be treated in a
1054   2            // separate way 
1055   2            if (nbits == 7)
1056   2            {
1057   3               // reorder received bits
1058   3               dummyShift1 = 0x00;
1059   3               for (i = 0; i < MInfo.nBytesReceived; i++)
1060   3               {
1061   4                  dummyShift2 = MRcvBuffer[i];
1062   4                  MRcvBuffer[i] = (dummyShift1 >> (i+1)) | (MRcvBuffer[i] << (7-i));
1063   4                  dummyShift1 = dummyShift2;
1064   4               }
1065   3               MInfo.nBitsReceived -= MInfo.nBytesReceived; // subtract received parity bits
1066   3               // recalculation of collision position
1067   3               if ( MInfo.collPos ) MInfo.collPos += 7 - (MInfo.collPos + 6) / 9;
1068   3            }
1069   2               
1070   2            if ( status == MI_OK || status == MI_COLLERR)    // no other occured
1071   2            {
1072   3               // R e s p o n s e   P r o c e s s i n g   
1073   3               if ( MInfo.nBitsReceived != (40 - bcnt) ) // not 5 bytes answered
1074   3               {
1075   4                  status = MI_BITCOUNTERR; // Exit with error
1076   4               } 
1077   3               else 
1078   3               {
1079   4                  byteOffset = 0;
1080   4                  if( nbits != 0 ) // last byte was not complete
1081   4                  {
1082   5                      snr_in[nbytes - 1] = snr_in[nbytes - 1] | MRcvBuffer[0];
1083   5                      byteOffset = 1;
1084   5                  }
1085   4      
1086   4                  for ( i =0; i < (4 - nbytes); i++)     
1087   4                  {
1088   5                     snr_in[nbytes + i] = MRcvBuffer[i + byteOffset];
1089   5                  }
1090   4        
1091   4                  if (status != MI_COLLERR ) // no error and no collision
1092   4                  {
1093   5                     // SerCh check
1094   5                     snr_crc = snr_in[0] ^ snr_in[1] ^ snr_in[2] ^ snr_in[3];
1095   5                     snr_check = MRcvBuffer[MInfo.nBytesReceived - 1];
1096   5                     if (snr_crc != snr_check)
1097   5                     {
1098   6                        status = MI_SERNRERR;
1099   6                     } 
1100   5                     else   
1101   5                     {
1102   6                        complete = 1;
1103   6                     }
1104   5                  }
1105   4                  else                   // collision occured
1106   4                  {
1107   5                     bcnt = bcnt + MInfo.collPos - nbits;
1108   5                     status = MI_OK;
C51 COMPILER V6.12  M500AUC                                                                08/23/2008 14:34:32 PAGE 19  

1109   5                  }
1110   4               }
1111   3            }
1112   2         }
1113   1         if (status == MI_OK)
1114   1         {
1115   2            // transfer snr_in to snr
1116   2            memcpy(snr,snr_in,4);
1117   2         }
1118   1         else
1119   1         {
1120   2            memcpy(snr,"0000",4);
1121   2         }
1122   1      
1123   1         //----------------------Einstellungen aus Initialisierung ruecksetzen 
1124   1         ClearBitMask(RegDecoderControl,0x20); // ZeroAfterColl disable
1125   1         
1126   1         return status;  
1127   1      }
1128          
1129          ///////////////////////////////////////////////////////////////////////
1130          //          MIFARE    SELECT 
1131          // for std. select
1132          ///////////////////////////////////////////////////////////////////////
1133          char M500PiccSelect(unsigned char *snr, 
1134                            unsigned char *sak)
1135          {
1136   1         return M500PiccCascSelect(0x93,snr,sak); // first cascade level
1137   1      }
1138          
1139          ///////////////////////////////////////////////////////////////////////
1140          //          MIFARE    CASCADED   SELECT 
1141          //  for extended serial number
1142          ///////////////////////////////////////////////////////////////////////
1143          char M500PiccCascSelect(unsigned char select_code, 
1144                                  unsigned char *snr,
1145                                  unsigned char *sak)
1146          {
1147   1         char idata status = MI_OK; 
1148   1       
1149   1         M500PcdSetTmo(106);
1150   1      	
1151   1         WriteIO(RegChannelRedundancy,0x0F); // RxCRC,TxCRC, Parity enable
1152   1         ClearBitMask(RegControl,0x08);    // disable crypto 1 unit
1153   1      
1154   1         //************* Cmd Sequence ********************************** 
1155   1         ResetInfo(MInfo);   
1156   1         MSndBuffer[0] = select_code;
1157   1         MSndBuffer[1] = 0x70;         // number of bytes send
1158   1         
1159   1         memcpy(MSndBuffer + 2,snr,4);
1160   1         MSndBuffer[6] = MSndBuffer[2] 
1161   1                         ^ MSndBuffer[3] 
1162   1                         ^ MSndBuffer[4] 
1163   1                         ^ MSndBuffer[5];
1164   1         MInfo.nBytesToSend   = 7;
1165   1         status = M500PcdCmd(PCD_TRANSCEIVE,
1166   1                             MSndBuffer,
1167   1                             MRcvBuffer,
1168   1                             &MInfo);
1169   1      
1170   1         *sak = 0;   
C51 COMPILER V6.12  M500AUC                                                                08/23/2008 14:34:32 PAGE 20  

1171   1         if (status == MI_OK)    // no timeout occured
1172   1         {
1173   2            if (MInfo.nBitsReceived != 8)    // last byte is not complete
1174   2            {
1175   3               status = MI_BITCOUNTERR;
1176   3            }
1177   2            else
1178   2            {
1179   3      	 *sak = MRcvBuffer[0];
1180   3               memcpy(MLastSelectedSnr,snr,4);            
1181   3            }	
1182   2         }
1183   1        
1184   1         return status;
1185   1      }
1186          
1187          ///////////////////////////////////////////////////////////////////////
1188          //          MIFARE      AUTHENTICATION
1189          //   calling compatible version    
1190          ///////////////////////////////////////////////////////////////////////
1191          char M500PiccAuth(unsigned char keyAB,       // KEYA or KEYB
1192                         unsigned char *snr,        // 4 bytes card serial number 
1193                       

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆一区二区99久久久久| 亚洲国产综合人成综合网站| 欧美在线综合视频| 91蝌蚪porny九色| a美女胸又www黄视频久久| 国产 欧美在线| 成人免费的视频| 成人av在线播放网站| 风间由美一区二区av101| 丁香激情综合五月| 91色porny蝌蚪| 欧美日本一区二区| 精品国产乱子伦一区| 欧美精品一区二区久久婷婷| 久久久91精品国产一区二区精品| 久久综合色天天久久综合图片| 国产日韩欧美一区二区三区综合| 国产视频在线观看一区二区三区| 国产精品久久久久久久久久久免费看| 亚洲欧洲日韩在线| 亚州成人在线电影| 国产精品一区免费视频| 99精品欧美一区| 欧美精品丝袜中出| 国产日韩精品一区二区三区 | 国产精品资源站在线| 国产一区欧美一区| 97久久精品人人爽人人爽蜜臀| 91视频一区二区三区| 精品视频一区二区不卡| 2023国产一二三区日本精品2022| 欧美国产一区视频在线观看| 亚洲免费色视频| 免费欧美在线视频| 91在线视频播放| 日韩欧美国产综合在线一区二区三区| 26uuu色噜噜精品一区二区| 亚洲免费伊人电影| 国产成人久久精品77777最新版本| 97久久精品人人做人人爽50路 | 日韩一区二区三区四区| 26uuu国产日韩综合| 亚洲私人影院在线观看| 爽好久久久欧美精品| 高清日韩电视剧大全免费| 欧美色偷偷大香| 亚洲国产高清在线观看视频| 日韩高清欧美激情| av男人天堂一区| 精品国产电影一区二区| 亚洲一区二区三区三| 国产盗摄女厕一区二区三区| 欧美精品在线视频| 久久99精品久久久久久久久久久久| 成人中文字幕在线| 精品捆绑美女sm三区| 一区二区三区中文字幕在线观看| 国产乱码精品1区2区3区| 色www精品视频在线观看| 国产欧美一区二区精品久导航| 天使萌一区二区三区免费观看| 色哟哟一区二区三区| 国产喂奶挤奶一区二区三区| 男人的j进女人的j一区| 欧美日韩中字一区| 亚洲国产一区二区视频| 色狠狠色噜噜噜综合网| 1024成人网| 夫妻av一区二区| 国产蜜臀97一区二区三区| 精品一区二区三区视频在线观看| 91麻豆精品国产自产在线观看一区 | www.亚洲激情.com| 国产精品无人区| 精品一区二区三区在线视频| 3d动漫精品啪啪1区2区免费| 一级日本不卡的影视| 日本丶国产丶欧美色综合| 亚洲视频 欧洲视频| 国产伦精品一区二区三区免费迷| 91精品国产色综合久久不卡电影| 亚洲成人动漫在线观看| 欧美亚洲国产一区二区三区va| 亚洲欧美色一区| k8久久久一区二区三区| 综合激情成人伊人| 91麻豆精品在线观看| 亚洲国产欧美日韩另类综合| 91美女在线视频| 亚洲人成亚洲人成在线观看图片| av不卡一区二区三区| 一区二区三区加勒比av| 色哦色哦哦色天天综合| 婷婷综合久久一区二区三区| 欧美一区二区成人6969| 激情久久五月天| 国产精品欧美一级免费| 91久久奴性调教| 毛片一区二区三区| 国产精品进线69影院| 欧美性猛片aaaaaaa做受| 日韩精品每日更新| 久久久综合精品| 色老汉一区二区三区| 免费人成在线不卡| 国产精品三级av在线播放| 欧美视频在线一区| 国产精品18久久久久| 亚洲精品综合在线| www欧美成人18+| 在线中文字幕一区二区| 激情五月婷婷综合网| 最新久久zyz资源站| 欧美日韩黄色一区二区| 高清成人免费视频| 香蕉久久夜色精品国产使用方法| 精品国产一区二区三区忘忧草| 成人高清视频免费观看| 天堂午夜影视日韩欧美一区二区| xfplay精品久久| 欧美片网站yy| 99精品欧美一区| 国产在线国偷精品产拍免费yy | 欧美午夜不卡视频| 国产91清纯白嫩初高中在线观看| 亚洲亚洲精品在线观看| 日本一区二区不卡视频| 日韩视频在线你懂得| 色欧美日韩亚洲| 成人av午夜电影| 国内精品视频一区二区三区八戒| 亚洲欧美日韩国产另类专区| 久久久精品日韩欧美| 欧美一级二级三级蜜桃| 欧美性做爰猛烈叫床潮| 色综合天天综合给合国产| 国产精品99久久久| 久久机这里只有精品| 亚洲va国产天堂va久久en| 一区二区三区在线影院| 亚洲三级电影网站| 中文字幕精品一区二区三区精品| 精品裸体舞一区二区三区| 日韩欧美一区二区三区在线| 欧美人妖巨大在线| 欧美色成人综合| 欧美综合一区二区| 欧美视频一区二区三区四区| 91同城在线观看| 99久久精品久久久久久清纯| 成人性生交大片免费看中文网站| 国产乱码精品一区二区三区忘忧草| 另类调教123区| 国内不卡的二区三区中文字幕| 蜜臀a∨国产成人精品| 成人免费看视频| 91亚洲精品一区二区乱码| 99久久精品国产导航| 色天天综合色天天久久| 欧美亚洲自拍偷拍| 欧美美女视频在线观看| 欧美人与性动xxxx| 日韩一本二本av| 久久亚洲精品国产精品紫薇| 欧美激情综合五月色丁香 | 国产精品麻豆一区二区| 国产精品美女久久福利网站| 国产精品久久久久久久久久免费看 | 99热精品一区二区| 91久久国产综合久久| 欧美日韩国产a| 91精品国产综合久久精品性色| 日韩欧美国产高清| 欧美国产激情一区二区三区蜜月| 国产精品久久久久aaaa樱花| 亚洲精品福利视频网站| 午夜av区久久| 国产精品538一区二区在线| a级精品国产片在线观看| 欧美日韩精品专区| 精品国产乱码久久久久久浪潮| 国产日韩高清在线| 亚洲国产成人精品视频| 激情欧美一区二区三区在线观看| 成人午夜av影视| 欧美日韩在线播| 国产亚洲精久久久久久| 亚洲人成精品久久久久| 人人爽香蕉精品| 不卡一卡二卡三乱码免费网站| 在线亚洲精品福利网址导航| 精品国产一区二区三区不卡| 国产精品区一区二区三区| 亚洲chinese男男1069| 国产成人在线视频网址| 一本大道久久a久久精品综合| 精品久久五月天| 亚洲国产婷婷综合在线精品| 国产成人在线视频网站| 91精品国产免费久久综合|