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

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

?? u2270.c

?? 從網上找的讀EM卡芯片U2270的源程序
?? C
字號:
/*H4001只讀卡讀碼程序*/
/******************頭文件********************/

#include <sst89x5xxrd2.h>
#include <absacc.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int

sbit RF_DATA_IN = P3^4; //接收來至U2270B的數據"Output"
sbit SO = P3^1; //單片機輸出數據到用戶接口
sbit SCK= P1^0; //同步時鐘輸出
sbit CP= P1^7; //卡存在信號輸出
sbit MSEL= P1^2; //數據發送方式選擇
sbit WATCHDOG = P2^1; //看門狗
sbit DD = P2^0; //蜂鳴器

/****************全局變量***********************/

uchar data Read_RF_Data[11]; //暫存從U2270B上接收的數據
uchar data ID_Data[6]; //暫存經效驗后的正確數據
uint data TIMER_1=0;



bit Check_Data_bit; //效驗請求標志位

/****************函數列表***********************/

void Recive_RF_Data(void); 
void Check_Data(void);
void Clern_Number(void);
void Send_RS232net(uchar Data[],uchar Num);
void delay0_2ms(uint count);
void delay1ms(uint count);
void dida(uchar j);

void Data_start(void)
{
	TMOD=0x21; //T0方式1,T1工作于方式2
	TH1=0x00; //初始化T1計時器
	TL1=0x00;
	TR1=0;
	SCON=0x50; //串行口初始化
	PCON=0x80; //SMOD位設置
	TH0=0x00; //初始化T0計時器
	TL0=0x04;
	TR0=0;
	ES=1; //開放串行口中斷
	EA=1; //開放總中斷
}


/**********************************************/


/*主函數*/


/**********************************************/


void main(void)


{
	delay1ms(100);
	Data_start();
	while(1)
	{
		WATCHDOG=~WATCHDOG;
		Recive_RF_Data(); //調用接收RF數據函數	
		if(Check_Data_bit==1) //如果此位為1,有一組數據申請效驗
		{
			Check_Data(); //調用數據效驗函數
			Check_Data_bit=0;
		}
	}

}


/*********************************************/


/*接收RF數據*/


/*********************************************/
void Recive_RF_Data(void) 
{
/////////////////////定義局部變量
uchar header,pc;
uchar temp;
uchar temp1;
uint temp2;
uchar ByteCounter; //字節計數器
uchar *PData;
uchar BitCounter; //位計數器
////////////////////初始化變量值
header=0;pc=4;
PData=Read_RF_Data;
temp=0;
temp1=0;
ByteCounter=0;
BitCounter=5; 
/////////////////////檢測一個穩定的低電平
str:
WATCHDOG=~WATCHDOG;
if(RF_DATA_IN==0) 
if(RF_DATA_IN==0) 
if(RF_DATA_IN==0) 
if(RF_DATA_IN==0) 
if(RF_DATA_IN==0) 
{
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	////////////////////檢測一個起始位電平
	while(RF_DATA_IN==0); //當電平由低向高跳變時啟動計時器
	TR0=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	////////////////////檢測9個"header"
	while(RF_DATA_IN==1);
	TR0=0;
	TF0=0;
	TIMER_1=TH0;
	TIMER_1=(TIMER_1<<8)+TL0;
	TH0=0x00;
	TL0=0x04;
	temp2=0x1e3;
	if(TIMER_1>temp2) // >520us
	{
		goto str;
	}
	temp2=0x1c8;
	if(TIMER_1<temp2) // <490us
	{
		goto str;
	}
	do
	{
		WATCHDOG=~WATCHDOG;
		TIMER_1=0;
		while(RF_DATA_IN==0);
		TR0=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		while(RF_DATA_IN==1);
		TR0=0;
		TF0=0;
		TIMER_1=TH0;
		TIMER_1=(TIMER_1<<8)+TL0;
		TH0=0x00;
		TL0=0x04;
		temp2=0x106;
		if(TIMER_1>temp2)// >280us
		{
			header=0;
			goto str;
		}
		temp2=0xd8;
		if(TIMER_1<temp2)// <230us
		{
			header=0;
			goto str;
		}
		header++;
	}while(header<8);
	TR0=0;
	TF0=0;
	///////////////////如果9個"header"都對,開始接收卡內數據
	TH0=0xfe; //time:300us
	TL0=0xeb;
	TR0=1;
	if(header==8)
	{
		do
		{
			do
			{ 
				while(TF0==0); //等待一個位周期
				TF0=0; 
				if(RF_DATA_IN==1) temp=1;
				else temp=0;
				while(RF_DATA_IN==temp) //檢測電平跳變否?
				{
					if(TF0==1) //如果300us計時到還未跳變,視為非法電平!!!
					{
						TR0=0;
						TF0=0;
						goto str;
					}
				}
				TH0=0xfe; //time:300us
				TL0=0xeb;
				temp=~RF_DATA_IN;
				temp1=(temp1<<1)|temp;
				BitCounter--; 
			}while(BitCounter); //一個字節完否
			*(PData+ByteCounter)=temp1; //將一字節數據存入緩存數組
			temp1=0;
			BitCounter=5;
			ByteCounter++;
			WATCHDOG=~WATCHDOG;
		}while(ByteCounter<10);
		do
		{ 
			WATCHDOG=~WATCHDOG;
			while(TF0==0); //等待一個位周期
			TF0=0;
			if(RF_DATA_IN==1) temp=1;
			else temp=0;
			while(RF_DATA_IN==temp) //檢測電平跳變否?
			{
				if(TF0==1) //如果300us計時到還未跳變,視為非法電平!!!
				{
					TR0=0;
					TF0=0;
					goto str;
				}
			}
			TH0=0xfe; //time:300us
			TL0=0xeb;
			temp=~RF_DATA_IN;
			temp1=(temp1<<1)|temp;
			pc--; 
		}while(pc); //一個字節完否
		Read_RF_Data[10]=temp1; //將一字節數據存入緩存數組
		///////////////////檢測最后一個停止位
		while(TF0==0);
		TR0=0;
		TF0=0;
		if(RF_DATA_IN==1) temp=1;
		else temp=0;
		while(RF_DATA_IN==temp) //檢測電平跳變否?
		{
			if(TF0==1) //如果300us計時到還未跳變,視為非法電平!!!
			{
				TR0=0;
				TF0=0;
				goto str;
			}
		}
		temp=~RF_DATA_IN;
		if(temp==0) //如果停止位正確
		{
			Check_Data_bit=1; //置效驗請求標志
		}
		else //如果停止位不正確
		{
			Clern_Number(); //清除
		}
	}
}
}


/*********************************************/
/*效驗數據*/
/*********************************************/
void Check_Data(void)
{
/////////////////////定義局部變量
uchar temp;
uchar temp1;
uchar ByteCounter; //數組計數器
uchar ByteCounter1;
uchar *PData;
uchar *PData1;
////////////////////初如化變量值
PData=Read_RF_Data;
PData1=ID_Data;
temp=0;
temp1=0;
ByteCounter=0;
ByteCounter1=0;
/////////////////////循環效驗 
WATCHDOG=~WATCHDOG;
/////////////////////行校驗
for(ByteCounter1=0;ByteCounter1<5;ByteCounter1++)//有5個字節數據
{
	temp=(((*(PData+ByteCounter))&0x10)>>4)+(((*(PData+ByteCounter))&0x08)>>3)+(((*(PData+ByteCounter))&0x04)>>2)+(((*(PData+ByteCounter))&0x02)>>1); 
	if((temp&0x01)==((*(PData+ByteCounter))&0x01))//效驗高4位
	{
		temp1=(*(PData+ByteCounter)&0xfe)<<3;
		ByteCounter++;
		temp=(((*(PData+ByteCounter))&0x10)>>4)+(((*(PData+ByteCounter))&0x08)>>3)+(((*(PData+ByteCounter))&0x04)>>2)+(((*(PData+ByteCounter))&0x02)>>1); 
		if((temp&0x01)==((*(PData+ByteCounter))&0x01))//效驗高4位
		{
			*(PData1+ByteCounter1)=temp1|((*(PData+ByteCounter)&0xfe)>>1);//高低位生成一個字節存入數組
			ByteCounter++;
		}
		else
		{
			ByteCounter1=5;//只要有一組不對則退出效驗
			Clern_Number();//并清所有數據
		}
	}
	else
	{
		ByteCounter1=5;//只要有一組不對則退出效驗
		Clern_Number();//并清所有數據
	}
	WATCHDOG=~WATCHDOG;
}

/////////////////////列校驗
//......因沒有必要所以先省略此處.........//
/////////////////////生成校驗和,并發送出去
if(ByteCounter==10)
{
	ID_Data[5]=ID_Data[0]+ID_Data[1]+ID_Data[2]+ID_Data[3]+ID_Data[4];//生成校驗和
	if(MSEL==0) //此腳如果為低電位,為異步通信方式發送數據
	{
		CP=0;
		delay0_2ms(1);
		Send_RS232net(ID_Data,6); //調用串口發送函數
		delay0_2ms(1);
		CP=1;
	}
	Clern_Number();
	dida(1);
	delay0_2ms(1000);//*****(正確讀取一張卡號后要等待約一秒后再重新掃描)*****
}

}


//************************************************************
/*清暫存器*/
//************************************************************
void Clern_Number(void)
{
	WATCHDOG=~WATCHDOG;
	Read_RF_Data[0]=0;
	Read_RF_Data[1]=0; 
	Read_RF_Data[2]=0; 
	Read_RF_Data[3]=0; 
	Read_RF_Data[4]=0; 
	Read_RF_Data[5]=0; 
	Read_RF_Data[6]=0; 
	Read_RF_Data[7]=0; 
	Read_RF_Data[8]=0; 
	Read_RF_Data[9]=0; 
	Read_RF_Data[10]=0; 

	ID_Data[0]=0;
	ID_Data[1]=0;
	ID_Data[2]=0;
	ID_Data[3]=0;
	ID_Data[4]=0;
	ID_Data[5]=0;
}

//**********************************************************
/*串行口發送,接收程序*/
//**********************************************************
void Send_RS232net(uchar Data[],uchar Num) //串行口數據發送
{
	uchar i=0;
	uchar *PData;
	PData=Data;
	WATCHDOG=~WATCHDOG;
	TH1=0xf3; //串行口波特率2400b/s
	TL1=0xf3;
	TR1=1;
	for(i=0;i<Num;i++)//有Num組號碼要發送
	{
		SBUF=*(PData+i);
		while(TI==0);TI=0;//等待數據發送出去
		delay0_2ms(1);//等待后再發送
	}
	TR1=0;
}
//*****************************************************
/*延時0.2ms*count*/
//*****************************************************
void delay0_2ms(uint count)
{
	uint k;
	while(count--!=0)
	{
		for(k=0;k<50;k++)
		{
			WATCHDOG=~WATCHDOG;
		}

	}
}

void delay1ms(uint count)
{
	uint k;
	while(count--!=0)
	{
		for(k=0;k<250;k++)
		{
			WATCHDOG=~WATCHDOG;
		}
	}

}


//*****************************************************
/*鳴叫聲*/
//*****************************************************
void dida(uchar j)
{
	uchar i; 
	for(i=0;i<j;i++)
	{
		DD=~DD;
		delay1ms(30);
		DD=~DD;
		delay1ms(30); 
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九**精品视频免费播放| 国产校园另类小说区| 一区二区三区在线观看国产| 99久久精品免费看国产免费软件| 日本成人中文字幕在线视频| 欧美精品v日韩精品v韩国精品v| 欧美日韩激情一区二区三区| 亚洲国产aⅴ天堂久久| 日本韩国欧美国产| 亚洲成av人片一区二区三区| 欧美日韩免费在线视频| 视频一区视频二区中文| 精品久久久久久最新网址| 国产乱码字幕精品高清av| 国产精品美女一区二区三区| 91麻豆高清视频| 丝袜亚洲另类丝袜在线| 欧美精品一区二区三区四区| 国产精品一二三四| 一区二区三区欧美视频| 日韩一级片网址| 国产.欧美.日韩| 亚洲午夜激情网页| 精品88久久久久88久久久| 不卡av在线网| 日本网站在线观看一区二区三区| 91在线一区二区三区| 亚洲福利视频一区| 久久久三级国产网站| 色妞www精品视频| 久久成人羞羞网站| 亚洲欧美成aⅴ人在线观看| 5月丁香婷婷综合| 从欧美一区二区三区| 婷婷久久综合九色综合绿巨人 | 午夜精品一区二区三区免费视频| 国产盗摄一区二区三区| 中文字幕亚洲成人| 7777精品伊人久久久大香线蕉超级流畅| 亚洲欧美经典视频| 欧美一区二区啪啪| eeuss影院一区二区三区| 色综合 综合色| 精品一区二区在线观看| 亚洲精品五月天| 日韩免费看网站| 欧美在线观看你懂的| 国产激情一区二区三区四区| 亚洲成年人影院| 亚洲免费观看高清完整版在线观看| 成人黄色综合网站| 久久精品国产一区二区| 亚洲一区二区在线视频| 久久久久久久综合日本| 91精品国产综合久久久蜜臀图片 | 日本高清不卡aⅴ免费网站| 久久91精品久久久久久秒播| 亚洲成人av资源| 亚洲欧洲日本在线| 欧美www视频| 欧美一区二区三区免费视频| 色婷婷久久99综合精品jk白丝| 亚洲精品国产视频| 国产人妖乱国产精品人妖| 精品国产乱码久久久久久夜甘婷婷| 国精产品一区一区三区mba桃花 | 日本伦理一区二区| 成人午夜大片免费观看| 激情六月婷婷久久| 美女视频第一区二区三区免费观看网站| 91精品国产入口在线| 欧洲日韩一区二区三区| 一本一本久久a久久精品综合麻豆| 亚洲精品乱码久久久久| 亚洲欧洲www| 1区2区3区欧美| 中文字幕中文乱码欧美一区二区| 欧美伊人精品成人久久综合97| 视频精品一区二区| 石原莉奈在线亚洲三区| 午夜精品免费在线观看| 日韩av电影免费观看高清完整版在线观看| 精品国产污污免费网站入口 | 国产在线播放一区二区三区| 日韩精品免费专区| 奇米777欧美一区二区| 欧美96一区二区免费视频| 免费亚洲电影在线| 久久超碰97人人做人人爱| 久久99国内精品| 极品美女销魂一区二区三区| 韩国av一区二区| 成人性视频网站| 91女神在线视频| 精品视频在线免费观看| 欧美高清视频在线高清观看mv色露露十八| 国产精品综合视频| 国产精品亚洲一区二区三区在线| 亚洲主播在线观看| 亚洲伊人色欲综合网| 日韩高清欧美激情| 麻豆精品视频在线观看视频| 国产精品综合网| 91小视频在线免费看| 欧美日韩国产精品成人| 欧美va亚洲va香蕉在线| 国产欧美日韩另类一区| 亚洲精品成人在线| 日韩电影一区二区三区四区| 国产一区二区三区电影在线观看| 日韩高清中文字幕一区| 国产伦精品一区二区三区视频青涩| 亚洲激情第一区| 久久99精品国产.久久久久| 高潮精品一区videoshd| 欧美伊人久久久久久久久影院| 国产91精品欧美| 欧美色视频一区| 久久久国产精品不卡| 亚洲精品写真福利| 天堂成人国产精品一区| 国产成人8x视频一区二区 | 亚洲婷婷在线视频| 首页国产欧美久久| 成人a级免费电影| 一区二区欧美国产| 日韩av不卡在线观看| 99久久精品99国产精品| 欧美日韩在线观看一区二区 | 欧美午夜电影在线播放| 精品国产1区2区3区| 一区二区三区在线免费| 美女精品自拍一二三四| 色综合久久久久网| 久久综合久色欧美综合狠狠| 亚洲精品视频一区| 国产精品888| 91精品婷婷国产综合久久| 国产精品成人午夜| 国内偷窥港台综合视频在线播放| 狠狠色综合播放一区二区| 欧美性色黄大片| 国产精品久久久久久久久动漫| 久久精品一级爱片| 日韩精品一级中文字幕精品视频免费观看 | 免费在线视频一区| 一本一本大道香蕉久在线精品| 色系网站成人免费| 国产亚洲精品中文字幕| 麻豆精品一区二区| 6080午夜不卡| 亚洲人快播电影网| 成人午夜av在线| 国产婷婷一区二区| 久久精品国产免费看久久精品| 国产精品一区二区x88av| 日韩欧美一区二区视频| 亚洲一区二区偷拍精品| av网站免费线看精品| 国产亚洲精品福利| 国产一区二区网址| 久久午夜羞羞影院免费观看| 另类小说一区二区三区| 69久久夜色精品国产69蝌蚪网| 精品久久久久av影院| 全国精品久久少妇| 日韩一二三区不卡| 日本伊人精品一区二区三区观看方式| 麻豆精品一区二区三区| 日韩西西人体444www| 日韩和欧美一区二区三区| 欧美群妇大交群中文字幕| 亚洲国产综合色| 欧美日韩黄色一区二区| 亚洲成人av资源| 欧美一区日韩一区| 久久超级碰视频| 国产午夜精品久久久久久久 | 欧美亚洲综合色| 亚洲一级二级在线| 欧美日韩国产天堂| 日韩av一级片| 久久久国产精华| 国产91丝袜在线播放0| 中文字幕五月欧美| 欧美怡红院视频| 日本va欧美va精品发布| 日韩精品资源二区在线| 国产麻豆精品在线观看| 国产精品国产三级国产普通话99| 久久精品国产一区二区三区免费看| 99国产精品久久| 亚洲观看高清完整版在线观看| 国产91精品精华液一区二区三区 | 国内外成人在线视频| 国产色91在线| 色av成人天堂桃色av| 亚洲电影在线播放| 久久亚洲捆绑美女| www.欧美日韩|