📄 newtax.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 + -