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

📄 mfypps.c

📁 此程序为13.56MHz的RFID底层读写卡程序
💻 C
字号:
#include <intrins.h>
#include <string.h>
#include "Hardware.h"
#include "newcard.h"
#include "cardhead.h"
extern void W_DOG(void);
extern void  SendResponse(uchar status,uchar len,uchar *datapr);
extern uchar  xdata  ComBuffer[MAXLEN];
extern uint   F;
extern uchar idata D;
extern uchar idata Baudrate;
extern uchar xdata slot1_baud;

/**************************************************************************************/
void ModifyBaudrate12(void )    //2004.7.7 pps comand /
{
       uchar LEN1,LEN2,Status,i,j;
       uchar xdata buf[10],buf2[10];
       W_DOG();
       if(ComBuffer[3]==1)           //slot no.
       {
          switch (slot1_baud)
          {
          case 0x00:               //for slot NO.1 9600pbs
             LEN1=ComBuffer[1]-2;
             LEN2=LEN1+1;
             memset(buf,0xff,16);
             memcpy(buf,ComBuffer+4,LEN1);
             buf[LEN1]=Calc_xor_pps(LEN1,buf);
             memset(buf2,0x00,16);
             for(i=0;i<LEN1+1;i++)
                Status=I_send4(buf[i]);
             for(i=0;i<LEN2;i++)
             {
                Status=I_receive4(buf2+i);
                if(Status)  break;
             }
             break;

          case 0x01:             //for slot NO.1 38400pbs
             LEN1=ComBuffer[1]-2;
             LEN2=LEN1+1;
             memset(buf,0xff,16);
             memcpy(buf,ComBuffer+4,LEN1);
             buf[LEN1]=Calc_xor_pps(LEN1,buf);
             memset(buf2,0x00,16);
             for(i=0;i<LEN1+1;i++)
                Status=I_send1(buf[i]);
             for(i=0;i<LEN2;i++)
             {
                Status=I_receive1(buf2+i);
                if(Status)  break;
             }
             break;

          case 0x02:             //for slot NO.1 56000pbs
             LEN1=ComBuffer[1]-2;
             LEN2=LEN1+1;
             memset(buf,0xff,16);
             memcpy(buf,ComBuffer+4,LEN1);
             buf[LEN1]=Calc_xor_pps(LEN1,buf);
             memset(buf2,0x00,16);
             for(i=0;i<LEN1+1;i++)
                Status=I_1send56k(buf[i]);
             for(i=0;i<LEN2;i++)
             {
                Status=I_1Rda56k(buf2+i);
                if(Status)  break;
             }
             break;
         default:
             memset(buf2,0xff,10);
         }
         if(memcmp(buf,buf2,3)==0x00)
         {
           if(i<3)                     // for the FFOOFF default 9600pbs
           {
             slot1_baud=0x01;
             j=slot1_baud;
             SendResponse(j,1+i,buf2);
           }                         //
           else
           {
            F=Calculate_F(buf2[2]);
            D=Calculate_D(buf2[2]);
            slot1_baud=Calculate_Baud(F,D);
            j=slot1_baud+1;
            SendResponse(j,1+i,buf2);
           }
         }
         else SendResponse(0x00,1+i,buf2);
       }
       else SendMsError();
    }

⌨️ 快捷键说明

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