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

📄 display.c

📁 完整功放的控制程序
💻 C
📖 第 1 页 / 共 3 页
字号:
/*=============================== 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 + -