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

📄 jk0061119_ram._h

📁 Modbus RTU 的C语言程序
💻 _H
字号:
/////////////////////////Var  of   communication
 //char  Time0_10ms_com0=0;
 char   Time0_Ovf_com0_ProgramBranch=0;
 char   Com0_R_Cout=0,Com0_R_CRCcouter;
 char   Com0_R_Complete=0;
 //char   Com0_S_Data_flag=0;
 char   Com0_R_Data[20]; 
 char   Com0_S_Data[60];
 char   Com0_S_DataByte;
 char   *Com0_S_Pointer;
 //char   Com0_S_Data_times=0;////此变量纯粹是为发均充浮充控制命令时重复发3次
 //char   Com0_S_Data_FC_JC=0;////此变量纯粹是为记录均充浮充标志
//////////////////////////////////////////////////////////
 //char  Time0_13ms_com1=0;
 //char   Time0_Ovf_com1_ProgramBranch=0;
 char   Com1_R_Cout;
 char   Com1_R_Complete=0;
 char   Com1_R_Data[40]; 
 char   Com1_S_Data_flag=0;
 char   Master_Com1_S_Data_flag=0;
 //char   Master_Com1_S_Data_delay=0;
 char   Master_Com1_S_Data_flag_ID=10;
 //char   Com1_S_Data_FC_JC=0;////此变量纯粹是为记录均充浮充标志
 char   Com1_S_Data1[15]={0xFF,0x53,0x0C,0x00,0x07,0x1A,0x00,0x00,0x00,0x00};//设置模块输出电压电流
 char   Com1_S_Data2[6]={0x01,0x41,0x00,0x00};//读取模块模拟量
 char   Com1_S_Data3[6]={0x01,0x43,0x00,0x00};//读模块的告警状态
 char   Com1_S_Data[30];
 char   Com1_S_DataByte;
 char   Com1_S_Byte_UCSR1B;
 char   *Com1_S_Pointer;
/////////////////////////////////////////////////////////
 char   JK_Value[70];
 char   JK_IO[4]={0x01};
 char   MK_error[2];//最大只能接16个模块
 
///////////////////////////////////////////////////////////////////
char          Flag_JC_FC=0;  //0:FC   1:JC
/////////////////////////////////////////////////////////////
unsigned int  v_HM_Voltage;/// 合母电压有效值
unsigned int  v_KM_Voltage;////控母电压有效值
unsigned int  v_MK_Voltage;/////模块电压有效值
unsigned int  v_BAT_Voltage;///电池电压有效值
unsigned int  A_CD_Current;//// 充电电流有效值
unsigned int  A_KM_Load_Current;///控母负载电流
////////////////////////////////////////////////////////////////
unsigned int  v_HM_Voltage_process[10];
unsigned int  v_KM_Voltage_process[10];
unsigned int  v_MK_Voltage_process[10];
unsigned int  v_BAT_Voltage_process[10];
unsigned int  A_CD_Current_process[10];
unsigned int  A_KM_Load_Current_process[10];
char          portc_temp[6]={0x1F,0x9F,0x5F,0xDF,0x3F,0xBF};
char          Get_Data=0;
//////////////////////////////////////////////////////////////
unsigned int  Voltage_GL_Join;
unsigned int  Voltage_GL_Quit;
        char  GL_Join_Quit_Count=5;
unsigned int  *Voltage_HM_High_Alarm;
unsigned int  *Voltage_HM_Low_Alarm;
unsigned int  *Voltage_KM_High_Alarm;
unsigned int  *Voltage_KM_Low_Alarm;
////////////////////////////////////////////////
unsigned int  *A_Current_Sensor;  ///霍尔传感器量称
unsigned int  *A_Current_BypassSensor;///分流器量程
unsigned int  *A_Current_JC; //均充电流值
unsigned int  *A_Current_FC;///浮充电流值
unsigned int  *A_Current_FC_Change_JC;//浮充转均充电流值
unsigned int  *Time_Interval_JC;////均充间隔设置值
unsigned int  *Time_Limited_JC;////均充限时设置值
unsigned int  *Time_Delay_JC;////均充延时设置值
unsigned int  Time_Interval_JC_register;////均充间隔
unsigned int  Time_Limited_JC_register;////均充限时
unsigned int  Time_Delay_JC_register;////////均充延时
// char   data_cout;//数据微调
 long          temp_temp;
unsigned int  *v_HM_data_potentiometer;
unsigned int  *v_KM_data_potentiometer;
unsigned int  *v_MK_data_potentiometer;
unsigned int  *v_Bat_data_potentiometer;
unsigned int  *A_KM_Load_Current_potentiometer;
unsigned int  *A_CD_Current_potentiometer;
////////////////////////////////////////////
unsigned int  ram_array[22];
//////////////////////////////////////////////////////
        char  Time_five_second;//5 秒钟定时
unsigned int  Time_one_minute;	//1 分钟定时
unsigned int  Time_one_hour;//1小时定时
unsigned int  Password_Level_2;
///////////////////////////////////AD采集
char          AD_Channels;
char          AD_collect_cout=0;
char          data_collect_flag=0;
unsigned int   Var_temp_int;
/////////////////////////////////////////
unsigned int  *v_MK_JC_Voltage;//此变量为设置模块输出电压时使用
unsigned int  *v_MK_FC_Voltage;//此变量为设置模块输出电压时使用
float          A_MK_OUTPUT ;    //此变量为后来加的模块的输出电流
union num_float
   {
     float a;
     char num[4];
	}MK_float_num;
//////////////////////
//////////////Display  LCD
char   LCD_Display_ram[66];
char   *P_LCD_display;
unsigned int LCD_light_on_time=0;
unsigned char   ASCLL_byte1,ASCLL_byte2,ASCLL_byte3,ASCLL_byte4;
unsigned char   ASCLL_byte1_potentiometer,ASCLL_byte2_potentiometer,ASCLL_byte3_potentiometer,ASCLL_byte4_potentiometer;
/////////键盘延时
char   Time2_press_key_delay=0; //延时12ms
char   ID_key_pressed=0;
unsigned int  Password_Level_2;
unsigned char     byte_PASSword_1=0;
unsigned char    byte_PASSword_2=0;
unsigned char    byte_PASSword_3=0;
unsigned char     byte_PASSword_4=0;
unsigned int  Password_input;
///////////
char   press_key_value_pc0=1;
char   press_key_value_pc2=1;
char   menu_ID=1;
char   floor_ID=1;
char   Flag_press_key=0;
unsigned int  key_change_temp; 
/////////////////////////////////////////////////////////////////
void init_Variables_0(void)
{
   char  i,temp0,temp1;
  
         Com0_S_Data[0]=EEPROMread((int)&Address_JK); 
		 JK_Value[56]=0;
		 JK_Value[57]=Com0_S_Data[0];
		 //Com0_S_Data[0]=02;
	     temp0=EEPROMread((int)&Voltage_GL_Join_110_Hbyte);
		 temp1=EEPROMread((int)&Voltage_GL_Join_110_Lbyte);
		 Voltage_GL_Join=(int)temp0<<8;
		 Voltage_GL_Join|=(int)temp1;
		 ////
		 temp0=EEPROMread((int)&Voltage_GL_Quit_110_Hbyte);
		 temp1=EEPROMread((int)&Voltage_GL_Quit_110_Lbyte);
		 Voltage_GL_Quit=(int)temp0<<8;
		 Voltage_GL_Quit|=(int)temp1;
		 ////
		  temp0=EEPROMread((int)&Password_Level_2_Hbyte);
	      temp1=EEPROMread((int)&Password_Level_2_Lbyte);
	      Password_Level_2=(int)temp0<<8;
	      Password_Level_2|=(int)temp1;	
		 ///
	for(i=0; i<22; i++)	
	   {
	       temp0=EEPROMread((int)&EEprom_array[2*i]);
		   temp1=EEPROMread((int)&EEprom_array[2*i+1]);
		   JK_Value[2*i+12]=temp0;
		   JK_Value[2*i+13]=temp1;
		    ram_array[i]=(int)temp0<<8;
			ram_array[i]|=(int)temp1;
	    }
 
	 //////////
	A_Current_BypassSensor=ram_array;
	A_Current_JC=ram_array+1;
	A_Current_FC=ram_array+2;
	A_Current_FC_Change_JC=ram_array+3;
	Voltage_HM_High_Alarm=ram_array+4;
	Voltage_HM_Low_Alarm=ram_array+5;
	Voltage_KM_High_Alarm=ram_array+6;
	Voltage_KM_Low_Alarm=ram_array+7;
	A_Current_Sensor=ram_array+8;
	Time_Interval_JC=ram_array+9;
	Time_Limited_JC=ram_array+10;
	Time_Delay_JC=ram_array+11;
	v_HM_data_potentiometer=ram_array+12;
	v_KM_data_potentiometer=ram_array+13;
	A_CD_Current_potentiometer=ram_array+14;
	A_KM_Load_Current_potentiometer=ram_array+15;
	v_MK_data_potentiometer=ram_array+16;
	v_Bat_data_potentiometer=ram_array+17;
    v_MK_FC_Voltage=ram_array+20;
	v_MK_JC_Voltage=ram_array+21;
	//A_MK_CD_Max_Current=ram_array+22;
//////////////////////////////////////////////////

//////////////////////////////////////////////
    Flag_JC_FC=0;
	JK_IO[0]&=0xFE;
	Time_Interval_JC_register=0;
	Time_Limited_JC_register=0;
	Time_Delay_JC_register=0;
	AD_Channels=0;
	AD_collect_cout=0;
	Com0_S_Pointer=Com0_S_Data;
 }

⌨️ 快捷键说明

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