📄 sle4406.h
字号:
#ifdef _SRC
#define EXTERN
#else
#define EXTERN extern
#endif
//Commmon Defines
#define BYTE unsigned char
#define WORD unsigned int
#define DWORD unsigned long
#define FALSE 0
#define TRUE 1
//ICC Type Flag
#define ICC_T0 0x05
#define ICC_T1 0x06
//beep
sbit beep = P1^7;
#define TOGGLE_BP(); beep = ~beep;
//Display
sbit GREEN =P1^5;
sbit RED =P1^6;
#define ON 0
#define OFF 1
#define LED(x,y); (x)=(y);
//watchdog
sbit WDOG =P3^4;
#define TOGGLE_WD(); WDOG = ~WDOG;
//the debug board is ICSW=P1^1;ICVCC=P1^0;FUS=P2^6;PGM=PRG=P2^5;
//the PSAM board is ICSW=P1^0;ICVCC=P1^1;FUS=P2^3;PGM=2^4;PRG=P2^7;
sbit ICSW =P1^0;
#define CARDON 0
#define CARDOFF 1
sbit ICVCC =P1^1;
sbit ICRST =P1^2;
sbit ECPU =P1^3;
sbit ICCLK =P1^4;
sbit ICIO =P3^3; //INT1
sbit PGM =P2^4;
sbit FUS =P2^3;
sbit PRG =P2^7;
volatile BYTE ptr;
volatile BYTE RPtr;
#define BaudVal -96
#define StrtVal -27
volatile BYTE XmtDat; //Send Data
volatile BYTE RcvDat; //Receive Data
volatile BYTE BitCnt; //Rcv/Send Count
volatile BYTE Flags; //flag
volatile bit TxFlag;
volatile bit RxFlag;
volatile bit RxErr;
volatile bit RcvRdy;
volatile bit Parity;
volatile bit CPUState;
// 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
#define BCC_CHECKBYTECNT 1
#define CRC_POLYNOM 0x1021
#define CRC_PRESET 0xFFFF
#define CRC_CHECKBYTECNT 2
// 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 20
//70
#define SERBUFLEN HEADER + MAXDATA + CRC_CHECKBYTECNT + 1
volatile BYTE idata SerBuffer[SERBUFLEN];
#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
// Timer 0
#define T_533_ms 60
#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;
// Global Variables
EXTERN volatile bit CmdReceived;
EXTERN volatile bit DataDleReceived;
EXTERN volatile bit CmdValid;
EXTERN volatile BYTE data RecvState;
EXTERN volatile BYTE data SendState;
EXTERN volatile BYTE data Index;
EXTERN volatile BYTE data Timer0Cnt;
EXTERN volatile BYTE data SeqNr;
EXTERN volatile BYTE data CheckByteCnt;
EXTERN volatile BYTE data RepCnt;
EXTERN volatile BYTE data QuitStatus;
// Global Variables
EXTERN volatile bit LLfReady;
EXTERN volatile bit SendReady;
EXTERN volatile bit Quit;
//Global Prototypes
EXTERN void delay_8us_NOP(void);
EXTERN void delay_50us_NOP(BYTE _50us);
EXTERN void delay_50us(BYTE _50us);
EXTERN void delay_1ms(BYTE _1ms);
EXTERN void delay_10ms(WORD _10ms);
EXTERN BYTE xtoa_h(BYTE _byte);
EXTERN BYTE xtoa_l(BYTE _byte);
EXTERN void auto_baud(void);
EXTERN void Power_off(void);
EXTERN void RSXmt(void);
#undef EXTERN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -