www.pudn.com > RC500.rar > main.h


#ifdef __SRC 
#define EXTERN 
#else 
 #define EXTERN		       	extern 
#endif 
 
#define TRUE   1 
#define FALSE  0 
 
#define ON     0 
#define OFF    1 
 
#define NO_TIMER2           1     //对于有TIMER2的可以使用 
 
//设置波特率 
#define OSC_FREQ                11059200L 
 
#define BAUD_115200             256 - (OSC_FREQ/192L)/115200L   // 255 
#define BAUD_57600              256 - (OSC_FREQ/192L)/57600L    // 254 
#define BAUD_38400              256 - (OSC_FREQ/192L)/38400L    // 253 
#define BAUD_28800              256 - (OSC_FREQ/192L)/28800L    // 252 
#define BAUD_19200              256 - (OSC_FREQ/192L)/19200L    // 250 
#define BAUD_14400              256 - (OSC_FREQ/192L)/14400L    // 248 
#define BAUD_9600               256 - (OSC_FREQ/192L)/9600L     // 244 
// Timer2 
#define RCAP2_50us             65536L - OSC_FREQ/240417L 
#define RCAP2_1ms              65536L - OSC_FREQ/12021L 
#define RCAP2_10ms             65536L - OSC_FREQ/1200L 
#define RCAP2_1s               65536L - OSC_FREQ/12L 
 
sfr16   RCAP2LH                = 0xCA; 
sfr16   T2LH                   = 0xCC; 
 
unsigned char idata CardSnr[4];      //最后选择的卡的序列号 
unsigned char idata RevBuffer[30];            //串口缓冲数组 
unsigned char data SerBuffer[20];             //和RC500通信的缓冲数组 
 
bit bCmd;       //布尔变量,命令判断位,1有效,0无效 
bit ack;		// IIC应答位 
bit bSameSn;		//检查卡序列号是否一样 
 
unsigned char cardtype; 
 
typedef struct  
         { 
            unsigned char  cmd;            
            char           status;         
            unsigned char  nBytesSent;    
            unsigned char  nBytesToSend;  
            unsigned char  nBytesReceived; 
            unsigned short nBitsReceived;  
            unsigned char  irqSource;      
            unsigned char  collPos;        
                                           
         } MfCmdInfo; 
#define ResetInfo(info)    \ 
            info.cmd            = 0;\ 
            info.status         = MI_OK;\ 
            info.irqSource      = 0;\ 
            info.nBytesSent     = 0;\ 
            info.nBytesToSend   = 0;\ 
            info.nBytesReceived = 0;\ 
            info.nBitsReceived  = 0;\ 
            info.collPos        = 0; 
 
 
static   volatile MfCmdInfo idata   MInfo;  
static   volatile MfCmdInfo    *MpIsrInfo;  
static   volatile unsigned char  *MpIsrOut; 
 
void InitSystem(void);  
void uart_process(void); 
void delay_10ms(unsigned int _10ms); 
void delay_1ms(unsigned char _1ms); 
void delay_50us(unsigned char _50us); 
void start_timeout(unsigned int _50us); 
void stop_timeout(void); 
void beep(unsigned char n); 
void splash(unsigned char n);   //led 闪烁次数 
void cmd_ok(void);         //发送命令成功信号0100给上位机 
 
// End of File 
//////////////////////////////////////////////////////////////////////////////