⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 15693 hf reader 伟根26接口
💻 C
字号:
#include "typedef.h"
#include "comr6c.h"
#include "time.h"
#include "ll.h" 

#define US100	18
#define US1500  620
#define SCANEN  20
//#define SCANEN  100

void testSendIsoCmd(void);
void delay(uint i);
void wg26Output(uchar *p);

void outputTestData(uchar *p,uchar len )
{
	uchar i;
	ES = 0;
	TI = 0;
	snt = 1;
	for(i=0;i<len;i++)
	{
		SBUF = p[i];
		while(!TI);
		TI = 0;
	}
	ES = 0;snt = 0;
}

void main()
{	
	uint i;
	uchar j;
	uchar testdata[5] = {0xaa, 0xbb,0xcc,0xdd,0xee};
	
	for(i=0;i<0xfff;i++);
	initialization();
	switchon();       for(i=0;i<0xfff;i++); 	
	j = rd_ConReg();
	outputTestData(testdata,5);
	wdi = !wdi;
	while(1)
	{ 	
		testSendIsoCmd();		
		led_spker_out();		
		wdi = !wdi;	
	}
}
void delay(uint i)
{
	uint time;
	wdi = !wdi;
	time = i;
	time = 0xffff-time;
	TL1 = time&0xff;
	TH1 = (time>>8)&0xff;
	ET1 = 0;
	TF1 = 0;
	TR1 = 1;
	while(!TF1);
	TF1 = 0;
	TR1 = 0;
}
void wg26Output(uchar *p)
{
	uchar even_1 = 0;
	uchar odd_26 = 0;
	uchar i,j,out[3];

	bit bit1= 0,bit2 = 0,bit3 = 0;
	
	for(i=0;i<3;i++)
	{
		out[i] = *p;
		p++;
	}

	P = 0;ACC = out[0];     bit1 = P;
	P = 0;ACC = out[1]&0xf0;bit2 = P;
	bit3 = bit1^bit2;
	if(bit3)even_1 = 1; 
	else even_1 = 0;

	P = 0;ACC = out[1]&0x0f;bit1 = P;
	P = 0;ACC = out[2];		bit2 = P;
	bit3  = bit1^bit2;
	if(bit3)odd_26 = 0; 
	else odd_26 = 1;

	wg_hold = 0;
	if(even_1)wg_data = 0;
	else 	  wg_clk =0;
	delay(US100);
	wg_clk = 1;
	wg_data = 1;
	delay(US1500);
	for(j=0;j<3;j++)
	{
		for(i=0;i<8;i++)
		{
			out[j] = out[j] << 1;
			if(CY)wg_data = 0;
			else  wg_clk  = 0;
			delay(US100);
			wg_data = 1;
			wg_clk  = 1;
			delay(US1500);
		}
	}
	if(odd_26)wg_data =0;
	else 	wg_clk = 0;
	delay(US100);
	wg_clk = 1;
	wg_data = 1;
	delay(US1500);
	wg_hold = 1;
}
void testSendIsoCmd(void)
{
	uint i;
	uchar uid[3];
//uid[0]:deviceAddr
//uid[1]:uid0
//uid[2]:uid1
	if(pwUpScanCnt > SCANEN)	
	{	
		pwUpScanCnt = 0;
		switchon();  for(i=0;i<0x03ff;i++);
		userCardOk = 0;
		send_ISO_cmd(0x01,Get_sysInf_cmd,6,0);
		if(userCardOk && (pcdata[3] != 0x01))
		{	
//			outputTestData(pcdata+5,8);
			uid[0] = deviceAddr;
			for(i=0;i<2;i++)
				uid[i+1] = pcdata[6-i];
			outputTestData(uid,3);
			wg26Output(uid);			
			userCardOk = 0;	
			b_spker = 1;
		}
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -