📄 key_io.i
字号:
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_wash_flag;
extern unsigned char first_rinse_flag;
extern unsigned char first_spin_flag;
extern unsigned char first_preset_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 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;
#line 5 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/src/key_io.c"
unsigned char key_tag_flag;
unsigned char preset_key_1s5_buff;
void serial(void)
{;
}
void key(void)
{
key_logic();
}
void key_led(void)
{
;
}
void key_power(void)
{
key_buzz_flag = 1;
if (status_buff == 0x00 )
{
status_buff = 0x01 ;
status_5m_buff = 5;
default_flag = 1;
run_1s_buff = 0;
return;
}
else if (status_buff != 0x00 )
{
status_buff = 0x00 ;
run_1s_buff = 0;
init();
}
return;
}
void key_start(void)
{
key_buzz_flag = 1;
if ((status_buff == 0x01 )||(status_buff == 0x03 ))
{
if (key_preset_flag == 0)
{
status_buff = 0x02 ;
run_1s_buff = 0;
process_key_falg = 1;
return;
}
else if (key_preset_flag == 1)
{
status_buff = 0x05 ;
run_1s_buff = 0;
preset_flash_flag = 1;
save_led_buff_0 = led_disp.led_0.byte;
save_led_buff_1 = led_disp.led_1.byte;
save_led_buff_2 = led_disp.led_2.byte;
return;
}
}
else if ((status_buff == 0x02 )||(status_buff == 0x04 ))
{
status_buff = 0x03 ;
run_1s_buff = 0;
stream_buff = 0x80 ;
mot_cycle_buff &= 0x00 ;
}
else
return;
}
void key_program(void)
{
if (process_buff == 0x0f )
{
if (select_soak_flag != 1)
{
program_count = 0;
select_soak_flag = 1;
}
program_count ++;
if (program_count >= 5)
program_count = 0;
switch(program_count)
{
case 0:
program_buff = 0x00 ;
led_disp.led_0.byte = 0xfe;
break;
case 1:
program_buff = 0x03 ;
led_disp.led_0.byte = 0xf7;
break;
case 2:
program_buff = 0x04 ;
led_disp.led_0.byte = 0xfe;
break;
case 3:
program_buff = 0x05 ;
led_disp.led_0.byte = 0xfd;
break;
case 4:
program_buff = 0x06 ;
led_disp.led_0.byte = 0xfb;
break;
default:
program_buff = 0x00 ;
led_disp.led_0.byte = 0xfe;
};
}
else if (process_buff != 0x0f )
{
if (select_soak_flag != 0)
{
program_count = 0;
select_soak_flag = 0;
}
program_count ++;
if (program_count == 8)
program_count = 0;
switch(program_count)
{
case 0:
program_buff = 0x00 ;
led_disp.led_0.byte = 0xfe;
break;
case 1:
program_buff = 0x01 ;
led_disp.led_0.byte = 0xfd;
break;
case 2:
program_buff = 0x02 ;
led_disp.led_0.byte = 0xfb;
break;
case 3:
program_buff = 0x03 ;
led_disp.led_0.byte = 0xf7;
break;
case 4:
program_buff = 0x04 ;
led_disp.led_0.byte = 0xfe;
break;
case 5:
program_buff = 0x05 ;
led_disp.led_0.byte = 0xfd;
break;
case 6:
program_buff = 0x06 ;
led_disp.led_0.byte = 0xfb;
break;
case 7:
program_buff = 0x07 ;
led_disp.led_0.byte = 0xf7;
break;
default:
program_buff = 0x00 ;
led_disp.led_0.byte = 0xfe;
};
}
if (program_buff > 3)
{
program_flash_flag = 1;
led_flash_buff1 = led_disp.led_0.byte;
}
else
program_flash_flag = 0;
if (program_buff == 0x01 )
{
process_buff = 0x0e ;
pro_led_buff = 0x1f;
led_disp.led_2.byte = pro_led_buff;
return;
}
if (program_buff == 0x02 )
{
select_fastest_flag = 1;
water_level_buff = 3;
water_count = water_level_buff;
led_disp.led_1.byte = 0xf7;
water_flash_flag = 0;
process_buff = 0x0e ;
pro_led_buff = 0x1f;
led_disp.led_2.byte = pro_led_buff;
return;
}
if ((select_fastest_flag == 1)&&(program_buff != 0x02 ))
{
select_fastest_flag = 0;
water_level_buff = 6;
water_count = water_level_buff;
led_disp.led_1.byte = 0xfb;
led_flash_buff = led_disp.led_1.byte;
water_flash_flag = 1;
return;
}
if (program_buff == 0x07 )
{
select_tube_flag = 1;
led_disp.led_1.byte = 0xff;
water_flash_flag = 0;
process_buff = 0x0e ;
pro_led_buff = 0x1f;
led_disp.led_2.byte = pro_led_buff;
return;
}
if ((select_tube_flag == 1)&&(program_buff != 0x07 ))
{
select_tube_flag = 0;
water_level_buff = 6;
water_count = water_level_buff;
led_disp.led_1.byte = 0xfb;
led_flash_buff = led_disp.led_1.byte;
water_flash_flag = 1;
return;
}
return;
}
void key_pro_fun(void)
{
if ((program_buff == 0x01 )||(program_buff == 0x02 )||(program_buff == 0x07 ))
return;
if (process_key_falg == 1)
key_process();
else if (function_key_falg == 1)
key_function();
pro_led_buff &= 0xf0;
fun_led_buff &= 0x0f;
led_disp.led_2.byte = pro_led_buff + fun_led_buff;
}
void key_process(void)
{
if ((program_buff == 0x05 )||(program_buff == 0x06 ))
{
process_count ++;
if (process_count == 4)
process_count = 0;
switch(process_count)
{
case 0:
process_buff = 0x0f ;
pro_led_buff = 0x0f;
break;
case 1:
process_buff = 0x02 ;
pro_led_buff = 0xdf;
break;
case 2:
process_buff = 0x04 ;
pro_led_buff = 0xbf;
break;
case 3:
process_buff = 0x08 ;
pro_led_buff = 0x7f;
break;
};
}
else
{
process_count ++;
if (process_count == 6)
process_count = 0;
switch(process_count)
{
case 0:
process_buff = 0x0e ;
pro_led_buff = 0x1f;
break;
case 1:
process_buff = 0x02 ;
pro_led_buff = 0xdf;
break;
case 2:
process_buff = 0x06 ;
pro_led_buff = 0x9f;
break;
case 3:
process_buff = 0x0c ;
pro_led_buff = 0x3f;
break;
case 4:
process_buff = 0x08 ;
pro_led_buff = 0x7f;
break;
case 5:
process_buff = 0x0f ;
pro_led_buff = 0x0f;
break;
};
}
}
void key_function(void)
{
function_count ++;
if (function_count == 12)
function_count = 0;
switch(function_count)
{
case 0:
function_buff = 0x01 ;
fun_led_buff = 0xfe;
break;
case 1:
function_buff = 0x02 ;
fun_led_buff = 0xfd;
break;
case 2:
function_buff = 0x04 ;
fun_led_buff = 0xfb;
break;
case 3:
function_buff = 0x08 ;
fun_led_buff = 0xf7;
break;
case 4:
function_buff = 0x03 ;
fun_led_buff = 0xfc;
break;
case 5:
function_buff = 0x05 ;
fun_led_buff = 0xfa;
break;
case 6:
function_buff = 0x09 ;
fun_led_buff = 0xf6;
break;
case 7:
function_buff = 0x06 ;
fun_led_buff = 0xf9;
break;
case 8:
function_buff = 0x0a ;
fun_led_buff = 0xf5;
break;
case 9:
function_buff = 0x07 ;
fun_led_buff = 0xf8;
break;
case 10:
function_buff = 0x0b ;
fun_led_buff = 0xf4;
break;
case 11:
fun_led_buff = 0xff;
break;
default:
function_buff = 0x01 ;
fun_led_buff = 0xfe;
};
return;
}
void key_water(void)
{
if (program_buff == 0x02 )
{
water_level_buff = 3;
water_count = water_level_buff;
led_disp.led_1.byte = 0xf7;
water_flash_flag = 0;
return;
}
else if (program_buff == 0x07 )
{
led_disp.led_1.byte = 0xff;
return;
}
else if (run_spin_flag == 1)
return;
water_count ++;
if (water_count == 11)
water_count = 1;
switch(water_count)
{
case 1:
case 2:
water_level_buff = water_count;
led_disp.led_1.byte = 0xef;
break;
case 3:
case 4:
water_level_buff = water_count;
led_disp.led_1.byte = 0xf7;
break;
case 5:
case 6:
water_level_buff = water_count;
led_disp.led_1.byte = 0xfb;
break;
case 7:
case 8:
water_level_buff = water_count;
led_disp.led_1.byte = 0xfd;
break;
case 9:
case 10:
water_level_buff = water_count;
led_disp.led_1.byte = 0xfe;
break;
};
if (!(water_count%2))
{
water_flash_flag = 1;
led_flash_buff = led_disp.led_1.byte;
}
else
water_flash_flag = 0;
return;
}
void key_preset(void)
{
key_preset_normal();
}
void key_preset_normal(void)
{
preset_count ++;
if (preset_count == 25)
{
preset_count = 0;
preset_3s_buff = 3;
}
if (preset_count == 1)
preset_count = 2;
preset_buff = preset_count;
if (preset_count < 10)
{
led_disp.led_3.byte = seg_led_table[preset_count];
led_disp.led_4.byte = seg_led_table[0];
}
if ((preset_count >= 10)&&(preset_count < 20))
{
led_disp.led_3.byte = seg_led_table[preset_count-10];
led_disp.led_4.byte = seg_led_table[0x01];
}
if (preset_count >= 20)
{
led_disp.led_3.byte = seg_led_table[preset_count-20];
led_disp.led_4.byte = seg_led_table[0x02];
}
led_flash_buff3 = led_disp.led_3.byte;
led_flash_buff4 = led_disp.led_4.byte;
return;
}
void key_preset_cont(void)
{
if (preset_500ms_buff == 0)
{
preset_500ms_buff = 1;
preset_count ++;
if (preset_count == 25)
{
preset_count = 0;
}
if (preset_count == 1)
preset_count = 2;
preset_buff = preset_count;
}
if (preset_count < 10)
{
led_disp.led_3.byte = seg_led_table[preset_count];
led_disp.led_4.byte = seg_led_table[0];
}
if ((preset_count >= 10)&&(preset_count < 20))
{
led_disp.led_3.byte = seg_led_table[preset_count-10];
led_disp.led_4.byte = seg_led_table[0x01];
}
if (preset_count >= 20)
{
led_disp.led_3.byte = seg_led_table[preset_count-20];
led_disp.led_4.byte = seg_led_table[0x02];
}
led_flash_buff3 = led_disp.led_3.byte;
led_flash_buff4 = led_disp.led_4.byte;
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -