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

📄 mtv230 test.c

📁 车载显示屏
💻 C
📖 第 1 页 / 共 5 页
字号:
	dis_chara(5,10,F_E);
	
	dis_chara(6,7,F_S);
	dis_chara(6,8,F_E);
	dis_chara(6,9,F_A);
	dis_chara(6,10,F_R);
	dis_chara(6,11,F_C);
	dis_chara(6,12,F_H);
}
void sel_menu2(void)
{
uchar i,j;
	for(i=3;i<10;i++)
	{
	for(j=2;j<23;j++)dis_chara_col(i,j,GREEN);}
	
	V_temp0=V_cnt_sub_menu+3;
	dis_chara_col(V_temp0,5+2,B_RED|GREEN);
	dis_chara_col(V_temp0,6+2,B_RED|GREEN);
	dis_chara_col(V_temp0,7+2,B_RED|GREEN);
	dis_chara_col(V_temp0,8+2,B_RED|GREEN);
	dis_chara_col(V_temp0,9+2,B_RED|GREEN);
	dis_chara_col(V_temp0,10+2,B_RED|GREEN);
	dis_chara_col(V_temp0,11+2,B_RED|GREEN);
	dis_chara_col(V_temp0,12+2,B_RED|GREEN);
	dis_chara_col(V_temp0,13+2,B_RED|GREEN);
	dis_chara_col(V_temp0,14+2,B_RED|GREEN);
	dis_chara_col(V_temp0,15+2,B_RED|GREEN);
	dis_chara_col(V_temp0,16+2,B_RED|GREEN);
	dis_chara_col(V_temp0,17+2,B_RED|GREEN);
	dis_chara_col(V_temp0,18+2,B_RED|GREEN);
}

void dis_menu3(void)
{
	dis_chara(3,7,F_P);
	dis_chara(3,8,F_A);
	dis_chara(3,9,F_L);
	dis_chara(3,10,0x75);
	dis_chara(3,11,F_N);
	dis_chara(3,12,F_T);
	dis_chara(3,13,F_S);
	dis_chara(3,14,F_C);
	
	if(B_p2n)
	{
		dis_chara(3,18,F_N);
		dis_chara(3,19,F_T);
		dis_chara(3,20,F_S);
		dis_chara(3,21,F_C);
	}
	else
	{
		dis_chara(3,18,F_P);
		dis_chara(3,19,F_A);
		dis_chara(3,20,F_L);
		dis_chara(3,21,0x00);
	}
	dis_chara(4,7,F_S);
	dis_chara(4,8,F_Y);
	dis_chara(4,9,F_S);
	dis_chara(4,10,0x00);
	dis_chara(4,11,F_A);
	dis_chara(4,12,F_U);
	dis_chara(4,13,F_D);
	dis_chara(4,14,F_I);
	dis_chara(4,15,F_O);
	if(V_cnt_sys_mute==3)
	{
		dis_chara(4,18,F_D);
		dis_chara(4,19,0x75);
		dis_chara(4,20,F_K);
	}
	if(V_cnt_sys_mute==0)
	{
		dis_chara(4,18,F_M);
		dis_chara(4,19,0x75);
		dis_chara(4,20,F_N);
	}
	if(V_cnt_sys_mute==1)
	{
		dis_chara(4,18,F_B);
		dis_chara(4,19,0x75);
		dis_chara(4,20,F_G);
	}
	if(V_cnt_sys_mute==2)
	{
		dis_chara(4,18,F_I);
		dis_chara(4,19,0x00);
		dis_chara(4,20,0x00);
	}
	
	dis_chara(5,7,F_V);
	dis_chara(5,8,F_O);
	dis_chara(5,9,F_L);
	dis_chara(5,10,F_U);
	dis_chara(5,11,F_M);
	dis_chara(5,12,F_N);
	dis_chara(5,13,0x00);
	dis_chara(5,14,0x00);
	dis_chara(5,15,0x00);
	
	V_temp0=V_volumn&0x0f;
	V_temp1=V_volumn&0xf0;
	V_temp1=V_temp1>>1;
	V_temp1=V_temp1>>1;
	V_temp1=V_temp1>>1;
	V_temp1=V_temp1>>1;
	V_temp1=V_temp1&0x0f;
	dis_chara(5,18,V_temp1+1);
	dis_chara(5,19,V_temp0+1);
	
	dis_chara(6,7,F_M);
	dis_chara(6,8,F_U);
	dis_chara(6,9,F_T);
	dis_chara(6,10,F_E);
	if(B_mute)
	{
		dis_chara(6,18,F_O);
		dis_chara(6,19,F_N);
		dis_chara(6,20,0x00);
	}
	else
	{
		dis_chara(6,18,F_O);
		dis_chara(6,19,F_F);
		dis_chara(6,20,F_F);
	}
	dis_chara(7,7,F_A);
	dis_chara(7,8,F_U);
	dis_chara(7,9,F_T);
	dis_chara(7,10,F_O);
	dis_chara(7,11,0x00);
	dis_chara(7,12,F_S);
	dis_chara(7,13,F_C);
	dis_chara(7,14,F_A);
	dis_chara(7,15,F_N);
	if(B_scan_tv|B_scan_fm)
	{
		dis_chara(7,18,0x8e);
		dis_chara(7,19,0x8f);
	}
	else
	{
		dis_chara(7,18,0x00);
		dis_chara(7,19,0x00);
	}
///////////////antenna
	dis_chara(8,7,F_A);
	dis_chara(8,8,F_N);
	dis_chara(8,9,F_T);
	dis_chara(8,10,F_E);
	dis_chara(8,11,F_N);
	dis_chara(8,12,F_N);
	dis_chara(8,13,F_A);
	if(B_antenna)
	{
		dis_chara(8,18,F_C);
		dis_chara(8,19,F_A);
		dis_chara(8,20,F_B);
		dis_chara(8,21,F_L);
		dis_chara(8,22,F_E);
	}
	else
	{
		dis_chara(8,18,F_A);
		dis_chara(8,19,F_I);
		dis_chara(8,20,F_R);
		dis_chara(8,21,0x00);
		dis_chara(8,22,0x00);
	}
}
void sel_menu3(void)
{
uchar i,j;
	V_temp0=V_cnt_sub_menu+3;
	
	if(V_sys_mode!=2)
	{
		for(i=3;i<10;i++)for(j=2;j<23;j++)dis_chara_col(i,j,GREEN);
		dis_chara_col(V_temp0,5+2,B_RED|GREEN);
		dis_chara_col(V_temp0,6+2,B_RED|GREEN);
		dis_chara_col(V_temp0,7+2,B_RED|GREEN);
		dis_chara_col(V_temp0,8+2,B_RED|GREEN);
		dis_chara_col(V_temp0,9+2,B_RED|GREEN);
		dis_chara_col(V_temp0,10+2,B_RED|GREEN);
		dis_chara_col(V_temp0,11+2,B_RED|GREEN);
		dis_chara_col(V_temp0,12+2,B_RED|GREEN);
		dis_chara_col(V_temp0,13+2,B_RED|GREEN);
		dis_chara_col(V_temp0,14+2,B_RED|GREEN);
		dis_chara_col(V_temp0,15+2,B_RED|GREEN);
		dis_chara_col(V_temp0,16+2,B_RED|GREEN);
		dis_chara_col(V_temp0,17+2,B_RED|GREEN);
		dis_chara_col(V_temp0,18+2,B_RED|GREEN);
	}
	if(V_sys_mode==2)
	{
		for(i=3;i<10;i++)
		{
			if(i==3||i==4||i==8)V_temp1=YELLOW;
			else V_temp1=GREEN;
			for(j=2;j<23;j++)dis_chara_col(i,j,V_temp1);
		}
		if(V_temp0==3||V_temp0==4||V_temp0==8)V_temp1=YELLOW;
		else V_temp1=GREEN;
		
		dis_chara_col(V_temp0,5+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,6+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,7+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,8+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,9+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,10+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,11+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,12+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,13+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,14+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,15+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,16+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,17+2,B_RED|V_temp1);
		dis_chara_col(V_temp0,18+2,B_RED|V_temp1);
	}
}

void CalculateData_5mz2(void)
{
float RF_temp;
unsigned int V_divider_temp;

	if(V_sys_mode==2)
	{
		V_divider_temp=0x088b;
		RF_temp=RF-76.100;
		V_divider_temp=V_divider_temp+RF_temp/0.050;
		if(B_scan_tv||B_search_tv||B_scan_fm||B_search_fm)V_control=0xed;
		else V_control=0x8d;
		V_divider1=(V_divider_temp>>8)&0x00ff;
		V_divider2=V_divider_temp&0x00ff;
		V_band=0x85;
	}
	if(V_sys_mode==0)
	{
		RF_temp=RF + IF0;
		V_divider_temp=RF_temp*20;
		V_divider1=(V_divider_temp>>8)&0x00ff;
		V_divider2=V_divider_temp&0x00ff;
		if(B_scan_tv||B_search_tv||B_scan_fm||B_search_fm)V_control=0xed;
		else V_control=0x8d;
		if((RF>=40) && (RF<=147))V_band=0x81;
		if((RF>147) && (RF<=435))V_band=0xa2;
		if(RF>435)V_band=0xe8;
	//	if(V_ch_option0!=0)V_band=V_band|0x04;	//??????????????????????????
	}
}


void CalculateData(void)
{
BYTE idata LPF, DIV1A, DIV1B_NUM1, DIV2A, DIV2B;
unsigned int idata NUM2, LO1;
float idata LO2;

//Calculation of LO1
//*** LO1 = int(RF + IF1)
	LO1 = (unsigned int)(RF + IF1);
//*** DIV1A=INT(LO1/48)-1
	DIV1A = (BYTE)( LO1/48 ) - 1;
//*** DIV1B+NUM1=MOD(LO1MHz/48)
	DIV1B_NUM1 = (BYTE)( LO1%48 );
//*** for RF <277MHz, set LPF=1
	if( RF <277 ) LPF=1;
	else LPF=0;
	
//*** Byte3=LPF*128+(DIV1B+NUM)
	V_lo1_div1 = LPF*128 + DIV1B_NUM1;
//*** Byte4= DIV1A
	V_lo1_div2 = DIV1A;
//Calculation of LO2
//*** LO2=LO1-RF-45.75
	LO2 = LO1 - RF - IF0;
//*** DIV2A=INT(LO2MHz/32)-1
	DIV2A = (BYTE)( LO2 / 32 ) - 1;
//*** DIV2B=MOD(INT(LO2/4),8)
	DIV2B = (BYTE)( (unsigned int)(LO2 / 4) % 8 );
//*** NUM2=INT(((LO2MHz-(DIV2A+1)*32-DIV2B*4)*1000)/(4000/4095))
	NUM2 = (unsigned int)( ((LO2-(DIV2A+1)*32-DIV2B*4)*1000)/(4000.0/4095) );
//*** Byte5
	V_lo2_div1 = (BYTE)(DIV2B<<5) + (BYTE)((NUM2&0x0F00)>>8);
//*** Byte6
	V_lo2_div2 = (BYTE)(NUM2&0x00FF);
//*** Byte7 = 64 + DIV2A
	V_lo2_div3 = 64 + DIV2A;
}


void Write_8byte(void)
{
	if(V_sys_mode==0)
	{
		CalculateData();
		Start_iic();
		Write_byte(C_tuner_add);
		Write_byte(C_start_add);
		Write_byte(V_lo1_div1);
		Write_byte(V_lo1_div2);
		Write_byte(V_lo2_div1);
		Write_byte(V_lo2_div2);
		Write_byte(V_lo2_div3);
		if(B_p2n)V_BW=0x37;
		else V_BW=0x35;
		Write_byte(V_BW);
		Stop_iic();
		V_scan_50ms=0;
	}
	if(V_sys_mode==2)
	{
		Start_iic();
		Write_byte(C_tuner_add);
		Write_byte(C_start_add);
		Write_byte(V_lo1_div1);
		Write_byte(V_lo1_div2);
		Write_byte(V_lo2_div1);
		Write_byte(V_lo2_div2);
		Write_byte(V_lo2_div3);
		if(B_p2n)V_BW=0x37;
		else V_BW=0x35;
		Write_byte(V_BW);
		Stop_iic();
		V_scan_50ms=0;
	}
}
uchar Read_aft(void)
{
	uchar   V_aft_temp;
	uchar   i;
	Start_iic();
	Write_byte(0xc0);
	Write_byte(0x09);
	Start_iic();
	Write_byte(0xc1);
	V_aft_temp=Read_byte_end();
	Stop_iic();
	for(i=0;i<4;i++)V_aft_temp=V_aft_temp>>1;
	V_aft_temp=V_aft_temp&0x07;
	return(V_aft_temp);
}
void Tuner_add(BYTE V_channel_temp)
{
	uchar  V_channel_add_temp;
	
	V_channel_slave=0xa2;
	V_channel_add=V_channel_temp*8;
	if(V_channel_temp>31)
	{
		V_channel_slave=0xa4;
		V_channel_add_temp=V_channel_temp-32;
		V_channel_add=V_channel_add_temp*8;
	}
	if(V_channel_temp>63)
	{
		V_channel_slave=0xa6;
		V_channel_add_temp=V_channel_temp-64;
		V_channel_add=V_channel_add_temp*8;
	}
	if(V_channel_temp>95)
	{
		V_channel_slave=0xa8;
		V_channel_add_temp=V_channel_temp-96;
		V_channel_add=V_channel_add_temp*8;
	}
}
void Tuner_fm_add(BYTE V_channel_fm_temp)
{
	uchar  V_channel_fm_add_temp;
	V_channel_slave=0xaa;
	V_channel_add=V_channel_fm_temp*8;
	
	if(V_channel_fm_temp>31)
	{
		V_channel_slave=0xac;
		V_channel_fm_add_temp=V_channel_fm_temp-32;
		V_channel_add=V_channel_fm_add_temp*8;
	}
	if(V_channel_fm_temp>63)
	{
		V_channel_slave=0xae;
		V_channel_fm_add_temp=V_channel_fm_temp-64;
		V_channel_add=V_channel_fm_add_temp*8;
	}
}

void F_to_Char(void)
{
uchar *px,i;
void  *pf;
	
	px=Eeprom;
	pf=&RF;
	for(i=0;i<4;i++)
	{
		*(px+i)=*((char *)pf+i);
	}
}
void Char_to_F(void)
{
uchar *px,i;
void  *pf;
	
	px=Eeprom;
	pf=&RF;
	for(i=0;i<4;i++)
	{
		*((char *)pf+i)=*(px+i);
	}
}

void Read_channel(void)
{
	if(V_sys_mode==0)
	{
		Start_iic();
		Write_byte(V_channel_slave);
		Write_byte(V_channel_add);
		Start_iic();
		Write_byte(V_channel_slave|0x01);
		Eeprom[0]=Read_byte();
		Eeprom[1]=Read_byte();
		Eeprom[2]=Read_byte();
		Eeprom[3]=Read_byte();
		Eeprom[4]=Read_byte();
		V_ch_option0=Read_byte();
		V_ch_option1=Read_byte();
		V_ch_option2=Read_byte_end();
		Stop_iic();
		Char_to_F();
		V_cnt_hand_fine=11;
		if( (V_ch_option0&0x7f)>5  )V_ch_option0=0x03;
	}
	if(V_sys_mode==2)
	{
		Start_iic();
		Write_byte(V_channel_slave);
		Write_byte(V_channel_add);
		Start_iic();
		Write_byte(V_channel_slave|0x01);
		V_lo1_div1=Read_byte();
		V_lo1_div2=Read_byte();
		V_lo2_div1=Read_byte();
		V_lo2_div2=Read_byte();
		V_lo2_div3=Read_byte();
		V_ch_option0=Read_byte();
		V_ch_option1=Read_byte();
		V_ch_option2=Read_byte_end();
		Stop_iic();
		V_cnt_hand_fine=11;
		V_cnt_fm=V_ch_option1;
		V_cnt_fm=(V_cnt_fm<<8)|V_ch_option2;
	}
}
void Save_channel(void)
{
	if(V_sys_mode==0)
	{
		EEWP=0;
		F_to_Char();
		Start_iic();
		Write_byte(V_channel_slave);
		Write_byte(V_channel_add);
		Write_byte(Eeprom[0]);
		Write_byte(Eeprom[1]);
		Write_byte(Eeprom[2]);
		Write_byte(Eeprom[3]);
		Write_byte(Eeprom[4]);
		Write_byte(V_ch_option0);
		Write_byte(V_ch_option1);
		Write_byte(V_ch_option2);
		Stop_iic();
	}
	if(V_sys_mode==2)
	{
		EEWP=0;
		Start_iic();
		Write_byte(V_channel_slave);
		Write_byte(V_channel_add);
		Write_byte(V_lo1_div1);
		Write_byte(V_lo1_div2);
		Write_byte(V_lo2_div1);
		Write_byte(V_lo2_div2);
		Write_byte(V_lo2_div3);
		
		V_ch_option1=V_cnt_fm>>8;
		V_ch_option2=V_cnt_fm&0x00ff;
		
		Write_byte(V_ch_option0);
		Write_byte(V_ch_option1);
		Write_byte(V_ch_option2);
		Stop_iic();
	}
}

uchar code FM_table[325][5]=
{
		{0x8a,0x1a,0x62,0xcd,0x64},
		{0x8a,0x1a,0x62,0x66,0x64},
		{0x8a,0x1a,0x62,0x00,0x64},
		{0x8a,0x1a,0x61,0x9a,0x64},
		{0x8a,0x1a,0x61,0x33,0x64},
		{0x8a,0x1a,0x60,0xcd,0x64},
		{0x8a,0x1a,0x60,0x66,0x64},
		{0x8a,0x1a,0x60,0x00,0x64},
		{0x8a,0x1a,0x4f,0x99,0x64},
		{0x8a,0x1a,0x4f,0x32,0x64},
		
		{0x8a,0x1a,0x4e,0xcc,0x64},
		{0x8a,0x1a,0x4e,0x66,0x64},
		{0x8a,0x1a,0x4d,0xff,0x64},
		{0x8a,0x1a,0x4d,0x99,0x64},
		{0x8a,0x1a,0x4d,0x32,0x64},
		{0x8a,0x1a,0x4c,0xcc,0x64},
		{0x8a,0x1a,0x4c,0x66,0x64},
		{0x8a,0x1a,0x4b,0xff,0x64},
		{0x8a,0x1a,0x4b,0x99,0x64},
		{0x8a,0x1a,0x4b,0x33,0x64},
		
		{0x8a,0x1a,0x4a,0xcc,0x64},
		{0x8a,0x1a,0x4a,0x66,0x64},
		{0x8a,0x1a,0x49,0xff,0x64},
		{0x8a,0x1a,0x49,0x99,0x64},
		{0x8a,0x1a,0x49,0x33,0x64},
		{0x8a,0x1a,0x48,0xcc,0x64},
		{0x8a,0x1a,0x48,0x66,0x64},
		{0x8a,0x1a,0x48,0x00,0x64},
		{0x8a,0x1a,0x47,0x99,0x64},
		{0x8a,0x1a,0x47,0x33,0x64},
		
		{0x8a,0x1a,0x46,0xcc,0x64},
		{0x8a,0x1a,0x46,0x66,0x64},
		{0x8a,0x1a,0x46,0x00,0x64},
		{0x8a,0x1a,0x45,0x99,0x64},
		{0x8a,0x1a,0x45,0x33,0x64},
		{0x8a,0x1a,0x44,0xcd,0x64},
		{0x8a,0x1a,0x44,0x66,0x64},
		{0x8a,0x1a,0x44,0x00,0x64},
		{0x8a,0x1a,0x43,0x99,0x64},
		{0x8a,0x1a,0x43,0x33,0x64},
		
		{0x8a,0x1a,0x42,0xcd,0x64},
		{0x8a,0x1a,0x42,0x66,0x64},
		{0x8a,0x1a,0x42,0x00,0x64},
		{0x8a,0x1a,0x41,0x9a,0x64},
		{0x8a,0x1a,0x41,0x33,0x64},
		{0x8a,0x1a,0x40,0xcd,0x64},
		{0x8a,0x1a,0x40,0x66,0x64},
		{0x8a,0x1a,0x40,0x00,0x64},
		{0x8a,0x1a,0x2f,0x99,0x64},
		{0x8a,0x1a,0x2f,0x32,0x64},
		
		{0x8a,0x1a,0x2e,0xcc,0x64},
		{0x8a,0x1a,0x2e,0x66,0x64},
		{0x8a,0x1a,0x2d,0xff,0x64},
		{0x8a,0x1a,0x2d,0x99,0x64},
		{0x8a,0x1a,0x2d,0x32,0x64},
		{0x8a,0x1a,0x2c,0xcc,0x64},
		{0x8a,0x1a,0x2c,0x66,0x64},
		{0x8a,0x1a,0x2b,0xff,0x64},
		{0x8a,0x1a,0x2b,0x99,0x64},
		{0x8a,0x1a,0x2b,0x33,0x64},
		
		{0x8a,0x1a,0x2a,0xcc,0x64},
		{0x8a,0x1a,0x2a,0x66,0x64},
		{0x8a,0x1a,0x29,0xff,0x64},
		{0x8a,0x1a,0x29,0x99,0x64},
		{0x8a,0x1a,0x29,0x33,0x64},
		{0x8a,0x1a,0x28,0xcc,0x64},
		{0x8a,0x1a,0x28,0x66,0x64},
		{0x8a,0x1a,0x28,0x00,0x64},
		{0x8a,0x1a,0x27,0x99,0x64},
		{0x8a,0x1a,0x27,0x33,0x64},
		
		{0x8a,0x1a,0x26,0xcc,0x64},
		{0x8a,0x1a,0x26,0x66,0x64},
		{0x8a,0x1a,0x26,0x00,0x64},
		{0x8a,0x1a,0x25,0x99,0x64},
		{0x8a,0x1a,0x25,0x33,0x64},
		{0x8a,0x1a,0x24,0xcd,0x64},
		{0x8a,0x1a,0x24,0x66,0x64},
		{0x8a,0x1a,0x24,0x00,0x64},
		{0x8a,0x1a,0x23,0x99,0x64},
		{0x8a,0x1a,0x23,0x33,0x64},
		
		{0x8a,0x1a,0x22,0xcd,0x64},
		{0x8a,0x1a,0x22,0x66,0x64},
		{0x8a,0x1a,0x22,0x00,0x64},
		{0x8a,0x1a,0x21,0x9a,0x64},
		{0x8a,0x1a,0x21,0x33,0x64},
		{0x8a,0x1a,0x20,0xcd,0x64},
		{0x8a,0x1a,0x20,0x66,0x64},
		{0x8a,0x1a,0x20,0x00,0x64},
		{0x8a,0x1a,0x0f,0x99,0x64},
		{0x8a,0x1a,0x0f,0x32,0x64},
		
		{0x8a,0x1a,0x0e,0xcc,0x64},
		{0x8a,0x1a,0x0e,0x66,0x64},
		{0x8a,0x1a,0x0d,0xff,0x64},
		{0x8a,0x1a,0x0d,0x99,0x64},
		{0x8a,0x1a,0x0d,0x32,0x64},
		{0x8a,0x1a,0x0c,0xcc,0x64},
		{0x8a,0x1a,0x0c,0x66,0x64},
		{0x8a,0x1a,0x0b,0xff,0x64},
		{0x8a,0x1a,0x0b,0x99,0x64},
		{0x8a,0x1a,0x0b,0x33,0x64},
		
		{0x8a,0x1a,0x0a,0xcc,0x64},

⌨️ 快捷键说明

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