📄 operation_a.i
字号:
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 manual_process_buff;
extern unsigned char ac_frequency;
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 stream_start_flag;
extern unsigned char stream_stop_flag;
extern unsigned char pro_default_flag;
extern unsigned char program_left_time;
extern unsigned char key_buzz_flag;
extern unsigned char buzz_flag;
extern signed char buzz_24ms_buff;
extern signed char buzz_15m_buff;
extern signed char buzz_switch_flag;
extern signed char buzz_500ms_buff;
extern signed char buzz_time;
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 *, unsigned char *);
extern void menu_page_shift(unsigned char, unsigned char, unsigned char);
extern 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;
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 unsigned char run_page3_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_level_3_back_flag;
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 menu_0_flag;
extern unsigned char function_set_flag;
extern unsigned char program_set_flag;
extern unsigned char water_set_flag;
extern unsigned char power_flag;
extern unsigned char key_press_flag;
extern unsigned char first_water_flag;
extern unsigned char first_soak_flag;
extern unsigned char first_wash_flag;
extern unsigned char first_rinse_flag;
extern unsigned char first_spin_flag;
extern unsigned char first_save_water_flag;
extern unsigned char first_wind_dry_flag;
extern unsigned char first_preset_flag;
extern unsigned char first_function_flag;
extern unsigned char confirm_water_flag;
extern unsigned char confirm_soak_flag;
extern unsigned char confirm_wash_flag;
extern unsigned char confirm_rinse_flag;
extern unsigned char confirm_spin_flag;
extern unsigned char confirm_save_water_flag;
extern unsigned char confirm_wind_dry_flag;
extern unsigned char confirm_preset_flag;
extern unsigned char confirm_function_flag;
extern unsigned char once_set_water_flag;
extern unsigned char once_set_soak_flag;
extern unsigned char once_set_wash_flag;
extern unsigned char once_set_rinse_flag;
extern unsigned char once_set_spin_flag;
extern unsigned char once_set_save_water_flag;
extern unsigned char once_set_wind_dry_flag;
extern unsigned char once_set_preset_flag;
extern unsigned char once_set_function_flag;
extern unsigned char num_overflow_flag;
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 rinse_three_time_flag;
extern unsigned char rinse_one_time_flag;
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 unsigned 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 unsigned char preset_time_buff;
extern unsigned char function_set_buff;
extern unsigned char program_start_flag;
extern unsigned char program_pause_flag;
extern unsigned char preset_set_flag;
#line 5 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/src/operation_a.c"
void cut_off_power(void);
#pragma SECTION program pro_1
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 (run_save_water_flag == 1)
status_buff = 0x03 ;
if (run_err_flag == 1)
status_buff = 0x03 ;
if ((status_buff == 0x04 )&&(t_mode_switch_flag == 1))
{
run_1s_buff = 0;
t_mode_switch_flag = 0;
}
else if ((status_buff == 0x04 )&&(test_start_flag == 1))
{
run_1s_buff = 0;
test_1_start_flag = 0;
}
else if ((status_buff == 0x04 )&&(test_inlet_flag == 1))
{
run_1s_buff = 0;
test_1_start_flag = 0;
}
if (run_1s_buff == 0)
{
run_1s_buff = 1;
if (status_buff == 0x00 )
{
output_buff = 0x00;
return;
}
if (status_buff == 0x03 )
{
output_buff = 0x00;
program_start_flag = 0;
program_pause_flag = 1;
if (run_save_water_flag == 1)
save_water();
if (release_save_water_flag == 1)
{
status_buff = 0x02 ;
release_save_water_flag = 0;
}
return;
}
if (status_buff == 0x01 )
{
if (default_flag == 1)
{
default_flag = 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;
}
return;
}
if (status_buff == 0x02 )
{
program_start_flag = 1;
program_pause_flag = 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 )
{
if (key_preset_flag == 1)
{
sys_1m_buff = preset_time_buff;
key_preset_flag = 0;
}
if (sys_1m_buff == 0)
{
return;
}
if (preset_confirm_flag == 0)
{
water_flash_flag = 0;
program_flash_flag = 0;
}
if (preset_confirm_flag == 1)
{
water_flash_flag = 1;
if (preset_5s_buff == 0)
{
preset_confirm_flag = 0;
preset_flash_flag = 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 (program_auto_flag == 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 (program_auto_flag != 1)
{
main_soak_time = Memo_Soak_Time_Table[1][1];
main_wash_time = Memo_Wash_Time_Table[1][1];
}
memo_program();
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];
strong_program();
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;
soft_wash_program();
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();
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][texture_buff];
main_wash_time = Standard_Soak_Time_Table[water_level][texture_buff];
standard_program();
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;
child_program();
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;
wool_program();
break;
case 0x07 :
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 = Silk_Wash_Time;
silk_program();
break;
case 0x8 :
if (ac_frequency == 50)
stream_table_row = 0;
else if (ac_frequency == 60)
stream_table_row = 1;
ext_stream_table_row = 0;
single_wash_program();
break;
case 0x9 :
if (ac_frequency == 50)
stream_table_row = 0;
else if (ac_frequency == 60)
stream_table_row = 1;
ext_stream_table_row = 0;
rinse_program();
break;
case 0xa :
single_spin_program();
break;
case 0xb :
if (ac_frequency == 50)
stream_table_row = 0;
else if (ac_frequency == 60)
stream_table_row = 1;
ext_stream_table_row = 0;
special_program();
break;
};
return;
}
void standard_program(void)
{
if (operation_counter < 21)
{
if (Standard_Time_Table[operation_counter])
{
switch (operation_counter)
{
case 0:
case 13:
inlet(Standard_Time_Table[operation_counter], 0, water_level_buff);
break;
case 6:
spin(Memo_Time_Table[operation_counter]);
break;
case 7:
inlet(Standard_Time_Table[operation_counter], 0xaa, 0);
spin(Memo_Time_Table[operation_counter]);
break;
case 8:
spin(Memo_Time_Table[operation_counter]);
break;
case 9:
inlet(Standard_Time_Table[operation_counter], 0xaa, 0);
spin(Memo_Time_Table[operation_counter]);
break;
case 10:
spin(Memo_Time_Table[operation_counter]);
break;
case 14:
wash(Memo_Time_Table[operation_counter]);
if (operation_counter == 16)
{
rinse_flash_flag = 0;
}
break;
case 1:
soak_flash_flag = 1;
soak(main_soak_time);
if (operation_counter == 2)
{
soak_flash_flag = 0;
led_disp.led_2.byte &= 0xef;
}
break;
case 2:
wash_flash_flag = 1;
wash(main_wash_time * 60);
if (operation_counter == 4)
{
wash_flash_flag = 0;
led_disp.led_2.byte &= 0xdf;
}
break;
case 4:
rinse_flash_flag = 1;
drain();
break;
case 16:
if((release_save_water_flag == 0)&&(confirm_save_water_flag == 1))
{
if(save_water_once_flag == 0)
{
run_save_water_flag = 1;
return;
}
}
spin_flash_flag = 1;
drain();
break;
case 17: interm_spin(Standard_Time_Table[operation_counter]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -