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

📄 main.h

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 H
📖 第 1 页 / 共 3 页
字号:
/*
* Copyright (c) 2004,成都港顺科技发展有限公司
* All rights reserved.
*
* 编 译 器:Keil:C Compiler:7.20;Assembler:7.10
* 工程名称:POS-Test.UV2
* 文件名称:Main.h
* 摘    要:所有  结构体--变量宏定义---数据存储地址定义 以及 函数申明
*
* 单 片 机:uPSD3254
* 当前版本:0.8
* 作    者:李凯
* 完成日期:2004-12-7 14:45
*/

#include "string.h"
#include "absacc.h"
#include "intrins.h"
#include "Upsd3200.h"

extern PSD_REGS PSD_REG;			//CSIOP申明,其定义在Main.C中,结构体PSD_REGS的定义在uPSD3200.H中

//#define OSC				24000000L
#define OSC				22118400L	//系统时钟定义,使用USB通讯时时钟必须是24MHz或12MHz

#define PSD_REG_ADDR 	0x0200		//CSIOP(PSD Register)地址定义
//----------------------------------------------------------------------------------------------
#define uchar	unsigned char
#define uint	unsigned int
#define ulong	unsigned long

#define PrintBusy  PSD_REG.DATAIN_C & 8		//打印机忙信号


typedef union
{
	unsigned long dat;
	unsigned char str[4];
}	gyt4;

typedef union
{
	unsigned int dat;
	unsigned char str[2];
}	gyt2;

typedef struct
{//时间数据结构-----------共8字节
	unsigned char Cent;		//世纪
	unsigned char Year;		//年
	unsigned char Mon; 		//月
	unsigned char Date;		//日
	unsigned char Week;		//星期
	unsigned char Hour;		//时
	unsigned char Min; 		//分
	unsigned char Sec; 		//秒
}	TimeDetail;

typedef struct
{//单卷发票使用汇总数据-----------------------共37字节
	uchar invcode[10];		//发票代码			10 	BCD
	ulong invhead;          //起始号			4	HEX
	ulong invend;           //终止号			4	HEX
	uchar natural;          //正常发票份数		1	HEX
	uchar untread;          //退票份数			1	HEX
	uchar invalid;          //废票份数			1	HEX
	ulong naturalsum;       //正常发票总金额	4	HEX
	ulong untreadsum;       //退票总金额		4	HEX
	ulong datehead;         //开票起始时间		4	BCD
	ulong dateend;          //开票截止时间		4	BCD
}	TomeDetail;

typedef struct
{//发票打印数据结构-------------------------------共27字节
	ulong date;				//开票日期			4		BCD
	ulong invno;			//发票号			4		BCD
	uchar type;				//开票类型			1		HEX
	ulong sum;				//开票总金额		4		HEX
	uchar taxcode[8];		//税控码			8		HEX
	ulong original;			//原发票号			4		BCD
	uint  reserve;			//保留				2		BCD
}	InvoiceDetail;

typedef struct
{//日交易数据结构--------------------------------共192字节
	ulong date;				//当天日期				4	BCD
	uint  natural;          //正常发票份数			2	HEX
	uint  untread;          //当天退票份数			2	HEX
	uint  invalid;          //当天废票份数			2	HEX
	uchar index[6];         //税种税目索引号		6	HEX
	ulong naturalsum1;	    //正常发票分类累计金额	24	HEX
	ulong naturalsum2;
	ulong naturalsum3;
	ulong naturalsum4;
	ulong naturalsum5;
	ulong naturalsum6;
	ulong untreadsum1;   	//退票分类累计金额		24	HEX
	ulong untreadsum2;
	ulong untreadsum3;
	ulong untreadsum4;
	ulong untreadsum5;
	ulong untreadsum6;
	uchar Sign[128];        //电子签名				128	HEX
}	DailyDetail;

typedef struct
{//申报备份数据结构-----------------------------------共83字节
	ulong datehead;			//申报数据起始日期			4	BCD
	ulong dateend;			//申报数据截止日期			4	BCD
	ulong natural;			//正常发票份数				4	HEX
	uint  untread;			//退票份数					2	HEX
	uint  invalid;			//废票份数					2	HEX
	uchar index[6];			//税种税目索引号			6	HEX
	ulong naturalsum1;	    //正常发票分类累计金额	24	HEX
	ulong naturalsum2;
	ulong naturalsum3;
	ulong naturalsum4;
	ulong naturalsum5;
	ulong naturalsum6;
	ulong untreadsum1;   	//退票分类累计金额		24	HEX
	ulong untreadsum2;
	ulong untreadsum3;
	ulong untreadsum4;
	ulong untreadsum5;
	ulong untreadsum6;
	ulong fiscalsum1;		//税控卡正常发票总累计金额	4	HEX
	ulong fiscalsum2;		//税控卡退票总累计金额		4	HEX
	uchar state;			//状态字					1	HEX
	uchar mac[4];			//MAC1						4	HEX
}	DeclareDetail;

typedef struct
{
  unsigned char bytlow  :  4;
  unsigned char bytHigh :  4;
}
YJB;

typedef union
{
  unsigned char bt;
  YJB swap;
}
GS;
//-----------------------宏定义---------------------------------------------------------------------------

#define Timer1Baudrate (OSC/(12*32))		//12*32=384
#define Timer2Baudrate (OSC/32)

//------PA-PC端口定义----------------------------------------------------------
#define PAO 	PSD_REG.DATAOUT_A	//PA口输出寄存器
#define PAI 	PSD_REG.DATAIN_A	//PA口输入寄存器
#define PBO 	PSD_REG.DATAOUT_B	//PB口输出寄存器
#define PBI 	PSD_REG.DATAIN_B	//PB口输入寄存器
#define PCO		PSD_REG.DATAOUT_C	//PC口输出寄存器
#define PCI		PSD_REG.DATAIN_C	//PC口输入寄存器
#define PDO 	PSD_REG.DATAOUT_D	//PD口输出寄存器
//--------------------------------------------------------------------------------------//

#define DebugSim  1		//是否操作SIM卡		为0是不操作,1要操作
#define DebugLock 0		//是否需要键盘锁	为0是不操作,1要操作
#define FlashDatM25P80		0	//1:使用M25P80存放;0:使用M45PE80存放-》商品信息、日交易数据、单卷发票使用汇总数据 ?????????????
#define FlashInvoM25P80	  	0	//1:使用M25P80存放;0:使用M45PE80存放-》发票打印数据 ?????????????
#define RS485     0

#define Flashziku		0x13			//25p80  ?????????????
#define FlashInvo		0x03			//M45PE80:高4位是0;M25P80:高4位是1 ?????????????
#define FlashDat		0x04			//45p80 ?????????????
//每片25P80容量:1048576字节=1 MByte






//--------------------------------------------------------------------------------------//
//第3片M25P80存放内容:		发票打印数据	//循环存储时必须擦除整片内容,否则速度太慢
//adr:0-----1048576   每片25P80容量:1048576字节=1 MByte
#define InvoPrintMax		38836
//#define InvoPrintMax		5757		//海量测试专用
#define	InvoPrintDat		0			//发票打印数据(27×38836=1048572 Byte)存放开始地址
#define	InvoListLimit1		0			//发票打印数据存放的开始地址
#define	InvoListLimit2		1048572		//发票打印数据存放的结束地址,(27×38836=1048572 Byte
//开票日期			4		BCD
//发票号			4		BCD
//开票类型			1		HEX
//开票总金额		4		HEX
//税控码			8		HEX
//原发票号			4		BCD
//保留				2		BCD
//------------------共27字节
//--------------------------------------------------------------------------------------//
//第4片M25P80地址空间:0-----1048576(1个64K:0)
//单卷发票使用汇总数据使用地址空间:0-65535
#define	InvoStatMax		1771
//#define	InvoStatMax		303				//海量测试专用
#define	InvoStatDat		0					//单卷发票使用汇总数据(37×1771卷=65527 Byte)存放开始地址
#define InvoStatBegin	InvoStatDat			//单卷发票使用汇总数据存放的开始地址
#define InvoStatEnd		65526				//单卷发票使用汇总数据存放的结束地址 37×1771卷=65527 Byte
//发票代码			10 	BCD
//起始号			4	HEX
//终止号			4	HEX
//正常发票份数		1	HEX
//退票份数			1	HEX
//废票份数			1	HEX
//正常发票总金额	4	HEX
//退票总金额		4	HEX
//开票起始时间		4	BCD
//开票截止时间		4	BCD
//------------------共37字节
//--------------------------------------------------------------------------------
//日交易数据使用地址空间:(要求存放超过6.5年)65536-524287(7个64K:1-7)共448K   //分页技术64K
#define DailyTradeMax		2389
//#define DailyTradeMax		1835		//海量测试专用
#define	DailyTradeDat		65536				//日交易数据(192×2389天(6.5年)=458688 Byte)存放开始地址
#define	DailyTradeBegin		65536				//日交易数据据存放的开始地址
#define	DailyTradeEnd		524287				//日交易数据据存放的结束地址
//当天日期				4	BCD
//正常发票份数			2	HEX
//当天退票份数			2	HEX
//当天废票份数			2	HEX
//税种税目索引号		6	HEX
//正常发票分类累计金额	24	HEX
//退票分类累计金额		24	HEX
//电子签名				128	HEX
//----------------------共192字节
//--------------------------------------------------------------------------------
//项目信息(50个,33×50=1650 Byte)使用地址空间:524288-525937(8个64K:8-15)//分页技术64K
#define	ItemAdr			524288
#define	ItemName		ItemAdr					//项目名称:8个汉字,16字节【两个字节一组】
#define	ItemPriceIn		ItemAdr+16				//项目进货价格:		4字节【unsigned long】
#define	ItemPriceOut	ItemAdr+20				//项目销售价格:		4字节【unsigned long】
#define	ItemStockNum	ItemAdr+24				//项目库存数量:		4字节【unsigned long】
#define	ItemSaleNum		ItemAdr+28				//项目已经销售数量:	4字节【unsigned long】
#define	ItemTaxIndex	ItemAdr+32				//所属税种税目索引号1字节
// .
// .
// .
//以上是第一个项目信息,后面还有49个项目信息
// .
// .
// .
//商品信息(13400个,39×13400=522600)使用地址空间:525938-1048538=39×13400=522600
#define	WareAdr			525938
#define	WareName		WareAdr					//商品名称:8个汉字	,16字节【两个字节一组】
#define	WarePriceIn		WareAdr+16				//商品进货价格:	4字节【unsigned long】
#define	WarePriceOut	WareAdr+20				//商品销售价格:	4字节【unsigned long】
#define	WareStockNum	WareAdr+24				//商品库存数量:	4字节【unsigned long】
#define	WareSaleNum		WareAdr+28				//商品已经销售数量:4字节【unsigned long】
#define	WareTaxIndex	WareAdr+32				//所属税种税目索引号1字节
#define	WareBarCode		WareAdr+33				//条形码:			6字节【unsigned int(条形码高4位) + unsigned long(条形码低9位)】
// .
// .
// .
//以上是第一个商品信息,后面还有13399品信息
// .
// .






// .
//........................................................................................
//以下是24C256存放内容:   //8K Byte:0--8191;
#define MacInfo			0
#define MachineAdr		MacInfo			//机器出厂数据(48 Byte)

#define MachineNo		MacInfo		//机器编号			8	BCD
#define MachineTime		MacInfo+8	//生产日期			4	BCD	CCYYMMDD
#define HardwareVer		MacInfo+12	//硬件版本号		18	ASC
#define SoftwareVer		MacInfo+30	//软件版本号		18	ASC


//......................................................................................
#define UserInfo		MacInfo+48	//用户信息(105 Byte)

#define FiscalCardNo	MacInfo+48		//税控卡编号		8	BCD
#define FiscalPwd		MacInfo+56	    //税控卡口令		8	HEX
#define AppStartTime	MacInfo+64		//应用启用日期		4	BCD	CCYYMMDD
#define AppValidTime	MacInfo+68	    //应用有效日期		4	BCD	CCYYMMDD
#define TaxpayerName    MacInfo+72	   	//纳税人名称		40	ASC
#define TaxpayerNo      MacInfo+112		//纳税人编码		8	BCD
#define TaxNumber		MacInfo+120     //税号				20	ASC
#define ManagerCode		MacInfo+140     //主管分局代码		4	BCD
#define DeclareMode     MacInfo+144		//申报方式			1	HEX
#define InvoiceEndData  MacInfo+145     //开票截止日期		4	BCD	CCYYMMDD
#define SingleQuota     MacInfo+149	//单张发票金额限额	4	HEX	单位:元。例:0x10000表示65536元
#define AddUpQuota      MacInfo+153	//发票累计金额限额	4	HEX	单位:元。例:0x10000表示65536元
#define UntreadQuota    MacInfo+157	//退票累计金额限额	4	HEX	单位:元。例:0x10000表示65536元



//......................................................................................
#define IndexItems		MacInfo+161	//税种税目索引号	6	HEX
#define MingXiKeyFlg	MacInfo+167	//明细申报标志与税控码密钥标识符	1	HEX

//......................................................................................
#define	TaxItemsInfo	MacInfo+168	//税种税目信息(47×6=282 Byte)

#define	TaxItemsIndex	MacInfo+168	//税种税目索引号	1	HEX
#define	TaxItemsCode	MacInfo+169	//税种项目代码		4	BCD
#define	TaxRate			MacInfo+173	//税率				2	HEX
#define	ChineseName		MacInfo+175	//经营项目中文名称	20	ASC
#define	EnglishName		MacInfo+195	//经营项目英文名称	20	ASC
// .
// .
// .
//以上是第一个税种税目信息,后面还有五个税种税目信息
// .
// .
// .
//........................................................................................
//443--499:保留字节

⌨️ 快捷键说明

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