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

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

?? mainjb.lst

?? 最流行的mifare卡讀卡器全部源代碼
?? LST
?? 第 1 頁 / 共 2 頁
字號:
 328   2      		while(1)						//等待ICC回復起始位
 329   2      		{
 330   3      			if(SAM_DATA==0)			//是否是起始位
 331   3      			{
 332   4      				delay_50us();			//延時去噪
 333   4      				if(SAM_DATA==0)
 334   4      					break;				//是起始位則準備接收
 335   4      			}
 336   3      			if(TF1)
 337   3      			{
 338   4      				TF1=0;
 339   4      				EtuCount++;
 340   4      				if(EtuCount>WaitTime)
 341   4      				{
 342   5      					if(RICCLen!=0)
 343   5      						return OK;
 344   5      					else if(!SAM_DET)
 345   5      						return NoCard;
 346   5      					else 
 347   5      						return HaveTimeOut;
 348   5      				}						
 349   4      			}				
 350   3      		}
 351   2      		EtuCount=0;
 352   2      		WaitTime=900;//Modi by lbz 
 353   2      		initT1();
 354   2      		rbyte=0x00;
 355   2      		RBitCount=0x08; 				//置接收數據位數
 356   2      		while(RBitCount);				//等待接收結束
 357   2      		delay_104SAM();
 358   2      		check=SAM_DATA;			//接收校驗位
 359   2      		if(check==P)					//接收正確則保存
 360   2      		{
 361   3      			RICCBuf[RICCLen]=rbyte;
 362   3      			SAM_DATA=1;				//接收正確
 363   3      		}
 364   2      		else
 365   2      		{
C51 COMPILER V6.12  MAINJB                                                                 12/09/2002 13:03:09 PAGE 7   

 366   3      			SAM_DATA=0;				//接收錯誤,請求重發
 367   3      			delay_50us();
 368   3      			delay_104SAM();
 369   3      			SAM_DATA=1;
 370   3      			RICCLen--;
 371   3      			continue;					//重新接收數據
 372   3      		}
 373   2      		delay_104SAM();					//延時,準備接收下一位數據
 374   2      	}
 375   1      }
 376          
 377          /****************** 定義函數SendToICC,該函數實現將以SICCBuf為首址的數據發送到ICC **********/
 378          /*********************	發送正確則返回OK,無卡則返回Nocard,其他返回invalid ****************/
 379          
 380          uchar SendToSAM()
 381          {  	
 382   1          uchar data ErrorCount;											//錯誤次數計數	
 383   1      	bit check;															//奇偶校驗位
 384   1      	uchar data i;        	
 385   1      	IfSend=1;															// 置接收標志
 386   1      	SAM_DATA=1;
 387   1      	delay_104SAM();
 388   1      	for(i=0;i<SICCLen;i++)												//準備發送
 389   1      	{
 390   2      		sbyte=SICCBuf[i];
 391   2      		check=P;
 392   2      		SBitCount=8;													//發送數據					
 393   2      //		initT0();
 394   2      		TL1=0x74;
 395   2      		TR1=1;
 396   2      		ET1=1;
 397   2      		SAM_DATA=0;													//發送起始位
 398   2      		while(SBitCount);
 399   2      		TL1=0x88;
 400   2      		ET1=0;
 401   2      		while(!TF1);														//延時1etu
 402   2      		SAM_DATA=check;												//發送校驗位
 403   2      		TF1=0;
 404   2      		while(!TF1);
 405   2      	//	delay_104us();
 406   2      		_nop_();
 407   2      		_nop_();
 408   2      		SAM_DATA=1;
 409   2      		TF1=0;
 410   2      		delay_104SAM();													//保護時間
 411   2      		//delay_50us();
 412   2      		if(SAM_DATA==1)												//判斷ICC是否接收正確
 413   2      		{
 414   3      			delay_104SAM();
 415   3      			ErrorCount=0;
 416   3      			continue;													//正確則發送下字節數據
 417   3      		}
 418   2      		else if (ErrorCount<3)											//判斷錯誤次數是否超出
 419   2      		{
 420   3      			i--;
 421   3      			ErrorCount++;
 422   3      			delay_104SAM();
 423   3      			delay_104SAM();
 424   3      			continue;
 425   3      		}
 426   2      		else
 427   2      		{
C51 COMPILER V6.12  MAINJB                                                                 12/09/2002 13:03:09 PAGE 8   

 428   3      			if(!SAM_DET)												//判斷是否有卡
 429   3      				return 	NoCard;		
 430   3      			else	
 431   3      				return  SendError;
 432   3      		}
 433   2      	}
 434   1      	return OK;
 435   1      }
 436          
 437          
 438          /***** 定義ReceiveFromICC函數,該函數接收來自ICC的數據,并將其保存到以RICCBuf為首址的存儲空間 *****/
 439          /******************* 正確接收完則返回OK,無卡則返回NoCard,超時則返回HaveTimeOut *******************/
 440          
 441          uchar ReceiveFromSAM()
 442          {
 443   1      	uchar data i;
 444   1      	uint WaitTime;
 445   1      	WaitTime=9600;
 446   1      	SAM_DATA=1;		
 447   1      	for(RICCLen=0,i=0;;RICCLen++)
 448   1      	{	
 449   2      		IfSend=0;
 450   2      		EtuCount=0;
 451   2      		ET1=0;							//關T0中斷允許
 452   2      		TR1=1;							
 453   2      		while(1)						//等待ICC回復起始位
 454   2      		{							
 455   3      			if(SAM_DATA==0)			//是否是起始位
 456   3      			{
 457   4      				delay_50us();			//延時去噪
 458   4      				if(SAM_DATA==0)
 459   4      					break;							//是起始位則準備接收
 460   4      			}
 461   3      			if(TF1)
 462   3      			{
 463   4      				TF1=0;
 464   4      				EtuCount++;
 465   4      				if(EtuCount>WaitTime)
 466   4      				{
 467   5      					if(RICCLen!=0)
 468   5      						return OK;
 469   5      					else if(!SAM_DET)
 470   5      						return NoCard;
 471   5      					else	
 472   5      						return HaveTimeOut;
 473   5      				}						
 474   4      			}				
 475   3      		}
 476   2      		EtuCount=0;
 477   2      		WaitTime=50;
 478   2      		initT1();
 479   2      	 	rbyte=0x00;
 480   2      		RBitCount=0x08; 				//置接收數據位數
 481   2      		while(RBitCount);				//等待接收結束
 482   2      		delay_104SAM();
 483   2      		check=SAM_DATA;				//接收校驗位
 484   2      		if(check==P)					//接收正確則保存
 485   2      		{
 486   3      			RICCBuf[RICCLen]=rbyte;
 487   3      			SAM_DATA=1;				//接收正確
 488   3      			ErrorCount=0;
 489   3      		}
C51 COMPILER V6.12  MAINJB                                                                 12/09/2002 13:03:09 PAGE 9   

 490   2      		else if(ErrorCount<3)
 491   2      		{
 492   3      			SAM_DATA=0;				//接收錯誤,請求重發
 493   3      			delay_50us();
 494   3      			delay_104SAM();
 495   3      			SAM_DATA=1;
 496   3      			RICCLen--;
 497   3      			ErrorCount++;
 498   3      			continue;					//重新接收數據
 499   3      		}
 500   2      		else 
 501   2      		{
 502   3      			if(!SAM_DET)
 503   3      				return NoCard;
 504   3      			else	
 505   3      				return ReceiveError;
 506   3      		}
 507   2      		delay_104SAM();					//延時,準備接收下一位數據
 508   2      	}
 509   1      }
 510          /*************定義T0的中斷服務程序*************/
 511          /**************接收來自ICC的數據***************/
 512          		
 513          RSAM()interrupt 3 using 3
 514          {
 515   1      	if(!IfSend)
 516   1      	{
 517   2      		SAM_DATA=1;//
 518   2      		if (SAM_DATA==1)
 519   2      		{
 520   3      			_nop_();
 521   3      			if(SAM_DATA==1)
 522   3      			rbyte|=0x80;	
 523   3      			else 
 524   3      			{
 525   4      				//ICC_OUTPUT=1;//
 526   4      				_nop_();
 527   4      				if(SAM_DATA==1)
 528   4      				rbyte|=0x80;	
 529   4      			}
 530   3      		}
 531   2      		if(RBitCount>1)
 532   2      			rbyte=rbyte>>1;
 533   2      		RBitCount--;  
 534   2        	}
 535   1       	else
 536   1        	{
 537   2      		if(sbyte%2)										//發送一位數據
 538   2      			SAM_DATA=1;
 539   2      		else 
 540   2      			SAM_DATA=0;
 541   2      		sbyte=sbyte>>1;												//右移一位 		
 542   2      		SBitCount--;
 543   2        	}
 544   1      }      
 545          
 546          
 547          /****************************************************************/
 548          /*作者:劉丙周
 549          /*日期:2001年9月
 550          /*版本:1.0
 551          /*描述:主要實現t=0協議中的
C51 COMPILER V6.12  MAINJB                                                                 12/09/2002 13:03:09 PAGE 10  

 552          /* acpdu 到tcpdu的轉換
 553          /* rcpdu到rapdu的轉換
 554          /****************************************************************/
 555          void mmemcpy(uchar *mDest,uchar *mSrc,uchar len)
 556          {
 557   1      	uchar i,ch;
 558   1      	for(i=0;i<len;i++)
 559   1      	{
 560   2      		ch=mSrc[i];
 561   2      		*(mDest+i)=ch;
 562   2      	}
 563   1      }
 564          void mmemcpy0(uchar *mDest,uchar *mSrc,uchar len)
 565          {
 566   1      	uchar i,ch;
 567   1      	for(i=0;i<len;i++)
 568   1      	{
 569   2      		ch=*(mSrc+len-i-1);
 570   2      		*(mDest+len-i-1)=ch;
 571   2      	}
 572   1      }
 573          /*********************構造CTPDU**********************************/
 574          /*作者:劉丙周           日期:2001年9月              版本:1.0
 575          /*函數功能:從ACPDU構造 CTPDU
 576          /*參數:使用全局變量:APDUBUf
 577          /*返回值:使用全局變量:CTPDUBUF
 578          /****************************************************************/
 579          
 580          uchar iPrepare_Ctpdu()
 581          {
 582   1      	  uchar data iReturnCode = ERROR;				/*定義并初始化返回碼*/
 583   1            /* --------------------------------------------------------------*/
 584   1            if( SIFDLen == 4 )		/* CAPDU 情況1 無Lc字節: [CLA|INS|P1|P2]P3=0*/
 585   1            {
 586   2                ptCtpdu->uiCase = APDU_CASE_1;
 587   2                SICCBuf[P3_IDX] = 0x00;
 588   2      		  iReturnCode = OK;	
 589   2            }
 590   1           /* --------------------------------------------------------------
 591   1            * CAPDU情況2 short: [CLA|INS|P1|P2|Le]
 592   1            * 無任何變化--------------------------------------------------*/
 593   1           if( SIFDLen == 5 )
 594   1           {
 595   2                ptCtpdu->uiCase = APDU_CASE_2_SHORT;
 596   2                ptCtpdu->uiLe   = SICCBuf[LE_IDX];
 597   2      		  ptCtpdu->uiLa   = SICCBuf[LE_IDX];
 598   2                if ( ptCtpdu->uiLe == 0x00 )			    	/* Le的值:1--256 */
 599   2                {
 600   3                     ptCtpdu->uiLe = MAX_LE_SHORT;			/* 要求的數據長度 */
 601   3                     ptCtpdu->uiLa = MAX_LE_SHORT;			/* 可用的數據長度 */
 602   3                }
 603   2                iReturnCode = OK;
 604   2           }
 605   1      
 606   1           /* --------------------------------------------------------------
 607   1            * CAPDU 情況3 short: [CLA|INS|P1|P2|Lc data[]]     */
 608   1           if( SIFDLen==(5+SICCBuf[LC_IDX]))
 609   1           {
 610   2                if( SICCBuf[LC_IDX] != 0x00 )
 611   2                {
 612   3                     ptCtpdu->uiCase = APDU_CASE_3_SHORT;
 613   3                     ptCtpdu->uiLc   = SICCBuf[LC_IDX];				/* 置Lc */
C51 COMPILER V6.12  MAINJB                                                                 12/09/2002 13:03:09 PAGE 11  

 614   3                }
 615   2                iReturnCode = OK;
 616   2           }
 617   1           /* --------------------------------------------------------------
 618   1            * CAPDU 情況 4 short: [CLA|INS|P1|P2|Lc data[]|Le]
 619   1      		最后一個字節LE將被去掉    */
 620   1           if(SIFDLen==(6+SICCBuf[LC_IDX]))
 621   1           {
 622   2                ptCtpdu->uiCase = APDU_CASE_4_SHORT;
 623   2                ptCtpdu->uiLc   = SICCBuf[LC_IDX];
 624   2                ptCtpdu->uiLe   = SICCBuf[SIFDLen-LE_SHORT]; /* Le 的值: 1..256 */
 625   2                if(ptCtpdu->uiLe==0x00)
 626   2                {
 627   3                     ptCtpdu->uiLe=MAX_LE_SHORT;				/* 要求數據長度 */
 628   3                     ptCtpdu->uiLa=MAX_LE_SHORT;				/* 可用數據長度 */
 629   3                }
 630   2      		  iReturnCode = OK;
 631   2           }
 632   1           SICCLen=5;
 633   1           return( iReturnCode );
 634   1      }
 635          /*******************************************************************/
 636          /*作者:劉丙周           日期:2001年9月              版本:1.0
 637          /*功能:將ic卡返回的RTPDU變換為RAPDU
 638          /*參數:全局變量:RICCBUF
 639          /*返回:全局變量:RAPDUBUF
 640          /*
 641          /*****************構造RAPDU*****************************************/
 642          void vBuild_RAPDU()
 643          {
 644   1           uchar  data uiBuild_Idx;
 645   1           uchar  data uiData_Idx;
 646   1           uchar  data uiRspBufLenSav;
 647   1           uchar  data uiBuild_Len;
 648   1           uchar  data uiData_Len      = 0;
 649   1           uchar  data ucCurRspBufLen = 0;
 650   1           uchar  data ucRxBufOffset  = 0;
 651   1           uchar  data uiLen=0;
 652   1      //     uchar  data i;
 653   1      
 654   1           uiRspBufLenSav  = RICCLen;
 655   1           uiBuild_Len     = RICCLen;
 656   1           if(ptRtpdu->uiCompProcuchars==0)					/* 響應緩沖區沒有包括INS字的補碼*/
 657   1           {
 658   2      		if(ptRtpdu->ucPartRspBuf == TRUE )				/* 如果返回數據是ICC信息的一部分,則付加數據在返回信息的尾部*/
 659   2      		{
 660   3      			ucRxBufOffset = ptRtpdu->ucLastRspBufPos;	/* 取在緩沖區的偏移值 */
 661   3                  mmemcpy(SPCBuf+ucRxBufOffset+1,RICCBuf+PROC_uchar_LEN,
 662   3                         ptRtpdu->uiRspBufLen- PROC_uchar_LEN-STATUS_LEN );/*  付加數據在返回信息的尾部  */
 663   3      			ptRtpdu->uiLastRspBufLen += ( ptRtpdu->uiRspBufLen - PROC_uchar_LEN - STATUS_LEN );/* 計算返回信息的數

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久午夜色播影院免费高清| 日韩中文字幕区一区有砖一区| 亚洲免费观看在线视频| 蜜臀国产一区二区三区在线播放| 粉嫩嫩av羞羞动漫久久久| 欧美日韩国产片| 中文字幕日本不卡| 国产一区二区三区视频在线播放| 在线国产亚洲欧美| 国产精品福利影院| 九九久久精品视频| 欧美一级理论片| 亚洲综合视频在线| 波多野结衣在线一区| 精品少妇一区二区三区免费观看| 亚洲综合精品久久| 色综合咪咪久久| 国产精品久久久久一区二区三区 | 一本大道综合伊人精品热热 | 全国精品久久少妇| 欧美性做爰猛烈叫床潮| 最近中文字幕一区二区三区| 国产精品一级片| 欧美精品一区二区久久婷婷| 免费在线观看日韩欧美| 精品视频1区2区| 亚洲一区日韩精品中文字幕| 97久久久精品综合88久久| 亚洲国产成人一区二区三区| 国产精品一二二区| 国产女人水真多18毛片18精品视频| 精品制服美女丁香| 2020国产精品自拍| 国产综合色产在线精品| 精品国内片67194| 黄色日韩三级电影| 久久一留热品黄| 国产精品18久久久久久久久| 久久久噜噜噜久久中文字幕色伊伊 | 国产精品亲子乱子伦xxxx裸| 国产成人av电影免费在线观看| 国产三级一区二区三区| 国产成人自拍在线| 国产精品二三区| 91婷婷韩国欧美一区二区| 亚洲女同ⅹxx女同tv| 91高清视频免费看| 午夜精品久久久久久| 91精品国产麻豆国产自产在线 | 国精产品一区一区三区mba桃花| 久久婷婷久久一区二区三区| 懂色av一区二区三区免费观看| 国产精品拍天天在线| 欧日韩精品视频| 日韩电影一区二区三区| 国产色产综合产在线视频| av中文字幕在线不卡| 亚洲精品欧美综合四区| 欧美一区二区三区男人的天堂| 激情综合网天天干| 亚洲欧美激情在线| 欧美一级夜夜爽| 成人黄色国产精品网站大全在线免费观看| 国产精品国产三级国产普通话蜜臀| 91在线国内视频| 日韩电影免费在线观看网站| 欧美国产视频在线| 8x8x8国产精品| 风间由美性色一区二区三区| 亚洲一区二区三区中文字幕| 欧美成va人片在线观看| 99久久精品国产网站| 日本视频免费一区| 国产精品乱码一区二三区小蝌蚪| 7777精品伊人久久久大香线蕉最新版| 国产精品一品视频| 香蕉成人伊视频在线观看| 国产亚洲成aⅴ人片在线观看| 欧美最猛黑人xxxxx猛交| 国产精品综合在线视频| 亚洲成人免费视频| 国产精品人成在线观看免费| 欧美一级高清大全免费观看| 色婷婷综合五月| 国产a精品视频| 美腿丝袜亚洲综合| 亚洲综合在线视频| 欧美国产精品中文字幕| 欧美一级电影网站| 欧美日韩一区二区三区四区五区| 国产精品88888| 精品在线你懂的| 视频一区视频二区中文字幕| 一区二区三区精品视频在线| 国产精品视频免费看| 精品福利一区二区三区| 在线电影国产精品| 色偷偷久久人人79超碰人人澡 | 久久久99久久精品欧美| 欧美日本在线播放| 一本色道久久综合亚洲aⅴ蜜桃 | 国产精品成人在线观看| 精品sm捆绑视频| 欧美疯狂做受xxxx富婆| 欧美亚洲动漫另类| 色婷婷久久综合| 91玉足脚交白嫩脚丫在线播放| 国产a区久久久| 国产麻豆一精品一av一免费| 精品综合久久久久久8888| 日本亚洲欧美天堂免费| 日韩av午夜在线观看| 日韩精品一区第一页| 天天综合网 天天综合色| 亚洲免费视频中文字幕| 国产精品久久久久影视| 亚洲欧洲色图综合| 亚洲欧洲av另类| 亚洲男人的天堂在线观看| 日韩毛片在线免费观看| 亚洲人快播电影网| 亚洲精品网站在线观看| 一区二区三区在线免费观看| 亚洲欧美另类综合偷拍| 亚洲不卡av一区二区三区| 丝瓜av网站精品一区二区| 日本视频在线一区| 国产一区二区三区免费| 国产激情偷乱视频一区二区三区| 国产毛片精品一区| av在线播放不卡| 91九色最新地址| 欧美日韩一本到| 精品国产乱码久久久久久1区2区 | 国产精品一二二区| caoporen国产精品视频| 欧美亚洲国产怡红院影院| 欧美日韩精品电影| 欧美一二三区在线观看| 久久综合狠狠综合久久综合88| 久久精品免费在线观看| 亚洲日本免费电影| 亚洲妇熟xx妇色黄| 六月婷婷色综合| 粉嫩一区二区三区性色av| 欧美午夜免费电影| 久久综合久久综合亚洲| 自拍视频在线观看一区二区| 石原莉奈在线亚洲三区| 国产不卡免费视频| 欧美色网站导航| 久久综合久久综合久久综合| 亚洲免费观看高清在线观看| 美女网站在线免费欧美精品| 高清国产一区二区| 国产目拍亚洲精品99久久精品 | 久久久精品一品道一区| 一级特黄大欧美久久久| 狠狠色狠狠色合久久伊人| 91天堂素人约啪| 精品少妇一区二区三区| 综合久久给合久久狠狠狠97色| 人人超碰91尤物精品国产| 99精品偷自拍| 精品成人私密视频| 亚洲一区二区三区中文字幕在线| 国产一区二区在线免费观看| 欧美亚洲动漫制服丝袜| 欧美激情一区二区| 青青草国产成人av片免费| 一本久久a久久精品亚洲| 久久综合999| 日韩制服丝袜av| 欧美性猛片aaaaaaa做受| 国产欧美精品一区aⅴ影院| 蜜桃视频在线一区| 在线欧美日韩精品| 亚洲欧洲三级电影| 国产成人精品亚洲日本在线桃色| 欧美日韩精品久久久| 亚洲欧美日韩久久精品| 从欧美一区二区三区| 欧美一区在线视频| 亚洲成人激情自拍| 色综合咪咪久久| 中文字幕av一区二区三区| 看国产成人h片视频| 欧美猛男超大videosgay| 亚洲三级在线观看| 成人黄色软件下载| 中文字幕欧美国产| 成人性视频网站| 国产日产精品一区| 国产一区在线看| 精品久久五月天| 国产在线不卡一卡二卡三卡四卡| 欧美一区二区三区的| 日产精品久久久久久久性色| 欧美区在线观看| 日韩中文字幕区一区有砖一区 |