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

📄 var.h

📁 本代码为电子式单相多费率电能表的源程序
💻 H
字号:
//**********************************************************************************
// 公用变量、常量定义区
//**********************************************************************************
#ifdef  _VAR_DEFINE
#define __VAR_EXTERN
#else
#define __VAR_EXTERN   extern
#endif

//**********************************************************************************
//常数及位变量定义
#ifdef  _VAR_DEFINE
//===============================================
//液晶显示对照表
//===============================================
__VAR_EXTERN uchar code LcdCoding[17]=
{
    0xED,   //"0"  a+b+c+d+e+f
    0x60,   //"1"  b+c
    0xA7,   //"2"  a+b+d+e+g
    0xE3,   //"3"  a+b+c+d+g
    0x6A,   //"4"  b+c+f+g
    0xCB,   //"5"  a+c+d+f+g
    0xCF,   //"6"  a+c+d+e+f+g
    0xE0,   //"7"  a+b+c
    0xEF,   //"8"  a+b+c+d+e+f+g
    0xEB,   //"9"  a+b+c+d+f+g
    0xEE,   //"A"  a+b+c+e+f+g
    0x4F,   //"b"  c+d+e+f+g
    0x8D,   //"C"  a+d+e+f
    0x67,   //"d"  b+c+d+e+g
    0x8F,   //"E"  a+d+e+f+g
    0x8E,   //"F"  a+e+f+g
    0x00    //" "  
};

//===============================================
//时钟温度补偿表
//===============================================
__VAR_EXTERN uchar code Equalize_Table[91]=
{
    0x63,0x5F,0x5B,0x57,0x53,	//  0~4
    0x4F,0x4B,0x47,0x43,0x3F,	//  5~9
    0x3B,0x37,0x33,0x2F,0x2B,	// 10~14
    0x28,0x25,0x22,0x1F,0x1C,	// 15~19
    0x09,0x06,0x04,0x02,0x01,	// 20~24
    	      0x00,             // 25
    0x00,0x01,0x01,0x02,0x03,	// 26~30
    0x05,0x06,0x08,0x0A,0x0D,	// 31~35
    0x0F,0x12,0x15,0x19,0x1C,	// 36~40
    0x20,0x24,0x29,0x2E,0x32,	// 41~45
    0x38,0x3D,0x43,0x49,0x4F,	// 46~50
    
    0x55,0x5C,0x63,0x6A,0x71,	// 51~55
    0x79,0x81,0x89,0x92,0x9A,	// 56~60
    0xA3,0xAD,0xB6,0xC0,0xCA,	// 61~65
    0xD4,0xDE,0xE9,0xF4,0xFF, 	// 66~70
    
    0x67,0x6B,0x6F,0x73,0x77,	// -1  ~ -5
    0x7C,0x81,0x86,0x8B,0x90,	// -6  ~ -10
    0x95,0x9A,0x9F,0xA5,0xAB,	// -11 ~ -15
    0xB2,0xB8,0xBE,0xC4,0xCA	// -16 ~ -20 
};

//电表运行状态字
__VAR_EXTERN  uchar bdata MeterFlag;		
__VAR_EXTERN  sbit Battery     = MeterFlag^0;	        //电池状态
__VAR_EXTERN  sbit BatUpFlag   = MeterFlag^1;	        //电池上电标志
__VAR_EXTERN  sbit ErySaveFlag = MeterFlag^2;	        //(正/反向)整数电量保存标志
__VAR_EXTERN  sbit ReinitUARTFlag  = MeterFlag^3;	//UART重新初始化标志
__VAR_EXTERN  sbit EryRev      = MeterFlag^4;	        //电能方向
__VAR_EXTERN  sbit AdjDate     = MeterFlag^5;	        //校时期允许
__VAR_EXTERN  sbit Fee0        = MeterFlag^6;	        //费率位0
__VAR_EXTERN  sbit Fee1        = MeterFlag^7;	        //费率位1
//状态标志位1
__VAR_EXTERN  uchar bdata Flag;		
__VAR_EXTERN  sbit TimeAdj        = Flag^0;		//校时时间
__VAR_EXTERN  sbit TimeProg       = Flag^1;		//编程时间
__VAR_EXTERN  sbit RxdFlag        = Flag^2;		//接收结束
__VAR_EXTERN  sbit TxdFlag        = Flag^3;		//应答开关
__VAR_EXTERN  sbit TxdWork        = Flag^4;		//发送状态
__VAR_EXTERN  sbit KDNH_Last_State= Flag^5;		//开端钮盒上次电平状态
__VAR_EXTERN  sbit KBG_Last_State = Flag^6;		//开表盖上次电平状态
__VAR_EXTERN  sbit DspFlag        = Flag^7;		//显示刷新
//状态标志位2
__VAR_EXTERN  uchar bdata SystemStates; 				
__VAR_EXTERN  sbit ClearEvenFlag = SystemStates^0;	//清事件记录标志
__VAR_EXTERN  sbit LCDShowMode  = SystemStates^1;	//LCD显示方式选择
__VAR_EXTERN  sbit DspDataReadFlag = SystemStates^2;	//读显示控制参数标志
__VAR_EXTERN  sbit BatAlert     = SystemStates^3;	//电池报警标志
__VAR_EXTERN  sbit EryBln_Flag  = SystemStates^4;	//电量结算标志
__VAR_EXTERN  sbit Prog_Flag    = SystemStates^5;	//编程允许开关
__VAR_EXTERN  sbit Fee_Flag     = SystemStates^6;	//时段费率检查标志
__VAR_EXTERN  sbit CommFlag     = SystemStates^7;	//通讯标志
#else
__VAR_EXTERN uchar code LcdCoding[17];                  //液晶显示对照表
__VAR_EXTERN uchar code Equalize_Table[91];             //时钟温度补偿表
//电表运行状态字
__VAR_EXTERN  uchar bdata MeterFlag;		        //电表运行状态字
__VAR_EXTERN  bit Battery;     	                        //电池状态
__VAR_EXTERN  bit BatUpFlag;	                        //电池上电标志
__VAR_EXTERN  bit ErySaveFlag;                	        //(正/反)整数电量保存标志
__VAR_EXTERN  bit ReinitUARTFlag;               	//UART重新初始化标志
__VAR_EXTERN  bit EryRev;                	        //电能方向
__VAR_EXTERN  bit AdjDate;               	        //校时期允许
__VAR_EXTERN  bit Fee0;                  	        //费率位0
__VAR_EXTERN  bit Fee1;                  	        //费率位1
//状态标志位1
__VAR_EXTERN  uchar bdata Flag;		                //状态标志位1
__VAR_EXTERN  bit TimeAdj;		                //校时时间
__VAR_EXTERN  bit TimeProg;                             //编程时间
__VAR_EXTERN  bit RxdFlag;                              //接收结束
__VAR_EXTERN  bit TxdFlag;                              //应答开关
__VAR_EXTERN  bit TxdWork;                              //发送状态
__VAR_EXTERN  bit KDNH_Last_State;                      //开端钮盒上次电平状态
__VAR_EXTERN  bit KBG_Last_State;                       //开表盖上次电平状态
__VAR_EXTERN  bit DspFlag;                              //显示刷新
//状态标志位2
__VAR_EXTERN  uchar bdata SystemStates; 				
__VAR_EXTERN  bit ClearEvenFlag;	                 //清事件记录标志
__VAR_EXTERN  bit LCDShowMode;	                         //LCD显示方式选择
__VAR_EXTERN  bit DspDataReadFlag;	                 //读显示控制参数标志
__VAR_EXTERN  bit BatAlert;	                         //电池报警标志
__VAR_EXTERN  bit EryBln_Flag;	                         //电量结算标志
__VAR_EXTERN  bit Prog_Flag;	                         //编程允许开关
__VAR_EXTERN  bit Fee_Flag;	                         //时段费率检查标志
__VAR_EXTERN  bit CommFlag;	                         //通讯标志
#endif
//**********************************************************************************

//**********************************************************************************     
//公用变量定义
//********************************************************************************** 
__VAR_EXTERN  pdata uchar ErrInfFlag;                    //通讯错误信息标志
//                                     
__VAR_EXTERN  pdata uchar DspSec;			 //轮显时间秒计数
__VAR_EXTERN  pdata uchar RevSec;                     	 //反向时间秒计数
__VAR_EXTERN  pdata uchar KBGSec;                     	 //开表盖时间秒计数
__VAR_EXTERN  pdata uchar KDNHSec;                     	 //开端钮盒时间秒计数
__VAR_EXTERN  pdata uchar ProgDeLayTimer;                //按键检测延时计数器
__VAR_EXTERN  pdata uchar ProgActiveFlag;                //按键有效标志
__VAR_EXTERN  pdata uchar RevDeLayTimer;                 //电能反向延时计数器
__VAR_EXTERN  pdata uchar KBGDeLayTimer;                 //开表盖延时计数器
__VAR_EXTERN  pdata uchar KDNHDeLayTimer;                //开端钮盒延时计数器
__VAR_EXTERN  pdata uchar CommLCDSec;			 //液晶通讯指示显示时间
__VAR_EXTERN  pdata uchar LCDViewSec;			 //液晶显示屏查看时间
__VAR_EXTERN  pdata uchar ProgLEDShow;			 //LED编程提示
__VAR_EXTERN  pdata uchar NoProgFlag;			 //无需编程开关按下标志
                                                
__VAR_EXTERN  pdata uchar DspPtr;                     	 //轮显指针
__VAR_EXTERN  pdata uchar ComPtr; 			 //通信缓冲区指针
__VAR_EXTERN  pdata uchar CommTimer;			 //通讯帧间隔时间计数
__VAR_EXTERN  idata uchar PosErySavePtr[2]; 	         //(正向)整数电量保存指针+校验
__VAR_EXTERN  idata uchar RevErySavePtr[2]; 	         //(反向)整数电量保存指针+校验
__VAR_EXTERN  pdata uchar ErySaveCode; 	                 //(正/反)整数电量保存编号
__VAR_EXTERN  pdata uchar RTCBackPtr;			 //RTC备份指针
                                                         
//电量数据                                               
__VAR_EXTERN struct ENERGY
{
  uchar PulseTmp1[4];                                    //剩余脉冲数(正)+校验
  uchar PulseTmp2[4];                                    //剩余脉冲数(反)+校验      
  uchar EryTmp1[4];                                      //电量小数(正)+校验                                
  uchar EryTmp2[4];                                      //电量小数(反)+校验
  uchar PowerDownTime[5];                                //电表掉电时间(分、时、日、月、年)
  uchar TimeCheck;                                       //电表掉电时间的校验和
  uchar isRev;                                           //上次断电前电能是否反向
  uchar RtcPtr;                                          //RTC缓存指针
}Energy;

//                                                       
__VAR_EXTERN  idata uchar RTC[8];		         //时间数据+校验
//                                                       
__VAR_EXTERN  pdata uchar DspPara[6];			 //3位显示控制+1位检验和、轮显时间+反码校验
__VAR_EXTERN  pdata uchar DspExch[3];                    //显示交换区
             
//                                                
__VAR_EXTERN  pdata uint  MSSum;		         //毫秒和
__VAR_EXTERN  pdata uchar ProgTimer; 	                 //编程状态计时
              
//            
__VAR_EXTERN  pdata uchar MeterRunFlag;                  //电表运行状态字
__VAR_EXTERN  pdata uchar SystemCheckFlag;               //系统自检状态字
__VAR_EXTERN   data uchar ePowerDownCheckFlag;           //使能掉电检测状态字
//           
__VAR_EXTERN  pdata uchar CurrentMonthNoBlnFlag;         //本月电量不结算标志
__VAR_EXTERN  pdata uchar isLastMonthEry;                //抄收上月电量标志(用于非1日0时结算的抄表日)
__VAR_EXTERN  pdata uchar Last_Prog_Flag;                //编程键上次状态
__VAR_EXTERN  pdata uchar isNewState;                    //电表在新进状态时,连续运行36小时后自动切换至运行状态
//                                                       
__VAR_EXTERN  idata uchar ComBuf[RS_MaxSize];	         //通信缓冲区
//
__VAR_EXTERN  pdata uint  T0Monitor;                     //Timer0监控变量
__VAR_EXTERN  pdata uint  RTCMonitor;                    //RTC监控变量
__VAR_EXTERN  pdata uchar MainMonitor;                   //主循环监控变量
//
__VAR_EXTERN  idata uchar CommVariant[VAR_MaxSize];      //公用变量

⌨️ 快捷键说明

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