📄 main.h
字号:
#define OriginalPwd 500 //税控机初始化时获得的原始口令 8 BCD
//508--512:保留字节
//----------------------------------------------------------------------------------------------
//申报数据缓冲区:
#define Declare 512
#define DecBeginDate Declare //申报数据起始日期 4 BCD
#define DecEndDate Declare+4 //申报数据截止日期 4 BCD
#define DecInvoNum1 Declare+8 //正常发票份数 4 【unsigned long】
#define DecInvoNum2 Declare+12 //退票份数 2 【unsigned int】
#define DecInvoNum3 Declare+14 //废票份数 2 【unsigned int】
#define DecTaxIndex Declare+16 //税种税目索引号 6 HEX
#define DecInvoSum1 Declare+22 //正常发票分类累计金额 24 【unsigned long】× 6
#define DecInvoSum2 Declare+46 //退票分类累计金额 24 【unsigned long】× 6
#define DeclareFlg Declare+70 //报税标志:0:“没有申报”或已经“完税”;1:已经申报 或没有“完税” 1 HEX
//当天交易数据缓冲区:
#define IntradayTime Declare+71 //当天日期 4 BCD 用于判断是否已经跨越到第2天
#define IntradayInvoNum Declare+75 //当天正常发票份数 2 HEX
#define IntradayUntread Declare+77 //当天退票份数 2 HEX
#define IntradayInvalid Declare+79 //当天废票份数 2 HEX
#define IntradayIndex Declare+81 //当天税种税目索引号 6 HEX
#define IntradaySortSum Declare+87 //当天正常发票分类累计金额 24 【unsigned long】× 6
#define IntradayTui Declare+111 //当天退票分类累计金额 24 【unsigned long】× 6
#define ElectronicSign Declare+135 //电子签名 128 HEX
//电子签名未使用,保留128字节
#define ItemNumber Declare+263 //当前项目数量 1 HEX
#define PluNumber Declare+264 //当前PLU数量 2 HEX
#define InvoStatNum Declare+266 //单卷发票使用汇总数据数量 2 【unsigned int】
#define DailyDatNum Declare+268 //日交易数据笔数 2 【unsigned int】
#define InvoPrintNum Declare+270 //发票打印数据笔数 2 【unsigned int】
#define BossPwd Declare+272 //老板密码 4 Byte
#define SalerPwd Declare+276 //存放12个营业员密码 4×12 =48字节
#define SalerStat Declare+324 //营业员销售金额累计 4×12 =48字节
#define InvoiceCode Declare+372 //存放当前卷发票代码 10 字节
#define InvoiceNo Declare+382 //本卷发票当前发票号 4 字节
#define InvoiceNoEnd Declare+386 //本卷发票结束号 4 字节
#define DecAddUp Declare+390 //一个报税周期内的销售累计金额 4 HEX
#define DecUntread Declare+394 //一个报税周期内的退票累计金额 4 HEX
#define UntreadNum Declare+398 //本卷发票作废发票数量 1 HEX
#define PwdFlg Declare+399 //使用口令标志,'00':使用原始口令;'01':使用随机口令
#define PwrFlgAdr Declare+400 //掉电中断标志
#define BlackFlg Declare+401 //黑标定位标志
#define SalerNum Declare+402 //营业员数量 1 HEX
//保留3字节
#define InvoStatFull Declare+406 //单卷发票使用汇总数据已满标志
#define DailyDatFull Declare+407 //日交易数据已满标志
#define InvoPrintFull Declare+408 //发票打印数据已满标志
#define DeclareFull Declare+409 //申报备份数据已满标志
//Declare+410----Declare+416:保留7字节
//单卷发票使用汇总数据缓冲区
#define TomeNum1 Declare+417 //正常发票份数 1 HEX
#define TomeNum2 Declare+418 //退票份数 1 HEX
#define TomeNum3 Declare+419 //废票份数 1 HEX
#define TomeStat Declare+420 //正常发票总金额 4 HEX
#define TomeUntread Declare+424 //退票总金额 4 HEX
#define TomeTime Declare+428 //开票起始时间 4 BCD
#define DistriError Declare+432 //分发发票时出现异常标志
#define MacState Declare+433 //税控机当前状态 1 HEX
#define DeclareNum Declare+434 //申报备份数据文件个数 1 HEX
#define InvoiceNum Declare+435 //已经分发(剩余)的发票卷数 1 HEX 最多10卷??
#define DistriInvo Declare+436 //发票分发临时文件 22 HEX 512+436=948
//970--1023:保留字节
//1024--+--*(22×46(卷)=1012字节 )--2035 //已经分发的发票信息文件 22×46(卷)=1012字节
#define InvoInfo 1024 //已经分发的发票信息文件 22×46(卷)=1012字节
#define InvoCode InvoInfo //发票代码 10 BCD
#define InvoNo1 InvoInfo+10 //起始号 4 HEX
#define InvoNo2 InvoInfo+14 //终止号 4 HEX
#define InvoMAC InvoInfo+18 //MAC 4 HEX
//2036--2047:保留字节
//2048--3071
#define UntreadAdr 2048 //存放作废发票号码,每卷发票最多256张 4×256=1024
//3072--3211
#define MultiUserInfo 3072 //分户开票编号文件 140 Byte
//8K Byte:0--8191; 8191-3212+1 = 4980 Byte
#define DeclareBak 3212 //存放申报备份数据文件 至少60个 83×60 = 4980 Byte
//申报数据起始日期 4 BCD
//申报数据截止日期 4 BCD
//正常发票份数 4 HEX
//退票份数 2 HEX
//废票份数 2 HEX
//税种税目索引号 6 HEX
//正常发票分类累计金额 24 HEX
//退票分类累计金额 24 HEX
//税控卡正常发票总累计金额 4 HEX
//税控卡退票总累计金额 4 HEX
//状态字 1 HEX
//MAC1 4 HEX
//--------------------------共83字节
//-----------------------------24c256存放空间使用完毕-----------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------
#define DeclareBakMax 60 //申报备份数据最大存储数量
#define DistriInvoMax 10 //已分发而未使用发票卷最大存储数量
#define ClassMaxNum 8 //一张发票可以打印的最大的商品种类
#define WareMaxNum 1000000 //一个商品最大的允许数量暂定为一万(小数点后还有两位)
#define CursorTime 2000 //等待输入时LCD屏上显示的光标闪烁间隔时间
//--------------------------------------------------------------------------------
//????????????????????????????????????????????????????这些锁和键盘扫描码怎样定义的规则??????????????????????
//锁扫描码(第五版)
#define LockSys 0xFD //1挡,系统功能
#define LockTime 0xFE //2挡,时间显示
#define LockCom 0x7F //3挡,通讯
#define LockSale 0xbF //4挡,销售
#define LockTax 0xdF //5挡,税务处理
#define LockRep 0xEF //6挡,报表
#define LockWare 0xF7 //7挡,商品管理
#define LockChk 0xFB //8挡,自检
#define LockNull 0xFF //9挡,保留
//--------------------------------------------------------------------------------------//
// 键盘扫描码
#define K_0 0xAA //数字键0
#define K_1 0xAB //数字键1
#define K_2 0xB4 //数字键2
#define K_3 0xBD //数字键3
#define K_4 0xA4 //数字键4
#define K_5 0xA5 //数字键5
#define K_6 0xBF //数字键6
#define K_7 0xA6 //数字键7
#define K_8 0xA7 //数字键8
#define K_9 0xC1 //数字键9
#define K_00 0xB3 //数字键00
#define K_DOT 0xBC //小数点.
#define K_SL 0xAD //数量、乘号×
#define K_BF 0xAE //%键
#define K_XM1 0xA8 //项目1
#define K_XM2 0x9F //项目2
#define K_XM3 0x96 //项目3
#define K_XM4 0x8D //项目4
#define K_XM5 0x84 //项目5
#define K_XM6 0xA9 //项目6
#define K_XM7 0xA0 //项目7
#define K_XM8 0x97 //项目8
#define K_XM9 0x8E //项目9
#define K_XM10 0x85 //项目10
#define K_XM11 0xAA //项目11
#define K_XM12 0xA1 //项目12
#define K_XM13 0x98 //项目13
#define K_XM14 0x8F //项目14
#define K_XM15 0x86 //项目15
#define K_XM16 0xAB //项目16
#define K_XM17 0xA2 //项目17
#define K_XM18 0x99 //项目18
#define K_XM19 0x90 //项目19
#define K_XM20 0x87 //项目20
#define K_XM21 0xA4 //项目21
#define K_XM22 0x9B //项目22
#define K_XM23 0x92 //项目23
#define K_XM24 0x89 //项目24
#define K_XM25 0x80 //项目25
#define K_HD 0x83 //换档键
#define K_PLU 0xA2 //PLU键
#define K_JZ 0x8F //进纸键
#define K_TZ 0x98 //退纸键
#define K_QC 0xC2 //清除键
#define K_LJ 0xC0 //订正键
#define K_TH 0x8A //退票/废票键
#define K_SR 0x99 //输入切换
#define K_TC 0x9C //退出/注销键
#define K_DZ 0xB7 //打折
#define K_JF 0xB6 //加费键
#define K_DL 0xB0 //签到/登陆键
#define K_CX 0xB9 //销售查询键
#define K_SK 0xAD //刷卡消费键
#define K_BZ 0xC3 //帮助键
#define K_SJ 0xA1 //时间键
#define K_GN 0xAF //系统功能
#define K_TM 0x90 //手工条码键
#define K_XJ 0xC6 //小计键
#define K_HJ 0xC5 //合计/确认键
#define K_UP 0x93 //向上
#define K_DOWN 0x92 //向下
#define K_LEFT 0x89 //向左
#define K_RIGHT 0x9B //向右
//---------spi-----------------------------------------------------------------------------//
#define SpiReadLenErr 0x51
#define SpiWriteLenErr 0x52
#define SpiOK 1
#define SpiErr 0x54
//-------NumToStr函数转换参数设置--------------------------
#define SwitchInt 0x00 //
#define SwitchFloat 0x01 //
#define SwitchZero 0x02 //
#define SwitchDot 0x04 //
#define SwitchSpace 0x08 //
#define SwitchEnd 0x80 //
//------------------------------------------------------
//-------I2C总线地址设置-------------------------------
#define EepromAdr 0xA0 //24C64地址
#define ClockAdr 0xD0 //M41T0和M41ST87的地址都是0xD0
#define ClockChip 0 //0:M41T0;1:M41ST87
#define RfidAdr 0xAE
//------------------------------------------------------
//-------4052的串口通讯通道选择-------------------------------
#define UARTA PDO=0 //
#define UARTB PDO=0x02 //
//#define UARTC PDO=0x04 //
//#define UARTD PDO=0x06 //
#define DisableCs P47 = 0
//#define DisableCom P11=1,P10=1
#define DisableCom P37=1
#define COM1CS P37=0
//#define COM1CS P11=1,P10=0 //4052片选,为防止两片与外设通讯的4052同时工作,
//#define COM2CS P10=1,P11=0 //此处必须先禁止另一片4052工作,再选通需要工作的4052
//#define SIMCS P34=0
//----------UART-串口-----------------------------------------------------------------------------------
#define UART_BUF_SIZE 256 //串口接收和发送缓冲区大小,禁止改变
#define UART0_Mod1_Timer1_9600 UartSet(0,1,1,0,9600)
#define UART0_Mod1_Timer2_19200 UartSet(0,2,1,0,19200)
#define UART0_Mod3_Timer1_9600 UartSet(0,1,3,0,9600)
#define UART0_Mod3_Timer2_19200 UartSet(0,2,3,0,19200)
#define UART1_Mod1_Timer2_19200 UartSet(1,2,1,0,19200)
#define UART1_Mod3_Timer1_9600 UartSet(1,1,3,0,9600)
#define UART1_Mod1_Timer1_9600 UartSet(1,1,1,0,9600)
#define UART1_Mod3_Timer2_19200 UartSet(1,2,3,0,19200)
// ---------------全局变量---------------------------------------------------------------------
extern uchar xdata TxdBuf[]; //Data Buffer for UART1、2 Transmitter
extern uchar xdata RxdBuf[]; //Data Buffer for UART1、2 Receiver
extern uint xdata TxdLen; //no. of data to be transimitted
extern uint xdata TxdNum; //no. of data transmitted
extern uint xdata RxdLen; //no. of data to be received
extern uint xdata RxdNum; //no. of data received
extern uchar xdata SimTimeOut,SimFlg;
extern uchar xdata TxdFlg;
extern uchar xdata RxdFlg;
extern uchar xdata PwrFlg;
extern uchar xdata HugeTest; //海量测试专用
extern gyt4 xdata UntreadCode; //退票
extern uchar xdata InvoDate[];
extern ulong xdata WareNo; //当前商品编号
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -