?? main.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 + -