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

📄 newcard.c

📁 此程序为13.56MHz的RFID底层读写卡程序
💻 C
字号:
#include "hardware.h"
#include "x5045.h"
extern void W_DOG(void);
/*确定F的值*/
uint Calculate_F(uchar ta1)
{
   uint idata f;
   W_DOG();
   switch(ta1&0XF0)
    {
     case 0x00:
               f=372;
               break;
     case 0x10:
               f=372;
               break;
     case 0x20:
               f=558;
               break;
     case 0x30:
               f=744;
               break;
     case 0x40:
               f=1116;
               break;
     case 0x50:
               f=1488;
               break;
     case 0x60:
               f=2232;
               break;
     case 0x90:
               f=512;
               break;
     case 0xA0:
               f=768;
               break;
     case 0xB0:
               f=1024;
               break;
     case 0xC0:
               f=1536;
               break;
     case 0xD0:
               f=2048;
               break;

     default : f=372;
    }
    return f;

}

uchar Calculate_D(uchar ta1)
{
  uchar d;
   W_DOG();
   switch(ta1&0X0f)
    {

     case 0x01:
               d=1;
               break;
     case 0x02:
               d=2;
               break;
     case 0x03:
               d=4;
               break;
     case 0x04:
               d=8;
               break;
     case 0x05:
               d=16;
               break;
     case 0x06:
               d=32;
               break;
     case 0x08:
               d=12;
               break;
     case 0x09:
               d=20;
               break;
     default : d=1;
    }

    return d;
}

uchar Calculate_Baud(uint fa,uchar da)
{
 uchar baudrate;
 W_DOG();
 if(fa==372&da==1) {baudrate=0; return baudrate;}       //for 9600pbs
 if(fa==372&da==4) {baudrate=1; return baudrate;}       //for 38400pbs
 if(fa==512&da==8) {baudrate=2; return baudrate;}       //for 56kpbs
 if(fa==372&da==8) {baudrate=3; return baudrate;}       //for 76800pbs
 if(fa==512&da==1) {baudrate=4; return baudrate;}       //for 7kpbs   512/f
 else baudrate=1;
 return baudrate;
 }


/*ulong Calculate_T0_TimeOut(uchar a,uchar b)       //a__>W1,b-->D
{
 ulong idata timeoutT0;
  timeoutT0=(ulong)960*(ulong)a*(ulong)b;
  return timeoutT0;
}
ulong Calculate_T1_TimeOut1(uchar a)
{
 ulong idata timeoutT1;
 uchar i;
 W_DOG();
  timeoutT1=(ulong)2;
  for(i=1;i<a;i++)
  timeoutT1<<=1;
  return timeoutT1;
}

ulong Calculate_T1_TimeOut2(uchar bwi,uchar d,uint f)
{
 ulong idata timeoutT1;
 uchar i;
 W_DOG();
  timeoutT1=(ulong)2;
  for(i=1;i<bwi;i++)
  timeoutT1<<=1;
  timeoutT1=timeoutT1*(ulong)960/(ulong)f;
  timeoutT1*=(ulong)d*(ulong)372;
  return timeoutT1;
}


/********************************************************************
* Function:		CalculateCRC
*																	*
* input:                data_len 		   												*
* output:		ch                          *
********************************************************************/
uchar Calc_xor_pps(uchar data_len,uchar *buf5)
{
	uchar i,ch=0;
        W_DOG();
	for(i=0;i<data_len;i++)
	{
	   ch=ch^buf5[i];
	}


	return ch;
}

⌨️ 快捷键说明

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