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

📄 t10a2_display.c

📁 AVR单片机基础程序实例! 十个程序源代码。
💻 C
📖 第 1 页 / 共 5 页
字号:
	Lock_VFD(1);

	if (VFD_Scan_Count < 0xff)
	{
		VFD_Scan_Count++;
	}
	else
	{
		VFD_Scan_Count = 0;
	}	
	
	switch (VFD_Display_Mode)
	{
		case Initial_DisMode:			//开机画面

			break;
		case StandBy_DisMode:			//new关机画面
		
			if (VFD_Scan_Count == 30)
			{	
				VFD_Scan_Count = 0;
				PowerOff_Display();
			}
			
			break;
		case Protect_DisMode:			//保护画面
		
			if (VFD_Scan_Count == 5)
			{	
				VFD_Scan_Count = 0;
				Protect_Display(VFD_Variable);
			}
			
			break;
			
		case MIC_Connect_DisMode:		//newMIC连接画面
		
			Flg_MIC_Disp = 0;
			if (VFD_Scan_Count == 2)
			{	
				//VFD_Scan_Count = 0;
				MIC_Conn_Display(VFD_Variable);				
			}			
			break;			
				
		case MIC_Data_DisMode:		//newMIC 数据调节
		
			if (VFD_Scan_Count == 2)
			{	
				//VFD_Scan_Count = 0;
				MIC_DataAdj_Display(VFD_Variable);
			}			
			break;			

		case Mute_DisMode:				//静音显示

			break;

		case Normal_DisMode:			//待机画面
		
			if (VFD_Scan_Count == 5)
			{
				VFD_Scan_Count = 0;
				Waiting_Display();
			}

			break;
		case Volume_DisMode:			//new音量显示

			if (VFD_Scan_Count == 2)
			{	
				//VFD_Scan_Count = 0;
				Volume_Display(VFD_Variable);
			}
			break;
			
		case EQ_DisMode:				//new高低音调节显示

			if (VFD_Scan_Count == 2)
			{	
				//VFD_Scan_Count = 0;
				Bass_Tre_Display(VFD_Variable);
			}
			break;
		case Balance_DisMode:			//new平衡显示

			if (VFD_Scan_Count == 5)
			{	
				VFD_Scan_Count = 0;
			}
			break;	
			
		case Decode_DisMode:			//new丽音显示

			if (VFD_Scan_Count == 5)
			{	
				//VFD_Scan_Count = 0;
				Decode_Display(VFD_Variable);
			}
			break;
			
		case Source_DisMode:			//new Input 显示
		
			if (VFD_Scan_Count == 2)
			{	
				//if (SccrollX_PT < 4)
				//{
					VFD_Scan_Count = 0;
				//}
				Input_Display(VFD_Variable);
			}		
			break;
			
		case Detect_Source_DisMode:	//new Input 显示
		
			if (VFD_Scan_Count == 2)
			{	
				//if (SccrollX_PT < 4)
				//{
					VFD_Scan_Count = 0;
				//}
				Detect_Input_Display(VFD_Variable);
			}		
			break;
			
		case Input_DisMode:			//
		
			if (VFD_Scan_Count == 2)
			{	
				//if (SccrollX_PT < 4)
				//{
					VFD_Scan_Count = 0;
				//}
				Connect_Display(VFD_Variable);
			}		
			break;	
			
		case Mplayer_DisMode:			//USB Input 显示
		
			if (VFD_Scan_Count ==5)
			{	
				VFD_Scan_Count = 0;
				Mplayer_Display(VFD_Variable);
			}		
			break;	
			
		case Frequency_DisMode:		//new频谱显示
			Refresh_FreqData(0/*,Current_Spect*/);
			Write_FreqMode();
			break;	
			
		case FreqProc_DisMode:		//new频谱等待显示
		
			if (VFD_Scan_Count == 2)
			{	
				VFD_Scan_Count = 0;
				FreqProc_Display(VFD_Variable);
			}		
			break;	
			
		case AI_DisMode:				//newAI显示
			if (VFD_Scan_Count ==5)
			{	
				//VFD_Scan_Count = 0;
				AI_Display(VFD_Variable);
			}
			break;
			
		case AutoFit_DisMode:			//环境自适应显示
			if (VFD_Scan_Count ==5)
			{	
				//VFD_Scan_Count = 0;
				AutoFit_Display(VFD_Variable);
			}
			break;
			
		case HeadPhone_DisMode:		//耳机
			if (VFD_Scan_Count ==5)
			{	
				//VFD_Scan_Count = 0;
				HeadPhone_Display(VFD_Variable);
			}
			break;
			
		case StreamFormat_DisMode:	//stream format显示
			if (VFD_Scan_Count ==5)
			{	
				//VFD_Scan_Count = 0;
				StreamFormat_Display(VFD_Variable);
			}		
			break;	
			
		case HT_TV_Mode_DisMode:		//家庭,电视影院显示
			if (VFD_Scan_Count ==5)
			{	
				//VFD_Scan_Count = 0;
				HTTV_Mode_Display(VFD_Variable);
			}
			break;	
			
		case OK_Mode_DisMode:			//OK调节显示
			if (VFD_Scan_Count ==5)
			{	
				//VFD_Scan_Count = 0;
				OK_Mode_Display(VFD_Variable);
			}
			break;	
			
		case SpeakerSet_DisMode:		//喇叭设置
			if (VFD_Scan_Count ==5)
			{	
				//VFD_Scan_Count = 0;
				SpeakerSet_Display(VFD_Variable);
			}
			break;		
			
		case Cn_En_DisMode:			//中英显示
		
			if (VFD_Scan_Count ==5)
			{	
				//VFD_Scan_Count = 0;
				Cn_En_Display(VFD_Variable);
			}
			break;	
			
		case Invalid_DisMode: 		//操作无效
		
			if (VFD_Scan_Count ==5)
			{	
				Invalid_Display();
			}
			break;	
			
		case USB_CARD_Connect_DisMode:	//USB 连接显示
		
			if (VFD_Scan_Count ==5)
			{	
				USB_CARD_Connect_Display(VFD_Variable);
			}
			break;
			
	}

	if(bdata0_flag&BIT(MUTE_F))//&&(!(bdata2_flag&BIT(SHAN_DONG_F))))//MUTE_F=1
	{
		if(bdata0_flag&BIT(FLAG_1HZ))//灭    未计时,
		{
			WriteMod(0,0,UnMute_Pic);
		}
		else
		{
			WriteMod(0,0,Mute_Pic);
		}
	}

	if(VFD_Display_Mode == Normal_DisMode || VFD_Display_Mode == Frequency_DisMode)
	{	
		if(input_select == 13)//蓝牙
		{
			WriteMod(18,0,Bluetooth_Pic);
		}
		
		if(bdata3_flag&BIT(MENU_OPEN_F))//Menu
		{
			WriteMod(28,0,Menu_Pic);
		}

		
		if(bdata1_flag&BIT(WIRELESS_F))//耳机
		{
			WriteMod(40,0,HeadPhone_Pic);
		}

		//if((menu_address==0x00)&&(!(PINC&BIT(CHECK_SINGLE))))
		if(Signal_Detect_OK == 1 && (!(PING&BIT(SPDIF_DET))) && VFD_Display_Mode == Frequency_DisMode)
		{
			if((input_select==0)||(input_select==1)||(input_select==4))
			{		
				//王明文添加
                                if (Flg_Invalid_OS == 0)
                                {
                                    switch (digital_coding_format)
                                    {
                                            case 0:
                                                    WriteMod(80,0,Dolby_Pic);
                                                    break;
                                            case 1:				
                                                    WriteMod(100,0,DTS_Pic);
                                                    break;
                                            case 2:				
                                                    WriteMod(100,0,PCM_Pic);
                                                    break;
                                    }
                                }
			}
		}
	}

	if(Flg_Invalid_OS == 1)
	{		
		WriteMod(112,0,Invalid_Pic);
	}
	
	Lock_VFD(0);
	//Lighten_VFD();
}
	
