📄 mfcm200b.h
字号:
//------------------------------------------------------------------------------
// File: MFCM200B.h (Header for MFCM200B.lib)
// Compiler: KEIL C51 COMPILER V6.23a
//------------------------------------------------------------------------------
#pragma SAVE
#pragma REGPARMS
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
#define TRUE 1
#define FALSE 0
//------------------------------------------------------------------------------
// MFCM200B 状态字(函数返回值)定义
#define MI_OK 0x00
#define MI_NOTAG 0x01
#define MI_CRC 0x02
#define MI_EMPTY 0x03
#define MI_AUTH 0x04
#define MI_PARITY 0x05
#define MI_CODE 0x06
#define MI_SERNR 0x08
#define MI_NOTAUTH 0x10
#define MI_BITCNT 0x11
#define MI_BYTECNT 0x12
#define MI_TRANS 0x14
#define MI_WRITE 0x15
#define MI_INCR 0x16
#define MI_DECR 0x17
#define MI_READ 0x18
#define MI_POLLING 0x20
#define MI_CHK_OK 0x00
#define MI_CHK_FAILED 0x21
#define MI_CHK_COMPERR 0x22
#define READER_ERR_BASE_START 0
//#define MI_OK 0
//#define MI_CHK_OK 0
#define MI_CRC_ZERO 0
#define MI_CRC_NOTZER 1
#define MI_NOTAGERR (1)
//#define MI_CHK_FAILED (1)
#define MI_CRCERR (2)
//#define MI_CHK_COMPERR (2)
//#define MI_EMPTY (3)
#define MI_AUTHERR (4)
#define MI_PARITYERR (5)
#define MI_CODEERR (6)
#define MI_SERNRERR (8)
#define MI_KEYERR (9)
#define MI_NOTAUTHERR (10)
#define MI_BITCOUNTERR (11)
#define MI_BYTECOUNTERR (12)
#define MI_IDLE (13)
#define MI_TRANSERR (14)
#define MI_WRITEERR (15)
#define MI_INCRERR (16)
#define MI_DECRERR (17)
#define MI_READERR (18)
#define MI_OVFLERR (19)
//#define MI_POLLING (20)
#define MI_FRAMINGERR (21)
#define MI_ACCESSERR (22)
#define MI_UNKNOWN_COMMAND (23)
#define MI_COLLERR (24)
#define MI_RESETERR (25)
#define MI_INITERR (25)
#define MI_INTERFACEERR (26)
#define MI_ACCESSTIMEOUT (27)
#define MI_NOBITWISEANTICOLL (28)
#define MI_QUIT (30)
#define MI_RECBUF_OVERFLOW (50)
#define MI_SENDBYTENR (51)
#define MI_SENDBUF_OVERFLOW (53)
#define MI_BAUDRATE_NOT_SUPPORTED (54)
#define MI_SAME_BAUDRATE_REQUIRED (55)
#define MI_WRONG_PARAMETER_VALUE (60)
#define MI_BREAK (99)
#define MI_NY_IMPLEMENTED (100)
#define MI_NO_MFRC (101)
#define MI_MFRC_NOTAUTH (102)
#define MI_WRONG_DES_MODE (103)
#define MI_HOST_AUTH_FAILED (104)
#define MI_WRONG_LOAD_MODE (106)
#define MI_WRONG_DESKEY (107)
#define MI_MKLOAD_FAILED (108)
#define MI_FIFOERR (109)
#define MI_WRONG_ADDR (110)
#define MI_DESKEYLOAD_FAILED (111)
#define MI_WRONG_SEL_CNT (114)
#define MI_WRONG_TEST_MODE (117)
#define MI_TEST_FAILED (118)
#define MI_TOC_ERROR (119)
#define MI_COMM_ABORT (120)
#define MI_INVALID_BASE (121)
#define MI_MFRC_RESET (122)
#define MI_WRONG_VALUE (123)
#define MI_VALERR (124)
#define MI_SAKERR (125)
#define MI_CONFIGERR (126)
#define KEYA 0x00
#define KEYB 0x40
#define KEYSET0 0x00
#define KEYSET1 0x01
#define KEYSET2 0x02
#define KEYSETx 0x03
#define HF 0x40
#define CRC8 0x80
#define CRC16 0x00
#define AUTH_MODE_KEYA 0x00
#define AUTH_MODE_KEYB 0x01
//------------------------------------------------------------------------------
// MFCM200B 寄存器地址定义
// 外部存储器 采用数据线地址线复用方式 占用8个地址空间
// MFCM200B 基地址由片选信号确定
#define XBYTE ((unsigned char volatile *) 0x20000L)
#define BASEADR 0x7F00
#define RegNo0 XBYTE[BASEADR + 0]
#define RegNo1 XBYTE[BASEADR + 1]
#define RegNo2 XBYTE[BASEADR + 2]
#define RegNo3 XBYTE[BASEADR + 3]
#define RegNo4 XBYTE[BASEADR + 4]
#define RegNo5 XBYTE[BASEADR + 5]
#define RegNo6 XBYTE[BASEADR + 6]
#define RegNo7 XBYTE[BASEADR + 7]
//------------------------------------------------------------------------------
// 变量定义
// 卡序列号 卡片类型
extern unsigned char data _SNR[5],_TT[2],_SIZE;
//------------------------------------------------------------------------------
// 函数声名
//------------------------------------------------------------------------------
// 初始化 MFCM200B
extern unsigned char mif_Initialize(void);
//------------------------------------------------------------------------------
// 以下为 MFCM200B 高级函数
extern unsigned char HL_FindCard(void);
extern unsigned char HL_HaltCard(void);
extern unsigned char HL_Read(unsigned char byBlock, unsigned char byMode, unsigned char idata *pKeyBuf, unsigned char idata *pbyBuf);
extern unsigned char HL_Write(unsigned char byBlock, unsigned char byMode, unsigned char idata *pKeyBuf, unsigned char idata *pbyBuf);
extern unsigned char HL_Increase(unsigned char byBlock, unsigned char byMode, unsigned char idata *pKeyBuf, unsigned long dwValue);
extern unsigned char HL_Decrease(unsigned char byBlock, unsigned char byMode, unsigned char idata *pKeyBuf, unsigned long dwValue);
extern unsigned char HL_Restore(unsigned char byBlockDst, unsigned char byBlockSrc, unsigned char byMode, unsigned char idata *pKeyBuf);
//------------------------------------------------------------------------------
// 以下为 MFCM200B 底层硬件操作基本函数
extern unsigned char mif_config(unsigned char mode, unsigned char baud);
extern unsigned char mif_request(unsigned char mode);
extern unsigned char mif_anticoll(unsigned char bcnt);
extern unsigned char mif_select(void);
extern unsigned char mif_load_key(unsigned char mode, unsigned char bySection, unsigned char idata *pNK);
extern unsigned char mif_authentication(unsigned char mode, unsigned char bySection);
extern unsigned char mif_read(unsigned char byBlock, unsigned char idata *pData);
extern unsigned char mif_write(unsigned char byBlock, unsigned char idata *pData);
extern unsigned char mif_increment(unsigned char byBlock, unsigned long dwValue);
extern unsigned char mif_decrement(unsigned char byBlock, unsigned long dwValue);
extern unsigned char mif_restore(unsigned char byBlock);
extern unsigned char mif_transfer(unsigned char byBlock);
extern unsigned char mif_halt(void);
//------------------------------------------------------------------------------
extern void delayUs(unsigned long usec);
extern void delayMs(unsigned long msec);
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
#pragma RESTORE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -