📄 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 + -