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

📄 vfd._c

📁 sunplus spca514 cdmp3 源码
💻 _C
📖 第 1 页 / 共 2 页
字号:
  						break;
  				};
			}
  			break;
			case DIS_RT:
  				if(rds_status&RT_EXIST)
  				{
  					r2=Set_String(&rds_dis_string[rds_dis_buffer[2]]);
					//r2 = display_RT(rds_dis_buffer[2]);
  					if(!blink_time)
  					{	
  						if(r2) 
  						  rds_dis_buffer[2]++;  //
  					    else 
  						  rds_dis_buffer[2] = 0;  //oa
  								 	
  					}
  				}
  				else
  					Set_String("NO RT");
  			    break;
				
			case DIS_CT:
  					if(rds_status&CT_EXIST)
  					{
  						g_vfd_grid_buffer[7] = num_trans(rds_dis_string[0]/10);
  						g_vfd_grid_buffer[6] = ((num_trans(rds_dis_string[0]%10)|VFD_LED_COL));
  						g_vfd_grid_buffer[5] = num_trans(rds_dis_string[1]/10);
  						g_vfd_grid_buffer[4] = num_trans(rds_dis_string[1]%10);
  						
  					}
  					else
  						Set_String("NO CT");
  						
  				
  				break;

   #endif
	case RADIO_STORE:
  		if(blink_time<2)
  		{
  			Set_String("STORE");
			//g_vfd_grid_buffer[9] |= VFD_alpha_S;
  			//g_vfd_grid_buffer[8] |= VFD_alpha_T;
			//g_vfd_grid_buffer[7] |= VFD_alpha_O;
			//g_vfd_grid_buffer[6] |= VFD_alpha_R;
			//g_vfd_grid_buffer[5] |= VFD_alpha_E;
		};
		if(radio_count ==0)
		{
		   	g_vfd_grid_buffer[3] = VFD_alpha_DASH;
			g_vfd_grid_buffer[2] = VFD_alpha_DASH;
		}
		else
		{
			display_digit(radio_count);
			//g_vfd_grid_buffer[3] |= num_xlate[radio_count/10];
			//g_vfd_grid_buffer[2] |= num_xlate[radio_count%10];
		};
		break;

  };
  if((!is_autosearching) &&(!radio_dout()))
  	g_vfd_grid_buffer[8] |= VFD_LED_STEREO;
 if(is_autosearching)
 {
  	if(blink_time<2)
  		g_vfd_grid_buffer[0] |= VFD_LED_AUTO;
 }
}

