📄 fk.h
字号:
#define BYTE unsigned char
#define WORD unsigned int
#define DWORD unsigned long
#define FALSE 0
#define TRUE 1
#define ON 0
#define OFF 1
//ICC Type Flag
#define ICC_T0 0x05
#define ICC_T1 0x06
sbit beep = P1^7;
#define TOGGLE_BP(); beep = ~beep;
sbit RED = P1^6;
sbit GREEN = P1^5;
#define LED(x,y); (x)=(y);
sbit WDOG =P3^4;
#define TOGGLE_WD(); WDOG = ~WDOG;
sbit ICSW =P1^0;
sbit ICVCC =P1^1;
sbit ICRST =P1^2;
sbit ECPUCLK =P1^3;
sbit ICCLK =P1^4;
sbit ICIO =P3^3; //INT1
sbit PRST =P2^1;
sbit PIO =P3^2; //INT0
sbit PCLK =P2^2;
sbit PVCC =P2^0;
sbit FUS =P2^0;
sbit PGM =P2^1;
/*
*/
//mifare1 hardware functions
#define _REQUEST 0x26
#define _REQUEST_ALL 0x52
// STACON
#define _DV 0x80
#define _TE 0x40
#define _PE 0x20
#define _CE 0x10
#define _BE 0x08
#define _AE 0x04
#define _SOR 0x80
#define _RFS 0x40
#define _MI1 0x04
#define _NRF 0x02
#define _AC 0x01
// ENABLE
#define _PEN 0x80
#define _PRE 0x40
#define _CEN 0x20
#define _CRE 0x10
// KEYADR
#define _AUTH 0x80
#define _LOAD 0x00
#define _KEYB 0x40
#define _KEYA 0x00
// Error Codes
#define OK 0
#define W_NOCARD 5
#define W_NOTAG 1
#define W_CRC 2
#define W_EMPTY 3
#define W_AUTH 4
#define W_PARITY 5
#define W_CODE 6
#define W_SERNR 8
#define W_NOTAUTH 10
#define W_BITCNT 11
#define W_BYTECNT 12
#define W_TRANS 14
#define W_WRITE 15
#define W_INCR 16
#define W_DECR 17
#define W_READ 18
#define W_NO_VCC 06
#define W_ICC_Type_Error 12
#define QUIT 30
#define MIS_CHK_OK 0
#define MIS_CHK_FAILED 1
#define MIS_CHK_COMPERR 2
#define W_VERIFY 19
#define W_CMD_NY_IMPL 100
// Helpful Defines
#define IDLE 0x00
#define ALL 0x01
#define EVER 0x80
#define KEYB 0x04
#define KEYA 0x00
#define KEYSET0 0x00
#define KEYSET1 0x01
#define KEYSET2 0x02
#define KEYS 0x03
//serial protocol
#define SOH 0x01
#define STX 0x02
#define ETX 0x03
#define ENQ 0x05
#define ACK 0x06
#define DLE 0x10
#define NAK 0x15
#define MAXREPCNT 2
#define CALL_isr_UART() TI = 1
#define SER_BCC 0
#define SER_CRC 1
// Receive States
#define RECV_STX 0
#define RECV_DATA_DLE_ETX 1
#define RECV_ETX 2
#define RECV_DLE 3
#define RECV_DLE_OR_NAK 4
// Serial Buffer
#define HEADER 3
#define MAXDATA 128
#define SERBUFLEN 3+HEADER+MAXDATA+1
#define SEQNR 0
#define COMMAND 1
#define STATUS 1
#define LENGTH 2
#define MODE 3
#define BCNT 3
#define ADR 3
#define SERNR 3
#define SIZE 3
#define TIME 3
#define TAGTYPE 3
#define INFO 3
#define CTLBYTE 3
#define PORTBYTE 3
#define HLREQMODE 3
#define SECNR 4
#define DATABYTES 4
#define VALUE 4
#define BAUD 4
#define SERNR_in 4
#define HL_SERNR 4
#define TKEY 5
#define AUTHADD 5
#define AUTHMODE 7
#define ADRCHKWR 8
#define HLAUTHMODE 8
#define DATACHKWR 9
#define HLSECNR 9
#define NKEY6 11
#define NKEY8 13
typedef struct _KEY { BYTE _key[6]; } KEY;
//Hardware Addresses
#define PBYTE ((unsigned char volatile *) 0x30000L)
#define MCM_DATA PBYTE[0x00]
#define MCM_STACON PBYTE[0x01]
#define MCM_ENABLE PBYTE[0x02]
#define MCM_BCNTS PBYTE[0x03]
#define MCM_BCNTR PBYTE[0x04]
#define MCM_BAUDRATE PBYTE[0x05]
#define MCM_TOC PBYTE[0x06]
#define MCM_MODE PBYTE[0x07]
#define MCM_CRCDATA PBYTE[0x08]
#define MCM_CRCSTACON PBYTE[0x09]
#define MCM_KEYDATA PBYTE[0x0A]
#define MCM_KEYSTACON PBYTE[0x0B]
#define MCM_KEYADR PBYTE[0x0C]
#define MCM_RCODE PBYTE[0x0E]
// Timer 0
#define NOP20(); for(i=20;i>0;i--)_nop_();
#define T_500_ms 55
#define START_T0(x) Timer0Cnt = (x); TL0 = 0; TH0 = 0; TR0 = 1
#define STOP_T0() TR0 = 0;TF0 =0
#define CALL_isr_T0() TR0 = 0; Timer0Cnt = 0; TF0 = 1
// Timer 2
#define OSC_FREQ 11059200L
#define RCAP2_50us 65536L - OSC_FREQ/240417L
#define RCAP2_1ms 65536L - OSC_FREQ/12021L
#define RCAP2_10ms 65536L - OSC_FREQ/1200L
sfr16 RCAP2LH = 0xCA;
sfr16 T2LH = 0xCC;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -