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

📄 page.c

📁 mtv230 的源程序,供大家参考.
💻 C
字号:
#include "Globe.h"

bit MenuSelect;				//menu模式标志	0:normal   1:factory
BYTE data horizon;
BYTE ModePressCount;
extern bit TVSearchBit,TVNextBit;

BYTE idata Color;
BYTE idata Contrast;
BYTE idata Tint;
BYTE idata ComAmp;




BYTE code Mode[11][14]=
{
	{SecondPage,_liang,__,__,SecondPage,_du,__,__,__,__,__,DataEnd},
	{SecondPage,_dui,__,__,SecondPage,_bi,__,__,SecondPage,_du,__,DataEnd},
	{SecondPage,_se,__,__,SecondPage,_du,__,__,__,__,__,__,DataEnd},
	{SecondPage,_se,__,__,SecondPage,_diao,__,__,__,__,__,__,DataEnd},
	{_P,_i,_c,_t,_u,_r,_e,__,__,__,__,__,__,DataEnd},  
	{SecondPage,_tiao,__,__,SecondPage,_zheng,__,__,__,__,__,DataEnd},
	{SecondPage,_she,__,__,SecondPage,_ding,__,__,__,__,__,DataEnd},
	{_L,_f,_t,_e,_LEFT,__,_R,_i,_g,_h,_t,_RIGHT,__,DataEnd},
	{_U,_p,_UP,__,_D,_o,_w,_n,_DOWN,__,__,__,__,DataEnd},
	{_T,_u,_n,_e,_r,__,__,__,__,__,__,__,__,DataEnd},
	{_S,_e,_l,_c,_e,_t,__,__,__,__,__,__,__,DataEnd},
};


//--------------[ USER CONYROL]---------------//
/**********************************************************
Description	: convert percent data to value.
Parameters	: Item
			   Max/percentdata/Min--max/current/min
Return Value	:
**********************************************************/
BYTE Hex_to_Percent(BYTE MIN,BYTE Curdata,BYTE MAX)
{	
	double temp;
	WORD zs1,zs2;
	BYTE value;
	temp=((double)Curdata-(double)MIN)/((double)MAX-(double)MIN);
	temp*=100;
	//temp+=MIN+54;
	zs1=temp;
	zs1*=2;
	zs2=temp*2;
	if(zs2>zs1)temp++;
	value=(BYTE)temp;
	return value;
}


/**********************************************************
Description	: convert percent data to value.
Parameters	: Item
			   Max/percentdata/Min--max/current/min
Return Value	:
**********************************************************/
BYTE Percent_to_Hex(BYTE MIN,BYTE Curdata,BYTE MAX)
{						//Hec data to percentdata !!!
	BYTE value;
	WORD zhenshu1,zhenshu2;
	double temp;

	temp = (double)Curdata/ 100.00;
	temp = temp *((double)MAX - (double)MIN);
	temp+=MIN;
	zhenshu1=temp;
	zhenshu1*=2;
	zhenshu2=temp*2;
	if(zhenshu1<zhenshu2)temp++;
	value =LoByte(temp);

	return value;
}

// MENU SELECT
void ModeSelect(void)		
{
	BYTE temp;
	ModePressCount++;
	
	if(ModePressCount > eRECALL)
		{
		ModePressCount=0;
		CloseOSD();
		OSDOPEN=0;
		}

	if(ModePressCount != 0) {	

		switch(ModePressCount) {
			case eBRIGHT:
				
				temp= EEPROM_Rd_Byte(EAD_BRI);
				WorkValue=temp; 

				CloseOSD();
				OpenOSD_Border();
				OSDOPEN = 1;
				gotoxy(VETICAL,horizon);
				Double_W_H(RINT);		
				PrintChar(_Brightness_L, red, 0);
				PrintChar(_Brightness_R, red, 0);
				PrintString(Mode[0], yellow);
				WorkValue=Hex_to_Percent(ComAmpN, WorkValue, ComAmpX);
				gotoxy(VETICAL+VETICAL_LEN,horizon);
				Double_W_H(RINT);
				PrintDec(WorkValue,yellow);		
				gotoxy(VETICAL,horizon+1);
				PrintOneBar(VETICAL,horizon+1, green);
				
				break;

			case eCONTRAST:
				WorkValue = EEPROM_Rd_Byte(EAD_CON);
				if(WorkValue < ContrastN&&WorkValue >ContrastX)
					{
						WorkValue = ContrastN;
					}
				gotoxy(VETICAL,horizon);
				Double_W_H(RINT);
				PrintChar(_Contrast_L, red, 0);
				PrintChar(_Contrast_R, red, 0);
				PrintString(Mode[1], yellow);
				temp=Hex_to_Percent(ContrastN, WorkValue, ContrastX);
				WorkValue=temp;
				gotoxy(VETICAL+VETICAL_LEN,horizon);
				Double_W_H(RINT);
				PrintDec(WorkValue,yellow);
				gotoxy(VETICAL,horizon+1);
				PrintOneBar(VETICAL,horizon+1, green);		
				break;
		
			case eCOLOR:
				WorkValue = EEPROM_Rd_Byte(EAD_COL);
				if(WorkValue < ColorN&&WorkValue >ColorX)
					{
						WorkValue = ColorN;
					}
				gotoxy(VETICAL, horizon);
				Double_W_H(RINT);
				PrintChar(_Color_L, red, 0);
				PrintChar(_Color_R, red, 0);
				PrintString(Mode[2], yellow);
				temp=Hex_to_Percent(ColorN, WorkValue, ColorX);
				WorkValue=temp;
				gotoxy(VETICAL+VETICAL_LEN,horizon);
				Double_W_H(RINT);
				PrintDec(WorkValue,yellow);
				gotoxy(VETICAL,horizon+1);
				PrintOneBar(VETICAL,horizon+1, green);
				break;

			case eTINT:
				WorkValue = EEPROM_Rd_Byte(EAD_TINT);
				if(WorkValue < TintN&&WorkValue >TintX)
					{
						WorkValue = TintN;
					}
				gotoxy(VETICAL,horizon);
				Double_W_H(RINT);
				PrintChar(_Tint_L, red, 0);
				PrintChar(_Tint_R, red, 0);
				PrintString(Mode[3], yellow);
				temp=Hex_to_Percent(TintN, WorkValue, TintX);
				WorkValue=temp;
				gotoxy(VETICAL+VETICAL_LEN,horizon);
				Double_W_H(RINT);
				PrintDec(WorkValue,yellow);

				gotoxy(VETICAL,horizon+1);
				PrintOneBar(VETICAL,horizon+1, green);
				break;

			case eROTATE:
		

				gotoxy(VETICAL,horizon);
				Double_W_H(RINT);
				PrintString(Mode[5], yellow);
				gotoxy(VETICAL+VETICAL_LEN,horizon);
				Double_W_H(RINT);
				PrintChar(__,yellow,0);//去除错误显示的数值
				PrintChar(__,yellow,0);
				PrintChar(__,yellow,0);
				PrintChar(__,yellow,0);
				gotoxy(VETICAL,horizon+1);
				Double_W_H(RINT);
				for(temp=0;temp<30;temp++)//去除错误显示的状态条
				{
				PrintChar(__,yellow,0);
					}				
				break;	

			case eRECALL:
		
				gotoxy(VETICAL,horizon);
				Double_W_H(RINT);
				PrintString(Mode[6], yellow);
				break;
				
			default:
				break;
  		}
		}
	}	
	


// VALUE ADJUST
void ValueAdjust(void)		
{
	if(!OSDOPEN) {
		OpenOSD_Border();
		OSDOPEN=1;
		if(ModePressCount > 0)ModePressCount=ModePressCount-1;
		ModeSelect();
		KeyShort=0;
	}


	if(KeyShort==1) {		//单击控制
			if(ModePressCount==eROTATE){
				LR=~LR;
				UD=~UD;
				}
			
		else if(ModePressCount==eRECALL){
				byM230_DA0=Reset_BRI;	
				EEPROM_Wr_Byte(EAD_BRI, Reset_BRI);
				byM230_DA1=Reset_CON;	
				EEPROM_Wr_Byte(EAD_CON,Reset_CON);
				byM230_DA2=Reset_COL;	
				EEPROM_Wr_Byte(EAD_COL,Reset_COL);
				byM230_DA3=Reset_TINT;	
				EEPROM_Wr_Byte(EAD_TINT, Reset_TINT);
				CloseOSD();
				OSDOPEN=0;
			}
		
		else if(ModePressCount !=0) {
	  		if(KeyCode==UP_KEY)	{
				if(WorkValue<100) WorkValue++;
				DelayX10ms(255);

			}
	  		else if(KeyCode==DOWN_KEY){
	  			if(WorkValue>0) WorkValue--;
				DelayX10ms(255);


			}
			gotoxy(VETICAL+VETICAL_LEN, horizon);
			Double_W_H(RINT);
			PrintDec(WorkValue,yellow);
		
			gotoxy(VETICAL,horizon+1);
			PrintOneBar(VETICAL,horizon+1, green);	
			
		

			switch(ModePressCount) {
				case eBRIGHT:
					ComAmp= Percent_to_Hex(ComAmpN,WorkValue, ComAmpX);
					EEPROM_Wr_Byte(EAD_BRI, ComAmp);	
					byM230_DA0=ComAmp;
					break;
	
				case eCONTRAST:
					Contrast= Percent_to_Hex(ContrastN,WorkValue, ContrastX);
					EEPROM_Wr_Byte(EAD_CON, Contrast);		
					byM230_DA1=Contrast;
					break;

				case eCOLOR:
					Color = Percent_to_Hex(ColorN,WorkValue, ColorX);
					EEPROM_Wr_Byte(EAD_COL, Color);	
					byM230_DA2=Color;
					break;

				case eTINT:
					Tint = Percent_to_Hex(TintN, WorkValue, TintX);
					EEPROM_Wr_Byte(EAD_TINT, Tint);		
					byM230_DA3=Tint;
					break;


				default:
					break;
				}
			}
		}
	else if(KeyLianji==1)	{		
		if(ModePressCount<=eTINT&&ModePressCount>0) {
	  		if(KeyCode==UP_KEY)	{
				if(WorkValue<100) WorkValue++;
				DelayX10ms(255);
				//DelayX10ms(255);


			}
	  		else if(KeyCode==DOWN_KEY)	{
	  			if(WorkValue>0) WorkValue--;
				DelayX10ms(255);
				//DelayX10ms(255);


			}
		
			gotoxy(VETICAL+VETICAL_LEN, horizon);
			Double_W_H(RINT);
			PrintDec(WorkValue,yellow);
			gotoxy(VETICAL,horizon+1);
			PrintOneBar(VETICAL,horizon+1, green);	
		
		  	switch(ModePressCount) {
				case eBRIGHT:
					ComAmp= Percent_to_Hex(ComAmpN,WorkValue, ComAmpX);
					EEPROM_Wr_Byte(EAD_BRI, ComAmp);	
					byM230_DA0=ComAmp;
					break;
	
				case eCONTRAST:
					Contrast= Percent_to_Hex(ContrastN,WorkValue, ContrastX);
					EEPROM_Wr_Byte(EAD_CON, Contrast);	
					byM230_DA1=Contrast;
					break;

				case eCOLOR:
					Color =Percent_to_Hex(ColorN,WorkValue, ColorX);
					EEPROM_Wr_Byte(EAD_COL, Color);
					byM230_DA2=Color;
					break;

				case eTINT:
					Tint = Percent_to_Hex(TintN, WorkValue, TintX);
					EEPROM_Wr_Byte(EAD_TINT, Tint);		
					byM230_DA3=Tint;
					break;

				
				default:
					break;
		  		}
			}
		}
}

⌨️ 快捷键说明

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