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

📄 datadefine.h.bak

📁 一个电表的程序
💻 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 + -