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

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

?? psam.c

?? 接觸式IC卡51驅動程序,適用于PSAM卡的設計,程序完全能用
?? C
字號:
/*
**--------------文件信息------------------------------------------------------------------
**文   件   名: PSAM.c
**創   建   人: 李功周
**最后修改日期: 2008年9月9日
**描        述: 51內核7816驅動程序,KEIL C 編譯
**
**--------------歷史版本信息--------------------------------------------------------------
** 創建人: 李功周
** 版  本: V1.0
** 日 期: 2008年9月9日
** 描 述: 原始版
**--------------歷史版本信息--------------------------------------------------------------
** 創建人: 李功周
** 版  本: V1.0
** 日 期: 2008年9月9日
** 描 述: 加入指令函數
**
*/
#include <REG54.H>
#include "PSAM.h"
#include "intrins.h"
//#include "UART\UART.h"
#define  	openclock			PSAMClock=0
#define		closeclock			PSAMClock=1
//#define		PSAMPowerEnable		PSAMPOWER=0;
//#define		PSAMPowerUEnable	PSAMPOWER=1;
#define		HALF		0
#define		FULL		1

typedef unsigned char byte;
typedef unsigned int  word;
typedef unsigned long dword;
//引腳設置
sbit	PSAMClock=P1^3;
sbit	PSAMData=P1^4;
sbit	PSAMRst=P1^7;
//sbit    PSAMPOWER=P2^6;



					    
void etutime(bit time) //etu=(372/f)=5376.3440860215053763440860215054=10752.688172043010752688172043011
{					   //2688.1720430107526881720430107527
	unsigned short	i;
	if(time)
	{
		for(i=0;i<42;i++);
		_nop_();_nop_();_nop_();		
	}
	else
	{
		for(i=0;i<18;i++);
		_nop_();_nop_();//_nop_();_nop_();		
	}
}
//取響應數據的保護時間
void SafeEtu()
{
	unsigned char i;
	for(i=0;i<17;i++)
	{
		etutime(FULL);	
	}
}
//read one byte
bit	PSAMReadOneByte(unsigned char *p)
{
	union{
			unsigned char	a;
			struct{
				unsigned char a0		:1;
				unsigned char a1		:1;
				unsigned char a2		:1;
				unsigned char a3		:1;
				unsigned char a4		:1;
				unsigned char a5		:1;
				unsigned char a6		:1;
				unsigned char a7		:1;
			}b1;
	}c1;
	unsigned short	n;
	bit	start,stop;
	n=50000;
	while(PSAMData&&(--n));
	if(n)
	{
		etutime(HALF);start=(byte)PSAMData;//0
		etutime(FULL);c1.b1.a0=(byte)PSAMData;//0
		etutime(FULL);c1.b1.a1=(byte)PSAMData;//0
		etutime(FULL);c1.b1.a2=(byte)PSAMData;//1
		etutime(FULL);c1.b1.a3=(byte)PSAMData;//1
		etutime(FULL);c1.b1.a4=(byte)PSAMData;//1
		etutime(FULL);c1.b1.a5=(byte)PSAMData;//1
		etutime(FULL);c1.b1.a6=(byte)PSAMData;//0
		etutime(FULL);c1.b1.a7=(byte)PSAMData;//0
		etutime(FULL);stop=(byte)PSAMData;
		etutime(FULL);stop=(byte)PSAMData;
		*p=c1.a;
		while(!PSAMData);
		return 1;
	}
	else return 0;
	return	1;
}
//發送一個字節
void PSAMSendOneByte(unsigned char dat)
{
	union{
			byte	a;
			struct{
				byte a0		:1;
				byte a1		:1;
				byte a2		:1;
				byte a3		:1;
				byte a4		:1;
				byte a5		:1;
				byte a6		:1;
				byte a7		:1;
			}b1;
	}c1;
	bit  parity;
	c1.a=dat;
	parity=0;
	if(c1.b1.a0)parity=~parity;
	if(c1.b1.a1)parity=~parity;
	if(c1.b1.a2)parity=~parity;
	if(c1.b1.a3)parity=~parity;
	if(c1.b1.a4)parity=~parity;
	if(c1.b1.a5)parity=~parity;
	if(c1.b1.a6)parity=~parity;
	if(c1.b1.a7)parity=~parity;

//	EA = 0 ;
		PSAMData=0;etutime(FULL);
		PSAMData=c1.b1.a0;etutime(FULL);
		PSAMData=c1.b1.a1;etutime(FULL);
		PSAMData=c1.b1.a2;etutime(FULL);
		PSAMData=c1.b1.a3;etutime(FULL);
		PSAMData=c1.b1.a4;etutime(FULL);
		PSAMData=c1.b1.a5;etutime(FULL);
		PSAMData=c1.b1.a6;etutime(FULL);
		PSAMData=c1.b1.a7;etutime(FULL);
		PSAMData=parity;etutime(FULL);
		PSAMData=1;etutime(FULL);
//	EA = 1;
}
//讀數據串
unsigned char ReadData(unsigned char *p,unsigned char len)
{
	unsigned char i;
//	EA = 0 ;
	for(i=0;i<len;i++)
	{
		if(PSAMReadOneByte(&p[i])==0)return i;	
	}
//	EA = 1 ;
	return i;
}

//讀取復應答  1成功,0失敗
bit ReadATR()
{
	unsigned char idata aa[20];
	unsigned char i;
	EA = 0 ;
	if(ReadData(aa,4)<4)
	{	
		EA = 1;
		return 0;
	}
	i = aa[1]&0x0f;
	if(ReadData(&aa[4],i)<i)
	{
		EA = 1;
		return 0;
	}
	EA = 1 ;
	return 1;	
}
//發送指令
unsigned short SendCmd(	unsigned char CLA,
						unsigned char INS,
						unsigned char P1,
						unsigned char P2,
						unsigned char Lc,
						unsigned char Le,
						unsigned char *DATA,
						unsigned char RLen
						)
{
	unsigned char i;
	unsigned char a;
	EA = 0 ;
	PSAMSendOneByte(CLA);
	PSAMSendOneByte(INS);
	PSAMSendOneByte(P1);
	PSAMSendOneByte(P2);
	if(Lc!=0)
	{	
		PSAMSendOneByte(Lc);
		if(ReadData(&a,1)!=1)
		{
			EA = 1;
			return 0;	
		}
		SafeEtu();
		for( i = 0 ; i < Lc ; i++ )
		{
			PSAMSendOneByte(DATA[i]);	
		}
		if(Le==0)
		{
			i = ReadData(DATA,RLen);
			EA = 1;
			return (unsigned short)DATA[i-2]*0x100+DATA[i-1];
		}
	}
	if(Le!=0)
	{
		PSAMSendOneByte(Le);
		if(Lc==0)
		{
			if(ReadData(&a,1)!=1)
			{
				EA = 1;
				return 0;	
			}
		}
		i = ReadData(DATA,RLen+2);
//		SendStr(DATA,i);
		EA = 1;
		return (unsigned short)DATA[i-2]*0x100+DATA[i-1];
	}
	if((Lc==0)&&(Lc==0))
	{
		PSAMSendOneByte(0);
		i = ReadData(DATA,3);
		EA = 1;
		return (unsigned short)DATA[i-2]*0x100+DATA[i-1]; 	
	}
	EA = 1;				
}

//發送指令
unsigned short SendCmd1(	unsigned char CLA,
						unsigned char INS,
						unsigned char P1,
						unsigned char P2,
						unsigned char Lc,
						unsigned char Le,
						unsigned char *DATA,
						unsigned char RLen
						)
{
	unsigned char i;
	unsigned char a;
	EA = 0 ;
	SafeEtu();
	PSAMSendOneByte(CLA);
	PSAMSendOneByte(INS);
	PSAMSendOneByte(P1);
	PSAMSendOneByte(P2);
	PSAMSendOneByte(Lc);
	if(ReadData(&a,1)!=1)
	{
		EA = 1;
		return 0;	
	}
		SafeEtu();
	for( i = 0 ; i < Lc ; i++ )
	{
		PSAMSendOneByte(DATA[i]);	
	}
	Le = Le;
//	PSAMSendOneByte(Le);
	i = ReadData(DATA,RLen+2);
//	SendStr(DATA,i);
	EA = 1 ;
	return (unsigned short)DATA[i-2]*0x100+DATA[i-1];				
}
//取響應數據
unsigned short GetResponse(unsigned char *p,unsigned char len)
{
	unsigned char i,a;
	EA = 0 ;
	SafeEtu();
	PSAMSendOneByte(0x00);	
	PSAMSendOneByte(0xc0);
	PSAMSendOneByte(0x00);
	PSAMSendOneByte(0x00);
	PSAMSendOneByte(len);
	if(ReadData(&a,1)!=1)
	{
		EA = 1;
		return 0;	
	}
	EA = 1 ;
	i = ReadData(p,len+2);
	return (unsigned short)p[i-2]*0x100+p[i-1]; 
}	
//PSAM卡初始化	   應答:3B 6C 00 02 13 02 86 38 18 43 56 07 1E 10 2B 23
unsigned char PSAMInit()//
{
	bit a=1;
	unsigned char i;
	closeclock;
	PSAMRst=0;
	PSAMData=1;
	closeclock;
	for(i=0;i<50;i++)
	{
		etutime(FULL);	
	}
	openclock;
	for(i=0;i<50;i++)
	{
		etutime(FULL);	
	}
	PSAMRst = 1 ;
	if(ReadATR())
	{
		return 0;
	}
//	i = ReadData(aa,16);					//3b 6c 00 02 13 62 86 38 18 43 56 07 1e 10 2d 23 
//	SendStr(aa,i);							//3B 6C 00 02 13 62 86 38 18 43 56 07 1E 10 2D 23
	else
	{
		PSAMReadOneByte("1");
		ReadData("1",1);
		//發送指令
		SendCmd(1,1,1,1,1,1,"1",1);
		return 1;		
	}
}		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线网| 麻豆精品久久久| 国产亚洲一区二区三区四区| 欧美一三区三区四区免费在线看 | 欧美美女直播网站| 欧美综合久久久| 欧美亚洲国产一卡| 欧美蜜桃一区二区三区| 欧美精品久久天天躁| 精品视频123区在线观看| 欧美丝袜丝nylons| 91精品国产综合久久香蕉的特点| 4438亚洲最大| 久久综合色之久久综合| 亚洲国产精品av| 亚洲欧美日韩综合aⅴ视频| 一区二区三区在线影院| 亚洲国产精品嫩草影院| 日韩精品一级中文字幕精品视频免费观看 | 亚洲欧美偷拍另类a∨色屁股| 日本一区二区电影| 国产精品久久久久久久久免费相片 | 4438x成人网最大色成网站| 日韩午夜精品视频| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美激情综合在线| 亚洲国产一二三| 国产一区二区三区免费看 | 亚洲手机成人高清视频| 亚洲国产精品一区二区久久| 日本麻豆一区二区三区视频| 国产麻豆精品在线观看| 91在线精品一区二区三区| 欧美女孩性生活视频| 久久久777精品电影网影网| 亚洲国产精品av| 天天做天天摸天天爽国产一区| 国产伦精一区二区三区| 欧美优质美女网站| 久久久久一区二区三区四区| 亚洲最色的网站| 国产成人综合在线播放| 欧美亚洲一区二区在线| 国产日韩精品一区二区三区在线| 亚洲精品写真福利| 国产一区视频导航| 欧美日韩久久久久久| 亚洲国产激情av| 极品美女销魂一区二区三区| 色婷婷av一区| 久久久激情视频| 日韩经典一区二区| 色综合久久66| 中文字幕+乱码+中文字幕一区| 亚洲bt欧美bt精品777| 成人高清免费观看| 日韩欧美国产1| 视频在线观看一区| 91久久线看在观草草青青| 国产欧美日韩在线| 裸体在线国模精品偷拍| 欧美日韩免费视频| 国产精品区一区二区三| 国产一区二区精品久久99| 欧美另类videos死尸| 一区二区三区美女视频| 99re热视频精品| 亚洲婷婷综合色高清在线| 国产精品69毛片高清亚洲| 精品蜜桃在线看| 蜜臀av亚洲一区中文字幕| 精品视频全国免费看| 亚洲自拍偷拍av| 91国模大尺度私拍在线视频| 亚洲免费av观看| 色婷婷综合在线| 亚洲美女屁股眼交| 日本高清免费不卡视频| 亚洲一区成人在线| 91激情五月电影| 一区二区欧美国产| 欧美日韩一区高清| 日本美女一区二区| 日韩免费性生活视频播放| 免费一级欧美片在线观看| 欧美一区二区视频免费观看| 日韩成人精品在线观看| 日韩女优电影在线观看| 精品影视av免费| 国产亚洲综合色| 99久久精品免费| 一区二区三区成人| 制服丝袜成人动漫| 韩国中文字幕2020精品| 欧美国产精品一区二区| 91麻豆国产在线观看| 亚洲超碰97人人做人人爱| 日韩视频一区二区三区| 国产成人亚洲综合a∨婷婷图片 | 91丨porny丨最新| 亚洲一区二区在线免费看| 欧美日韩视频在线一区二区| 狠狠色丁香久久婷婷综| 亚洲情趣在线观看| 欧美妇女性影城| 成人开心网精品视频| 亚洲一二三区视频在线观看| 精品国产一区二区三区久久久蜜月| 国产馆精品极品| 亚洲综合色成人| 久久久综合网站| 在线日韩国产精品| 国产美女精品人人做人人爽| 亚洲欧美日本在线| xfplay精品久久| 欧美午夜在线观看| 成人h动漫精品一区二区| 无吗不卡中文字幕| 亚洲欧洲美洲综合色网| 欧美一级片在线看| 91久久久免费一区二区| 国产一区二区美女| 日韩电影在线看| 亚洲欧美日韩久久| 久久免费国产精品| 欧美一三区三区四区免费在线看 | 免费在线观看成人| 亚洲欧美成aⅴ人在线观看| 精品99999| 7777精品伊人久久久大香线蕉完整版| 国产精品亚洲一区二区三区妖精| 一区二区三区中文字幕精品精品| 久久你懂得1024| 日韩精品一区国产麻豆| 欧美三电影在线| 色哟哟一区二区三区| 成人美女在线观看| 国产精品影视在线| 国产一区二区在线免费观看| 日韩制服丝袜av| 亚洲高清久久久| 亚洲激情中文1区| 亚洲日本在线看| 国产精品短视频| 亚洲欧洲精品成人久久奇米网| 久久久91精品国产一区二区三区| 精品人伦一区二区色婷婷| 欧美一区二区三区四区久久 | 蜜桃av一区二区三区电影| 一区二区久久久久久| 亚洲精品一卡二卡| 亚洲精品国产无套在线观| 亚洲欧美日本在线| 亚洲精品成人a在线观看| 日韩理论片网站| 亚洲激情网站免费观看| 樱花影视一区二区| 亚洲在线视频网站| 亚洲成人免费电影| 日韩精品成人一区二区在线| 蜜桃视频一区二区| 美女视频一区二区三区| 精品影视av免费| 国产99久久精品| 99vv1com这只有精品| 色老汉av一区二区三区| 欧美在线小视频| 91精品国产乱| 2024国产精品| 国产精品国模大尺度视频| 最新日韩av在线| 午夜av区久久| 精品综合久久久久久8888| 国产成人免费视频网站高清观看视频| 成人永久免费视频| 91久久香蕉国产日韩欧美9色| 欧美美女网站色| 久久精品人人做| 亚洲一级二级在线| 久久精品国产精品亚洲精品| 国产成人精品综合在线观看| 色婷婷久久综合| 日韩欧美在线123| 国产精品久久99| 日韩高清中文字幕一区| 国产成人精品免费网站| 91久久线看在观草草青青| 精品国产sm最大网站免费看| 亚洲三级久久久| 久久成人久久爱| 欧美亚洲综合一区| 精品国产a毛片| 亚洲宅男天堂在线观看无病毒| 激情小说欧美图片| 欧美主播一区二区三区| 中文字幕免费不卡| 免费成人av在线播放| 99精品国产99久久久久久白柏| 91精品久久久久久蜜臀| 亚洲欧美在线视频|