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

📄 operation_a.i

📁 电表解决方案概要power_meter_r8c2g_source_code
💻 I
📖 第 1 页 / 共 5 页
字号:

extern	signed char t1_switch_3s_buff;
extern	unsigned char test_1_3s_buff;
extern	unsigned char buzz_buff;
extern	unsigned char t1_end_3s_buff;

extern	unsigned char stream_run;				 
extern	unsigned char stream_stop;				 

extern	unsigned char finish;					 
extern	unsigned char key_release;				 
extern	unsigned char test_2_3s_buff;
extern	unsigned char test_2_7s_buff;

extern	signed char check_2s_buff;				 
extern	signed char kaiji_3s_buff;				 

extern	signed char inlet_10s_buff;				 
extern	signed int inlet_20m_buff;				 
extern	signed char inlet_2m_buff;				 


extern	signed int drain_8m_buff;				 
extern	signed char drain_2m_buff;				 
extern	signed char drain_60s_buff;				 
extern	signed char drain_10s_buff;				 
extern	signed char drain_20s_buff;				 

extern	unsigned char main_soak_time;			 
extern	unsigned char main_wash_time;			 

extern	signed char soak_1m_buff;				 
extern	signed char soak_2m_buff;				 
extern	unsigned char soak_3m_buff;				 
extern	unsigned char soak_4m_buff;				 
extern	signed int soak_9m_buff;				 

extern	unsigned char soak_1_cycle_buff;				 
extern	unsigned char soak_2_cycle_buff;				 
extern	unsigned char soak_3_cycle_buff;				 

extern	unsigned int run_stream_time;				 
extern	unsigned char balance_time_buff;			 
extern	unsigned char wash_start_flag;				 
extern	unsigned char wash_finish_flag;				 

extern	unsigned char interm_spin_10s_buff;				 
extern	unsigned char interm_spin_5s_buff;				 
extern	unsigned char interm_spin_4s_buff;				 
extern	unsigned char interm_spin_3s_buff;				 

extern	unsigned char spin_balance_time_buff;			 

extern	signed char inertial_30s_buff;				 
extern	signed char break_5s_buff;					 

extern	unsigned char output_buff;				 
extern	unsigned char save_output_buff;			 
extern	unsigned char machine_type;				 
extern	unsigned char err_buff;					 

extern	signed int process_left_time;			 
extern	unsigned char total_run_time;			 
extern	unsigned char total_left_time;			 

extern	unsigned char water_level_buff;			 

extern	unsigned char status_buff;				 
extern	unsigned char lid_open;					 
extern	unsigned char save_lid_status;			 
extern	unsigned char manual_process_buff;		 

extern	unsigned char ac_frequency;				 
extern	signed char mesure_time_buff;			 
extern	unsigned char frequency_tmp;			 

extern	unsigned char stream_table_row;			 
extern	unsigned char ext_stream_table_row;		 

extern	unsigned char main_stream_time;			 
extern	unsigned char ext_stream_time;			 

extern	unsigned char mot_cycle_buff;			 
extern	unsigned char stream_buff;				 
extern	signed char stream_100ms_buff;			 
extern	signed char base_100ms_buff;			 

extern	unsigned char program_left_time;		 

extern	signed char buzz_24ms_buff;				 

extern	signed char buzz_15m_buff;				 

extern	signed char buzz_500ms_buff;			 
extern	signed char buzz_time;     				    

extern	unsigned char unbalance_count;			 


 



extern union byte_def_1 {

	volatile unsigned char byte;

	struct{

	unsigned char b0:1;
	unsigned char b1:1;
	unsigned char b2:1;
	unsigned char b3:1;
	unsigned char b4:1;
	unsigned char b5:1;
	unsigned char b6:1;
	unsigned char b7:1;

	}bi;
};



extern struct{
	
	union byte_def_1 led_0;
	union byte_def_1 led_1;
	union byte_def_1 led_2;
	union byte_def_1 led_3;
	union byte_def_1 led_4;
	
}led_disp;

extern struct{
	
	union byte_def_1 key_flag;
	union byte_def_1 flash;
	union byte_def_1 flag_2;
	union byte_def_1 flag_3;
	union byte_def_1 flag_4;
	
}flag;



extern struct struct_table{
	
	unsigned int run;
	unsigned int stop;
	
};

extern const struct struct_table Stream_Table_A[18][3];				 
extern const struct struct_table Stream_Table_B[12][3];				 
extern const struct struct_table Stream_Table_Ext_A[4][2];			 
extern const struct struct_table Stream_Table_Ext_B[4][2];			 
extern const struct struct_table Stream_Table_TEST[3][2];			 

extern const struct struct_table Balance_Stream_A[2];				 
extern const struct struct_table Speedy_Stream_A[4];				 
extern const struct struct_table Fastest_Stream_A[2];				 

 

 

extern const unsigned char Standard_Time_Table[21];				 

extern const unsigned char Memo_Time_Table[25];					 

extern const unsigned char Strong_Time_Table[23];				 

extern const unsigned char Silk_Time_Table[21];					 

extern const unsigned char Soft_Time_Table[33];					 

extern const unsigned char Child_Time_Table[33];				 

extern const unsigned char Wool_Time_Table[25];					 

extern const unsigned char Speedy_Time_Table[14];				 

extern const unsigned char Fastest_Time_Table[16];				 

extern const unsigned char TubeDry_Time_Table[7];				 


extern const unsigned char Single_Wash_Time_Table[];			 

extern const unsigned char Rinse_Time_Table[];					 

extern const unsigned char Single_Spin_Time_Table[];			 


extern const unsigned char Woven_Time_Table[33];				 

extern const unsigned char Maotan_Time_Table[33];				 

 

 

 

extern const unsigned char Memo_Soak_Time_Table[3][3];				 

extern const unsigned char Memo_Wash_Time_Table[3][3];				 

extern const unsigned char Standard_Soak_Time_Table[3][3];			 

extern const unsigned char Standard_Wash_Time_Table[3][3];			 

extern const unsigned char Strong_Soak_Time_Table[3];				 

extern const unsigned char Strong_Wash_Time_Table[3];				 


extern const unsigned char Soft_Soak_Time;					 
extern const unsigned char Soft_Wash_Time;					 

extern const unsigned char Child_Soak_Time;					 
extern const unsigned char Child_Wash_Time;					 

extern const unsigned char Wool_Soak_Time;					 

extern const unsigned char Wool_Wash_Time;					 

extern const unsigned char Silk_Wash_Time;					 
extern const unsigned char Speedy_Wash_Time;				 

extern const unsigned char seg_led_table[];					 

extern const unsigned char OPT_Table[];						 

extern const unsigned char Left_time_Colum_Table[];			 



#line 4 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/src/operation_a.c"

#line 1 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/src/disp_definel.h"




 




















 
 

 
 









 







 
 








 
 
 
 
 
 
 
   
 

  








 












 

 

 
 







 











 


































 

extern void cpu_init(void);					 
extern void sfr_ref(void);					 
extern void sfr_init(void);					 
extern void ram_init(void);					 


extern void disp_key_power(void);				 
extern void disp_key_start(void);				 
extern void disp_key_setup(void);				 
 
extern void disp_key_confirm(void);				 
 
extern void disp_key_function(void);			 
extern void disp_key_program(void);				 
extern void disp_key_water(void);				 

extern void key_scan(void);						 
extern void key_judge(void);					 
extern void menu_display(void);					 
extern void display_status_judge (void);

 


 
extern void process_flash(unsigned char, signed char, signed char, unsigned char, unsigned char, unsigned char);

 
extern void lcd_flash(unsigned char, unsigned char, unsigned char, unsigned char far *, unsigned char far *);

 
extern void menu_page_shift(unsigned char, unsigned char, unsigned char);

 

extern unsigned char power_down_byte;		 

 



 union lcd_byte_def{

	unsigned char lcd_byte;

	struct{

	unsigned char lb0:1;
	unsigned char lb1:1;
	unsigned char lb2:1;
	unsigned char lb3:1;
	unsigned char lb4:1;
	unsigned char lb5:1;
	unsigned char lb6:1;
	unsigned char lb7:1;

	}lcd_bit;
};


extern union lcd_byte_def Lcd_Byte_0;		 
extern union lcd_byte_def Lcd_Byte_1;		 
extern union lcd_byte_def Lcd_Byte_2;		 

 



typedef  union flag_word_def{

	unsigned int f_word;

	struct{

	unsigned char fb0:1;
	unsigned char fb1:1;
	unsigned char fb2:1;
	unsigned char fb3:1;
	unsigned char fb4:1;
	unsigned char fb5:1;
	unsigned char fb6:1;
	unsigned char fb7:1;
	unsigned char fb8:1;	
	
	unsigned char fb9_15:7;
	
	}f_bit;
	
}Word_Flag;


extern 	Word_Flag 	first_key_press;				 
extern 	Word_Flag 	confirm_key_press;				 
extern 	Word_Flag 	once_set_key_press;				 

extern 	Word_Flag 	display_flag_1;					 

extern 	Word_Flag 	process_flag_1;					 
extern 	Word_Flag 	process_flag_2;					 

 

typedef  union flag_byte_def{

	unsigned int f_byte;

	struct{

	unsigned char fb0:1;
	unsigned char fb1:1;
	unsigned char fb2:1;
	unsigned char fb3:1;
	unsigned char fb4:1;
	unsigned char fb5:1;
	unsigned char fb6:1;
	unsigned char fb7:1;
	
	}f_bit;
	
}Byte_Flag;

extern 	Byte_Flag 	key_flag_1;							 
extern 	Byte_Flag 	key_flag_2;							 

extern 	Byte_Flag 	operation_flag_1;					 
extern 	Byte_Flag 	operation_flag_2;					 
extern 	Byte_Flag 	operation_flag_3;					 
extern 	Byte_Flag 	operation_flag_4;					 
extern 	Byte_Flag 	operation_flag_5;					 

extern 	Byte_Flag 	save_water_flag_1;					 


extern 	Byte_Flag 	test1_flag_1;						 

extern 	Byte_Flag 	test1_key_flag;						 
extern 	Byte_Flag 	test2_key_flag;						 
extern 	Byte_Flag 	test3_key_flag;						 
extern 	Byte_Flag 	test4_key_flag;						 
extern 	Byte_Flag 	test5_key_flag;						 

extern 	Byte_Flag 	buzz_flag_1;						 

 

extern signed char epprom_4ms_buff;						 
extern unsigned char key_4ms_buff;						 
extern unsigned char Tflash;							 
extern unsigned char Pflash;							 
extern signed char scan_buff;							 
extern unsigned char scan_count;						 

extern unsigned char flash_flag;					 
extern unsigned char flash_switch_flag;				 
extern unsigned char Pflash_switch_flag;			 

extern signed char confirm_num;						 

extern signed char set_num;						 
extern signed char set_num_lev_0;				 
extern signed char set_num_lev_1;				 
extern signed char set_num_lev_2;				 
extern signed char set_num_lev_3;				 

extern unsigned char menu_level_buff;		 

extern unsigned char menu_buff_0;			 
extern unsigned char menu_buff_1;			 
extern unsigned char menu_buff_2;			 
extern unsigned char menu_buff_3;			 
extern unsigned char menu_buff_4;			 
extern unsigned char menu_buff_5;			 
extern unsigned char menu_buff_6;			 

extern unsigned char key_debunce_0;				 
extern unsigned char key_debunce_1;				 


 

extern unsigned char key_buff_0;			 
extern unsigned char key_buff_1;			 
 
extern unsigned int key_buff_2;			 
extern unsigned char key_buff_3;			 
extern unsigned char key_buff_4;			 

 
extern unsigned int save_key_1;			 
extern unsigned char save_key_2;			 

extern unsigned char left_time_buff;				 

extern unsigned char save_program_buff;

extern unsigned char program_buff_0;				 
extern unsigned char water_level_buff_0;			 
extern unsigned char soak_time_buff_0;				 
extern unsigned char wash_time_buff_0;				 
extern unsigned char rinse_time_buff_0;				 
extern unsigned char spin_time_buff_0;				 
extern unsigned char save_water_num_buff_0;			 
extern unsigned char winddry_time_buff_0;			 
extern signed char preset_time_buff_0;				 
extern unsigned char function_set_buff_0;			 

extern unsigned char soak_time_buff;				 
extern unsigned char wash_time_buff;				 
extern unsigned char rinse_time_buff;				 
extern unsigned char spin_time_buff;				 
extern unsigned char save_water_num_buff;			 
extern unsigned char winddry_time_buff;				 
extern signed char preset_time_buff;				 
extern unsigned char function_set_buff;				 





#line 5 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/src/operation_a.c"


void power_down(void);

 

 

 






void logic(void)
{
 unsigned char i;
 
 run_stream();						 
 	
 if (water_level_buff <= 4)			 
 water_level = 0;
 
 else if ((water_level_buff > 4)&&(water_level_buff < 8))
 water_level = 1;
 
 if (water_level_buff >= 8)
 water_level = 2;
 
 if (save_water_flag_1.f_bit.fb1		  == 1)
 status_buff = 0x03				  ;				 
 if (process_flag_2.f_bit.fb5		 		 == 1)
 status_buff = 0x03				  ; 				 
	
 if ((status_buff == 0x04				  )&&(test1_flag_1.f_bit.fb1 == 1))
 {
	 run_1s_buff = 0;				 
	 test1_flag_1.f_bit.fb1 = 0;
 }
 
 else if ((status_buff == 0x04				  )&&(test1_flag_1.f_bit.fb0 == 1))
 {
	 run_1s_buff = 0;				 
	 test1_key_flag.f_bit.fb3 = 0;
 }

 else if ((status_buff == 0x04				  )&&(test1_flag_1.f_bit.fb2 == 1))		 
 {
	 run_1s_buff = 0;				 
	 test1_key_flag.f_bit.fb3 = 0;
 }
 
 if (run_1s_buff == 0)							 
  {
	run_1s_buff = 1;					 
 

	if (status_buff == 0x00				  )
	 {	
		output_buff = 0x00;				 
		
		if ((operation_flag_1.f_bit.fb5		  == 1)&&(operation_flag_2.f_bit.fb1		  == 1))
		 {
			 demo_judge();
			 status_buff = 0x01				  ;			 	
			 kaiji_3s_buff = 3;
		 }
		 
		return;
	 }
	 
	if (status_buff == 0x03				  )
	 {
		output_buff = 0x00;						 
		display_flag_1.f_bit.fb6	  = 0;
		display_flag_1.f_bit.fb7	  = 1;
		
		if (save_water_flag_1.f_bit.fb1		  == 1)
		save_water();							 
		if (save_water_flag_1.f_bit.fb3		  == 1)
		 {
			status_buff = 0x02				  ;					 
			save_water_flag_1.f_bit.fb3		  = 0;
		 }
		return;
	 }
	 	 
	if (status_buff == 0x01				  )
	 {
		 output_buff |= 0x40			  ;
		 
		 if (operation_flag_1.f_bit.fb0		  == 1)
		  {
			  operation_flag_1.f_bit.fb0		  = 0;				 
			  
			  water_level_buff = 6;
			  
			  operation_buff = 0x00;		 
			 
		  }
		  
		 if (status_5m_buff == 0)
		  {
			  status_buff = 0x00				  ;		 
			  status_5m_buff = 5;
			  p3_addr.bit.b7				 		    = 1;
		  }	
		  
		 if(operation_flag_1.f_bit.fb6		  == 1)
		  {
  			display_flag_1.f_bit.fb6	  = 1;			 
			display_flag_1.f_bit.fb7	  = 0;
		
			output_buff = save_output_buff;
	
			run_1s_buff = 0;				 
    		status_buff = 0x02				  ;

			set_num = 0;
			check_2s_buff = 0;
			confirm_num = 0;
			menu_level_buff = 0x04				  ;
		
			key_flag_1.f_bit.fb0	  = 0;
			key_flag_1.f_bit.fb1	  = 0;
			key_flag_1.f_bit.fb2	  = 0;
		
			Pflash = 0;
			Tflash = 0;		
				
			Pflash_switch_flag = 0x00;	
			display_flag_1.f_bit.fb0	  = 0;			  
		  }
		  	    
		 return;	  
	 }	 
	 
	if (status_buff == 0x02				  )
	 {
		 output_buff |= 0x40			  ;
		 
		 display_flag_1.f_bit.fb6	  = 1;
		 display_flag_1.f_bit.fb7	  = 0;
		 
		 operation();						 
		 
	 }	 	
	 
	if (status_buff == 0x04				  )				 
	 {
		if (test_buff == 0x10 )
		test_no_water();
			  
		if (test_buff == 0x11 )
		test_production();

		if (test_buff == 0x12 )
		test_cycle();
			  
		if (test_buff == 0x13 )
		test_interm_spin();
			  
		if (test_buff == 0x14 )
		test_weight();
	 }
	 
	if (status_buff == 0x05				  )
	 {
		 output_buff = 0x00;				 
		 
		 if (preset_time_buff == 0)
		  {
			  display_flag_1.f_bit.fb8	  = 0;			 
			  status_buff = 0x02				  ;
			  
			  return;
		  }
		 if (operation_flag_2.f_bit.fb4		  == 0)				 
		  {  
			  process_flag_1.f_bit.fb0	 = 0;
			  process_flag_1.f_bit.fb1	 = 0;			  
		  }
		 if (operation_flag_2.f_bit.fb4		  == 1)				 
		  {
			  process_flag_1.f_bit.fb0	 = 1;
			  	
			  if (preset_5s_buff == 0)
			   {
				  operation_flag_2.f_bit.fb4		  = 0;
				  process_flag_1.f_bit.fb2	 = 1;
				  return;
			   }
		  }				  	  
	 }
	 
	else 
	return;
	
  }
  
}

 





 






 






void operation(void)
{
	unsigned char i;
	unsigned char j;
	
	
	switch (program_buff)
	 {
		 case 0x00				  :	
		 
		 if (ac_frequency == 50)			 
		 stream_table_row = 0;
		 
		 else if (ac_frequency == 60)
		 stream_table_row = 1;
		 
		 ext_stream_table_row = 0;
		 
	  
		 if (operation_flag_4.f_bit.fb1		 	 == 1)	 
		  {
			  main_soak_time = Memo_Soak_Time_Table[water_level][texture_buff];
			  main_wash_time = Memo_Wash_Time_Table[water_level][texture_buff];  
		  }
		  
		 else if (operation_flag_4.f_bit.fb1		 	 != 1)
		  {		 
			 main_soak_time = Memo_Soak_Time_Table[water_level][1];
			 main_wash_time = Memo_Wash_Time_Table[water_level][1];  
		  }		  


		 if (soak_time_buff != 0)			 
		 main_soak_time = soak_time_buff * 10;
		  
		 if (wash_time_buff != 12)			 
		 main_wash_time = wash_time_buff;  

		 memo_program();					 
		 if (process_left_time != 0)		 
		 program_left_time = program_time(Memo_Time_Table, Left_time_Colum_Table[program_buff]);
		 break;
		 
		 case 0x01				  :
		 
		 if (ac_frequency == 50)
		 stream_table_row = 2;
		 
		 else if (ac_frequency == 60)
		 stream_table_row = 3;
		 
		 ext_stream_table_row = 0;

		 main_soak_time = Strong_Soak_Time_Table[water_level];
		 main_wash_time = Strong_Wash_Time_Table[water_level];

		 if (soak_time_buff != 0)			 
		 main_soak_time = soak_time_buff * 10;
		  
		 if (wash_time_buff != 12)			 
		 main_wash_time = wash_time_buff;  

		 strong_program();					 
		 if (process_left_time != 0)
		 program_left_time = program_time(Strong_Time_Table, Left_time_Colum_Table[program_buff]);
		 break;
		 
		 case 0x02				  :
		 
		 if (ac_frequency == 50)
		 stream_table_row = 4;
		 
		 else if (ac_frequency == 60)
		 stream_table_row = 5;
		 
		 ext_stream_table_row = 1;	 
		 
		 main_soak_time = Soft_Soak_Time;
		 main_wash_time = Soft_Wash_Time;	

		 if (soak_time_buff != 0)			 
		 main_soak_time = soak_time_buff * 10;
		  
		 if (wash_time_buff != 12)			 
		 main_wash_time = wash_time_buff;  	 

		 soft_wash_program();		 		 
		 if (process_left_time != 0)		 
		 program_left_time = program_time(Soft_Time_Table, Left_time_Colum_Table[program_buff]);
		 break;
		 
		 case 0x03				  :
		 
		 if (ac_frequency == 50)
		 stream_table_row = 14;
		 
		 else if (ac_frequency == 60)
		 stream_table_row = 15;
		 
		 ext_stream_table_row = 1;

		 main_wash_time = Speedy_Wash_Time;	

		 speedy_program();					 
		 if (process_left_time != 0)
		 program_left_time = program_time(Speedy_Time_Table, Left_time_Colum_Table[program_buff]); 
		 break;
		 
		 
		 case 0x04 				   :										 
		 
		 if (ac_frequency == 50)
		 stream_table_row = 8;
		 
		 else if (ac_frequency == 60)
		 stream_table_row = 9;
		 
		 ext_stream_table_row = 0;
		 
		 main_soak_time = Standard_Soak_Time_Table[water_level][1];
		 main_wash_time = Standard_Soak_Time_Table[water_level][1];

		 if (soak_time_buff != 0)
		 main_soak_time = soak_time_buff * 10;
		  
		 if (wash_time_buff != 12)
		 main_wash_time = wash_time_buff;  

		 standard_program();			 
		 if (process_left_time != 0)
		 program_left_time = program_time(Standard_Time_Table, Left_time_Colum_Table[program_buff]);
		 break;
		 
		 case 0x05				  :
		 
		 if (ac_frequency == 50)
		 stream_table_row = 10;
		 
		 else if (ac_frequency == 60)
		 stream_table_row = 11;
		 
		 ext_stream_table_row = 0;
		 
		 table_rom_number = j;
		 
		 main_soak_time = Child_Soak_Time;
		 main_wash_time = Child_Wash_Time;

		 if (soak_time_buff != 0)
		 main_soak_time = soak_time_buff * 10;
		  
		 if (wash_time_buff != 12)
		 main_wash_time = wash_time_buff;  

		 child_program();				 
		 if (process_left_time != 0)
		 program_left_time = program_time(Child_Time_Table, Left_time_Colum_Table[program_buff]);
		 break;
		 
		 case 0x06				  :
		 
		 if (ac_frequency == 50)
		 stream_table_row = 12;
		 
		 else if (ac_frequency == 60)
		 stream_table_row = 13;
		 
		 ext_stream_table_row = 1;
		 
		 table_rom_number = j;
		 
		 main_soak_time = Wool_Soak_Time;
		 main_wash_time = Wool_Wash_Time;

		 if (soak_time_buff != 0)
		 main_soak_time = soak_time_buff * 10;
		  
		 if (wash_time_buff != 12)
		 main_wash_time = wash_time_buff;  

		 wool_program();				 
		 if (process_left_time != 0)

⌨️ 快捷键说明

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