/******************************************************************************/
//	Function:	输入显示
//	Input:		显示模式 和 要显示的参数
//	Output: 	none
/******************************************************************************/
void Display_Proc(uchar Display_Mode)//,uchar Variable)
{
	//VFD_Variable = Variable;
	
	if (VFD_Display_Mode != Display_Mode)	
	{		
		VFD_Display_Mode = Display_Mode;
		SccrollX_PT = -16;
		SccrollY_PT = -64;
		//Disp_Register=0x00;		
		//bdata2_flag|=BIT(EEPROM_SAVE_F);
	}
	VFD_Scan_Count = 0;
	//Flg_Invalid_OS = 0;
}

/******************************************************************************/
//	Function:	输入显示
//	Input:		none
//	Output: 	none
/******************************************************************************/
void Input_Display(uchar Input_Source)
{
	uchar Disp_YPT,Disp_XPT;

	//Disp_XPT = 4;
	Disp_YPT = 64;

	CLEAR_VFD();
	if (SccrollX_PT < 4)
	{
		SccrollX_PT++;
	}	

	if (VFD_Variable_Bak != VFD_Variable)
	{			
		VFD_Variable_Bak = VFD_Variable;
		SccrollX_PT = -16;
	}	
	
	Copy_Flash_to_StrBuffer(Source_Str[13*Cn_En_Mode+Input_Source],Display_Temp);
	WriteSec(small,Disp_YPT+60,SccrollX_PT,Display_Temp);

	Copy_Flash_to_StrBuffer(Source_Str[26+13*Cn_En_Mode+Input_Source],Display_Temp);
	WriteSec(small,Disp_YPT+40,SccrollX_PT+12,Display_Temp);
	
}

/******************************************************************************/
//	Function:	输入显示
//	Input:		none
//	Output: 	none
/******************************************************************************/
void Detect_Input_Display(uchar Input_Source)
{
	uchar Disp_YPT,Disp_XPT;
	Disp_YPT = 64;

	CLEAR_VFD();
	if (SccrollX_PT < 4)
	{
		SccrollX_PT++;
	}	

	if (VFD_Variable_Bak != VFD_Variable)
	{			
		VFD_Variable_Bak = VFD_Variable;
		SccrollX_PT = -16;
	}	

	
	Copy_Flash_to_StrBuffer(Detect_Str[Cn_En_Mode],Display_Temp);
	WriteSec(small,Disp_YPT+60,SccrollX_PT,Display_Temp);
	
	Copy_Flash_to_StrBuffer(Source_Str[13*Cn_En_Mode+Input_Source],Display_Temp);
	WriteSec(small,Disp_YPT+20,SccrollX_PT,Display_Temp);

	Copy_Flash_to_StrBuffer(Source_Str[26+13*Cn_En_Mode+Input_Source],Display_Temp);
	WriteSec(small,Disp_YPT+40,SccrollX_PT+12,Display_Temp);
	
}


/******************************************************************************/
//	Function:	音量显示
//	Input:		none
//	Output: 	none
/******************************************************************************/
void Connect_Display(uchar Connect_Mode)
{	
	uchar Disp_YPT,Disp_XPT,i = 0;	
	static unsigned char Connect_Step = 0;
	Disp_YPT = 64;
	
	if (VFD_Variable_Bak != VFD_Variable)
	{			
		VFD_Variable_Bak = VFD_Variable;
		SccrollX_PT = -16;
		VFD_Scan_Count1 = 0;
	}

	if (SccrollX_PT < 4)
	{
		SccrollX_PT++;	
		CLEAR_VFD();	
		
		switch (Connect_Mode)	
		{
			case HT_Mode:				//显示家庭影院
				if (Cn_En_Mode == Chinese_Mode)
				{	
					WriteMod(Disp_YPT-40,SccrollX_PT,HomeTheatreCn_Pic);	
				}
				else
				{
					WriteMod(Disp_YPT-40,SccrollX_PT,HomeTheatreEn_Pic);
				}				
				break;
			case TV_Mode:				//显示电视影院
				if (Cn_En_Mode == Chinese_Mode)
				{	
					WriteMod(Disp_YPT-40,SccrollX_PT,TVTheatreCn_Pic);	
				}
				else
				{
					WriteMod(Disp_YPT-40,SccrollX_PT,TVTheatreEn_Pic);
				}
				break;
		}		
	}
	else
	{	
		if (Connect_Step < 0)
		{
			Connect_Step++;		
		}
		else
		{
			Connect_Step = 0;

			if (VFD_Scan_Count1 < 84)
			{
				VFD_Scan_Count1++;
			}
			else
			{
				VFD_Scan_Count1 = 0;
				
				CLEAR_VFD();	
				
				switch (Connect_Mode)	
				{
					case HT_Mode:				//显示家庭影院
						if (Cn_En_Mode == Chinese_Mode)
						{	
							WriteMod(Disp_YPT-40,SccrollX_PT,HomeTheatreCn_Pic);	
						}
						else
						{
							WriteMod(Disp_YPT-40,SccrollX_PT,HomeTheatreEn_Pic);
						}				
						break;
					case TV_Mode:				//显示电视影院
						if (Cn_En_Mode == Chinese_Mode)
						{	
							WriteMod(Disp_YPT-40,SccrollX_PT,TVTheatreCn_Pic);	
						}
						else
						{
							WriteMod(Disp_YPT-40,SccrollX_PT,TVTheatreEn_Pic);
						}
						break;
				}
			}
			
			DrawRectangle(Disp_YPT+42,26,Disp_YPT-40,26,hard);			

			for (i=0;i<VFD_Scan_Count1/2-1;i++)
			{
				WriteMod(Disp_YPT+42-i*2,24,Line_Col002_Tab);		
			}

			if (VFD_Scan_Count1%2 != 0)
			{
				if (VFD_Scan_Count1 > 1)
				{
					WriteMod(Disp_YPT+42-VFD_Scan_Count1+4,24,Line_Col002_Tab);	
				}
				WriteMod(Disp_YPT+42-VFD_Scan_Count1+2,24,Line_Col001_Tab);	
			}	
			else
			{
				if (VFD_Scan_Count1 > 0)
				{
					WriteMod(Disp_YPT+42-VFD_Scan_Count1+2,24,Line_Col003_Tab);	
				}
			}
		}
	}

}



/******************************************************************************/
//	Function:	频铺等待显示
//	Input:		none
//	Output: 	none
/******************************************************************************/
void FreqProc_Display(uchar Freq_Mode)
{	
	uchar Disp_YPT,Disp_XPT;

	//Disp_XPT = 4;
	Disp_YPT = 64;

	CLEAR_VFD();
	if (SccrollX_PT < 4)
	{
		SccrollX_PT++;
	}	

	if (VFD_Variable_Bak != VFD_Variable)
	{			
		VFD_Variable_Bak = VFD_Variable;
		SccrollX_PT = -16;
	}	
	
	Copy_Flash_to_StrBuffer(Frequency_Str[Cn_En_Mode],Display_Temp);
	WriteSec(small,Disp_YPT+48,SccrollX_PT,Display_Temp);

	if (Cn_En_Mode == Chinese_Mode)
	{
		WriteASCII(small,Disp_YPT-24,SccrollX_PT+2,Freq_Mode + '0');
	}
	else
	{
		WriteASCII(small,Disp_YPT-36,SccrollX_PT+2,Freq_Mode + '0');
	}
}

/******************************************************************************/
//	Function:	音量显示
//	Input:		none
//	Output: 	none
/******************************************************************************/
void Volume_Display(uchar Volume_Value)
{	
	uchar Volume_TempH,Volume_TempL,Rnt_Status = 0;
	uchar Disp_XPT,Disp_YPT,i = 0;	

	Disp_XPT = 20;
	Disp_YPT = 64;	

	//Cn_En_Mode Volume_Str
	
	CLEAR_VFD();

	switch (Disp_Type)
	{
		case MAIN_VOL:
		case MAIN_CH_VOL:

			Copy_Flash_to_StrBuffer(Volume_Str[8*Cn_En_Mode+Disp_Type],Display_Temp);
			
			if (Cn_En_Mode == 0)
			{
				WriteSec(small,Disp_YPT+52,Disp_XPT-6,Display_Temp);
			}
			else
			{
				WriteSec(small,Disp_YPT+58,Disp_XPT-6,Display_Temp);
			}

			DrawRectangle(Disp_YPT+10,Disp_XPT-8,Disp_YPT+60,Disp_XPT+8,soft);
			
			WriteMod(Disp_YPT-60,Disp_XPT,Line_Row_Tab);	
			WriteASCII(small,36,Disp_XPT-16,Volume_Value/10 + '0');
			WriteASCII(small,28,Disp_XPT-16,Volume_Value%10 + '0');			
			
			for (i=0;i<Volume_Value/2-1;i++)
			{
				WriteMod(Disp_YPT-i*2,Disp_XPT,Line_Col002_Tab);		
			}
			
			if (Volume_Value%2 != 0)
			{
				if (Volume_Value > 1)
				{
					WriteMod(Disp_YPT-Volume_Value+4,Disp_XPT,Line_Col002_Tab);	
				}
				WriteMod(Disp_YPT-Volume_Value+2,Disp_XPT,Line_Col001_Tab);	
			}	
			else
			{
				if (Volume_Value > 0)
				{
					WriteMod(Disp_YPT-Volume_Value+2,Disp_XPT,Line_Col003_Tab);	
				}
			}
			break;		
		case FL_CH_VOL:
		case FR_CH_VOL:
		case SL_CH_VOL:
		case SR_CH_VOL:
		case CEN_CH_VOL:
		case SW_CH_VOL:		
			
			Copy_Flash_to_StrBuffer(Volume_Str[8*Cn_En_Mode+Disp_Type],Display_Temp);
			WriteSec(small,Disp_YPT+36,Disp_XPT-16,Display_Temp);

			
			if (Volume_Value > 10)
			{
				WriteASCII(small,Disp_YPT-16,Disp_XPT-14,'+');
				WriteASCII(small,Disp_YPT-24,Disp_XPT-14,(Volume_Value-10)/10+'0');		
				WriteASCII(small,Disp_YPT-32,Disp_XPT-14,(Volume_Value-10)%10+'0');
			}
			else if (Volume_Value < 10)
			{
				WriteASCII(small,Disp_YPT-16,Disp_XPT-14,'-');
				WriteASCII(small,Disp_YPT-24,Disp_XPT-14,(10-Volume_Value)/10+'0');		
				WriteASCII(small,Disp_YPT-32,Disp_XPT-14,(10-Volume_Value)%10+'0');
			}
			else
			{
				WriteASCII(small,Disp_YPT-22,Disp_XPT-14,(Volume_Value-10)/10+'0');		
				WriteASCII(small,Disp_YPT-30,Disp_XPT-14,(Volume_Value-10)%10+'0');
			}

			//DrawRectangle(Disp_YPT-6,Disp_XPT-14,Disp_YPT-34,Disp_XPT-4,soft);

			if ((Volume_Value >= 10))
			{
				for (i=0;i<5;i++)
				{
					WriteMod(Disp_YPT+36-i*8,Disp_XPT,SmallZero_Pic);
				}
				for (i=5;i<Volume_Value/2+1;i++)
				{

⌨️ 快捷键说明

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