void ui_fp_update_handler(void)
{
 unsigned char i;
 unsigned int value;
 #ifndef TEST_KEY
 if(work_mode!=0)
 #endif
 {
  for(i=0;i<VFD_BUFFER_SIZE;i++)
  {
    g_vfd_grid_buffer[i] = 0;
  #ifdef MORE_THAN_16SEGMENT
    g_vfd_grid_ext_buffer[i] = 0;
  #endif
  }
  blink_time = (blink_time+1)%5;
  switch(display_type)
  {
    case DISPLAY_VERSION:
	     Set_String("A980R104");
		 /*
		 R104: MODIFIED BY SGJM IN 2002-10-23
		      add SCART AV/TV control
		 	  add RDS	
		 */
		 break;
 	#ifdef CLOCK_STANDBY
	case DISPLAY_TIME:
	     if(hm_flag||(blink_time<3)) //display_hour
		 {
		   g_vfd_grid_buffer[7] = num_trans(time_val[0]/10);
		   g_vfd_grid_buffer[6] = (num_trans(time_val[0]%10)|VFD_LED_COL);
		 };
	     if(!hm_flag||(blink_time<3))
		 {
		   g_vfd_grid_buffer[5] = num_trans(time_val[1]/10);
		   g_vfd_grid_buffer[4] = num_trans(time_val[1]%10);
		 };	 
	     break;
	#endif
		 #ifdef TEST_KEY
	case DISPLAY_KEY:
	      display_digit(info);
		  break;
		  #endif
	   case DISPLAY_VOL:
	      	Set_String("VOL");
			//g_vfd_grid_buffer[9] |= VFD_alpha_V ;
   			//g_vfd_grid_buffer[8] |= VFD_alpha_O ;
   			//g_vfd_grid_buffer[7] |= VFD_alpha_L ;
			if(Mchvol<60)
              display_digit(Mchvol);
			else
			{
			  g_vfd_grid_buffer[4] |= VFD_alpha_M ;
   			  g_vfd_grid_buffer[3] |= VFD_alpha_A ;
   			  g_vfd_grid_buffer[2] |= VFD_alpha_X ;
			};
   			//g_vfd_grid_buffer[1] |= num_xlate[Mchvol/10];//(Mchvolume-MAX_VOLUME)/10];
   		    //g_vfd_grid_buffer[0] |= num_xlate[Mchvol%10];//(Mchvolume-MAX_VOLUME)%10];
        	break;
  
 		case DISPLAY_BASS:
    		Set_String("BASS");
			//g_vfd_grid_buffer[9] |= VFD_alpha_B;
   		    //g_vfd_grid_buffer[8] |= VFD_alpha_A;
   		    //g_vfd_grid_buffer[7] |= VFD_alpha_S;
   		    //g_vfd_grid_buffer[6] |= VFD_alpha_S;
         	if(Bassvol >=7)
         	{
  		    	g_vfd_grid_buffer[2] = num_trans(Bassvol-7);
    			g_vfd_grid_buffer[3] = VFD_alpha_PLUS;
         	}
         	else
         	{
          		//g_vfd_grid_buffer[3] |= VFD_alpha_MINUS;
    			g_vfd_grid_buffer[2] = num_trans(7-Bassvol);
				g_vfd_grid_buffer[3] = VFD_alpha_MINUS;
          	}
          	break;
			
		case DISPLAY_TREBLE:
		    Set_String("TREBLE");
    		//g_vfd_grid_buffer[9] |= VFD_alpha_T ; 
    		//g_vfd_grid_buffer[8] |= VFD_alpha_R ; 
    		//g_vfd_grid_buffer[7] |= VFD_alpha_E ; 
    		//g_vfd_grid_buffer[6] |= VFD_alpha_B ; 
    		//g_vfd_grid_buffer[5] |= VFD_alpha_L ; 
    		//g_vfd_grid_buffer[4] |= VFD_alpha_E ; 
         	if(Treblevol >=7)
   		    {
   		    	//g_vfd_grid_buffer[3] |= VFD_alpha_PLUS;
    			g_vfd_grid_buffer[2] = num_trans(Treblevol-7);
    			g_vfd_grid_buffer[3] = VFD_alpha_PLUS;
			}
         	else
         	{
    			//g_vfd_grid_buffer[3] |= VFD_alpha_MINUS;
    			g_vfd_grid_buffer[2] = num_trans(7-Treblevol);
         		g_vfd_grid_buffer[3] = VFD_alpha_MINUS;
			}
         	break;
		case ERROR_MSG:  //err_msg
         	Set_String(err_msg);
         	break;

		case DISPLAY_BALANCE:
		     Set_String("BAL");
			 if(Balanceval ==7)
			 {
			    g_vfd_grid_buffer[2] = VFD_alpha_L;
    			g_vfd_grid_buffer[3] = VFD_alpha_R;
			}
			else if(Balanceval >7)
   		    {
   		    	//g_vfd_grid_buffer[3] |= VFD_alpha_PLUS;
    			g_vfd_grid_buffer[2] = num_trans(Balanceval-7);
    			g_vfd_grid_buffer[3] = VFD_alpha_R;
			}
         	else
         	{
    			//g_vfd_grid_buffer[3] |= VFD_alpha_MINUS;
    			g_vfd_grid_buffer[2] = num_trans(7-Balanceval);
         		g_vfd_grid_buffer[3] = VFD_alpha_L;
			}
         	break;
			// display_digit(Balanceval);
		//	g_vfd_grid_buffer[6] |= VFD_LED_COL;
			
			/*g_vfd_grid_buffer[9] |=VFD_alpha_L;
			if(Balanceval>0)
				g_vfd_grid_buffer[8] |=VFD_SPECIAL_1|VH|VR;
			if(Balanceval>1)
				g_vfd_grid_buffer[8] |=VFD_SPECIAL_2;
			if(Balanceval>2)
				g_vfd_grid_buffer[7] |=VFD_SPECIAL_1;
			if(Balanceval>3)
				g_vfd_grid_buffer[7] |=VFD_SPECIAL_2;
			if(Balanceval>4)
				g_vfd_grid_buffer[6] |=VFD_SPECIAL_1;
			if(Balanceval>5)
				g_vfd_grid_buffer[6] |=VFD_SPECIAL_2;
			
			g_vfd_grid_buffer[2] |=VFD_alpha_R;
			if(Balanceval<12)
				g_vfd_grid_buffer[3] |=VFD_SPECIAL_2|VK|VN;
			if(Balanceval<11)
				g_vfd_grid_buffer[3] |=VFD_SPECIAL_1;
			if(Balanceval<10)
				g_vfd_grid_buffer[4] |=VFD_SPECIAL_2;
			if(Balanceval<9)
				g_vfd_grid_buffer[4] |=VFD_SPECIAL_1;
			if(Balanceval<8)
				g_vfd_grid_buffer[5] |=VFD_SPECIAL_2;
			if(Balanceval<7)
				g_vfd_grid_buffer[5] |=VFD_SPECIAL_1;*/
	
		//	break;

	/*
		case DISPLAY_LOUDNESS:
			//g_vfd_grid_buffer[9] |= VFD_alpha_L ; 
    		//g_vfd_grid_buffer[8] |= VFD_alpha_O ; 
    		//g_vfd_grid_buffer[7] |= VFD_alpha_U ; 
    		//g_vfd_grid_buffer[6] |= VFD_alpha_D ;
    		//Set_string("LOUD");
			if(Loudnessval)
       		{
      		    Set_String("3D ON");
				//g_vfd_grid_buffer[4] |= VFD_alpha_O; 
   				//g_vfd_grid_buffer[3] |= VFD_alpha_N;
   				//g_vfd_grid_buffer[2] |= VFD_alpha_F;
       		}
			else
			{
			    Set_String("3D OFF");
				//g_vfd_grid_buffer[4] |= VFD_alpha_O; 
   			//	g_vfd_grid_buffer[3] |= VFD_alpha_F;
   			//	g_vfd_grid_buffer[2] |= VFD_alpha_F;
			}
			break;*/
	 case DISPLAY_TIMING:
	        Set_String("SLEEP"); 
         	//g_vfd_grid_buffer[9] |= VFD_alpha_S ; 
    		//g_vfd_grid_buffer[8] |= VFD_alpha_L ; 
    		//g_vfd_grid_buffer[7] |= VFD_alpha_E ; 
    		//g_vfd_grid_buffer[6] |= VFD_alpha_E ;
    		//g_vfd_grid_buffer[5] |= VFD_alpha_P;
       		value =( g_ui_timing_cnt/300);
       		if(g_ui_timing_cnt%300>10)
       			value++;
			if(value==0)
       		{
      		    g_vfd_grid_buffer[4] = VFD_alpha_O; 
   				g_vfd_grid_buffer[3] = VFD_alpha_F;
   				g_vfd_grid_buffer[2] = VFD_alpha_F;
       		}
       		else
       		{
       			display_digit(value);
				g_vfd_grid_buffer[0] = VFD_LED_SLEEP;
       			
       		//	radio_vfd = g_ui_timing_cnt%300;
       		//	radio_vfd = radio_vfd/5;
       		//	r2 = radio_vfd%10;
       		//	r3 = radio_vfd/10;
       		//	g_vfd_grid_buffer[3] |= num_xlate[r3];
	      	//	g_vfd_grid_buffer[2] |= num_xlate[r2];

       		}
       		break;
		case DISPLAY_WELCOME:
	      switch(work_mode)
		  {
		   case TUNER_MODE:
		       Set_String(" TUNER");
			   break;
		   case AV1_MODE:
		       Set_String("   AV1");
			   break;
		   case AV2_MODE:
		       Set_String("   AV2");
			   break;
		   case AV3_MODE:
		       Set_String("   AV3");
			   break;
		  }
		  break;
	  default:
	  	   if(work_mode!=POWER_OFF_MODE)
		   {
		   	g_vfd_grid_buffer[1] = num_xlate_left[Mchvol/10];//(Mchvolume-MAX_VOLUME)/10];
   		    g_vfd_grid_buffer[1] |= num_xlate_right[Mchvol%10];//(Mchvolume-MAX_VOLUME)%10];
      
		   };
	       switch(work_mode)
		   {
		    case TUNER_MODE:
			     tuner_display();
			     break;
			case TAPE_MODE:
			     Set_String("   AV1");
			     break;
			case AV2_MODE:
			    Set_String("   AV2");
				break;
			case AV3_MODE:
			     Set_String("   AV3");
				 break;
			case POWER_OFF_MODE:
			#ifdef CLOCK_STANDBY
			   g_vfd_grid_buffer[7] = num_trans(time_val[0]/10);
		   	   g_vfd_grid_buffer[6] = (num_trans(time_val[0]%10)|VFD_LED_COL);
		 	   g_vfd_grid_buffer[5] = num_trans(time_val[1]/10);
		 	   g_vfd_grid_buffer[4] = (num_trans(time_val[1]%10)|VFD_LED_COL);
		       g_vfd_grid_buffer[3] = num_trans(time_val[2]/10);
			   g_vfd_grid_buffer[2] = num_trans(time_val[2]%10);
			 #endif
			   //Set_FS1_H();
			   //Set_FS2_H(); 
    		   muted = 1;
			   MCU_mute();
			   delay_ms(100);
			   led_val = 0x01;
			   decoder_power_off();
			   break;
		   }
		   break;

		
   }
  
 };	
  if(work_mode != POWER_OFF_MODE)
  {
   	if(muted)
      g_vfd_grid_buffer[7] |= VFD_LED_MUTE;
   	if(g_ui_timing_cnt)
	   g_vfd_grid_buffer[0] |= VFD_LED_SLEEP;
	 //if(g_tape_s.pstate==TAPE_FWD_REC)
	   //g_vfd_grid_buffer[10] |= VFD_LED_REC;
   };
 VFD_LL_SetGrid();				 
 for(i=0; i<VFD_BUFFER_SIZE; i++)
 {
  VFD_LL_WriteDisplayRAM( i, g_vfd_grid_buffer[i]);
 
 VFD_LL_RefreshLED(led_val);
 #ifdef MORE_THAN_16SEGMENT
  VFD_LL_WriteExtDisplayRAM(i,g_vfd_grid_ext_buffer[i]);
 #endif
 };
 VFD_LL_SetDim(0x0f);
}

unsigned char Set_String(unsigned char *str)
{
//	int position;
//	int counter = 0;
	int pos;
//	int letter_index;

	for(pos = 9; pos > 1; pos--)
	{
		if (*str)
		{
			if ( ((*str)>='A') && ((*str)<='Z'))
			{
				g_vfd_grid_buffer[pos] =  vfd_alpha[(*str)-'A'];
			}
			else if ( (*str) == '-' )
			{
				g_vfd_grid_buffer[pos] =  VFD_alpha_DASH;
			}
			else if ( ((*str)>='0') && ((*str)<='9'))
			{

				g_vfd_grid_buffer[pos] =  num_xlate[(*str)-'0'];
			}
	        else if((*str)=='*')
			{
			   g_vfd_grid_buffer[pos] = VFD_alpha_aster;
			}
			else if((*str)==0x0D)
			  return 0;
			else if((*str)==0x0A)
			  return 1;
			str++;

		}
		else
		 return 0;

	}
	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -