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

📄 last5.c

📁 C8051F020的头文件
💻 C
📖 第 1 页 / 共 5 页
字号:
		            }

                 if(key_value_main==9)//按shift键切换设置项
	                {key_flag+=1;
		             if(key_flag>2) key_flag=1;
		             for(timer0_10ms=0;timer0_10ms<20;);
		             key_value_main=0;
                    }

                 if(key_value_main==2)//查询步长值 “1、-1、10、-10”
	                {for(timer0_10ms=0;timer0_10ms<20;);
			         calculate=1;
		             key_value_main=0;
                    }
                 else if(key_value_main==10)        
                    {for(timer0_10ms=0;timer0_10ms<20;);
			         calculate=-1;
		             key_value_main=0;
                    }
                 else if(key_value_main==7)        
                    {for(timer0_10ms=0;timer0_10ms<20;);
			         calculate=10;
		             key_value_main=0;
                    }
                 else if(key_value_main==5)        
                    {for(timer0_10ms=0;timer0_10ms<20;);
			         calculate=-10;
		             key_value_main=0;
                    }
												 
                 switch (key_flag)//根据设置项的值将步长值加到相应的变量里
                    {
                     case 1:{chongci_num_set+=calculate;
					         if(chongci_num_set<chongci_num_min) chongci_num_set=chongci_num_min;
                             if(chongci_num_set>chongci_num_max) chongci_num_set=chongci_num_max;
		                     calculate=0;
				             xianshi_spaces_data(1,10,3,1,chongci_num_set,0);
			                 xianshi_spaces_data(2,12,3,1,chongcheng_speed_ratio_set,1);
				             break;
							}
                     case 2:{chongcheng_speed_ratio_set+=calculate;
					         if(chongcheng_speed_ratio_set<7)  chongcheng_speed_ratio_set=7;
                             if(chongcheng_speed_ratio_set>13) chongcheng_speed_ratio_set=13;
		                     calculate=0;
			                 xianshi_spaces_data(1,10,3,1,chongci_num_set,1);
				             xianshi_spaces_data(2,12,3,1,chongcheng_speed_ratio_set,0);
                             break;
							}
                    }//end of switch
                }//end of while
            }//end of "if(key_value_main==2)"

//===========================================================

		  /*
          if(key_value_main==1)  //“设置”键处理,设置完成后要重新初始化相关参数
	        {key_set_dispose();
	    	 //......
	    	}
	      if(key_value_main==3)  //“查看”键处理
	        {key_look_dispose();
	    	 //......
    		}
          if(key_value_main==4)  //“翻屏”键处理
	        {key_browse_page_dispose();
	    	 //......
	    	}
	      if(key_value_main==12) //“密码”键处理
	        {key_password_dispose();
	    	 //......
	    	}
		  if(yemian_sensor_use==0) continue; // 如果启用液面传感器,则做如下操作
          read_time();
          if((change_bcd_hex(hour)%time_space)!=0) continue; // 没到时间不测量
          if(hour_old!=hour)
             {hour_old=hour;
              // 控制液面传感器测量
			  // 计算并修正冲次数和冲程速度比
             }
          */


		 }// 变频稳定运行监测结束

	 }// end of "if(bp_start_flag==1)"


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   if(gp_start_flag==1) // ---------------工频启动处理---------------
     { 
	   clear_lcd(0,0,0);
	   menu_gp_before_run();// 显示“工频启动监测...”

       if(gp_study_flag==0) // 根据标志确定是否学习
	   {
	   for(timer0_10ms=0;timer0_10ms<200;); // 延时2秒
       xianshi_spaces_hanzi(6,10,infor_hanzi56,7);//显示“学习工频冲次数”
       for(timer0_10ms=0;timer0_10ms<200;); // 延时2秒
       wz1_fault_timer=0;
       wz1_fault_flag=0;
	   wz1_touch_flag=0;
	   while(1) // 等待周期测量开始
	     {if(wz1_touch_flag==1) // 第一次检测到位置传感器1可靠触发标志,测量开始
		    {cycle_measure_timer=0;
			 xianshi_hanzi_dan(6,18,85);//显示“一”
			 for(timer0_10ms=0;timer0_10ms<100;);//delay 1s
			 break;
			}
		  if(wz1_fault_flag==1) break; // 如果位置传感器1故障则退出
		  if(in_gp_start==1) break; // 如果工频启动信号撤消则退出循环
		 }
       wz1_touch_flag=0;
       if(wz1_fault_flag!=1) // 如果位置传感器1故障则不继续学习
          {while(1)
             {if(wz1_touch_flag==1) // 再次检测到位置传感器1可靠触发标志,测量结束
			     {chongci_num_gp=(uchar)(60000/cycle_measure_timer);//(已经乘10)
				  xianshi_hanzi_dan(6,18,86);//显示“二”
				  // 通过周期定时器值计算冲次数,计算结果乘10后取整以方便显示
	              // 周期=cycle_measure_timer*10)/1000(单位:秒)
				  // 冲次数=60/周期(单位:次/分钟)
				  // 计算结果=(uchar)(冲次数*10)
				  // 简化前表达式为:(uchar)((60/((cycle_measure_timer*10)/1000))*10)
                  gp_study_flag=1;
                  SM_Send(CHIP_ROM,addr_gp_study_flag,(uchar)(gp_study_flag)); // 存储工频学习完成标志,只能键盘清除

                  SM_Send(CHIP_ROM,addr_chongci_num_gp,chongci_num_gp);// 存储学习的工频冲次数
                  break;
			     }
              if(wz1_fault_flag==1) break; // 如果位置传感器1故障则退出
              if(in_gp_start==1) break; // 如果工频启动信号撤消则退出循环
             }
          }
       }// end of "if(gp_study_flag==0)"

                         //---------------工频稳定运行监测---------------

       current_a_max_measure=0; 
	   current_b_max_measure=0;
       current_c_max_measure=0;
	   current_a_present_measure=0;
	   current_b_present_measure=0;
	   current_c_present_measure=0;
	   menu_gp_run();// 显示“工频启动静态界面”
       xianshi_spaces_data(1,10,3,1,chongci_num_gp,1);// 测量的工频冲次数
       xianshi_spaces_data(3,11,3,0,current_a_present_measure,1);//显示a,b,c三相电流瞬时值
	   xianshi_spaces_data(3,15,3,0,current_b_present_measure,1);
       xianshi_spaces_data(3,19,3,0,current_c_present_measure,1);
	   xianshi_spaces_data(4,14,3,0,current_a_max_measure,1);//显示上冲程峰值电流
	   xianshi_spaces_data(5,14,3,0,current_b_max_measure,1);//显示下冲程峰值电流
       xianshi_spaces_hanzi(7,11,infor_hanzi33,9);// 工作状态:“工频运行”
	   xianshi_spaces_hanzi(8,17,infor_hanzi34,2);// 位置传感器一:“正常”
	   xianshi_spaces_hanzi(9,17,infor_hanzi34,2);// 位置传感器二:“正常”
	   wz1_touch_flag=0; // 清位置传感器1可靠触发标志

       bp_fault_flag  = (bit)(SM_Receive (CHIP_ROM,addr_bp_fault_flag)); // 变频故障标志读取
	   bp_start_flag  = (bit)(SM_Receive (CHIP_ROM,addr_bp_start_flag)); // 变频启动标志读取

	   while(1) // 工频稳定运行监测开始
         {    
		      if(in_gp_start==1)// 如果工频启动信号撤消则退出循环
			    {for(timer0_10ms=0;timer0_10ms<50;); // 延时500毫秒消抖
				 if(in_gp_start==1);
				   {gp_start_flag=0; //清工频标志
				    bp_start_flag=0; //清变频标志
                    out_bgt=1; //允许变频再次加电
					SM_Send(CHIP_ROM,addr_bp_start_flag,0);//工频退出时清除变频启动标志
				    break; 
                   }
				}

              if(wz1_fault_flag==1) // 判断位置传感器1故障情况
		         {xianshi_spaces_hanzi(8,17,infor_hanzi35,2);// 位置传感器一:“异常”
				 }
              else xianshi_spaces_hanzi(8,17,infor_hanzi34,2);// 位置传感器一:“正常”
              if(wz2_fault_flag==1) // 判断位置传感器2故障情况
		         {xianshi_spaces_hanzi(9,17,infor_hanzi35,2);// 位置传感器二:“异常”
				 }
              else xianshi_spaces_hanzi(9,17,infor_hanzi34,2);// 位置传感器二:“正常”


              if(bp_start_flag==1)
		         {xianshi_spaces_hanzi(7,11,infor_hanzi50,9);//显示“变频保护切换到工频”
			     }

              if(bp_fault_flag==1)
		         {bp_start_flag=0;
				  xianshi_spaces_hanzi(7,11,infor_hanzi49,9);//显示“变频故障切换到工频”
			     }

              if((bp_start_flag==0)&&(bp_fault_flag==0))
                {xianshi_spaces_hanzi(7,11,infor_hanzi33,9);//显示“工频运行”
                }

              if(current_a_fault_flag||current_b_fault_flag||current_c_fault_flag)
		          { //read_time();
		            while(1)
		              {out_jt=0;//只有掉电才能从头运行
                       xianshi_spaces_hanzi(10,11,infor_hanzi53,7);//显示“因电流故障停机”
					   for(timer0_10ms=0;timer0_10ms<10;);
                      }
                  }

              if(volt_ab_fault_flag||volt_bc_fault_flag||volt_ca_fault_flag)
		          { //read_time();
		            while(1)
		              {out_jt=0;//只有掉电才能从头运行
                       xianshi_spaces_hanzi(10,11,infor_hanzi52,7);//显示“因电压故障停机”
					   for(timer0_10ms=0;timer0_10ms<10;);
                      }
                  }
		  
              if(wz1_fault_flag==1)
		         {xianshi_spaces_hanzi(8,17,infor_hanzi35,2);//异常
			     }
              else xianshi_spaces_hanzi(8,17,infor_hanzi34,2);//正常

              if(wz2_fault_flag==1)
		         {xianshi_spaces_hanzi(9,17,infor_hanzi35,2);//异常
			     }
              else xianshi_spaces_hanzi(9,17,infor_hanzi34,2);//正常


			  // 三相电流切换采样
              iu_channel_select(1);//iu1
              ad_channel_select(0);//ad0//采样a相电流
              i=ad_sampling();
			  current_a_present_measure=(float)(i)*150/4095+i_a_compensate;
     		  current_a_max_measure= (current_a_max_measure>current_a_present_measure)?
			                          current_a_max_measure:current_a_present_measure;
			                                   // 筛选a相电流最大值current_a_max_measure
		      if((current_a_present_measure>current_max_set)||(current_a_present_measure<current_min_set))
			     {current_a_fault_counter+=1;} // 电流异常时电流故障计数器加1
              else current_a_fault_counter=0;


		      ad_channel_select(1);//ad1//采样bc相电压
              i=ad_sampling();
		      volt_ab_present_measure=(float)(i)*500/4095+u_ab_compensate;
              if((volt_ab_present_measure>volt_max_set)||(volt_ab_present_measure<volt_min_set))
		         {volt_ab_fault_counter+=1;}   // 电压异常时电压故障计数器加1
              else volt_ab_fault_counter=0;


		      iu_channel_select(2);//iu2
              ad_channel_select(0);//ad0//采样b相电流
              i=ad_sampling();
              current_b_present_measure=(float)(i)*150/4095+i_b_compensate;
     		  current_b_max_measure= (current_b_max_measure>current_b_present_measure)?
			                          current_b_max_measure:current_b_present_measure;
			                                   // 筛选b相电流最大值current_b_max_measure
		      if((current_b_present_measure>current_max_set)||(current_b_present_measure<current_min_set)) 
			     {current_b_fault_counter+=1;} // 电流异常时电流故障计数器加1
              else current_b_fault_counter=0;


		      ad_channel_select(1);//ad1//采样ca相电压
              i=ad_sampling();
              volt_bc_present_measure=(float)(i)*500/4095+ u_bc_compensate;
              if((volt_bc_present_measure>volt_max_set)||(volt_bc_present_measure<volt_min_set)) 
		         {volt_bc_fault_counter+=1;}   // 电压异常时电压故障计数器加1
              else volt_bc_fault_counter=0;


		      iu_channel_select(3);//iu3
              ad_channel_select(0);//ad0//采样c相电流
              i=ad_sampling();
              current_c_present_measure=(float)(i)*150/4095+i_c_compensate;
     		  current_c_max_measure= (current_c_max_measure>current_c_present_measure)?
			                          current_c_max_measure:current_c_present_measure;
			                                   // 筛选c相电流最大值current_b_max_measure
		      if((current_c_present_measure>current_max_set)||(current_c_present_measure<current_min_set)) 
			     {current_c_fault_counter+=1;} // 电流异常时电流故障计数器加1
              else current_c_fault_counter=0;


		      ad_channel_select(1);//ad1// 采样ab相电压
              i=ad_sampling();
              volt_ca_present_measure=(float)(i)*500/4095+ u_ca_compensate;
              if((volt_ca_present_measure>volt_max_set)||(volt_ca_present_measure<volt_min_set)) 
		         {volt_ca_fault_counter+=1;}   // 电压异常时电压故障计数器加1
              else volt_ca_fault_counter=0;

              xianshi_spaces_data(3,11,3,0,current_a_present_measure,1);//显示a,b,c三相电流瞬时值
	          xianshi_spaces_data(3,15,3,0,current_b_present_measure,1);
              xianshi_spaces_data(3,19,3,0,current_c_present_measure,1);

			  if(wz1_touch_flag==1)//wz1触发判断和处理
		         {wz1_touch_flag=0;
			      xianshi_spaces_data(5,14,3,0,current_a_max_measure,1);//刷新下冲程峰值电流
                  current_a_max_measure=0;
		         }
              if(wz2_touch_flag==1)//wz2触发判断和处理
		         {wz2_touch_flag=0;
				  xianshi_spaces_data(4,14,3,0,current_a_max_measure,1);//刷新上冲程峰值电流
                  current_a_max_measure=0;
                 }


              if(current_a_fault_counter>5) // 如果电流故障连续5次以上(时间<6s),则置电流故障标志并退出
		         {current_a_fault_flag=1;}
		      if(current_b_fault_counter>5)

⌨️ 快捷键说明

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