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

📄 lcd_display.i

📁 电表解决方案概要power_meter_r8c2g_source_code
💻 I
📖 第 1 页 / 共 5 页
字号:
			key_buff_2 = key_buff_4;
			key_buff_3 = key_buff_1;
			scan_count = 0;
		}	
   }

  return;
  
}

    









void key_judge(void)
{
  unsigned char k;
	
 
 
 

  if (save_key_1 == key_buff_2)
   {
	   ;
   }
   
  else if (save_key_1 != key_buff_2)
   { 
	   
	save_key_1 = key_buff_2;
			   
	if (key_buff_2 != 0)
	 {
 
 
 

 
	 }
	 	 
	if (key_buff_2 == 0)
	 {
 
		 
		 if (status_buff == 0x02 )		 
		  {
			  k = output_buff;
			  if ((k & 0x04 )&&(run_water_key_flag == 1))
			   {
				   run_water_key_flag = 0;
				   output_buff &= (~0x04 );
			   }
		  }
	 }	 
	 	 
	Tflash = 0;
	flash_switch_flag = 0;
	
	Pflash = 0;					
	Pflash_switch_flag = 0x00;		
	
	if (key_buff_2 == 0x01 )
	 {
		 key_power();
		 return;
	 }
	 
	else if (key_buff_2 == 0x40 )
	 {
		 if (status_buff == 0x03 )
		  {
 
 
				   output_buff |= 0x04 ;
				   run_water_key_flag = 1;
 
		  }
	 }	 
	 
	else if (key_buff_2 == 0x02 )
	 {
		 check_2s_buff = 1;
		 		 
		 if (status_buff == 0x02 )
		 confirm_num ++;
		 
		 if (confirm_num == 6)
		 confirm_num = 0;
	 }	 
	 
	 	
    if ((status_buff == 0x01 )||(status_buff == 0x03 ))
	 {
		switch (key_buff_2)
	 	 {
		 	case 0x20 :
		 
		 	disp_key_confirm();
		 
		 	break;
		 
		 	case 0x40 :
		 
		 	disp_key_water();
		 
		 	break;
		 
 
		 
 
		 
 
		 
		 	case 0x04 :
		 
		 	disp_key_program();
		 
		 	break;
		 
		 
		 	case 0x10 :
		 
		 	disp_key_function();
		 
		 	break;		 
		 
		 
		 	case 0x02 :
		 
		 	disp_key_setup();
		 
		 	break;
		 
		 	case 0x08 :
		 
		 	disp_key_setup();
		 
		 	break;
		 
		 	case 0x01 :
		 
 
		 	key_power();
		 
		 	break;
		 
		 	case 0x80  :
		 
		 	disp_key_confirm();
		 
		 	break;

	 	 };
	 }
   }
 
 
  if (save_key_2 != key_buff_3)
 	{
	 	save_key_2 = key_buff_3;
		
	 	if (key_buff_3)
	  	 {
		 	key_start();
	  	 }	 
 	}
   
 return;								 
 
}

  





void key_power(void)
{
	  key_buzz_flag = 1;
	  
 if (status_buff == 0x00 )
  {
	  p3_addr.bit.b7				  = 0;
	  
	   
      status_buff = 0x01 ;
      status_5m_buff = 5;		 
	  default_flag = 1;
	  
	  power_key_flag = 1;
	  kaiji_3s_buff = 2;
	  
	  run_1s_buff = 0;
	  
	  Set_Screen(0x00 , nBitmapDot0_KaiJi_1);			  
	  Set_Screen(0x01 , nBitmapDot0_KaiJi_2);
	  Set_Screen(0x02 , nBitmapDot0_KaiJi_3);	  
	  
      return;
  }
  else if (status_buff != 0x00 )
  {
	  p3_addr.bit.b7				  = 1;
	  
      status_buff = 0x00 ;
      run_1s_buff = 0;
	  
	  power_key_flag = 0;
	  
	  Clr_Screen_0();					 
	  Clr_Screen_1();
	  Clr_Screen_2();
	
	  flash_switch_flag =0x00;	  
	  
 

	  process_buff = 0x00				  ;			 
	  left_time_buff = 45;			 
	
	  program_buff_0 = 0;
	  water_level_buff_0 = 6;	  
	  
 

	  wash_init();
	  
  }	
  
  return;
}


 





void key_start(void)
{
	  key_buzz_flag = 1;
	  
 if ((status_buff == 0x01 )||(status_buff == 0x03 ))
  {
	if (preset_set_flag == 0)
	 {
  		program_start_flag = 1;
		program_pause_flag = 0;
		
		output_buff = save_output_buff;
	
		run_1s_buff = 0;				 
    	status_buff = 0x02 ;
		
		if (run_save_water_flag == 1)
		 {
			 run_save_water_flag = 0;
			 release_save_water_flag = 0;
			 start_save_water_flag = 0;
			 save_water_number --;
		 }

 

		set_num = 0;
		check_2s_buff = 0;
		confirm_num = 0;
		menu_level_buff = 0x04				  ;
		
		function_set_flag = 0;
		program_set_flag = 0;
		water_set_flag = 0;
		
 
 
		
		Pflash = 0;
		Tflash = 0;		
				
		Pflash_switch_flag = 0x00;	
		run_page3_flag = 0;
					 	
		return;
	 }
	else if (preset_set_flag == 1)
	{
		status_buff = 0x05 ;
		run_1s_buff = 0;	
		return;
	}
  }
 else  if ((status_buff == 0x02 )||(status_buff == 0x04 ))
  {
  	program_start_flag = 0;
	program_pause_flag = 1;	  
	
	save_output_buff = output_buff;
	
    status_buff = 0x03 ;
	run_1s_buff = 0;
	
	check_2s_buff = 0;
	confirm_num = 0;
	menu_level_buff = 0x04				  ;	
	
	Pflash = 0;
	Tflash = 0;		
				
	Pflash_switch_flag = 0x00;	
	run_page3_flag = 0;	
	
 
 
 
 
  }
 else
 return;
}

 





void disp_key_function(void)
{
	function_set_flag = 1;						 
	program_set_flag = 0;
	water_set_flag = 0;
	
	menu_level_buff = 0x02				  ;
	menu_buff_2 = 0x28 ;
	set_num = function_set_buff;

  	return;	
}

 





void disp_key_program(void)
{
	program_set_flag = 1;
	function_set_flag = 0;	
	water_set_flag = 0;
	
	menu_level_3_back_flag = 0;					 
	
	menu_level_buff = 0x00				  ;
	menu_buff_0 = 0x00;
	set_num = program_buff;
	return;	
}

 





void disp_key_water(void)
{
	water_set_flag = 1;							 	
	function_set_flag = 0;
	program_set_flag = 0;
	
	menu_level_3_back_flag = 0;
	
	menu_level_buff = 0x02				  ;
	menu_buff_2 = 0x20 		  ;
	
	if (once_set_water_flag == 1)	
	set_num = 0;
 
 
	
	return;	
}

 







void disp_key_setup(void)
{
  if (key_buff_2 == 0x02 )
  set_num ++;
	
  else if (key_buff_2 == 0x08 )
  set_num --;
	
  if (menu_level_buff == 0x00				  )
   {			
	   if (set_num == 12)							
	   set_num = 0;
	   
	   else if(set_num == -1)
	   set_num = 11;	
	   
	   program_buff_0 = set_num;					 
	   
   }

  if (menu_level_buff == 0x01				  )
   {
		if (menu_buff_1 == 0x18		  )			
		 {
	   		if (set_num == 2)						 
	   		set_num = 0; 
	   		else if(set_num == -1)
	   		set_num = 1;	
		 }
		else if ((menu_buff_1 == 0x19		  )||(menu_buff_1 == 0x1b		  ))
		 {
	   		if (set_num == 3)						 
	   		set_num = 0;
	   		else if(set_num == -1)
	   		set_num = 2;	
		 }
		else if (menu_buff_1 == 0x1a		  )
		 {
	   		if (set_num == 1)						 
	   		set_num = 0;
	   		else if(set_num == -1)
	   		set_num = 0;	
		 }
		else 										 
		 {
	   		if (set_num == 8)
	   		set_num = 0;
	   		else if(set_num == -1)
	   		set_num = 7;	
		 }
   } 

  if (menu_level_buff == 0x02				  )				 
   {		   
	  switch(menu_buff_2)
	   {
		   case 0x20 		  :
		   
		   if (once_set_water_flag == 1)	   
		    {
				once_set_water_flag = 0;
				set_num += water_level_buff;						 
				
				if (set_num >= 11)
				 {
					 set_num -= 10;
				 }
		    }			
			
		   if (set_num == 11)
		    {
			   num_overflow_flag = 1;
			   set_num = 1;
		    }
		   
		   else if(set_num == 0)
		   set_num = 10;		
		   
		   water_level_buff_0 = set_num;					 
		   	 
		   break;
		   
		   
		   case 0x21 :
		   
		   if (once_set_soak_flag == 1)
		    {
				once_set_soak_flag = 0;
				set_num += soak_time_buff;						 
				
				if (set_num *10 >= 50)
				 {
					 set_num -= 5;
				 }
		    }					
		   
		   if (set_num *10 == 50)
		    {
			   num_overflow_flag = 1;
			   set_num = 0;
		    }
		   
		   else if(set_num == -1)
		   set_num = 4;		
		   
		   soak_time_buff_0 = set_num;						 
		   	 
		   break;
		   
		   
		   case 0x22 :
		     
		   if (once_set_wash_flag == 1)
		    {
				once_set_wash_flag = 0;
				set_num += wash_time_buff;						 
				
				if (set_num >= 26)
				 {
					 set_num -= 26;
				 }
		    }					
			
		   if (set_num == 26)
		    {
			   num_overflow_flag = 1;
			   set_num = 0;
		    }
		   
		   else if(set_num == -1)
		   set_num = 25;	
		   
		   wash_time_buff_0 = set_num;						 
		   	 
		   break;	
		   
		   	   
		   case 0x23 :
		   	   	 
		   if (once_set_rinse_flag == 1)
		    {
				once_set_rinse_flag = 0;
				set_num += rinse_time_buff;						 
				
				if (set_num >= 5)
				 {
					 set_num -= 5;
				 }
		    }						
			  		   
		   if (set_num == 5)
		    {
			   num_overflow_flag = 1;
			   set_num = 0;
		    }
		   
		   else if(set_num == -1)
		   set_num = 4;		
		   
		   rinse_time_buff_0 = set_num;						 
		   	 
		   break;	
		   
		   
		   case 0x24 :
		   
		   if (once_set_spin_flag == 1)
		    {
				once_set_spin_flag = 0;
				set_num += spin_time_buff;						 
				
				if (set_num >= 10)
				 {
					 set_num -= 10;
				 }
		    }				
				   		   
		   if (set_num == 10)
		    {
			   num_overflow_flag = 1;
			   set_num = 0;
		    }
		   
		   else if(set_num == -1)
		   set_num = 9;		
		   
		   spin_time_buff_0 = set_num;						 
		   	 
		   break;	
		   
		   
		   case 0x25 :
		   
		   if (once_set_save_water_flag == 1)
		    {
				once_set_save_water_flag = 0;
				set_num += save_water_num_buff;						 
				
				if (rinse_three_time_flag == 1)
				 {
					if (set_num >= 6)
				 	 {
					 	set_num -= 6;
				 	 }
				 }
				else if (rinse_one_time_flag == 1)
				 {
					if (set_num >= 1)
				 	 {
					 	set_num -= 1;
				 	 }
				 }						 
				else if ((rinse_three_time_flag != 1)&&(rinse_one_time_flag != 1)) 
				 {
					if (set_num >= 3)
				 	 {
					 	set_num -= 3;
				 	 }
				 }	
	 			 				 
		    }								   
		   if (rinse_three_time_flag == 1)
		    {
		   		if (set_num == 6)
		    	 {
			   		num_overflow_flag = 1;
			   		set_num = 0;
		    	 }
				 
		   		else if(set_num == -1)
		   		set_num = 5;			
							 
			}
		   if (rinse_one_time_flag == 1)
		    {
		   		if (set_num == 1)
		    	 {
			   		num_overflow_flag = 1;
			   		set_num = 0;
		    	 }
				 
		   		else if(set_num == -1)
		   		set_num = 0;		 
							 
			}			 
		   else if ((rinse_three_time_flag != 1)&&(rinse_one_time_flag != 1))
		    {
		   		if (set_num == 3)
		    	 {
			   		num_overflow_flag = 1;
			   		set_num = 0;
		    	 }
				 
		   		else if(set_num == -1)
		   		set_num = 2;			
							 
			}			 

		   save_water_num_buff_0 = set_num;					 
		   	 
		   break;	
		   
		   
		   case 0x26 :
		   
		   if (once_set_wind_dry_flag == 1)
		    {
				once_set_wind_dry_flag = 0;
				set_num += winddry_time_buff;						 
				
				if (set_num >= 6)
				 {
					 set_num -= 6;
				 }
		    }								   
		    		   		   		   
		   if (set_num == 6)
		    {
			   num_overflow_flag = 1;
			   set_num = 0;
		    }
		   
		   else if(set_num == -1)
		   set_num = 5;		
		   
		   winddry_time_buff_0 = set_num;					 
		   	 
		   break;	
		   
		   
		   case 0x27 :
		   
 
 
 
 
 
		   if (once_set_preset_flag == 1)
		    {
				once_set_preset_flag = 0;
				set_num += preset_time_buff;						 
				
				if (set_num >= 26)
				 {
					 set_num -= 26;
				 }
		    }							
				   		   		   		   
		   if (set_num == 26)
		   {
			    num_overflow_flag = 1;
		   		set_num = 0;
				set_num += 2;
		   }
		   
		   else if(set_num == 1)
		   set_num = 25;	
		   
		   preset_time_buff_0 = set_num;					 
		   	 
		   break;	
	   };
	   
	  if (function_set_flag == 1)		 
	   {
		   if (set_num == 4)								 
		   set_num = 0;
		   
		   else if(set_num == -1)
		   set_num = 3;		
		   
		   function_set_buff_0 = set_num;					 
	   }
   }
  if (menu_level_buff == 0x03				  )						 
   {			
	   if (set_num == 2)
	   set_num = 0;
	   
	   else if(set_num == -1)
	   set_num = 1;
   }
   
  return; 
  
}

 












void disp_key_confirm(void)					 
{
if (key_buff_2 == 0x80  )
 {
	switch (menu_level_buff)
	 {
		case 0x00				  :
		
		if (program_buff_0 != save_program_buff)
		 {
			program_buff = program_buff_0;			 
			save_program_buff = program_buff;		
			
			
			if ((program_buff == 0x05 )||(program_buff == 0x02 ))
			rinse_three_time_flag = 1;			
			else 
			rinse_three_time_flag = 0;
			
			if ((program_buff == 0x04   )||(program_buff == 0x03 ))
			rinse_one_time_flag = 1;			
			else 
			rinse_one_time_flag = 0;			
			
			program_set_change_flag = 1;	
			preset_set_flag = 0;
			
			confirm_save_water_flag = 0;
			
			once_set_water_flag = 1;
			once_set_soak_flag = 1;
			once_set_wash_flag = 1;
			once_set_rinse_flag = 1;
			once_set_spin_flag = 1;
			once_set_save_water_flag = 1;
			once_set_wind_dry_flag = 1;
			once_set_preset_flag = 1;

			water_level_buff = water_level_buff_0 = 6;			 
			soak_time_buff = soak_time_buff_0 = 0;
			wash_time_buff = wash_time_buff_0 = 12;
			rinse_time_buff = rinse_time_buff_0 = 1;
			spin_time_buff = spin_time_buff_0 = 6;
			save_water_num_buff = save_water_num_buff_0 = 0;
			winddry_time_buff = winddry_time_buff_0 = 0;
			preset_time_buff = preset_time_buff_0 = 2;
			function_set_buff = function_set_buff_0 = 0;						
		 }

 
		program_set_flag = 0;
		water_set_flag = 0;
				 
		menu_level_buff = 0x01				  ;
		
		menu_buff_1 &= 0x10;
		menu_buff_1 += set_num;					 
		
		set_num_lev_0 = set_num;				 
		
		set_num = 0;
		
		Tflash = 0;
		
		break;
		
		
		case 0x01				  :
		
		if (program_buff == 0x03 )
		 {
			 if ((set_num >= 5)&&(set_num <= 7))
			  {
				  menu_level_buff = 0x02				  ;
				  menu_buff_2 &= 0x20;
				  
				  menu_buff_2 += set_num;				  		
				  set_num_lev_1 = set_num;		
				  set_num = 0;				  
				  
				  once_set_water_flag = 1;
				  once_set_soak_flag = 1;
				  once_set_wash_flag = 1;
				  once_set_rinse_flag = 1;
				  once_set_spin_flag = 1;
				  once_set_save_water_flag = 1;
				  once_set_wind_dry_flag = 1;		
				  once_set_preset_flag = 1;			    
			  }
			  
			 return;
			 
		 }
		if (save_water_enable_flag == 0)
		 {
			 if (set_num == 5)
			  {
				  return;				  
			  }
			  
		 }		 
					
		menu_level_buff = 0x02				  ;
		menu_buff_2 &= 0x20;
		
		if (menu_buff_1 == 0x18		  )
		 {
			if (set_num == 0)					 
			menu_buff_2 += 0;
			if (set_num == 1)
			menu_buff_2 += 2;
		 }
		else if (menu_buff_1 == 0x19		  )
		 {
			if (set_num == 0)
			menu_buff_2 += 0;
			if (set_num == 1)
			menu_buff_2 += 3;
			if (set_num == 2)
			menu_buff_2 += 4;
		 }
		else if (menu_buff_1 == 0x1a		  )
		 {
			menu_buff_2 += 4;
		 }
		else if (menu_buff_1 == 0x1b		  )
		 {
			 if (tube_dry_enable_flag == 0)
			  {
				  if (set_num == 2)
				  return;
			  }
	 		
















		 }
		
		else 
		menu_buff_2 += set_num;
		
		set_num_lev_1 = set_num;		
		set_num = 0;		

		once_set_water_flag = 1;
		once_set_soak_flag = 1;
		once_set_wash_flag = 1;
		once_set_rinse_flag = 1;
		once_set_spin_flag = 1;
		once_set_save_water_flag = 1;
		once_set_wind_dry_flag = 1;
		once_set_preset_flag = 1;		

		break;
		
		
		case 0x02				  :
		
		if ((function_set_flag == 1)||(water_set_flag == 1))		 
		 {
			menu_level_buff = 0x00				  ;
			set_num = program_buff;
				
			menu_buff_0 &= 0x00;
			menu_buff_0 += set_num;	
			
			if (function_set_flag == 1)
			 {
				 function_set_flag = 0;
				 function_set_buff = function_set_buff_0;
				 
				 if ((function_set_buff == 1)||(function_set_buff == 3))
				 save_water_enable_flag = 1;
				 if ((function_set_buff == 2)||(function_set_buff == 3))
				 tube_dry_enable_flag = 1;				 
				 
			 	 confirm_function_flag = 1;
				 once_set_function_flag = 1;				 			 
			 }
			if (water_set_flag == 1)
			 {
				 water_set_flag = 0;				 
				 water_level_buff = water_level_buff_0;
				 
			 	 confirm_water_flag = 1;
				 once_set_water_flag = 1;
				 
				 first_water_flag = 0;
			 }	
			
			Tflash = 0;
			
			return;
			 
		 }
		else if (menu_buff_2 == 0x27 )
		 {
			 first_preset_flag = 0;			 
			 preset_set_flag = 1;	
			 
			 menu_level_buff = 0x01				  ;						 
			 set_num = set_num_lev_1;
			 
			 menu_buff_1 &= 0x10;
			 menu_buff_1 += set_num_lev_0;
			 Tflash = 0;
			 
			 num_overflow_flag = 0;
			 
			 once_set_preset_flag = 1;		 
			 preset_time_buff = preset_time_buff_0;	
			  		 
			 return;
			 
		 }		 
		else
		 {
			 menu_level_buff = 0x01				  ;						 
			 set_num = set_num_lev_1;
			 
			 menu_buff_1 &= 0x10;
			 menu_buff_1 += set_num_lev_0;
			 Tflash = 0;
			 			 
			 if (menu_buff_2 == 0x20 		  )
			  {
				num_overflow_flag = 0;
				
				once_set_water_flag = 1;
			 	water_level_buff = water_level_buff_0;			 
			  }

			 else if (menu_buff_2 == 0x21 )
			  {			 
				num_overflow_flag = 0;
				once_set_soak_flag = 1;
			 	soak_time_buff = soak_time_buff_0;
			  }
			 else if (menu_buff_2 == 0x22 )
			  {			 
				num_overflow_flag = 0;
				once_set_wash_flag = 1;
			 	wash_time_buff = wash_time_buff_0;
			  }
			 else if (menu_buff_2 == 0x23 )
			  {			 
				num_overflow_flag = 0;
				once_set_rinse_flag = 1;
			 	rinse_time_buff = rinse_time_buff_0;
			  }
			 else if (menu_buff_2 == 0x24 )
			  {			 
				num_overflow_flag = 0;

⌨️ 快捷键说明

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