📄 remkey.c
字号:
/*=============================== 按键及遥控处理函数集 =================================*/
/******************** 按键调用主程序 *********************/
void key_do(void) /*此函数由主函数调用*/
{
getkey_6311(); /* 第一次读键值,得键值par[0], 0=无按键 */
par[1]=par[0]; /*备份第一次按键键值*/
getkey_6311(); /*第二次读键值*/
if(par[1]==par[0]) /*如果新旧键值不相等则可能是干扰,返回*/
{
if (par[0]!=0) /******* 有按键 ***********/
{
if (par[0]==old_key)
{ /*新旧键值相等则计时,第二次以上按下该键*/
if (((!b_close_mach)&&(pwr_key_del==0))||(b_close_mach&&(++pwr_key_del>60)))
{
pwr_key_del=2;
close_mach();
test_c=0;
b_rkey_close=b_close_mach; /*=0为按键关机,=1为自动关机*/
}
else
{
if (b_timeu) kdel--; /* 用时间单位计时,每循环8次主程序则置B_TIMEU标志位为1(0.1S) */
if (kdel==0) /* 是否到时? */
{
b_mute=0; /*按下任意键取消机器静音*/
key_jmp(); /*** 按键自动连动 ***/
}
}
}
else /****** 第一次按下 ********/
{
b_mute=0; /*按下任意键取消机器静音*/
old_key=par[0]; /*重装旧键值*/
key_jmp(); /* 按键调用 */
}
}
else /******** 无按键 **********/
{
old_key=0; /*无按键旧键值清0*/
pwr_key_del=0;
}
}
}
/***************** 按键子程序跳转 ****************/
/* 输入 par[0] 键值 */
void key_jmp(void)
{
uchar i,x=par[0];
sys_start=0; /*主音量开机自动提升标志清零*/
screen_num=0;
peng_flg=0;
test_c=0;
/*
for(i=0;i<50;i++)
{
tdig_offset[i]=0;
}
*/
key_vol_select();
/* 音频的音量、音调数据有效输出处理(IC: m62446) */
if (b_intmute==0)
{
audio_ref();
pub_delay_do(60); /* 延时0.1S时间, 按键去抖 */
}
else pub_delay_do(100); /* 延时0.1S时间, 按键去抖 */
}
/*********************m62446音调处理子程序**************/
void key_vol_select(void)
{ /* 低音加 键 */
kdel=KTIME4; /* 初始按键延时计算数 */
ton_num=(ton_num+1)%17;
if ((ch_att==C2_CH)&&(ton_num>5)&&(ton_num<10))
ton_num=10;
else if ((ch_att==C3_CH)&&(ton_num>6)&&(ton_num<10))
ton_num=10;
else if ((input_att==INPUT_AC3)&&(ton_num==9))
ton_num=10;
if ((!b_mic)&&(ton_num>9)&&(ton_num<16))
ton_num=16;
switch(ton_num)
{
case 0:
screen_num=7; /*vol*/
input_data_scroll();
break;
case 1:
screen_num=67; /*input select*/
input_data_scroll();
break;
case 2:
screen_num=32;
input_data_scroll();
break;
case 3:
screen_num=9; /*treble*/
input_data_scroll();
break;
case 4:
screen_num=10; /*bass*/
input_data_scroll();
break;
case 5:
screen_num=8; /*balance*/
input_data_scroll();
break;
case 6:
screen_num=11; /*cen*/
input_data_scroll();
break;
case 7:
screen_num=12; /*sl_vol*/
input_data_scroll();
break;
case 8:
screen_num=13; /*sr_vol*/
input_data_scroll();
break;
case 9:
screen_num=33;
input_data_scroll();
break;
case 10:
screen_num=14; /*mic1_vol*/
input_data_scroll();
break;
case 11:
screen_num=15; /*mic2_vol*/
input_data_scroll();
break;
case 12:
screen_num=16; /*mtreble*/
input_data_scroll();
break;
case 13:
screen_num=17; /*mbass*/
input_data_scroll();
break;
case 14:
screen_num=18; /*mecho*/
input_data_scroll();
break;
case 15:
screen_num=66; /*delay*/
input_data_scroll();
break;
case 16:
screen_num=34; /*DISPLAY MODE*/
input_data_scroll();
break;
default:
break;
}
}
void key_dim(void)
{
kdel=KTIME4; /* 初始按键延时计算数 */
adj_display();
string_num=20;
if(dim_num<7) dim_num++;
}
void key_dim_sub(void)
{
kdel=KTIME4; /* 初始按键延时计算数 */
adj_display();
string_num=20;
if(dim_num!=0) dim_num--;
}
/*
void key_mode(void)
{
kdel=KTIME4; /* 初始按键延时计算数 */
/*
b_dim_disp=~b_dim_disp;
if(b_dim_disp)
{
screen_num=5; //mbass
input_data_scroll();
ton_num=DIM_F;
}
else
{
screen_num=6; //mbass
input_data_scroll();
ton_num=VFD_F;
}
}
*/
void disp_add(void)
{
kdel=KTIME4; /* 初始按键延时计算数 */
string_num=15; /* "L- R- " */
if(display_num<7)
{
display_num++;
b_auto_disp=0;
}
else
{
b_auto_disp=1;
string_num=26;
}
adj_display();
}
void disp_sub(void)
{
kdel=KTIME4; /* 初始按键延时计算数 */
string_num=15; /* "L- R- " */
if (b_auto_disp)
{
b_auto_disp=0;
display_num=7;
}
else
{
if(display_num!=0) display_num--;
}
adj_display();
}
void mic1_vol_add(void)
{
if(b_mic)
{
if(mic1_val<20) mic1_val++;
adj_display();
par[0]=&mic1_val; /*KALA OK高音*/
write_abyte();
string_num=16; /* "M1 " */
}
else dis_seterr();
}
void mic1_vol_sub(void)
{
if(b_mic)
{
if(mic1_val!=0) mic1_val--;
adj_display();
par[0]=&mic1_val; /*KALA OK高音*/
write_abyte();
string_num=16; /* "M1 " */
}
else dis_seterr();
}
void mic2_vol_add(void)
{
if(b_mic)
{
if(mic2_val<20) mic2_val++;
adj_display();
par[0]=&mic2_val; /*KALA OK高音*/
write_abyte();
string_num=19; /* "M2 " */
}
else dis_seterr();
}
void mic2_vol_sub(void)
{
if(b_mic)
{
if(mic2_val!=0) mic2_val--;
adj_display();
par[0]=&mic2_val; /*KALA OK高音*/
write_abyte();
string_num=19; /* "M2 " */
}
else dis_seterr();
}
void mic_tre_add(void)
{
if(b_mic)
{
if(mtre_val<8) mtre_val++;
adj_display();
string_num=9; /* "MT " */
save_program();
}
else dis_seterr();
}
void mic_tre_sub(void)
{
if(b_mic)
{
if(mtre_val!=0) mtre_val--;
adj_display();
string_num=9; /* "MT " */
save_program();
}
else dis_seterr();
}
void mic_bass_add(void)
{
if(b_mic)
{
if(mbass_val<8) mbass_val++;
adj_display();
string_num=17; /* "MB " */
save_program();
}
else dis_seterr();
}
void mic_bass_sub(void)
{
if(b_mic)
{
if(mbass_val!=0) mbass_val--;
adj_display();
string_num=17; /* "MB " */
save_program();
}
else dis_seterr();
}
void mic_echo_add(void)
{
if(b_mic)
{
if (mecho_val<20) mecho_val++;
adj_display();
string_num=18; /* "EC " */
save_program();
}
else dis_seterr();
}
void mic_echo_sub(void)
{
if(b_mic)
{
if (mecho_val!=0) mecho_val--;
adj_display();
string_num=18; /* "EC " */
save_program();
}
else dis_seterr();
}
void mic_delay_add(void)
{
if(b_mic)
{
if (delay_val<3) delay_val++;
adj_display();
string_num=65; /* "EC " */
save_program();
}
else dis_seterr();
}
void mic_delay_sub(void)
{
if(b_mic)
{
if (delay_val!=0) delay_val--;
adj_display();
string_num=65; /* "EC " */
save_program();
}
else dis_seterr();
}
void cen_vol_add(void)
{
if(cen_val<80) cen_val++;
adj_display();
string_num=7; /* "CV " */
}
void cen_vol_sub(void)
{
if(cen_val!=0) cen_val--;
adj_display();
string_num=7; /* "CV " */
}
void sl_vol_add(void)
{
if(sl_val<80) sl_val++;
adj_display();
string_num=6; /* "SL " */
}
void sl_vol_sub(void)
{
if(sl_val!=0) sl_val--;
adj_display();
string_num=6; /* "SL " */
}
void sr_vol_add(void)
{
if(sr_val<80) sr_val++;
adj_display();
string_num=8; /* "Sr " */
}
void sr_vol_sub(void)
{
if(sr_val!=0) sr_val--;
adj_display();
string_num=8; /* "Sr " */
}
void bass_add(void)
{
kdel=KTIME2; /* 初始按键延时计算数 */
if(bass_val<10) bass_val++;
adj_display();
string_num=10; /* "BA " */
save_program();
}
void bass_sub(void)
{
kdel=KTIME2; /* 初始按键延时计算数 */
if(bass_val!=0) bass_val--;
adj_display();
string_num=10; /* "BA " */
save_program();
}
void treble_add(void)
{
kdel=KTIME2; /* 初始按键延时计算数 */
if(tre_val<10) tre_val++;
adj_display();
string_num=11; /* "TR " */
save_program();
}
void treble_sub(void)
{
kdel=KTIME2; /* 初始按键延时计算数 */
if(tre_val!=0) tre_val--;
adj_display();
string_num=11; /* "TR " */
save_program();
}
/********* 5CH 键,子程序 **********/
void key_surround(void) /*5声道处理*/
{
if (input_att!=INPUT_AC3) /*如果为AC-3输入则出错*/
{
ch_att=C5_CH;
string_num=ch_att+5;
ch_select();
}
else dis_seterr(); /* 显示出错 */
}
/********* 3CH 键,子程序 **********/
void key_3_stereo(void) /*5声道处理*/
{
if (input_att!=INPUT_AC3) /*如果为AC-3输入则出错*/
{
ch_att=C3_CH;
string_num=ch_att+5;
ch_select();
}
else dis_seterr(); /* 显示出错 */
}
/********* STEREO 键,子程序 *********/
void key_stereo(void) /*2.1声道处理*/
{
if (input_att!=INPUT_AC3) /*如果为AC-3输入则出错*/
{
ch_att=C2_CH;
string_num=ch_att+5; /* "stereo" */
ch_select();
}
else dis_seterr(); /* 显示出错 */
}
void key_ch_mode(bit lr_flag)
{
if (input_att!=INPUT_AC3) /*如果为AC-3输入则出错*/
{
if (lr_flag)
{
if(ch_att<2) ch_att++;
else ch_att=0;
}
else
{
if(ch_att>0) ch_att--;
else ch_att=2;
}
ch_select();
}
else dis_seterr(); /* 显示出错 */
}
void ch_select(void)
{
start_intmute(); /* 临时静音启动 */
kdel=KTIME4; /* 初始按键延时计算数 */
par[0]=&ch_att;
write_abyte();
if(dsp_att!=DSP_NO)
{
/******** 高低音恢复子程序 ********/
tre_bass_restore();
}
if(ch_att==C2_CH)
{
tre_val=5;
bass_val=5;
b_lound=0;
par[0]=&tre_val;
write_abyte();
par[0]=&bass_val;
write_abyte();
}
dsp_att=DSP_NO;
par[0]=&dsp_att;
write_abyte();
screen_num=ch_att+1;
input_data_scroll();
}
/********* MUTE 键,子程序 *********/
void key_mute(void) /*遥控键*/
{
uchar i;
kdel=KTIME4; /* 0.6S初始按键延时计算数 */
b_mute=~b_mute; /*按一次为静音,再按一次为开通音量*/
if (b_mute)
{ /* 静音 */
mute_enable();
string_num=21;
copy_string(tab_string1_p(string_num)); /* " MUTE " 静止不动!!! */
string_att=STRING_PROMPT; /* 设显示为提示方式 */
string_snext(); /* !!! 特殊方法 !!! */
}
else
{
/**** 声音音量、音调等参数刷新输出处理 *****/
audio_ref();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -