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

📄 m500auc.h

📁 51单片机进行mifare1射频卡开发
💻 H
字号:
#ifdef  M500_GLOBALS
 #define M500_EXT
#else
 #define M500_EXT extern
#endif

#define TRUE 1
#define FALSE 0
#define OSC_FREQ                11059200L

#define BAUD_115200             256 - (OSC_FREQ/192L)/115200L   // 255
#define BAUD_57600              256 - (OSC_FREQ/192L)/57600L    // 254
#define BAUD_38400              256 - (OSC_FREQ/192L)/38400L    // 253
#define BAUD_28800              256 - (OSC_FREQ/192L)/28800L    // 252
#define BAUD_19200              256 - (OSC_FREQ/192L)/19200L    // 250
#define BAUD_14400              256 - (OSC_FREQ/192L)/14400L    // 248
#define BAUD_9600               256 - (OSC_FREQ/192L)/9600L     // 244
#define RCAP2_50us             65536L - OSC_FREQ/240417L
#define RCAP2_1ms              65536L - OSC_FREQ/12021L
#define RCAP2_10ms             65536L - OSC_FREQ/1200L
#define RCAP2_1s             65536L - OSC_FREQ/12L

#define CALL_isr_UART()         TI = 1

unsigned char idata MLastSelectedSnr[4];
//unsigned char data RevBuffer[30];
//unsigned char data SerBuffer[20];
unsigned char idata RevBuffer[30];  
unsigned char data SerBuffer[20];   

bit CmdValid;
unsigned char cardtype;
typedef struct 
         {
            unsigned char  cmd;           
            char           status;        
            unsigned char  nBytesSent;   
            unsigned char  nBytesToSend; 
            unsigned char  nBytesReceived;
            unsigned short nBitsReceived; 
            unsigned char  irqSource;     
            unsigned char  collPos;       
                                          
         } MfCmdInfo;
#define ResetInfo(info)    \
            info.cmd            = 0;\
            info.status         = MI_OK;\
            info.irqSource      = 0;\
            info.nBytesSent     = 0;\
            info.nBytesToSend   = 0;\
            info.nBytesReceived = 0;\
            info.nBitsReceived  = 0;\
            info.collPos        = 0;


static   volatile MfCmdInfo idata   MInfo; 
//static   volatile MfCmdInfo    *MpIsrInfo = 0; 
static   volatile MfCmdInfo    *MpIsrInfo; 
//static   volatile unsigned char  *MpIsrOut = 0; 
static   volatile unsigned char  *MpIsrOut;


M500_EXT void delay_1ms(unsigned char _1ms);
M500_EXT void delay_50us(unsigned char _50us);
M500_EXT void start_timeout(unsigned int _50us);
M500_EXT void stop_timeout(void);
M500_EXT char M500PcdRfReset(unsigned char ms);
M500_EXT char M500HostCodeKey(  unsigned char *uncoded, 
                     unsigned char *coded);
M500_EXT char M500PiccCommonRequest(unsigned char req_code, 
                         unsigned char *atq);
M500_EXT char M500PiccCascAnticoll( unsigned char bcnt,       
                           unsigned char *snr);   
M500_EXT char M500PiccCascSelect(unsigned char *snr,
                        unsigned char *sak);      
M500_EXT char M500PiccAuthKey(  unsigned char auth_mode,
                     unsigned char *snr,       
                     unsigned char *keys,      
                     unsigned char block);    
M500_EXT char SetBitMask(unsigned char reg,unsigned char mask);                     
M500_EXT void M500PcdSetTmo(unsigned char tmoLength);
M500_EXT char M500PcdCmd(unsigned char cmd,
                volatile unsigned char data * rcv,
                volatile MfCmdInfo idata *info);
M500_EXT char ClearBitMask(unsigned char reg,unsigned char mask);
M500_EXT void FlushFIFO(void);

M500_EXT char PcdWriteE2(unsigned int startaddr,
                unsigned char length,
                unsigned char* _data);

M500_EXT char M500PiccAuthState(unsigned char auth_mode,
                       unsigned char *snr,    
                       unsigned char block); 

⌨️ 快捷键说明

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