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

📄 main.c

📁 RC5000读卡芯片和LPC213X的源码参考程序 内含详细说明
💻 C
字号:
#define	main_GLOBALS
#include "config.h"

static void main_INIT(void);
uint8 DataBfr[16];
uint8 Card_Snr[4];

/*
*********************************************************************************************************
** 函数名称:main()
** 函数功能:用于测试ZLG500C模块使用函数库。
** 使用说明:改变Test_Code的值,分别测试
**			 协议控制类函数----Test_Code = 0
**		     设备控制类函数----Test_Code = 1
**			 TypeA命令函数 ----Test_Code = 2
*********************************************************************************************************
*/

int main(void)
{
	uint8 Test_Code = 2;
	
	main_INIT();
	
	SlvAddr = 1;
	
	while(1)
	{
		/* 协议控制类 */
		if(Test_Code == 0)
		{	
			GetDvcSnr(DataBfr);
			SetSlvAddr(1,DataBfr);
			GetSlvAddr(&SlvAddr,DataBfr);
			BaudNum = 7;
			SetBaud(BaudNum);
			DataBfr[0] = 0;
			DataBfr[1] = 0;
			FindSlv(1,16,DataBfr,DataBfr+1);
		}
		/* 设备控制类 */
		if(Test_Code == 1)
		{
			GetDvcInfo(DataBfr);
			PCDClose();
			PCDConfig();
			DataBfr[0] = 0xff;
			DataBfr[1] = 0xff;
			DataBfr[2] = 0xff;
			DataBfr[3] = 0xff;
			DataBfr[4] = 0xff;
			DataBfr[5] = 0xff;
			PCDLoadKey(KEYA,0,DataBfr);
			PCDWriteReg(0x11,0x5b);
			PCDReadReg(0x12,DataBfr);
			DvcReadIO(DataBfr);
			DvcClearIO(0x03,50);
			DvcSetIO(0x0f,0);
			DvcSurgeIO(0x03,0x00,0x03,50,50,25,15,3);
			DvcSetAutoDctct(ISO14443A,REQALL,0x03,0,0);
			
		}
		/* TypeA命令 */
		if(Test_Code == 2)
		{
			if(PiccRequest(REQSTD,DataBfr)!=OK)	continue;
			if(PiccAnticoll(SELCODE1,0,Card_Snr)!=OK)	continue;
			if(PiccSelect(SELCODE1,Card_Snr,DataBfr)!=OK)	continue;
			if(PiccAuthE2(KEYA,Card_Snr,0,4)!=OK)	continue;
			if(PiccRead(4,DataBfr)!=OK)	continue;
			DataBfr[0] = 0x10;	DataBfr[4] = 0xef;	DataBfr[8] = 0x10;
			DataBfr[1] = 0x0;	DataBfr[5] = 0xff;	DataBfr[9] = 0x0;
			DataBfr[2] = 0x0;	DataBfr[6] = 0xff;	DataBfr[10] = 0x0;
			DataBfr[3] = 0x0;	DataBfr[7] = 0xff;	DataBfr[11] = 0x0;
			DataBfr[12] = 0x04;	DataBfr[13] = 0xfb;	DataBfr[14] = 0x04;	DataBfr[15] = 0xfb;
			if(PiccWrite(4,DataBfr)!=OK)	continue;
			DataBfr[0] = 0x0;
			if(PiccRead(4,DataBfr)!=OK)		continue;
			DataBfr[0] = 0x01;
			DataBfr[1] = 0x0;
			DataBfr[2] = 0x0;
			DataBfr[3] = 0x0;
			if(PiccValue(DECREMENT,4,DataBfr,5)!=OK)	continue;
			if(PiccValue(INCREMENT,4,DataBfr,6)!=OK)	continue;
			if(PiccRead(5,DataBfr)!=OK)		continue;
			if(PiccRead(6,DataBfr)!=OK)		continue;
			PiccHalt();
			DvcSurgeIO(0x03,0x00,0x03,50,50,25,15,3);
			
		}
	}
}

/*
*********************************************************************************************************
** 函数名称:main_INIT()
** 函数功能:初始化:使能IRQ中断、超时值设置、串口0初始化。
*********************************************************************************************************
*/
void main_INIT()
{
	IRQEnable();	//使能IRQ中断 
	
	/* 单片机内部资源初始化 */
	Timer1_timeout_init(Delay_5ms);
	UART0_Init();	//串行口
}



void memcopy(uint8 *DBfr,uint8 *SBfr,uint8 Len)
{
	uint8 i;

	for(i=0;i<Len;i++)
	{
		DBfr[i] = SBfr[i];
	}
}

#if memcomp_en
int8 memcomp(uint8 *DBfr,uint8 *SBfr,uint8 Len)
{
	uint8 i;

	for(i=0;i<Len;i++)
	{
		if(DBfr[i] > SBfr[i])
			return 1;
		if(DBfr[i] < SBfr[i])
			return -1;
	}
	return 0;
}
#endif

⌨️ 快捷键说明

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