?? main.c
字號:
#include <REGX52.H>
#include <string.h>
#include <stdio.h>
#include <absacc.h>
#include <intrins.h>
#include <RC500Err.h>
#include <RC500Reg.h>
#include <RC500.h>
void printchar(unsigned char ch)
{
if(ch>=0&&ch<=9) ch=ch+'0';
else if(ch>=10&&ch<=15) ch=ch+'A'-10;
putchar(ch);
}
void printhex(unsigned char hex)//以十六進制格式輸出1個字節
{
unsigned char c;
c=hex;
c=c>>4;
printchar(c);
c=hex;
c=c&0x0F;
printchar(c);
}
void CardLoop()
{
unsigned char p[4];
unsigned char sn[4];
unsigned char type;
unsigned char i;
if(M500PiccCommonRequest(PICC_REQIDL,p)!=0) //尋卡
return; //無卡時退出
if(p[0]==2)
type=MifareProCard; // Mifare Pro 卡
else if(p[0]==4)
type=MifareOneCard; // Mifare One 卡
else if(p[0]==16)
type=MifareLightCard; // Mifare Light 卡
else
return; //未知
if(M500PiccCascAnticoll(0,sn)!=0) //卡防沖突
return;
if(M500PiccCascSelect(sn,p)!=0) //選擇卡
return;
M500PiccHalt(); //終止卡操作
SPK=0;
LED=0;
printf("SN is 0x");
for(i=0;i<4;i++)
printhex(sn[i]);
putchar('\n');
delay_ms(200);
SPK=1;
LED=1;
delay_ms(50);
}
void init(void)
{
LED=0;
SPK=0;
TMOD=0x0F;
TMOD=0x20;
TH1=0xFD;
SCON=0x50;
PCON=0x00;
TR1=1;
TI=1;
EA=1;
printf("Start\n");
MfConfig();
delay_ms(200);
SPK=1;
LED=1;
}
void main()
{
init();
for(;;)
CardLoop();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -