?? fm1715.h
字號:
//5.1 頭文件
/****************************************************************/
/* main 程序頭文件 */
/* 主要功能:常量定義 */
/* 編制: */
/* 時間: */
/* 修改:huzhenqing */
/* 時間:2003 年9 月 */
/****************************************************************/
//#ifndef _MAIN_INCLUDED_
//#define _MAIN_INCLUDED_
#include <ABSACC.H>
sbit FM_RST = P3^5; ///FM1715復位腳
//FM1715、RC500的復位控制口
#define FM1715RST_L FM_RST=0;;
#define FM1715RST_H FM_RST=1;
//常量定義
#ifndef TRUE
#define TRUE 0x01
#endif
#ifndef FALSE
#define FALSE 0x00
#endif
//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 緩存復制到KEY 緩存
#define RF_TimeOut 0x50 //發送命令延時時間
#define Req 0x01
#define Sel 0x02
//數據類型定義
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
//卡片類型定義定義
#define TYPEA_MODE 0 //TypeA 模式
#define TYPEB_MODE 1 //TypeB 模式
#define SHANGHAI_MODE 2 //上海模式
#define TM0_HIGH 0xf0 //定時器0 高位,4MS 定時
#define TM0_LOW 0x60 //定時器0 低位
#define TIMEOUT 100 //超時計數器4MS×100=0.4 秒
//射頻卡通信命令碼定義
//第 15 頁 共 52 頁
#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 BCC_OK 0
#define BCC_ERR 1
//******************* 卡類型定義********************
#define MIFARE_8K 0 //MIFARE 系列8KB 卡片
#define MIFARE_TOKEN 1 //MIFARE 系列1KB TOKEN 卡片
#define SHANGHAI_8K 2 //上海標準系列8KB 卡片
#define SHANGHAI_TOKEN 3 //上海標準系列1KB TOKEN 卡片
//******************* 函數錯誤代碼定義********************
#define FM1715_OK 0 //正確
#define FM1715_NOTAGERR 1 //無卡
#define FM1715_CRCERR 2 //卡片CRC 校驗錯誤
#define FM1715_EMPTY 3 //數值溢出錯誤
#define FM1715_AUTHERR 4 //驗證不成功
#define FM1715_PARITYERR 5 //卡片奇偶校驗錯誤
#define FM1715_CODEERR 6 //通訊錯誤(BCC 校驗錯)
#define FM1715_SERNRERR 8 //卡片序列號錯誤(anti-collision 錯誤)
#define FM1715_SELECTERR 9 //卡片數據長度字節錯誤(SELECT 錯誤)
#define FM1715_NOTAUTHERR 10 //卡片沒有通過驗證
#define FM1715_BITCOUNTERR 11 //從卡片接收到的位數錯誤
#define FM1715_BYTECOUNTERR 12 //從卡片接收到的字節數錯誤(僅讀函數有效)
#define FM1715_RESTERR 13 //調用restore 函數出錯
#define FM1715_TRANSERR 14 //調用transfer 函數出錯
#define FM1715_WRITEERR 15 //調用write 函數出錯
#define FM1715_INCRERR 16 //調用increment 函數出錯
#define FM1715_DECRERR 17 //調用decrement 函數出錯
#define FM1715_READERR 18 //調用read 函數出錯
//第 16 頁 共 52 頁
#define FM1715_LOADKEYERR 19 //調用LOADKEY 函數出錯
#define FM1715_FRAMINGERR 20 //FM1715 幀錯誤
#define FM1715_REQERR 21 //調用req 函數出錯
#define FM1715_SELERR 22 //調用sel 函數出錯
#define FM1715_ANTICOLLERR 23 //調用anticoll 函數出錯
#define FM1715_INTIVALERR 24 //調用初始化函數出錯
#define FM1715_READVALERR 25 //調用高級讀塊值函數出錯
#define FM1715_DESELECTERR 26
#define FM1715_CMD_ERR 42 //命令錯誤
#define FM1715_Err 43 //為了壓縮判別,統一把FM的錯誤代碼定義為這個,如需要查詢錯誤代碼需修改程序,返回實際錯誤信息
#define FM_Serial //使用SPI接口
//******************* FM1715 地址定義********************
#ifdef FM_Serial
//SPI接口
//#define Page_Sel 0x00 //頁寫寄存器
#define Page_SelW(x) WRITE_FM(0x00,x) //頁寫寄存器
//#define Command 0x01 //命令寄存器
#define CommandW(x) WRITE_FM(0x01,x) //命令寄存器
#define CommandR READ_FM(0x01) //命令寄存器
//#define FIFO 0x02 //64 字節FIFO 緩沖的輸入輸出寄存器
#define FIFOW(x) WRITE_FM(0x02,x) //64 字節FIFO 緩沖的輸入輸出寄存器
#define FIFOR READ_FM(0x02) //64 字節FIFO 緩沖的輸入輸出寄存器
//#define PrimaryStatus 0x03 //發射器,接收器及FIFO 的狀態寄存器1 *
//#define FIFO_Length 0x04 //當前FIFO 內字節數寄存器
#define FIFO_LengthR READ_FM(0x04) //當前FIFO 內字節數寄存器
//#define SecondaryStatus 0x05 //各種狀態寄存器2
#define SecondaryStatusR 0x05 //各種狀態寄存器2
//#define InterruptEn 0x06 //中斷使能/禁止寄存器
#define InterruptEnW(x) WRITE_FM(0x06,x) //中斷使能/禁止寄存器
#define InterruptEnR READ_FM(0x06) //中斷使能/禁止寄存器
//#define Int_Req 0x07 //中斷請求標識寄存器
#define Int_ReqW(x) WRITE_FM(0x07,x) //中斷請求標識寄存器
#define Int_ReqR READ_FM(0x07) //中斷請求標識寄存器
//#define Control 0x09 //控制寄存器
#define ControlW(x) WRITE_FM(0x09,x) //控制寄存器
#define ControlR READ_FM(0x09) //控制寄存器
//#define ErrorFlag 0x0A //錯誤狀態寄存器
#define ErrorFlagR READ_FM(0x0A) //錯誤狀態寄存器
//#define CollPos 0x0B //沖突檢測寄存器
#define CollPosR READ_FM(0x0B) //沖突檢測寄存器
//#define TimerValue 0x0c //定時器當前值 *
//#define Bit_Frame 0x0F //位幀調整寄存器
#define Bit_FrameW(x) WRITE_FM(0x0F,x) //位幀調整寄存器
#define Bit_FrameR READ_FM(0x0F) //位幀調整寄存器
//#define TxControl 0x11 //發送控制寄存器
#define TxControlW(x) WRITE_FM(0x11,x) //發送控制寄存器
#define TxControlR READ_FM(0x11) //發送控制寄存器
//#define CWConductance 0x12 //選擇發射腳TX1 和TX2 發射天線的阻抗
#define CWConductanceW(x) WRITE_FM(0x12,x) //選擇發射腳TX1 和TX2 發射天線的阻抗
#define CWConductanceR READ_FM(0x12) //選擇發射腳TX1 和TX2 發射天線的阻抗
//#define ModConductance 0x13 //定義輸出驅動阻抗
#define ModConductanceW(x) WRITE_FM(0x13,x) //定義輸出驅動阻抗
#define ModConductanceR READ_FM(0x13) //定義輸出驅動阻抗
//#define CoderControl 0x14 //定義編碼模式和時鐘頻率
#define CoderControlW(x) WRITE_FM(0x14,x) //定義編碼模式和時鐘頻率
#define CoderControlR READ_FM(0x14) //定義編碼模式和時鐘頻率
//#define TypeBFraming 0x17 //定義ISO14443B 幀格式
#define TypeBFramingW(x) WRITE_FM(0x17,x) //定義ISO14443B 幀格式
#define TypeBFramingR READ_FM(0x17) //定義ISO14443B 幀格式
//#define DecoderControl 0x1a //解碼控制寄存器
#define DecoderControlW(x) WRITE_FM(0x1a,x) //解碼控制寄存器
#define DecoderControlR READ_FM(0x1a) //解碼控制寄存器
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -