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

📄 main.h

📁 att7025是一个单相SOC的单心片电表方案
💻 H
字号:
	

typedef unsigned char uint24[3];


struct EEPROM_DATA
{
	unsigned int	EMU_Status_EMUSR; 	//1 	EMU 状态标志寄存器	 
	unsigned int	Active_Power_Gain_GP1; 	//2 	通道1 的有	 
	unsigned int	Reactive_Power_Gain_GQ1; 	//2 	通道1 的无	 
	unsigned int	Apparent_Power_Gain_GS1; 	//2 	通道1 的视	 
	unsigned int	Phase_Calibration_GPhs1; //	2 	通道1 的相位校正	 
	unsigned int	Active_Power_Gain_GP2; 	//2 	通道2 的有	 
	unsigned int	Reactive_Power_Gain_GQ2; 	//2 	通道2 的无	 
	unsigned int	Apparent_Power_Gain_GS2; 	//2 	通道2 的视	 
	unsigned int	Phase_Calibration_GPhs2; 	//2 	通道2 的相位校正	 
	unsigned int	Reactive_Power_Phase_QPhsCal; 	//1 	无功相位补偿	 
	unsigned int 	Current_2Gain_I2Gain; 	//2 	电流通道2 增益补偿	 
	unsigned int 	Current_Offset_I1Off; 	//2 	电流通道1 	 
	unsigned int 	Current_Offset_I2Off; 	//2 	电流通道2 	 
	unsigned int 	Voltage_Offset_UOff; 	//2 	电压通道的偏置校正	 
	unsigned int	Start_Threshold_Setup_PQStart; 	//2 	起动功率设置	 
	unsigned int	High_Frequency_Const_HFConst; 	//2 	输出脉冲频率设置	 
	unsigned int	Check_Current_Rms_ICHK; 	//1 	窃电阈值设置	 
	unsigned int	ADC_Config_ADCCFG; 	//1 	ADC 控制寄存器	 
	unsigned int	Current_Channel_Control_CHNLCR; 	//1 	通道控制信号	 
	unsigned int	Energy_Measure_Control_EMCON; 	//1 	能量计量控制寄存器	 
	unsigned int	Auto_Offset_Calibration_AutoDC; 	//1 	自动偏置校正	 
	unsigned int	Active_Energy_Counter_PFCnt; 	//2 	快速有功脉冲计数	 
	unsigned int	Reactive_Energy_Counter_QFCnt; 	//2 	快速无功脉冲计数	 
	unsigned int	Apparent_Energy_Counter_SFCnt; 	//2 	快速视在脉冲计数	 
	unsigned int	ADC_Channel_Gain_ADCCON; 	//1 	ADC 通道增益选择	 
	unsigned int	Tamper_Current_TAMP; 	//2 	窃电检测电流域值	 
	unsigned int 	Channel_Digital_Gain_DGAIN; 	//1 	通道数字增益	 
	unsigned int    EMU_Krms_Rms[3];
	unsigned int    EMU_Krms_Kpqs[3];
    unsigned int    EMU_Temp_Tr;
};


 struct Emu_Parameter{
	unsigned long  Current_Waveform_Spl_I1; 	 
	unsigned long  Current_Waveform_Spl_I2; 	 
	unsigned long  Voltage_Waveform_Spl_U;	 
	unsigned long  Active_Power_Waveform_Spl_P; 	 
	unsigned long  Reactive_Power_Waveform_Spl_Q;	 
	unsigned long  Apparent_Power_Waveform_Spl_S ;	 
	unsigned long  Current_Rms_I1; 	 
	unsigned long  Current_Rms_I2; 	 
	unsigned long  Current_Rms_U;	 
	unsigned long  Current_Freq_U; 	 
	unsigned long  Active_Power_P; 	 
	unsigned long  Reactive_Power_Q; 	 
	unsigned long  Apparent_Power_S; 	 
	unsigned long  Active_Energy_P; 	 
	unsigned long  Reactive_Energy;	 
	unsigned long  Apparent_Energy_S; 	 
};
typedef struct Emu_Parameter_change{
	unsigned long  Current_Waveform_Spl_I1; 	 
	unsigned long  Current_Waveform_Spl_I2; 	 
	unsigned long  Voltage_Waveform_Spl_U;	 
	unsigned long  Active_Power_Waveform_Spl_P; 	 
	unsigned long  Reactive_Power_Waveform_Spl_Q;	 
	unsigned long  Apparent_Power_Waveform_Spl_S ;	 
	unsigned long  Current_Rms_I1; 	 
	unsigned long  Current_Rms_I2; 	 
	unsigned long  Current_Rms_U;	 
	unsigned long  Current_Freq_U; 	 
	unsigned long  Active_Power_P; 	 
	unsigned long  Reactive_Power_Q; 	 
	unsigned long  Apparent_Power_S; 	 
	unsigned long  Active_Energy_P; 	 
	unsigned long  Reactive_Energy;	 
	unsigned long  Apparent_Energy_S; 
    int            EMU_Temp_Tr;
	unsigned int  EMU_Krms_Rms[3];//电压电流额定输入时额定值与相应寄存器的比值
	unsigned int  EMU_Krms_Kpqs[3];	//显示时的系数与有功功率的系数额定比值 
    unsigned int  EMU_Temp_Toff;//温度偏置Toff
    int           gi_temper;//当前温度,上电默认25度 每10s内产生的clock数与标准32768hz 10s 内的clock数
}; //_at_ 0x0032;
typedef struct real_energy
{
	unsigned long CurrentPositiveActiveAccumTariff;
	unsigned long CurrentNegativeActiveAccumTariff;
	unsigned long CurrentQuadrant1AccumTariff;
	unsigned long CurrentQuadrant2AccumTariff;
	unsigned long CurrentQuadrant3AccumTariff;
	unsigned long CurrentQuadrant4AccumTariff;
	unsigned char pulse;
	unsigned char relay_flag;
	unsigned char moto_flag[4];
	unsigned char cs; 
};//_at_ 0x0c;
typedef  struct meter_para 
{
	unsigned char factory_No[6];
	unsigned char meter_number[6];
	unsigned char prg_password[4];
    unsigned char MeterConstantReal[3];
    unsigned char MeterConstantReactive[3];
	unsigned char iniflag; 
};

//data unsigned char aa[50];
/*data struct	
	{	unsigned char	second;
		unsigned char	minute;
		unsigned char	hour;
    unsigned char	week;
		unsigned char	day;
		unsigned char	month;
		unsigned char	year;
	}time _at_ 0x8056;*/
extern xdata struct Emu_Parameter Emu_Parameter;
extern xdata struct Emu_Parameter_change Emu_Parameter_change;
extern xdata struct real_energy real_energy;
extern xdata struct meter_para meter_para;
extern xdata unsigned char  g_CommBuffer[50];
//extern xdata struct MESSAGE_BOARD g_MessageBoard;
extern void Flash_Write_ATT7027(unsigned int addr,unsigned char *mt_data,unsigned char n);
extern void Flash_Read_ATT7027(unsigned int addr,unsigned char *mt_data,unsigned char n);
extern void WriteCALATT7027(unsigned char addr,unsigned char *mt_data,unsigned char n);
extern void ReadATT7027(unsigned char addr,unsigned char *mt_data,unsigned char n);
extern void ReadCALATT7027(unsigned char addr,unsigned char *mt_data,unsigned char n);
extern void EMU_Parameter_change1();
extern void	init_ATT7027(void);
extern void init_RTC(void);
extern void init_time(void);
extern void RTC_CAL_TEMP(void);
extern void LcdDrvInit(void);
extern void L_default(void);
extern void restoredata(void);
extern void load_Flash_write(void);
extern unsigned char judg_Flash_init(void);
extern unsigned char check_sum(unsigned char *p,unsigned char length);
extern void UpdateLCD(unsigned long x);
extern unsigned long BCDAdd(unsigned long x, unsigned long y);
extern unsigned long bin2bcd(unsigned long x);
extern unsigned char DisplayManager();
extern void DisplayEEInit(void);
extern void DisplayCal(void);
extern void CLRALL_LCD_BUF(void);
typedef struct EEPROM_DATA EEPROM_DATA;

⌨️ 快捷键说明

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