📄 datadefine.h.bak
字号:
/*=====================================================
Filename: DataDef.h
=======================================================
Author: Luo Dong Sheng
Company: Ning Bo San Xing.
Revision: 1.00
Date: 12/26/2004
=======================================================
用于汇编的常数定义
=======================================================
*/
#ifndef __DataDefine
#define __DataDefine
//---------------------------------------------------------
//#include "Includes.h"
/*
=======================================================
数据定义
=======================================================
*/
// 宏定义
#define ErrorTrue 1 //
#define ErrorFalse 0
//----------------------------------------------------------------------------------
// 系统配置定义
#define TimerMs_Number 2 //系统设定毫秒定时器(S_Time、Comm_Time)
#define TimerSs_Number 3 //系统设定秒定时器(Disp_Time、Stop_DispTime)
#define TimerMm_Number 2 //系统设定分钟定时器(前)
// #define LCD_DispLen 12 //LCD显示数据区长度
#define LCD_DispLen 11 //LCD显示数据区长度 modified by Eric 2007.1.30
#define Disp_idLen 16 //存放显示ID空间长度
#define I2C_clk 3 //I2C时钟(CLK)0-256kHz ,1-128kHz,2-64kHz,3-32kHz
#define I2C_SlvAdr 0xA8 //I2C器件地址
#define RxTxLenMax 100 //通信数据区大小定义
//=================================================================================================================================
extern unsigned char __idata TimerSs[TimerSs_Number]; //当前有功总电量(+A) (小数一字节,整数三字节**.******)
extern unsigned int Disp_XH_Buffer[Disp_idLen]; //显示序号区
// ***************************************************************************************************************/
//( 一)、RAM数据区变量定义
// 电量数据
extern unsigned char __idata KWhPwrT[4]; //当前有功总电量(+A) (小数一字节,整数三字节**.******)
extern unsigned char __idata KWhPwrF1[4]; //当前有功电量费率1
extern unsigned char __idata KWhPwrF2[4]; //当前有功电量费率2
extern unsigned char __idata KWhPwrF3[4]; //当前有功电量费率3
extern unsigned char __idata KWhPwrF4[4]; //当前有功电量费率4
extern unsigned char PstvKWhPwrT[4]; //当前正向有功总电量(+A) (小数一字节,整数三字节**.******)
extern unsigned char PstvKWhPwrF1[4]; //当前正向有功电量费率1
extern unsigned char PstvKWhPwrF2[4]; //当前正向有功电量费率2
extern unsigned char PstvKWhPwrF3[4]; //当前正向有功电量费率3
extern unsigned char PstvKWhPwrF4[4]; //当前正向有功电量费率4
extern unsigned char NgtvKWhPwrT[4]; //当前反向有功总电量(-A) (小数一字节,整数三字节**.******)
extern unsigned char NgtvKWhPwrF1[4]; //当前反向有功电量费率1
extern unsigned char NgtvKWhPwrF2[4]; //当前反向有功电量费率2
extern unsigned char NgtvKWhPwrF3[4]; //当前反向有功电量费率3
extern unsigned char NgtvKWhPwrF4[4]; //当前反向有功电量费率4
extern __idata unsigned int TEMP; // 温度测量值
extern __idata unsigned int VBAT; // 电池电压值
extern __idata unsigned int VSW; // 工作电源电压值
extern __idata unsigned int Irms; //电流有效值
extern __idata unsigned int Vrms; //电压有效值
//------------------------------------------------------------------------------------------
// RTC计时缓冲区
/*
extern __idata union
{
unsigned char TimeBuffer[6];
struct
{
unsigned char Second;
unsigned char Minute;
unsigned char Hour;
unsigned char Date;
unsigned char Month;
unsigned char Year;
};
};
*/
//------------------------------------------------------------------------------------------
// 计时器-缓冲区
/*
extern __idata union
{
unsigned char Timers[6];
struct
{
unsigned char Comm_Time; // 通信接收与发送之间延时(MS)
unsigned char CommByte_Time; // 通信字节之间延时(ms)
unsigned char CommHWDelyTime; // 红外通信时间(ms)
unsigned char Disp_Time; // LCD显示计时(s)
unsigned char Key_Time; // 编程按键有效时间(min)
unsigned char MinCount; // 分计时(s)
};
};
*/
//=========================================================================================================================
// 通信数据缓冲区
extern unsigned char RxTxBuf[RxTxLenMax]; //收发数据缓冲区
extern __idata unsigned char RxTxFlg; //通信状态标志,0=空闲,1=正在接收,2=已接收完一帧数据,3=正在发送
extern __idata unsigned char RxTxLen; //收发数据长度
//=========================================================================================================================
// #define Nop() {asm(" NOP ")} //定义空操作
//=========================================================================================================================
// 外部引用函数申明
void Timer0_Init(void); //定时器0初始化
void LcdInit(void); //lcd显示初始化
void LcdDispModule(void); //LCD显示模块程序
void LcdSetDisplay(unsigned char data);
unsigned char ShowXH(unsigned int id);
void FlDispModule(unsigned char __idata *count);
void KeyDispModule(void);
void RTC_Init(void);
void TimeModule(void);
// void I2C_Init(void);
// unsigned char I2C_Write(unsigned char Slv,unsigned int Addr,unsigned int buf,unsigned char Len);
// void I2C_Read(unsigned char Slv,unsigned int Addr,unsigned int buf,unsigned char Len);
void RunPSM0(void); //220V供电运行模式
void RunPSM1(void); //电池供电运行模式
void ClearWatchDog(void); //喂狗函数
void MeasurementInit(void); //测量模块初始化
void MeasurementModule(void); //电池电压、环境温度、工作电源电压测量
void EnergyModuleInit(void); //计量模块初始化
void EnergyModule(void); //计量模块数据处理
void SomeNops(void); //延时几个操作周期
void UartInit(void);
void CommModule(void);
void DelayMs(unsigned char delay);
void I2C_Stop(void);
#define I2C_Init() I2C_Stop();
void SetTime(void);
void TimeUpdate(void);
void SecModule(void);
void LcdUpData(void);
void ReadEnergyReg3(unsigned char regaddr);
// unsigned char E2prom_Write(unsigned int e2Adr,unsigned int DataBuf,unsigned char Len);
// unsigned char E2prom_Read(unsigned int e2Adr,unsigned int DataBuf,unsigned char Len);
unsigned char E2prom_Set(unsigned int e2Adr,unsigned char DataVal,unsigned int Len);
unsigned char CompareE2prom(unsigned int e2Adr,unsigned int DataAdr,unsigned char Len);
unsigned char WriteE2prom_Api(unsigned int e2Adr,unsigned int DataBuf,unsigned char Len);
unsigned char ReadE2prom_Api(unsigned int e2Adr,unsigned int DataBuf,unsigned char Len);
//------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -