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

📄 general_washer.i

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



































 









 





 


	





















 
 
 

 
 
 

























 

 








			









 





























 
















 

 








































































































 


extern  unsigned char base_4ms_buff;				 	
extern  unsigned char base_500ms_buff;				 	
extern  unsigned char base_1s_buff;					 	
extern  unsigned char base_1m_buff;					 	
extern  unsigned char base_1h_buff;					 	

extern  unsigned char sys_1s_buff;					 
extern  unsigned char sys_10s_buff;					 
extern  unsigned char sys_1m_buff;					 
extern  unsigned char sys_1h_buff;					 

extern	signed char status_5m_buff;					 
extern	signed char save_water_4hour_buff;			 

extern	signed char key2_2s_buff;					 
extern	unsigned char save_water_number;			 
extern	unsigned char old_key;						 
extern	unsigned char program_buff;					 
extern	unsigned char process_buff;					 
extern	unsigned char function_buff;				 
extern	unsigned char water_count;					 
extern	unsigned char water_buff;					 

extern	unsigned char weight_buff;					 
extern	unsigned char texture_buff;					 
extern	unsigned char water_level;					 					

extern	unsigned char preset_1s5_buff;				 
extern	signed char preset_500ms_buff;				 

extern	unsigned char preset_3s_buff;				 
extern	signed char key3_1s5_buff;					
extern	signed char preset_5s_buff;					 

 

extern  unsigned char operation_buff;				 
extern	signed char operation_counter;				 
extern	unsigned char pass_time_counter;			 
extern	unsigned char table_rom_number;				 
extern	unsigned char dependant_wash_time;

extern	unsigned char test_1_mode;					
extern	unsigned char test_buff;

extern	signed char run_1s_buff;					 

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 17 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/General_Washer.c"

void cpu_init_1(void);
void power_down_save(void);

unsigned char pro_select;
unsigned char mkg;
unsigned char zht;
unsigned int  ad_rst;

 

void main(void)
{			
	cpu_init();						 
 
	asm("nop");			
	sfr_init();						 

	p2_addr.bit.b7				  = 1;
	
	wash_init();					 	
		
	Init_0108();					 
		
	Clr_Screen_0();					 
	Clr_Screen_1();
	Clr_Screen_2();	
 
	demo_judge();					 
 
	eeprom_read();					 	

	while(1)
	{			
		
	  if ((operation_flag_2.f_bit.fb0		  == 0)&&(status_buff != 0x00				  )&&(status_buff != 0x01				  ))
	   {
		  operation_flag_2.f_bit.fb0		  = 1;
		  eeprom_write();			 
		  while(1);
	   }			
	  
	  sfr_ref();					 	  
	  
 
	  key_judge();					   
	  input();						   
	  menu_display();				   		
	  logic();	  					 
	  output();	  					 
	  alarm();	  					 
	  
	}
}	

 




void sfr_ref(void){
	
 

	prcr_addr.bit.b2			  = 1;				  
	pd0_addr.byte |= 0x3f;			 
	prcr_addr.bit.b2			  = 0;				  
	
	pd1_addr.byte = 0x3f;				 
	
	pd2_addr.byte = 0x9f;				 
	
	pd3_addr.byte = 0xc3;				 
	
	traioc_addr.bit.b2		  = 0;		 
	trecr1_addr.bit.b2		  = 0;		 

	pd4_addr.byte = 0x27;				 
	
	pd5_addr.byte = 0xff;
	
	pd6_addr.byte = 0x6f;
	
	pd8_addr.byte = 0xff;
	

	pur0_addr.bit.b4			  = 0xff;
	pur0_addr.bit.b5			  = 0xff;
	
	pur1_addr.bit.b0			  = 1;
	pur1_addr.bit.b1			  = 1;
	
	pur1_addr.bit.b2			  = 1;

 
	
	u0mr_addr.bit.ckdir		  = 0;			 	
	pmr_addr.bit.b4				  = 0;			 
	u0mr_addr.bit.smd0		  = 0;			 

 

 	

	pmr_addr.bit.b7				  = 0;
	ssmr2_addr.bit.b2			  = 0;
	ssmr2_addr.bit.b0			  = 0;
	sscrh_addr.bit.b5			  = 1;
	sser_addr.bit.b4			  = 0;
	sser_addr.bit.b3			  = 1;	
	
 

 

	adcon2_addr.byte = 0x01;
	adcon0_addr.byte = 0x89;       
	adcon1_addr.byte = 0x20;       
	
	asm("nop");
	asm("nop");

	adcon0_addr.bit.b6			 		    = 1;	
	
 

 

	pmr_addr.byte = 0x02;
	inten_addr.byte = 0x10;
	int2ic_addr.byte = 0x03;	
	
 

 
 



















 

 

	prcr_addr.bit.b3			  = 1;
	vca2_addr.byte = 0xa0;		 
	asm("nop");
	asm("nop");		
				
	vw2c_addr.byte = 0x82;	
	vw2c_addr.byte |= 0x01;	
	
 

	asm("nop");
	asm("nop");	
	
	vw0c_addr.byte |= 0xc3;		 

 
	
	prcr_addr.bit.b3			  = 0;	
	
 

 




















 
 


















 
	
 
 

}

 




void sfr_init(void)
{
 

 
	sfr_ref();			 
}

 




void cpu_init(void)
{
	asm("FCLR I");				 
	prcr_addr.byte = 1;					 
	cm1_addr.bit.b3				  = 1;					 
	cm1_addr.bit.b5				  = 1;					 
	cm1_addr.bit.b2				  = 1; 
 
	cm0_addr.bit.b5				  = 0;					 
	cm0_addr.bit.b6				  = 0;					 	
	cm1_addr.bit.b6				  = 0;					 
	cm1_addr.bit.b7				  = 0;
	asm("nop");
	asm("nop");
	asm("nop");
	asm("nop");					 
	ocd_addr.bit.b2				  = 0;					 
	prcr_addr.byte = 0;					 
 
	tracr_addr.byte = 0;					 
    traioc_addr.byte = 0;					 
    traic_addr.byte = 0x05;				 
    tramr_addr.byte = 0x10;				 
    trapre_addr.byte = 19;				 
    tra_addr.byte = 199;
    tracr_addr.byte = 0x03;				 
 
	trbcr_addr.byte = 0;					 
    trbioc_addr.byte = 0;					 
    trbic_addr.byte = 0x01;				 
    trbmr_addr.byte = 0x10;				 
    trbpre_addr.byte = 19;				 
    trbsc_addr.byte = 249;
	trbpr_addr.byte = 249;
    trbcr_addr.byte = 0x03;				 
	
	asm("FSET I");				 

	traioc_addr.bit.b2		  = 0;
}

 





void cpu_init_1(void)
{
	asm("FCLR I");				 
	prcr_addr.byte = 1;					 
 
 
 
 
 
	fra0_addr.bit.b0			  = 1;					 
	cm0_addr.bit.b6				  = 0;					 
	cm1_addr.bit.b6				  = 0;					 
	cm1_addr.bit.b7				  = 0;
	
	asm("nop");
	asm("nop");
	asm("nop");
	asm("nop");					 
	
	ocd_addr.bit.b2				  = 1;					 
	fra0_addr.bit.b1			  = 1;					 
	fra2_addr.byte = 0;
	
	prcr_addr.byte = 0;					 
	
	asm("nop");
	asm("nop");			
 
	tracr_addr.byte = 0;					 
    traioc_addr.byte = 0;					 
    traic_addr.byte = 0x05;				 
    tramr_addr.byte = 0x10;				 
    trapre_addr.byte = 119;				 
    tra_addr.byte = 99;
    tracr_addr.byte = 0x03;				 
 
	trbcr_addr.byte = 0;					 
    trbioc_addr.byte = 0;					 
    trbic_addr.byte = 0x01;				 
    trbmr_addr.byte = 0x10;				 
    trbpre_addr.byte = 99;				 
    trbsc_addr.byte = 124;
	trbpr_addr.byte = 124;
    trbcr_addr.byte = 0x03;				 
	
	asm("FSET I");				 

	traioc_addr.bit.b2		  = 0;
}

 





void ram_init(void)
{;
}

 





#pragma interrupt Timer_RB

void Timer_RB(void)
{
	
 
 
	
	key_scan();						 
	
	if (buzz_flag_1.f_bit.fb1		 	 == 0)		 
	return;
	
	if (buzz_15m_buff == 0)			 
	 {
		 if (buzz_500ms_buff == 0)			 
		  {
		 	if (buzz_flag_1.f_bit.fb2		 	 == 0)
		  	 {
			    buzz_500ms_buff = 5;
			    buzz_flag_1.f_bit.fb2		 	 = 1;
				
				buzz_24ms_buff = 20;
				buzz_time ++;
				
				if (buzz_time == 20)
				buzz_15m_buff = 15;
		  	 }
		 	else if (buzz_flag_1.f_bit.fb2		 	 == 1)
		  	 {
			    buzz_500ms_buff = 1;
			    buzz_flag_1.f_bit.fb2		 	 = 0;
				
				buzz_24ms_buff = 0;
		  	 }
		  }
	 }			

}

 





#pragma interrupt Timer_RA
void  Timer_RA(void)
{
	if (Tflash >0)			 
	Tflash --;
	
	if ((Pflash >0)&&(check_2s_buff == 0))		 
	Pflash --;
	
	if (key_4ms_buff>0)			 
	key_4ms_buff --;
	
	if (epprom_4ms_buff>0)		 
	epprom_4ms_buff --;
	
 
  
  base_4ms_buff ++;								 
  
  if (mesure_time_buff >= 0)					 
   {
	  mesure_time_buff --;
	  if (mesure_time_buff == 0)
	   {
		    operation_flag_2.f_bit.fb5		  = 1;
	  		ac_frequency = frequency_tmp;		 							
	   }
   }
  
  if (buzz_24ms_buff > 0)
   {
	   buzz_24ms_buff --;				 	
	   p3_addr.bit.b1				 		    = 1;					 
   }
  if (buzz_24ms_buff == 0)
   {
	   p3_addr.bit.b1				 		    = 0;					 
	   buzz_flag_1.f_bit.fb0		 	 = 0;
   }
   
  if (base_4ms_buff== 25)
   {
	   base_4ms_buff = 0;
	   base_100ms_buff ++;				 
	   
	   if (buzz_500ms_buff > 0)
	   buzz_500ms_buff --;				 	   
	   
 
 
	   
	   if ((stream_100ms_buff > 0)&&(status_buff == 0x02				  ))
	   stream_100ms_buff --;		 		 
	   
	   if (base_100ms_buff == 5)
   	    {
	   	   base_100ms_buff = 0;
	   	   base_500ms_buff ++;				 	   
	   
 
 
	   
	   	   if (key3_1s5_buff > 0)
	   	   key3_1s5_buff --;				 
	   
	   	   if (preset_500ms_buff > 0)
	   	   preset_500ms_buff --;			 		   	   
	   
 
 
	   
	   	   if (base_500ms_buff == 2)
	    	{
				base_500ms_buff = 0;
				base_1s_buff ++;						 
			
				if (base_1s_buff == 60)
				 {
					 base_1s_buff = 0;
					 base_1m_buff ++;					 
					 if (base_1m_buff == 60)
					  {
						  base_1m_buff = 0;
						  base_1h_buff ++;				 
						  if (base_1h_buff == 24)
						  base_1h_buff = 0;
						  
						  if (sys_1h_buff > 0)
						  sys_1h_buff --;				 
						  
						  if ((preset_time_buff > 0)&&(status_buff == 0x05				  ))
						  preset_time_buff --;			 					  
						  
						  if (save_water_4hour_buff > 0)
						  save_water_4hour_buff --;		 
					  }
					 if (status_5m_buff > 0)
					 status_5m_buff --;					 
				 
					 if (sys_1m_buff > 0)
					 sys_1m_buff--;						 
					 
				 }
				 
				sys_1s_buff ++;						 
				if (!(base_1s_buff % 10))
				 {
					 sys_1s_buff = 0;
					 sys_10s_buff ++;				 
					 
					 if (sys_10s_buff == 6)
					 sys_10s_buff = 0;
				 }
				 
				if (kaiji_3s_buff >0)
				kaiji_3s_buff --;					 
				
				if (check_2s_buff >0)
				check_2s_buff --;					 								 
				 
				if (run_1s_buff > 0)
				run_1s_buff --;						 
			
 
 
			
				if (key2_2s_buff > 0)
				key2_2s_buff--;						 
			
				if (preset_3s_buff > 0)
				preset_3s_buff --;					 
			
				if (preset_5s_buff > 0)
				preset_5s_buff --;					 

	    	}
		
   	    }
   }   
   
}

 







#pragma interrupt cut_off_power
void cut_off_power(void)
{
	unsigned char *i;
	unsigned char *j;
	
	power_down_byte = 1;						 	
	
	j = (unsigned char *)0x00aa5 ;
	 
	for(i = (unsigned char *)0x00400 ; i <= (unsigned char *)0x004F5 ; i++)		 
	 {
		 *j = *i;
		 j ++;
	 }
	 
	if (operation_flag_2.f_bit.fb0		  == 1)
	 {		
		 operation_flag_2.f_bit.fb0		  = 0;						 
	 }	 	 
}

void power_down_save(void)
{
  if ((operation_flag_2.f_bit.fb0		  == 0)&&(status_buff != 0x00				  )&&(status_buff != 0x01				  ))
	{
		operation_flag_2.f_bit.fb0		  = 1;
		eeprom_write();			 
		while(1);
	}		   
}

 





#pragma interrupt INT2
void INT2(void)
{
	if (operation_flag_2.f_bit.fb5		  == 1)		 
	 {
		 frequency_tmp = 0;
		 mesure_time_buff = 125;	
		 operation_flag_2.f_bit.fb5		  = 0;
	 }
	 
	frequency_tmp ++;
}


⌨️ 快捷键说明

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