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

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

?? cpu_com.c

?? keil下ISO7816規(guī)則的APDU程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
{
		//unsigned char *data1;
		//unsigned char *aa;
		idata unsigned char i=0,z=0,ndata1[1];
		//*aa = 0;
		aa = aa|0X08;					//打開使能開關
		//CPU卡復位置低、下電、關時鐘
		BT_RST = 0;						//設置為低		
		aa &=0XEF;						//關閉時鐘通道
		aa &=0XBF;						//下電
		delay();	 					//
		aa |=0X10;						//為CPU卡上電并關時鐘通道
		aa &=0XDF;
		aa |=0XBF;						//為CPU卡上電并開時鐘通道
		BT_REC = 1;						//準備接受
		delay();
		BT_RST = 1;						//設置為高
//		read_ATR();
		//delay();
		if(GetChar(ndata1)==TRUE)
		{
			ndata[0]=ndata1[0];
			for(i=1;i<255;i++)
			{
				//BT_REC = 1;
				if(GetChar(ndata1) == TRUE)
				{
					ndata[i]=ndata1[0];
				}
				else
				{	
					//n=101; 
					break;
				}
			 }
		}
}*/
//觸點激活子程序冷復位
//稅控器
unsigned char cpu_Open(void)
{
		//unsigned char *data1;
		//unsigned char *aa;
		idata unsigned char i=0,z=0,ndata1[1],y = 0;
		//*aa = 0;
		aa = 0xF9;
		//aa = aa|0X08;					//打開使能開關
		aa = 0xF9;
		//CPU卡復位置低、下電、關時鐘
cpuope:
		BT_RST = 0;						//設置為低
		//		
	//	aa = 0xEB;
/*
		aa &=0XEF;						//關閉時鐘通道..........
		//
//		C_PWR = 1;						//下電
//		CLOCK = 1;						//關閉時鐘通道
		//
		aa &=0XBF;						//下電.................
	//	aa = 0xAB;
		//
		delay();	 					//
		//
		aa |=0X10;						//為CPU卡上電并關時鐘通道...........
		//aa = 0xBB;
		//
//		C_PWR = 0;
//		V_SEL = 0;
		//	
		aa &=0XDF;
		aa |=0XBF;						//為CPU卡上電并開時鐘通道
		//aa = 0x9B;
		//aa = 0xBF;
		//
//		CLOCK = 0;
*/
		aa = 0xE9;
		aa = 0xA9;
		delay();
		aa = 0xB9;
		aa = 0xD9;
		BT_REC = 1;						//準備接受
		delay();
		BT_RST = 1;						//設置為高
//		read_ATR();
		if((i=read_ATR()) == FALSE)
		{	
			if(tck == 1)
			{
				if(y == 4)
				{
					ndata[0] = 0xFF;
					SendCom(1,ndata);
		  		}
				else
				{
					y++;
					goto cpuope;
				}
			}
			else
			{
				ndata[0] = 0xFF;
				SendCom(1,ndata);
				tck = 1;
			}
		}
		else
		{
			SendCom(i,ndata);
		}
		//aa = 0x00;
		//delay();
/*		if(GetChar(ndata1)==TRUE)
		{
			ndata[0]=ndata1[0];
			for(i=1;i<255;i++)
			{
				//BT_REC = 1;
				if(GetChar(ndata1) == TRUE)
				{
					ndata[i]=ndata1[0];
				}
				else
				{	
					//n=101; 
					break;
				}
			 }
		}
		*/
}
/*小機器
void rest(void)
{
		//*aa = *aa|0X08;				//打開使能開關
		//CPU卡復位置低、下電、關時鐘
		idata unsigned char i=0,ndata1[1];
		BT_RST = 0;						//設置為低
		delay();
		BT_RST = 1;						//設置為低	
		read_ATR();	
}
*///稅控器
void rest(void)
{
		//*aa = *aa|0X08;				//打開使能開關
		//CPU卡復位置低、下電、關時鐘
		idata unsigned char i=0,ndata1[1],y = 0;
resta1:
		BT_RST = 0;						//設置為低
		delay();
		BT_RST = 1;						//設置為低	
		if((i=read_ATR()) == FALSE)
		{
			if(tck == 1)
			{
				if(y == 4)
				{
					ndata[0] = 0xFF;
					SendCom(1,ndata);
		  		}
				else
				{
					y++;
					goto resta1;
				}
			}
			else
			{
				ndata[0] = 0xFF;
				SendCom(1,ndata);
				tck = 1;
			}
		}
		else
		{
			SendCom(i,ndata);
		}
}
//觸點釋放子程序
void cpu_Close(void)
{
  BT_RST = 0;							//復位端置低
  //CLK置低         
  BT_SND = 0;							//接收端置低
  delay();
//  aa = 0X00;							//下電并關閉所有
}
//復位子程序,將CPU卡復位,reset_flag為1則冷復位,為0熱復位
/*void Reset(unsigned char reset_flag)
{
		unsigned char a,*ndata1;
		if(reset_flag)
		{
				BT_RST = 1;//將復位信號置高
				BT_SND = 1;
				delay();
		}
		else
		{
				BT_RST = 0;
				BT_SND = 1;
				delay1();
				BT_RST = 1;
				delay();			
		}
}
*/
//接收復位應答:返回TRUE正確,返回FALSE則錯誤應答信號裝入ndata中
/*unsigned char Reset_answer(unsigned *ndata)
{
		unsigned char *data1,len=0;
		idata unsigned char i=0,ndata1[1];
		xdata unsigned char ndata[255];
		if(GetChar(ndata1)==TRUE)
		{
			ndata[0]=ndata1[0];
			for(i=1;i<255;i++)
			{
			    if(GetChar(ndata1)==TRUE)
					{
						ndata[i]=ndata1[0];
					}
					else
				  {	
							//n=10000001; 
							break;
					}
			}
			if(ndata[1]==(i-3))
			{
					return TRUE;
			}
			else
			{
					return FALSE;
			}
		}
		return FALSE;
		
}
*/
//復位
/*unsigned char Rst(void)
{
		unsigned char reset_flag = 1,*ndata;
		Reset(reset_flag);
		if(Reset_answer(ndata)==FALSE)//冷復位失敗
		{
				reset_flag = 0;
				Reset(reset_flag);
				if(Reset_answer(ndata)==FALSE)//熱復位失敗
						return FALSE;
				return TRUE;//熱復位成功
		}
		return TRUE;//冷復位成功
}*/
//延時2500uS
void delay(void)
{
		unsigned int i = 0;
		for(i=0;i<413;i++);
		//for(i=0;i<255;i++);
}
//正確時返回長度向串口發(fā)送長度個數(shù)據(jù),錯誤時返回時向串口發(fā)送0xFF
unsigned char read_ATR(void)
{
	unsigned char idata Present_TA2=FALSE,TA2=0xff,Number_ATR=0;
    unsigned char idata ln_history,number_Ti,Yi=0,y;     
    unsigned char idata FI=1,DI=1,Type_T0=0,Type_Ti=0;
	unsigned char idata ndata1[1]; 
	unsigned char idata i,z=0,x = 0;
	if(GetChar(ndata1) == TRUE)
	{
		ndata[0]=ndata1[0];
		for(i=1;i<32;i++)
		{
			//BT_REC = 1;
			if(GetChar(ndata1)==TRUE)
				ndata[i]=ndata1[0];
			else								//接收完數(shù)據(jù)
				goto comatr;
		}
	}
	else										//沒有接收到ART,或者接收失敗
		return FALSE;	
comatr:		
	if(ndata[z] == 0x3B)
 		CPUCD_Format = 0;					//正規(guī)則		
	else if(ndata[z] == 0x03)
		CPUCD_Format = 1;					//反規(guī)則
	else 
		return FALSE;						//錯誤
	z++;									//Z = 1
	if(z>(i-1))								//如果沒有接收到第二個字節(jié)或第二個字節(jié)數(shù)據(jù)錯誤則失敗
		return FALSE;						//
	ln_history = ndata[z] & 0x0F;  			//取出歷史字節(jié)個數(shù)
	number_Ti = ndata[z] &0xF0;  			//取出反映TA1~TD1
	z++;									//Z = 2
	if (number_Ti & 0X10)					//讀TA1,時鐘速率轉換因子
  	{
   		if (z>(i-1))						//如果沒有接收到第三個字節(jié)或第三個字節(jié)數(shù)據(jù)錯誤則失敗 														
        	return FALSE;
      	FI = ndata[z]>>4;					//ndata[2]						
       	DI = ndata[z] & 0X0F;
       	z++;								//z=3
   	}
	if (number_Ti & 0X20)
    {
    	if (z>(i-1)) 						//讀TB1,編程電壓、電流參數(shù)
        	return FALSE;
	   	z++;								//z=4
   	}
	if (number_Ti & 0X40)
	{
  		if (z>(i-1)) 						//讀TC1,8位以外的額外等候時間
      		return FALSE;
     	if (ndata[z] == 255)				//ndata[4]
        	Extra_guardtime_N = 0;
     	else 
        {          	
       		Extra_guardtime_N = ndata[z];
//			Extra_guardtime_N_bak = Extra_guardtime_N;
      	}
  		z++;								//z=5
  	}
	else
	{
		Extra_guardtime_N = 0;
	}
	if (number_Ti & 0X80)
    {
    	if (z>(i-1)) 						//讀TD1,無TD1默認Yi=0,Type_T0=0
        	return FALSE;
      	Type_T0 = ndata[z] & 0X0F;			//ndata[5]
      	Yi = ndata[z] & 0xf0;
     	z++;								//z=6
	}
	if (Yi & 0X10)							//TA2,TB2,TC2,TD2的記錄
	{
		if (z>(i-1)) 						//讀TA2,指定模式字節(jié)
      		return FALSE;
      	Present_TA2=TRUE;
      	TA2=ndata[z];						//ndata[6]
  		z++;								//z=7
	}
	if (Yi & 0X20)
    {
   		if (z>(i-1)) 						//讀TB2
     		return FALSE;
     	z++;								//z=8
    }
	if (Yi & 0X40)
    {
   		if (z>(i-1)) 						//讀TC2
       		return FALSE;
		tc2 = (ndata[z]/10)-1;
      	z++;								//z=9
    }
	if (Yi & 0X80)
    {
    	if (z>(i-1)) 						//讀TD2
     		return FALSE;
       		Yi = ndata[z] & 0xf0;
          	Type_Ti = ndata[z] & 0X0F;
          	z++;								//z=10
    }
    else
    {
   		Yi=0;  
    }
	while  (Yi)									//TAi,TBi,TCi,TDi的記錄
   	{
  		if (Yi & 0X10)
    	{
     		if (z>(i-1)) 						//讀TAi,指定模式字節(jié)
          		return FALSE;
			z++;								//z=11
   		}
		if (Yi & 0X20)
     	{
         	if (z>(i-1)) 						//讀TBi
           		return FALSE;
          	z++;								//z=12
    	}
		if (Yi & 0X40)
     	{
          	if (z>(i-1)) 						//讀TCi
         		return FALSE;
          	z++;								//z=13
    	}
		if (Yi & 0X80)
    	{
    		if (z>(i-1)) 						//讀TDi
           		return FALSE;
         	Yi = ndata[z] & 0xf0;				//ndata[13]
           	Type_Ti = ndata[z] & 0X0F;
           	z++;								//z=14
   		}
    	else 
     	{
     	  	Yi=0;
    	}
	}
	while (ln_history)        			//接收歷史字節(jié)
  	{
 		if(z>(i-1))
      		return FALSE;
       	z++;
      	ln_history--;
    } 
	if (Type_T0 !=0 || Type_Ti !=0)		//接收TCK: 在默認的 T = 0模式下,沒有TCK;在 T = 0和 T = 15同時存在時,有TCK
    {
    	if(z>(i-1))
		{
			tck = 0;
        	return FALSE;
	  	}
        z++;

          
          //檢查TCK是否正確
		y=0x00;
     	for (x=1;x<=z;x++)
       	{
    		y ^= ndata[x]; 
        }
      	if (y != 0)
		{
			tck = 0;
          	return FALSE;
	  	}
		else
			tck = 1;
    }
//	else
//	{
//		return 255;
//	}
	 return i;
//	 if (Present_TA2==TRUE)//TA2存在,指定模式。
//     {
 //         OCR2 = (Arr_Fi[FI]/372)*52/Arr_Di[DI]-1;
 //         PreTCNT2=(OCR2+1)*2/3-1;
  //   }
/*     else
     {
	  if (Request_PPS() == FALSE)
		return FALSE;
	  else
	  {
		if (Response_PPS() == FALSE)
			return FALSE;
	  }
     }
*/     
//     Extra_guardtime = Extra_guardtime_N;
     //計算波特率機延時因子
//     *ATR = Number_ATR; 
}
void com_Open(void)
{
	TH1=0XFA;         //0XFD波特率為9.6K,fosc=11.059M; 0xFA fosc=22.1184
  	TL1=0XFA;  
// 	TH1=0XF4;         //0XFD波特率為9.6K,fosc=11.059M; 0xFA fosc=22.1184
// 	TL1=0XF4;  
// 	TH1=0XFF;         //0XFD波特率為9.6K,fosc=11.059M; 0xFA fosc=22.1184
// 	TL1=0XFF;  

	SCON=0X50;        //串行口運行方

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影一区二区| 亚洲 欧美综合在线网络| 欧美激情中文字幕| 亚洲精品成人少妇| 久久成人精品无人区| 色综合色综合色综合色综合色综合| 717成人午夜免费福利电影| 久久久久久夜精品精品免费| 亚洲h在线观看| av动漫一区二区| 久久日一线二线三线suv| 亚洲成人综合视频| 91久久精品日日躁夜夜躁欧美| 久久老女人爱爱| 久久国产尿小便嘘嘘| 欧美日韩精品一区二区三区蜜桃 | 欧美美女视频在线观看| 国产精品网站一区| 国产一区二区毛片| 欧美变态tickling挠脚心| 亚洲国产成人av网| 欧美日韩在线一区二区| 亚洲人亚洲人成电影网站色| 国产一区高清在线| 欧美日韩国产另类一区| 91精品福利在线一区二区三区| 亚洲精品视频一区二区| 成人动漫一区二区三区| 欧美疯狂性受xxxxx喷水图片| 中文字幕亚洲欧美在线不卡| 韩国一区二区视频| 久久综合色天天久久综合图片| 青草av.久久免费一区| 7777精品伊人久久久大香线蕉| 午夜久久久久久久久| 911国产精品| 日韩电影在线观看一区| 在线综合视频播放| 日韩av电影免费观看高清完整版 | 亚洲欧美成aⅴ人在线观看 | 综合欧美亚洲日本| 91福利精品视频| 亚洲国产美女搞黄色| 欧美日韩国产中文| 日韩和欧美一区二区三区| 欧美色中文字幕| 免费看日韩a级影片| 91精品国产综合久久久久久久 | 国产精品亚洲一区二区三区在线 | 亚洲成av人片在线观看| 欧美日韩国产a| 另类综合日韩欧美亚洲| 国产亚洲成av人在线观看导航 | 国产一区在线看| 国产精品乱码一区二三区小蝌蚪| 成人免费视频一区| 亚洲精品欧美激情| 欧美一级国产精品| 国产aⅴ综合色| 又紧又大又爽精品一区二区| 欧美人妇做爰xxxⅹ性高电影| 麻豆国产欧美一区二区三区| 久久精品网站免费观看| 色噜噜久久综合| 另类小说欧美激情| 国产精品系列在线| 欧美精品vⅰdeose4hd| 国产精品综合av一区二区国产馆| 国产精品白丝在线| 在线综合亚洲欧美在线视频| 国产成人亚洲综合a∨婷婷图片| 亚洲另类在线一区| 日韩欧美精品在线视频| 99久久99久久精品免费看蜜桃| 视频一区欧美精品| 日韩一区在线免费观看| 欧美一区二区三区在线看| 成人黄色小视频| 免费成人结看片| 国产精品蜜臀在线观看| 4438成人网| 91在线观看地址| 激情久久久久久久久久久久久久久久| 成人免费在线视频观看| 精品国产一区二区亚洲人成毛片| 91在线国产福利| 韩国一区二区视频| 亚洲成av人片一区二区梦乃| 中文字幕免费不卡在线| 欧美一区二区久久| 欧美在线观看视频在线| 成人一区二区三区视频在线观看| 日韩精品一二区| 亚洲特级片在线| 国产欧美一区二区三区在线看蜜臀 | 亚洲综合区在线| 国产精品人妖ts系列视频| 欧美tk—视频vk| 欧美猛男男办公室激情| 91美女精品福利| 国产v综合v亚洲欧| 国产高清亚洲一区| 国产在线一区二区| 蜜桃视频在线一区| 午夜精品123| 亚洲国产视频网站| 一区二区三区精品视频在线| 欧美国产激情一区二区三区蜜月| 日韩精品一区二区三区在线观看 | 成人综合在线网站| 国产成人99久久亚洲综合精品| 国产综合色产在线精品| 免费成人在线观看| 久久精品av麻豆的观看方式| 爽爽淫人综合网网站| 亚洲一区二区在线观看视频| 亚洲精品日日夜夜| 性做久久久久久免费观看| 一级日本不卡的影视| 亚洲综合一区二区精品导航| 一区二区三区色| 亚洲夂夂婷婷色拍ww47| 亚洲综合在线免费观看| 午夜一区二区三区视频| 日韩黄色在线观看| 久久精品国产一区二区| 国产一区视频在线看| 丁香婷婷综合激情五月色| 国产成人综合在线播放| 成人黄色777网| 91视频免费看| 欧美久久久影院| 精品日本一线二线三线不卡| 久久久久久夜精品精品免费| 国产精品全国免费观看高清| 亚洲精品日韩综合观看成人91| 亚洲一区二区三区四区的| 视频在线观看91| 韩国欧美国产一区| 99久久国产综合色|国产精品| 欧美午夜寂寞影院| 精品久久久久香蕉网| 国产精品每日更新| 亚洲国产一区二区视频| 麻豆成人综合网| 99精品国产热久久91蜜凸| 欧美日韩高清不卡| 久久久久久久久久美女| 亚洲欧美偷拍三级| 久久机这里只有精品| 波多野结衣亚洲| 欧美精品在线观看一区二区| 久久亚洲综合色一区二区三区| 亚洲欧洲综合另类| 另类欧美日韩国产在线| 99精品欧美一区| 精品久久久久香蕉网| 夜夜精品视频一区二区 | 日韩av高清在线观看| 福利电影一区二区| 7777女厕盗摄久久久| 国产精品青草综合久久久久99| 日韩在线一区二区三区| 成人av影院在线| 91麻豆精品91久久久久同性| 国产精品国产精品国产专区不片| 日本成人中文字幕在线视频 | 91精品国产综合久久香蕉麻豆| 久久久久国产成人精品亚洲午夜| 亚洲一二三区在线观看| 国产成人8x视频一区二区| 7777精品伊人久久久大香线蕉完整版| 国产精品丝袜久久久久久app| 日韩精品一级中文字幕精品视频免费观看 | 精品国产在天天线2019| 亚洲国产裸拍裸体视频在线观看乱了| 国产成人午夜高潮毛片| 欧美一区二区三区啪啪| 亚洲美女精品一区| 高清在线观看日韩| 日韩精品在线看片z| 日韩精品1区2区3区| 欧美在线一二三四区| 亚洲欧美电影院| 99久久99久久精品免费观看| 国产精品天美传媒沈樵| 国产高清久久久| 久久免费美女视频| 狠狠色丁香婷婷综合| 欧美成人精品二区三区99精品| 亚洲第一会所有码转帖| 色屁屁一区二区| 一区二区三区在线视频免费| 成人黄色在线网站| 国产精品剧情在线亚洲| 成人网页在线观看| 国产精品护士白丝一区av| 成人禁用看黄a在线| 中文字幕一区二区三中文字幕| 懂色av中文字幕一区二区三区|