⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sle4406.h

📁 2106卡的程序
💻 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 + -