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

📄 disp_control.c

📁 此程序中有LCD显示
💻 C
📖 第 1 页 / 共 5 页
字号:
                                 T_ch7=0xdd07;
                                 trip_flag=26;//跳闸记录标志
                                  }
                                 else  
                                   {T_ch7=0xff07;
                                    trip_record(26);                                    
						           }  
                                 }
                            else  if((temp_alarm&0x0040)==0x0040)
                                 {
                                  alarm_flag_son(26);                             
                                  T_ch7=0xdd07;
                                 } 
                              else
                                  T_ch7=0; 
                          if((temp_trip&0x0080)==0x0080)
                                 {                                 
                                 if(status==0xcc)
                                 {
                                 T_ch8=0xdd08;
                                 trip_flag=27;//跳闸记录标志
                                  }
                                 else  
                                    {T_ch8=0xff08;
                                    trip_record(27);                                    
						           }
                                 }
                             else if((temp_alarm&0x0080)==0x0080)
                                 {
                                  alarm_flag_son(27);
                                  T_ch8=0xdd08;
                                 }
                              else
                                  T_ch8=0;
}
/*********************************************************************/
void dol_led()//DOL指示灯
{
if(Starcrv_sel==0x05)
   dol_f=0;
else
  dol_f=1;                                
}
void turn_led()//TURN指示灯
{
if(motor_turn==0xba)
  turn_f=0;
else
  turn_f=1;             
}
void control_mode_led()//控制模式指示灯
{
if(Ctrl_mode==0xca)
{
    remote_f=1;
    local_f=0;
}
else if (Ctrl_mode==0xcd)
{
    remote_f=0;
    local_f=1;
}
}
/*************************************************************************************/
void write_temp_comm()//温度报警相关子程序
{
   temp_trip_b=temp_trip;
   temp_trip_alarm();
   clear1();
   delay(2000);
   clear1();                                                        
   pic_number300(); 
}
//--------------------------------------------------------------------------------------------------------------------------
	//Interrupt Section for CAN2
//--------------------------------------------------------------------------------------------------------------------------
void __attribute__((interrupt, no_auto_psv)) _C2Interrupt(void){
       
       IFS2bits.C2IF = 0;         // Clear interrupt flag     
  if(C2INTFbits.RX0IF)//接收
      {     
		  C2INTFbits.RX0IF = 0;  
        
            page     = C2RX0B1;
            InData2[0] = C2RX0B2;
            InData2[1] = C2RX0B3;
            InData2[2] = C2RX0B4;
            C2RX0CONbits.RXFUL=0;            
            switch (page)
                  {
                    //接收主显示
                   case 0x1101:
                      {
                       I_a_value=InData2[0];//主显示初值						                       
                       I_b_value=InData2[1];
                       I_c_value=InData2[2]; 
                      }break;
                   case 0x1102:
                      {
                       U_a_value=InData2[0];//主显示初值
                       U_b_value=InData2[1];
                       U_c_value=InData2[2];                        
                       }break;
                  case 0x1103://接收功率参数
                      {
                       cosa=InData2[0]>>8;//小数点后2位,高字节                       
                       sina=InData2[0];//小数点后2位,低字节                       
                       power_kwh_h=InData2[1];//一个高字
                       power_kwh_l=InData2[2];//一个低字                                            				
                       temp_flag=0xaa12;//接收完功率因数标志,等待发送索求温度数据
                      } break;
                   //接收基本起动参数                  
                  case 0x1104:
                      {
                      Starcrv_sel=InData2[0]>>8; //起动参数初值               
                      Stopcrv_sel=InData2[0];
                      Init_volt1=InData2[1]>>8;
                      Init_volt2=InData2[1];
                      I_loaded=InData2[2]>>8;
                      Raise_time=InData2[2]; 
                      dol_led();//DOL灯显示   
                      }break;
                  case 0x1105:
                      {
                      Istrlimit=InData2[0]; //起动参数初值               
                      Tstrlimit=InData2[1]>>8;
                      Intvlstrs=InData2[1];                                
                      Ctrl_mode=InData2[2]>>8;
                      control_mode_led();
                      Frequency=InData2[2];                      
                      }break;                              
                   //------------------------------------------------------------
                   //接收保护参数
                   //------------------------------------------------------------
                  case 0x1108://第36画面
                       {
                        over_current_enable=InData2[0];
                        over_current_alarm_l=(InData2[1]>>8)*10;
                        over_current_alarm_d=InData2[1];
                        over_current_trip_l=(InData2[2]>>8)*10;
                        over_current_trip_d=InData2[2];
                       }break;
                  case 0x1109://第37画面
                       {
                        short_circuit_enable=InData2[0];
                        short_circuit_t_l=(InData2[1]>>8)*10;
                        short_circuit_t_d=InData2[1];                        
                       }break;
                  case 0x110a://第38画面
                       {
                        under_current_enable=InData2[0];
                        under_current_alarm_l=(InData2[1]>>8)*10;
                        under_current_alarm_d=InData2[1];
                        under_current_trip_l=(InData2[2]>>8)*10;
                        under_current_trip_d=InData2[2];
                       }break;
                  case 0x110b://第39画面
                       {
                        unsym_current_enable=InData2[0];
                        unsym_current_alarm_l=(InData2[1]>>8)*10;
                        unsym_current_alarm_d=InData2[1];
                        unsym_current_trip_l=(InData2[2]>>8)*10;
                        unsym_current_trip_d=InData2[2];
                       }break;
                  case 0x110c://第40画面
                       {
                        earth_fault_enable=InData2[0];
                        earth_fault_alarm_l=(InData2[1]>>8)*10;
                        earth_fault_alarm_d=InData2[1];
                        earth_fault_trip_l=(InData2[2]>>8)*10;
                        earth_fault_trip_d=InData2[2];
                       }break;
                   case 0x110d://第41画面
                       {
                        under_voltage_enable=InData2[0];
                        under_voltage_alarm_l=(InData2[1]>>8)*10;
                        under_voltage_alarm_d=InData2[1];
                        under_voltage_trip_l=(InData2[2]>>8)*10;
                        under_voltage_trip_d=InData2[2];
                       }break;
                   case 0x110e://第42画面
                       {
                        over_voltage_enable=InData2[0];
                        over_voltage_alarm_l=(InData2[1]>>8)*10;
                        over_voltage_alarm_d=InData2[1];
                        over_voltage_trip_l=(InData2[2]>>8)*10;
                        over_voltage_trip_d=InData2[2];
                       }break;
                   case 0x110f://第43画面
                       {
                        power_factor_enable=InData2[0];
                        power_factor_alarm_l=(InData2[1]>>8);
                        power_factor_alarm_d=InData2[1];
                        power_factor_trip_l=(InData2[2]>>8);
                        power_factor_trip_d=InData2[2];
                       }break;
                   case 0x1110://第44画面
                       {
                        phase_loss_enable=InData2[0];                   
                       }break;
                   case 0x1111://第45画面
                       {
                        phase_sequence_enable=InData2[0];                      
                       }break;
                   case 0x1112://第46画面
                       {
                        steep_load_enable=InData2[0];
                         steep_load_alarm_l=(InData2[1]>>8)*10;
                        steep_load_alarm_d=InData2[1];
                        steep_load_trip_l=(InData2[2]>>8)*10;
                         steep_load_trip_d=InData2[2];
                       }break;
                   case 0x1113://第47画面
                       {
                        thermal_overload_enable=InData2[0];
                        thermal_overload_alarm_l=(InData2[1]>>8)*10;
                        thermal_overload_alarm_d=InData2[1];
                        thermal_overload_trip_l=(InData2[2]>>8)*10;
                        thermal_overload_trip_d=InData2[2];
                       }break;
                   case 0x1114://第48画面
                       {
                        rotor_blocking_enable=InData2[0];
                        rotor_blocking_trip_l=(InData2[1]>>8)*10;
                        rotor_blocking_trip_d=InData2[1];                       
                       }break;            
                  case 0x1115://第49画面
                       {
                        comm_error_enable=InData2[0];                   
                       }break;
                  case 0x1116://第50画面
                       {
                        power_uint_error_lost_sync=InData2[0];                        
                        power_uint_error_lost_trigger=InData2[1];
                        power_uint_error_breakdown=InData2[2];
                        tran_require(0x1c5a); //向从机发送要求初始化温度报警\跳闸设定指令                                                                  
                       }break;
                  //------------------------------------- ------------------------
                   //接收motor_turn参数
                 //--------------------------------------------------------------
                 case 0x1117://接收功能参数
                      {
                        motor_turn=InData2[0];
                        turn_pause=InData2[1];
                        turn_puls=InData2[2]; 
                        turn_led();                                            
                       }break; 
                 //------------------------------------- ------------------------
                   //接收modibus参数
                 //--------------------------------------------------------------
                 case 0x1118://接收功能参数
                      {
                        modibus_enable=InData2[0];
                        modibus_rate=InData2[1];
                        modibus_address=InData2[2];                                                                   
                       }break;                  
                 //-------------------------------------------------------------
                   //接收时间(年、月、日、小时、分钟)
                 //--------------------------------------------------------------
                 case 0x1120://接收时间参数
                       {
                        year=InData2[0];
                        month=InData2[1]>>8;
                        date=InData2[1];
                        hour=InData2[2]>>8;
                        minute=InData2[2];                        
                       }break;                                  
                   //--------------------------------------------------------------
                    //接收状态信息
                   //--------------------------------------------------------------                                       
                  case 0x1301://待命状态
                      {
                       	power_kw=0;//有功和无功在待命状态显示为0
         				power_kvar=0;
         				P_factor=0;          
                       minute_stop=minute;//停止时间
                       if(minute_stop>minute_run)
                        { 
                         minute_total=(minute_stop-minute_run);// 
                   		 run_time=(read_eeprom(0xfc30)+minute_total);
                         write_word(0xfc30,run_time);
                        }
                       if(minute_stop<minute_run)
                        {                      
                        minute_dis=(minute_run-minute_stop);                                                                                                       
                        run_time=(read_eeprom(0xfc30)+(60-minute_dis));
                        write_word(0xfc30,run_time);                          
                        }                                               

⌨️ 快捷键说明

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