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

📄 struct.h

📁 c8051f310xmodembootloader.rar
💻 H
字号:
#ifndef __STRUCT_H__
#define __STRUCT_H__

typedef unsigned char  		UCHAR;
typedef unsigned int 		UINT;
typedef unsigned long		ULONG;
typedef unsigned long		LONG;

#define uchar unsigned char
#define uint  unsigned int

#define FLG_NEW				0x0001	  //reader  收到未登记的新tag 
#define FLG_OLD				0x0002	  //readerr 再次收到前面登记过
//#define INACTIVITY_TIME     1        //标签离开时间S

#define CHANL_DIN            1	      //韦根进门
#define CHANL_DOUT           2	      //韦根出门

#define FRAME_LEN			 19       //一帧空间数据包的长度

#define WCMD_NOR             0x01     //普通询卡 
#define WCMD_RLY             0x11     //卡回复ID

#define WCMD_SLP     		 0x02     //已经收到卡,命令休眠1s
#define WCMD_NONE            0x12	  //未定义

#define WCMD_SET_CC          0x03     //PC要求基站配置点卡,连卡变化
#define WCMD_SET_NC          0x04     //PC要求基站配置点卡,但卡不变
#define WCMD_OK              0x13     //点卡回复基站中转PC正确
#define WCMD_ERR             0x14     //点卡回复基站中转PC错误




#define PCS_read_READER        0x41	  //PC命令读取基站信息
#define PCS_read_TAG           0x42	  //PC命令读取卡信息


#define PCS_write_READER       0x31	  //PC命令写基站参数
#define PCS_write_TAG          0x32	  //PC命令卡参数


#define PCS_wr_OK              0x21	  //PC命令写基站参数 成功回复PC
#define PCS_wt_OK              0x22	  //PC命令卡参数	 成功回复PC




#define MAX_SYSTIMER_COUNT   6		  //最多定时器倒计个数

#define IS_READER            0x01
#define IS_TAG               0x02

#define  event_time_50ms      0x0001
#define  event_time_100ms     0x0002
#define  event_time_1000ms    0x0004
#define  event_uart_arrived   0x0008
#define  event_wie_arrived    0x0010
#define  event_xxx_2       0x0020   
#define  event_xxx_3       0x0040
#define  event_xxx_4       0x0080

/******************************************************************************
** 管脚定义
******************************************************************************/	

//X25128
sbit X_CS      =P1^1;       //EEPROM选中
	
sbit X_SO      =P0^1;       //EEPROM SPI 发送 和si4421 spi 共用
sbit X_SI      =P0^6; 		//EEPROM SPI 接收 和si4421 spi 共用
sbit X_SCK     =P0^0; 		//EEPROM SPI 时钟 和si4421 spi 共用

sbit TX        =P0^4;		//串口发送
sbit RX        =P0^5;		//串口接收
sbit INT0      =P0^7;		//保留

sbit D0W       =P1^2;	    //pca 韦根信号d0
sbit D1W       =P1^3;	    //pca 韦根信号d1

sbit D0IN      =P1^4;	    //进门韦根输出0
sbit D1IN      =P1^5;		//进门韦根输出1
sbit D0OUT     =P1^6;		//出门韦根输出0
sbit D1OUT     =P1^7;		//出门韦根输出1

//si4421                    
sbit  sck      =P0^0;	    //si4421  spi时钟
sbit  sdo      =P0^1;	    //si4421  spi发送
sbit  sdi      =P0^6;	    //si4421  spi接收
sbit  nsel     =P1^0;	    //si4421选中
sbit  nres     =P0^7;	    //si4421复位

//指示输出
sbit WIE_CK    =P2^0;	    //韦根选择 低有效
sbit TRIG      =P2^1;	    //触发选择 
sbit IN_OUT    =P2^2;	    //进出标记 
sbit W_FLG     =P2^3;	    //写标记 

sbit DI        =P2^4;	    //发送控制
sbit RE        =P2^5;	    //接收控制
sbit W_RST     =P2^6;	    //芯片初始化


sbit BELL      =P2^7;	    //指示灯 高有效
sbit LEDR      =P0^3;	    //指示灯 低有效
sbit LEDG      =P0^2;	    //指示灯 低有效


sbit RELAY_IN  =P3^1;	    //进门继电器	 //0有效断开动作 上电常态吸合
sbit RELAY_OUT =P3^2;	    //出门继电器
sbit TRIG_IN   =P3^3;	    //进门短路信号触发
sbit TRIG_OUT  =P3^4;	    //出门短路信号触发






/******************************************************************************
** 16-bit SFR Definitions for 'F31x
******************************************************************************/

sfr16 DP       = 0x82;                 // data pointer
sfr16 TMR2RL   = 0xca;                 // Timer2 reload value
sfr16 TMR2     = 0xcc;                 // Timer2 counter
sfr16 TMR3     = 0x94;                 // Timer3 counter
sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
sfr16 PCA0CP0  = 0xfb;                 // PCA0 Module 0 Capture/Compare
sfr16 PCA0CP1  = 0xe9;                 // PCA0 Module 1 Capture/Compare
sfr16 PCA0CP2  = 0xeb;                 // PCA0 Module 2 Capture/Compare
sfr16 PCA0CP3  = 0xed;                 // PCA0 Module 3 Capture/Compare
sfr16 PCA0CP4  = 0xfd;                 // PCA0 Module 4 Capture/Compare
sfr16 PCA0     = 0xf9;                 // PCA0 counter
sfr16 ADC0     = 0xbd;                 // ADC Data Word Register
sfr16 ADC0GT   = 0xc3;                 // ADC0 Greater-Than
sfr16 ADC0LT   = 0xc5;                 // ADC0 Less-Than


typedef struct
{
   UCHAR data_len;		        //数据总长度

   UCHAR cmd;			        //发送命令

   UCHAR reader_id[4];	        //基站系统号4字节
   UCHAR tag_id[6];             //标签卡号

   UCHAR	tag_cenfre;         //中心频率
   UCHAR	tag_power;          //收发功率
   UCHAR	tag_bud;            //通信频率
   UCHAR    tag_flaginout;      //进出门标记
   UCHAR    tag_tagantitime;    //卡防冲撞休眠时间
   UCHAR    tag_tagchgflagtine; //卡改自身标记时间
   UCHAR    tag_buf[4];			//预留8字节 

   UCHAR skey[4];		        //4字节密钥
   UINT  crc;			        //2字节crc校验
}  CMD_TAG;		                //配置及读卡标签参数28+4字节




typedef struct
{

   UCHAR data_len;		   //数据总长度
   UCHAR cmd;			   //发送命令
   UCHAR reader_id[4];	   //基站系统号4字节
   UCHAR tag_id[6];        //标签卡号
   UCHAR tag_flag;		   //标签进出1=进 0=出
   UCHAR skey[4];		   //4字节密钥
   UINT  crc;			   //2字节crc校验
} FIND_TAG;		           //主动查找标签数据帧


typedef struct
{

   UCHAR data_len;		   //数据总长度
   UCHAR cmd;              //命令
   UCHAR reader_id[4];	   //基站系统号4字节
   UCHAR tag_id[6];		   //标签卡号6字节
   UCHAR tag_flag;		   //标签进出1=进 0=出
   UCHAR skey[4];		   //4字节密钥
   UINT  crc;			   //2字节crc校验

   UCHAR state;            //状态
   UCHAR inactivity;       //递减溢出

} REPLY_FRAME;		       //回复标签数据帧


typedef struct
{

  UCHAR pcs_headh;			//起始头高字节
  UCHAR pcs_headl;		    //起始头低字节

  UCHAR pcs_len;            //数据长度 固定32字节
  UCHAR pcs_cmd;            //选择基站还是标签的配置 选择方式及命令方式半字节

  UCHAR pcs_readerid[4];    //基站系统号
  UCHAR pcs_tagid[6];       //标签卡号

  UCHAR	pcs_cenfre;         //中心频率
  UCHAR	pcs_power;          //收发功率
  UCHAR	pcs_bud;            //通信频率
  UCHAR	pcs_samecardtime;   //相同卡号输出间隔时间
  UCHAR pcs_relaytime;      //继电器输出间隔时间
  UCHAR pcs_flaginout;      //进出门标记
  UCHAR pcs_wieformat;   	//wiegand输出格式
  UCHAR pcs_trig;           //触发方式
  UCHAR pcs_ledshow;        //读卡机功能选择
  UCHAR pcs_tagantitime;    //卡防冲撞休眠时间
  UCHAR pcs_tagchgflagtine; //卡改自身标记时间
  UCHAR pcs_buf[5];			//预留5字节

  UINT  pcs_crc16;          //最后2字节校验

        
}READER_PCS;                //读卡器需要配置的上位机参数32字节



typedef struct
{
   UCHAR save_id[6];        //标签卡号
   UCHAR save_io;			//进出状态
   UCHAR save_state;        //状态
   UCHAR save_inactivity;   //递减溢出
} SAVE_ID;		            //多标签数组


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -