📄 fm1715_reg.h
字号:
#ifndef _MAIN_INCLUDED_
#define _MAIN_INCLUDED_
//常量定义
#define FALSE 0
#define TRUE 1
//FM1715命令码
#define Transceive 0x1E //发送接收命令
#define Transmit 0x1A //发送命令
#define ReadE2 0x03 //读取FM1715 EEPROM命令
#define WriteE2 0x01 //写FM1715 EEPROM命令
#define Authent1 0x0c //验证命令认证过程第1步
#define Authent2 0x14 //验证命令认证过程第2步
#define LoadKeyE2 0x0B //将密钥从EEPROM复制到KEY缓存
#define LoadKey 0x19 //将密钥从FIFO memory复制到key memory
#define RF_TimeOut 0xfff //send command delay
#define Req 0x01
#define Sel 0x02
//Define data type
#define uchar unsigned char
#define uint unsigned int
//Define card type
#define TYPEA_MODE 0 //type A mode
#define TYPEB_MODE 1 //type B mode
#define SHANGHAI_MODE 2 //shanghai mode
#define TM0_HIGH 0xf0 //timer0 high bit,4ms setting
#define TM0_LOW 0x60 //timer0 low bit
#define TIMEOUT 100 //Timer out ,4ms x100 =0.4s
//RF communication command
#define RF_CMD_REQUEST_STD 0x26
#define RF_CMD_REQUEST_ALL 0x52
#define RF_CMD_ANTICOL 0x93 //?????
#define RF_CMD_SELECT 0x93 //?????
#define RF_CMD_AUTH_LA 0x60
#define RF_CMD_AUTH_LB 0x61
#define RF_CMD_READ 0x30
#define RF_CMD_WRITE 0xA0
#define RF_CMD_INC 0xC1
#define RF_CMD_DEC 0xC0
#define RF_CMD_RESTORE 0xC2
#define RF_CMD_TRANSFER 0xb0
#define RF_CMD_HALT 0x50
//status Values
#define ALL 0x01
#define KEYB 0x04
#define KEYA 0x00
#define _AB 0x40
#define CRC_A 1
#define CRC_B 2
#define CRC_OK 0
#define CRC_ERR 1
#define BBC_OK 0
#define BBC_ERR 1
//****************** Define Card Type *****************************
#define MIFARE_8K 0 // Mifare series 8KB card
#define MIFARE_TOKEN 1 // Mifare series 1KB TOKEN card
#define SHANGHAI_8K 2 // shanghai standard 8KB card
#define SHANGHAI_TOKEN 3 // shanghai standard 1KB TOKEN card
//****************** Function error code **************************
#define FM1715_OK 0 // Right
#define FM1715_NOTAGERR 1 // No card
#define FM1715_CRCERR 2 // card CRC error
#define FM1715_EMPTY 3 // data overflow error
#define FM1715_AUTHERR 4 // card Auth error
#define FM1715_PARITYERR 5 // card Parity error
#define FM1715_CODEERR 6 // card communication error(BCC verify error)
#define FM1715_SERNRERR 8 // card serieal number error(anti-collision error)
#define FM1715_SELECTERR 9 // card data length error(select error)
#define FM1715_NOTAUTHERR 10 // card didnt pass athu
#define FM1715_BITCOUNTERR 11 // Received bit counter error
#define FM1715_BYTECOUNTERR 12 // Received byte counter error
#define FM1715_RESTERR 13 // calling restore function error
#define FM1715_TRANSERR 14 // calling transfer function error
#define FM1715_WRITEERR 15 // calling write function error
#define FM1715_INCRERR 16 // calling increment function error
#define FM1715_DECRERR 17 // calling Decrement function error
#define FM1715_READERR 18 // calling read function error
#define FM1715_LOADKEYERR 19 // calling LOADKEY function error
#define FM1715_FRAMINGERR 20 // FM1715 Framing error
#define FM1715_REQERR 21 // calling Req function error
#define FM1715_SELERR 22 // calling Sel function error
#define FM1715_ANTICOLLERR 24 // calling anticoll function error
#define FM1715_INITVALERR 25 // calling init function error 与资料上有所改动
#define FM1715_READVALERR 26 // calling 高级读块值 function error
#define FM1715_DESELECTERR 27 //
#define FM1715_CMD_ERR 28 // command error
//*************************** FM1715 Address define *******************
#define Page_Sel XBYTE[0x7000] //Page write register
#define Command XBYTE[0x7001] //Command register
#define FIFO XBYTE[0x7002] //64 bytes FIFO register
#define PrimaryStatus XBYTE[0x7003] //Sender,Receiver , FIFO status register
#define FIFO_Length XBYTE[0x7004] //Current FIFO byte count register
#define SecondaryStatus XBYTE[0x7005] //each status register
#define InterruptEn XBYTE[0x7006] //Interrupt Enable/Disable register
#define Int_Req XBYTE[0x7007] //Int request flag register
#define Control XBYTE[0x7009] //Control register
#define ErrorFlag XBYTE[0x700A] //Error Status register
#define CollPos XBYTE[0x700B] //Collision Detect register
#define TimerValue XBYTE[0x700C] //Current timer value
#define Bit_Frame XBYTE[0x700F] //bit frame adjust register
#define TxControl XBYTE[0x7011] //Transmit control register
#define CWConductance XBYTE[0x7012] //Select TX1 and TX2 发射天线 Impedence
#define ModConductance XBYTE[0x7013] //output driver impedence
#define CoderControl XBYTE[0x7014] //coder mode and clock frequency
#define TypeBFraming XBYTE[0x7017] //ISO14443B Framing format
#define DecoderControl XBYTE[0x701a] //Decoder control register
#define Rxcontrol2 XBYTE[0x701e] //Decoder control and select receive source
#define RxWait XBYTE[0x7021] //select transmit and receive interval
#define ChannelRedundancy XBYTE[0x7022] //RF channel detect mode setting register
#define CRCPresetLSB XBYTE[0x7023]
#define CRCPresetMSB XBYTE[0x7024]
#define MFOUTSelect XBYTE[0x7026] //mfOUT configure register
#define TimerClock XBYTE[0x702a] //timer cycle setting register
#define TimerControl XBYTE[0x702b] //timer control register
#define TimerReload XBYTE[0x702C] //Timer init value register
#define TypeSH XBYTE[0x7031] //shanghai standard select register
#define TestDigiSelect XBYTE[0x703d] //Test pin configure register
extern uchar idata readdata[6];// _at_ 0x0040; //Read/write memory
extern uchar idata value[4]; // _at_ 0x0050; //Inc/Dec value
extern uchar idata KeySet; //password type
extern uchar idata tagtype[2];//_at_ 0x0096; //card indentify character
extern uchar idata PRO_SendBuf[16]; //_at_ 0x0080; //Send buffer
extern uchar idata PRO_RecvBuf[16]; //_at_ 0x0080; //Receive buffer
extern uchar idata buffer[24]; //_at_ 0x0060; //FM1715 command send/receive buffer
extern uchar idata UID[5]; // _at_ 0x007a; //User ID
extern uchar idata Secnr; // _at_ 0x0090; //sector number
extern uchar idata keybuffer[6]; //key save buffer
sbit Red=P1^7;
sbit Green=P3^5;
sbit MFRST=P3^4; //FM1715 Reset pin
#endif
//***************************** FM1715 varialbe define *********************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -