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

📄 newtax.h

📁 CPU卡读写
💻 H
字号:
/*黑匣子头文件,数据结构定义,内存地址分配,I/O口定义*/
#ifndef _NEWTAX_H_
#define _NEWTAX_H_

#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint  unsigned int
#endif
#ifndef ulong
#define ulong unsigned long
#endif
 
#define		Head_Flag1	0x1b      /*  与外部通讯协议头 */
#define		Head_Flag2  0x10      /*  与外部通讯协议头 */ 

/*********************************************
------预定义命令字------
**********************************************/

#define   ReadState		0xA0	//读读写器的状态
#define   PowerOn		0xA1	//CPU卡上电复位 
#define   PowerOff		0xA2	//CPU卡下电
#define   ResetCard		0xA3	//CPU卡热复位
#define   APDUOrder  	0xA4	//APDU命令

/**********************************************
        define communication answer
 **********************************************/
#define   OK             		0x00           /* 0x5a*/
#define   Error          		0xff           /* 0xa5*/
#define   Finish         		0x70		   /*写卡完成*/
#define   Continu        		0x71

#define   SendToMain  	SCON=0x50;ES=0

#define   WaitTI      	while(TI==0);TI=0     /*  等待串行口发送中断   */
#define   WaitRI      	while(RI==0);RI=0     /*  等待串行口接收中断   */

#define   True             1      
#define   False            0


/**************************************************
                    全局变量定义 
 **************************************************/
bit T_Flag0,TimeOverRun;         
     //定时计数器0中断标志位        =1,定时计数器有中断,=0没有中断
     //定时计数器2计时5s中断标志位  =1,定时计数器达到5s,=0没有没有达到5s
data uint Int2count;
     //定时计数器2中断次数计数器

bit NPBit;
     //接受数据包标志位            =1,下一包,=0不是下一包

bit	SerialBit,BagHeadBit;
	//SerialBit:	接收命令包时长度不够标志位,接收超时标志
	//BagHeadBit:	接收命令包头出错标志位
data uchar handle;
	//handle:	    接收命令的命令字
data uchar ReceiveBagNo;
	//ReceiveBagNo:	接收数据包的包号

data uchar AnyBagBit;
	//AnyBagBit:	多包标志位,=1,为多包,=0,为一包
data uchar Slen;
	//Slen:	        接收的数据长度
data uchar   fini;	 //设置接收到完整包数据标志
data uchar  Counter; //接收每个字节的计数器
data uchar  uc0;     //接收到的字节
data uchar   N;       // Tc(1)的附加延迟时间 
bit  uchar  CARDBit;  // 卡标志位=0为用户卡座,=1为税控卡座
data uchar  ICReadData;
                      // CPU卡读出的单个字节数据




bit	OnlyFirst,TaxCtrCardBit;
	//OnlyFirst: 	不满足条件跳出标志位
	//SerialBit:	接收命令包时长度不够标志位
	//BagHeadBit:	接收命令包头出错标志位
	//TaxCtrCardBit:税控卡上电出错标志位
bit	CARDBit,TimeOverRun,PowerOnBit,AnyBagBit,DayRecOverFlowBit,fini;		
	//fini:		    是否成功接到命令包标志位
	//TimeOverRun: 在多包传输时间间隔超时标志位
	//NewDayBit:	时间跨天标志位
	//PowerOnBit:	CPU卡上电出错标志位
	//AnyBagBit:	多包标志位
	
bit	SelfTest,UserCheckBit,LockFiscalBit,NPBit;	
	//SelfTest:	 自检标志位
	//UserCheckBit: 用户/稽查卡是否在卡座标志位
	//LockFiscalBit:锁税控器标志位
	//NPBit:	     下一包标志位
bit TaxCheckBit,TaxInsertBit,ErrorBit,OpenCrustFlag,NoteBit=0;			
    //TaxCheckBit  税控卡是否在卡座标志
	//ErrorBit	   报错标志,当该位置位后不写执行成功审计记录



bdata  char Tabcd;       /// IC卡返回字节                     
sbit   Ta=Tabcd^4;                     
sbit   Tb=Tabcd^5;                      
sbit   Tc=Tabcd^6;                      
sbit   Td=Tabcd^7;	
/*
	
extern bdata  char  ReValData;
extern sbit  bit0=ReValData^0;
extern sbit  bit1=ReValData^1;
extern sbit  bit2=ReValData^2;
extern sbit  bit3=ReValData^3;
extern sbit  bit4=ReValData^4;
extern sbit  bit5=ReValData^5;
extern sbit  bit6=ReValData^6;
extern sbit  bit7=ReValData^7;
extern bit   ReValDataBit;		//返回结果
     


*/
data	uint	tempdata,Counter,Int2count,ppt;

data	uchar	TxDataBuf[270],RxDataBuf[256];                  /*  CPU卡读写数据BUF             */

data 	ulong 	FileSize; //当前文件长度



union xdata Un;

#endif

⌨️ 快捷键说明

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