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

📄 main.c

📁 smart2300平台全部驱动例程 LPC2378所有中间件
💻 C
字号:
#include <string.h>
#include "config.h"
#include "zlg500.h"

#define BUZZER 	(1 << 27)	// 蜂鸣器控制端口P1.27,需用跳线帽短接JP1的P1.27和BEEP两排针

char	szDevInfo[20];
uint16	nCardType;
uint32	nCardNumber;
uint8 	DataBuf[16];
uint8 	Key[6];
int32	nValue;
uint8	SAK;
uint8	nTxMode;


// 延时函数
void Delay(int ms)
{
	int i;	
	while (ms-- > 0)
	{
		for (i = 10000; i > 0; i--);
	}
}

// 控制蜂鸣器鸣叫
void Beep(uint8 nCount)
{
	while (nCount-- > 0)
	{
		IO1CLR = BUZZER;
		Delay(200);
		IO1SET = BUZZER;
		Delay(100);
	}
}

int main (void)
{
	int i;	
	
	IO1DIR |= BUZZER;
	IO1SET  = BUZZER;

	// 初始化软件库
	PCD_Init();
	
	// 获取读卡模块信息
	PCD_GetDevInfo(szDevInfo, sizeof(szDevInfo));
	
	Key[0] = 0xFF;
	Key[1] = 0xFF;
	Key[2] = 0xFF;
	Key[3] = 0xFF;
	Key[4] = 0xFF;
	Key[5] = 0xFF;

	while(1)
	{
		// 请求卡片,获得卡片类型
		if (PICC_Request(REQ_STD, &nCardType) != OK)
		{
			continue;
		}
		
		// 卡片防碰撞, 获得卡片序列号
		PICC_Anticoll(SEL_CODE1, &nCardNumber);
		
		// 选择卡片
		PICC_Select(SEL_CODE1, nCardNumber, &SAK);
		
		// 蜂鸣器叫一声
		Beep(1);
		Delay(2000);

		// 密钥验证
		if (PICC_AuthKeyDirect(Key, KEYA, nCardNumber, 4) == OK)
		{
			// 读块4原来的数据
			PICC_ReadBlock(4, DataBuf);
			
			// 写数据到块4
			for (i = 0; i < 16; i++)
			{
				DataBuf[i] = i;
			}		
			PICC_WriteBlock(4, DataBuf);
			
			// 从块4读回前面所写的数据
			memset(DataBuf, 0, sizeof(DataBuf));
			PICC_ReadBlock(4, DataBuf);
			
			
			// 写数值1到块4
			PICC_WriteValue(1, 4);
			
			// 把块4的数值增加1写到块5,再读回来看是否正确
			PICC_OperateValue(INCREMENT, 1, 4, 5);
			PICC_ReadValue(&nValue, 5);
			
			// 把块4的数值减少1写到块6,再读回来看是否正确
			PICC_OperateValue(DECREMENT, 1, 4, 6);
			PICC_ReadValue(&nValue, 6);
			
			// 挂起卡片
			PICC_Halt();
			
			// 蜂鸣器叫两声
			Beep(2);
		}		

		// 设置自动检测卡片——串口主动发回数据,TX交替,直接密码验证,密钥A,读块4
		PICC_AutoDetect(AD_SERIAL_OUT, AD_ALTER_TX, REQ_STD, 'F', KEYA, Key, 0, 4);
		// 等待直到接收到自动检测卡片的数据
		while (PICC_ReceiveDetectData(&nTxMode, &nCardType, &nCardNumber, DataBuf) != OK);
		
		PICC_Halt();
		
		// 蜂鸣器叫三声
		Beep(3);
	}
	
	return 0;
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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