📄 display.c
字号:
/*=============================== VFD显示处理函数集 =================================*/
/********** 各种字符串显示方式的执行 **********/
void string_refdo(void) /*此函数由主函数调用*/
{
uchar x,y;
/*** 显示部分的计时器--计时程序 ***/
if(string_att!=STRING_SCROLL)
{
if(b_timeu)
{
if(string_del!=0) string_del--; /*b_timeu=1,则自减(一个时间到减1) 0x00=计时溢出 */
}
}
else
{
if(string_del!=0) string_del--; /*b_timeu=1,则自减(一个时间到减1) 0x00=计时溢出 */
}
/***** 现在的显示方式执行 *****/
switch (string_att)
{
/****************************** 机器方式 ******************************/
case STRING_MACH:
if (string_del==0) string_snext(); /*现在的显示方式结束, 设置下一显示方式, 准备进入*/
else copy_string(tab_string1_p(string_num));
break; /*把表中机器状态的数据装到DIG4=DIG10中*/
/***************************** 提示方式 *******************************/
case STRING_PROMPT:
if (string_del==0) string_snext(); /* 现在的显示方式结束, 设置下一显示方式, 准备进入 */
else copy_string(tab_string1_p(string_num));
break; /*把表中提示状态的数据装到DIG4=DIG10中*/
/****************************** 调节方式 ******************************/
case STRING_ADJ:
if (string_del==0) string_snext(); /* 现在的显示方式结束, 设置下一显示方式, 准备进入 */
else
{
copy_string(tab_string1_p(string_num));
switch (string_num) /*** 各子状态的数字显示 ***/
{
case 11: /* TRE +xx 高音量调节数字 */
x=tre_val;
goto sgr_p0;
case 10: /* BASS+xx 低音量调节数字 */
x=bass_val;
sgr_p0: if (x<5)
{
tdig_offset[6]=0x00;
tdig_offset[7]=0x40;
tdig_offset[8]=0x00;
tdig_offset[9]=0x40;
tdig_offset[10]=0x00;
tdig_offset[11]=0x40;
x=(5-x)*2;
}
else if (x==5) x=0;
else
{
tdig_offset[6]=0x00;
tdig_offset[7]=0x40;
tdig_offset[8]=0x0f;
tdig_offset[9]=0xfe;
tdig_offset[10]=0x00;
tdig_offset[11]=0x40;
x=(x-5)*2;
}
dig_bin2bcd1(x);
break;
/**********************************/
case 65:
if(delay_val==0)
{
tdig_offset[16]=tab_ascii_1[6][0];
tdig_offset[17]=tab_ascii_1[6][1];
tdig_offset[18]=tab_ascii_1[6][2];
tdig_offset[19]=tab_ascii_1[6][3];
tdig_offset[20]=tab_ascii_1[6][4];
tdig_offset[21]=tab_ascii_1[6][5];
tdig_offset[22]=tab_ascii_1[4][0];
tdig_offset[23]=tab_ascii_1[4][1];
tdig_offset[24]=tab_ascii_1[4][2];
tdig_offset[25]=tab_ascii_1[4][3];
tdig_offset[26]=tab_ascii_1[4][4];
tdig_offset[27]=tab_ascii_1[4][5];
}
else if(delay_val==1)
{
tdig_offset[16]=tab_ascii_1[9][0];
tdig_offset[17]=tab_ascii_1[9][1];
tdig_offset[18]=tab_ascii_1[9][2];
tdig_offset[19]=tab_ascii_1[9][3];
tdig_offset[20]=tab_ascii_1[9][4];
tdig_offset[21]=tab_ascii_1[9][5];
tdig_offset[22]=tab_ascii_1[6][0];
tdig_offset[23]=tab_ascii_1[6][1];
tdig_offset[24]=tab_ascii_1[6][2];
tdig_offset[25]=tab_ascii_1[6][3];
tdig_offset[26]=tab_ascii_1[6][4];
tdig_offset[27]=tab_ascii_1[6][5];
}
if(delay_val==2)
{
tdig_offset[10]=tab_ascii_1[1][0];
tdig_offset[11]=tab_ascii_1[1][1];
tdig_offset[12]=tab_ascii_1[1][2];
tdig_offset[13]=tab_ascii_1[1][3];
tdig_offset[14]=tab_ascii_1[1][4];
tdig_offset[15]=tab_ascii_1[1][5];
tdig_offset[16]=tab_ascii_1[6][0];
tdig_offset[17]=tab_ascii_1[6][1];
tdig_offset[18]=tab_ascii_1[6][2];
tdig_offset[19]=tab_ascii_1[6][3];
tdig_offset[20]=tab_ascii_1[6][4];
tdig_offset[21]=tab_ascii_1[6][5];
tdig_offset[22]=tab_ascii_1[8][0];
tdig_offset[23]=tab_ascii_1[8][1];
tdig_offset[24]=tab_ascii_1[8][2];
tdig_offset[25]=tab_ascii_1[8][3];
tdig_offset[26]=tab_ascii_1[8][4];
tdig_offset[27]=tab_ascii_1[8][5];
}
if(delay_val==3)
{
tdig_offset[10]=tab_ascii_1[2][0];
tdig_offset[11]=tab_ascii_1[2][1];
tdig_offset[12]=tab_ascii_1[2][2];
tdig_offset[13]=tab_ascii_1[2][3];
tdig_offset[14]=tab_ascii_1[2][4];
tdig_offset[15]=tab_ascii_1[2][5];
tdig_offset[16]=tab_ascii_1[0][0];
tdig_offset[17]=tab_ascii_1[0][1];
tdig_offset[18]=tab_ascii_1[0][2];
tdig_offset[19]=tab_ascii_1[0][3];
tdig_offset[20]=tab_ascii_1[0][4];
tdig_offset[21]=tab_ascii_1[0][5];
tdig_offset[22]=tab_ascii_1[0][0];
tdig_offset[23]=tab_ascii_1[0][1];
tdig_offset[24]=tab_ascii_1[0][2];
tdig_offset[25]=tab_ascii_1[0][3];
tdig_offset[26]=tab_ascii_1[0][4];
tdig_offset[27]=tab_ascii_1[0][5];
}
break;
/**********************************/
case 9: /* TRE +xx 高音量调节数字 */
x=mtre_val;
goto msgr_p0;
case 17: /* BASS+xx 低音量调节数字 */
x=mbass_val;
msgr_p0: if (x<4)
{
tdig_offset[6]=0x00;
tdig_offset[7]=0x40;
tdig_offset[8]=0x00;
tdig_offset[9]=0x40;
tdig_offset[10]=0x00;
tdig_offset[11]=0x40;
x=(4-x)*2;
}
else if (x==4) x=0;
else
{
tdig_offset[6]=0x00;
tdig_offset[7]=0x40;
tdig_offset[8]=0x0f;
tdig_offset[9]=0xfe;
tdig_offset[10]=0x00;
tdig_offset[11]=0x40;
x=(x-4)*2;
}
dig_bin2bcd1(x);
break;
case 5: /* MVOLxx 主音量调节数字 */
dig_bin2bcd1(master_val); /*装2位变化数据到DIG5和DIG4进行显示*/
break;
case 7: /* CVOL +xx 中置音量调节数字 */
dig_bin2bcd1(cen_val); /*装2位变化数据到DIG5和DIG4进行显示*/
break;
case 6: /* CVOL +xx 中置音量调节数字 */
dig_bin2bcd1(sl_val); /*装2位变化数据到DIG5和DIG4进行显示*/
break;
case 8: /* CVOL +xx 中置音量调节数字 */
dig_bin2bcd1(sr_val); /*装2位变化数据到DIG5和DIG4进行显示*/
break;
case 15:
x=display_num+1;
tdig_offset[34]=tab_ascii_1[x][0];
tdig_offset[35]=tab_ascii_1[x][1];
tdig_offset[36]=tab_ascii_1[x][2];
tdig_offset[37]=tab_ascii_1[x][3];
tdig_offset[38]=tab_ascii_1[x][4];
tdig_offset[39]=tab_ascii_1[x][5];
break;
case 20:
x=dim_num+1;
tdig_offset[34]=tab_ascii_1[x][0];
tdig_offset[35]=tab_ascii_1[x][1];
tdig_offset[36]=tab_ascii_1[x][2];
tdig_offset[37]=tab_ascii_1[x][3];
tdig_offset[38]=tab_ascii_1[x][4];
tdig_offset[39]=tab_ascii_1[x][5];
break;
case 16:
dig_bin2bcd1(mic1_val);
break;
case 19:
dig_bin2bcd1(mic2_val);
break;
case 18:
dig_bin2bcd1(mecho_val);
break;
case 25: /*balance*/
x=18-balan_val;
x=x*2; /*x=balan_val*2*/
tdig_offset[7+x]=0xf8;
if(balan_val==9)
{
tdig_offset[24]=0x3f;
tdig_offset[25]=0xfe;
}
break;
default:
break;
}
}
break;
/*************************** 滚屏方式 **********************************/
case STRING_SCROLL:
if (string_del==0)
{
string_del=STRDEL_SCR; /* 滚屏速度延时时间 */
if (string_scr_do()) string_snext(); /* 移动一步, 且检测是否移完? */
} /* 如果走屏结束则转换到机器状态下*/
/* 滚屏步显示停留结束否? */
break;
default:
break;
}
}
/******** 现在的字符显示方式结束, 设置下一显示方式, 准备进入 *********/
void string_snext(void)
{
switch (string_att) /*在string_del=0时自动进入此函数执行*/
{
/*********** 原为机器方式时的处理 **********/
case STRING_MACH: /*在机器状态下等待25秒后则自动走屏*/
string_att=STRING_SCROLL; /* 设为滚屏 */
string_del=STRDEL_SCR; /* 设置滚屏速度 */
string_num=0; /* 第一显示字符的表数组号 */
string_scr_step=125;
clear_tdig_offset();
ton_num=VOL_F;
break;
/************原为滚屏方式时的处理**********/
case STRING_SCROLL: /*如果在走屏期间执行调节和提示方式则走屏取消*/
adpro_screen_delay=0;
/*********** 原为提示方式时的处理 **********/
case STRING_PROMPT: /*提示方式到机器方式的转换,走屏方式到机器方式的转换*/
/*********** 原为调节方式时的处理 **********/
case STRING_ADJ: /*调节方式到机器方式的转换*/
if(screen_num==7) /*vol*/
{
string_num=5;
adj_display();
}
else if(screen_num==9) /*treble*/
{
string_num=11;
adj_display();
}
else if(screen_num==10) /*bass*/
{
string_num=10;
adj_display();
}
else if(screen_num==8) /*balance*/
{
string_num=25;
balan_display();
}
else if(screen_num==11) /*cen*/
{
string_num=7;
adj_display();
}
else if(screen_num==12) /*sl*/
{
string_num=6;
adj_display();
}
else if(screen_num==13) /*sr*/
{
string_num=8;
adj_display();
}
else if(screen_num==14) /*mic1*/
{
string_num=16;
adj_display();
}
else if(screen_num==15) /*mic2*/
{
string_num=19;
adj_display();
}
else if(screen_num==16) /*mtreble*/
{
string_num=9;
adj_display();
}
else if(screen_num==17) /*mbass*/
{
string_num=17;
adj_display();
}
else if(screen_num==18) /*mecho*/
{
string_num=18;
adj_display();
}
else if(screen_num==5) /*dimmer*/
{
string_num=20;
adj_display();
}
else if(screen_num==6) /*vfd: */
{
if(b_auto_disp==0) string_num=15;
else string_num=26; /*auto*/
adj_display();
}
else if(screen_num==32) /*ch mode*/
{
screen_num=ch_att+1;
input_data_scroll();
return;
}
else if(screen_num==33) /*DSP MODE*/
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -