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

📄 display.c

📁 汽车音响lcd显示 #include "pt6524.c" #include "pt6578.c"
💻 C
📖 第 1 页 / 共 2 页
字号:
			disp_string_E(thisBuff,strAm,DISP_AMPM,2);
		else
			//disp_string(thisBuff,"PM",DISP_AMPM,2);
			disp_string_E(thisBuff,strPm,DISP_AMPM,2);
	}
#if defined(PT6523) || defined(PT6524)
	BYTE i;
	for(i=0;i<4;i++)
		disp_char(thisBuff,DISP_HOUR+i,ASCII_NUM+dispData[i]);
#elif defined(PT6578)
		disp_char(thisBuff,DISP_HOUR,ASCII_NUM+dispData[0]);
		disp_char(thisBuff,DISP_HOUR+1,ASCII_NUM+dispData[1]);
		disp_char(thisBuff,DISP_HOUR+3,ASCII_NUM+dispData[2]);
		disp_char(thisBuff,DISP_HOUR+4,ASCII_NUM+dispData[3]);
#endif

#if defined(PT6523) || defined(PT6524)
	#ifdef LCD_888
		disp_set_bit(thisBuff,LCD_BIT_COL2,colonFlag);
	#else
		disp_set_bit(thisBuff,LCD_BIT_DOT,colonFlag);
	#endif
#elif defined(PT6578)
	if(colonFlag==0x01)
		disp_char(thisBuff,DISP_HOUR+2,':');
	else
		disp_char(thisBuff,DISP_HOUR+2,' ');
#endif
}

void disp_eq_value(BYTE * buff,BYTE eq)
{
	BYTE dispValue=0;
	
	if(eqParam[eq][0]<EQ_MID)
	{
		if(eq<SEL_BAL)
		{
			disp_char(buff,5,'-');	//显示'-'
		}else{
			if(eq==SEL_BAL)
			{
				//disp_string(buff,"L",5,1);
				disp_string_E(buff,strL,5,1);
			}else{
				//disp_string(buff,"R",5,1);
				disp_string_E(buff,strR,5,1);
			}
		}
		dispValue = EQ_MID-eqParam[eq][0];
		
	}
	if(eqParam[eq][0]>EQ_MID)
	{
		if(eq<SEL_BAL)
		{
			disp_char(buff,5,'+');		//显示'+'
		}else{
			if(eq==SEL_BAL)
			{
				//disp_string(buff,"R",5,1);
				disp_string_E(buff,strR,5,1);
			}else{
				//disp_string(buff,"F",5,1);
				disp_string_E(buff,strF,5,1);
			}
		}
		dispValue = eqParam[eq][0]-EQ_MID;
	}
	disp_char(buff,8,ASCII_NUM+dispValue);
}
void disp_st(BYTE flag)
{
	if(currentPower==_POWER_RADIO)
	{
		#if defined(LCD_392)
			disp_set_bit(dispBuff,LCD_BIT_ST,!flag);//MO
		#elif defined(LCD_393)
			disp_set_bit(dispBuff,LCD_BIT_ST,flag);//ST
		#endif
	}
}
void disp_setting(BYTE flag)
{
	if(flag<SEL_PTY)
	{
		//strcpy_E(dispStrBuff,*(selTitle+flag-1));
		//disp_string(tmpDispBuff,dispStrBuff,1,8);
		disp_string_E(tmpDispBuff,*(selTitle+flag-1),1,8);;
	}
	if(flag==SEL_VOL)						//音量
	{
		if(eqParam[SEL_VOL][0]>9)//判断十位是否为2位数//如果音量超过10,则显示10位
			disp_char(tmpDispBuff,DISP_VOL_TEN,ASCII_NUM+eqParam[SEL_VOL][0]/10);
		disp_char(tmpDispBuff,DISP_VOL_ONE,ASCII_NUM+eqParam[SEL_VOL][0]%10);			//显示个位
		dvd_send_cmd(eqParam[flag][2],eqParam[flag][0]);
#ifdef LCD_BIT_VOL
		disp_set_bit(tmpDispBuff,LCD_BIT_VOL,ON);
		disp_set_vol(tmpDispBuff,(currVolume+1)/4);
#endif
	}
	if((flag>SEL_VOL) && (flag<=SEL_FAD))//均衡
	{
		disp_eq_value(tmpDispBuff,flag);
		dvd_send_cmd(eqParam[flag][2],eqParam[flag][0]);
	}
	if(flag==SEL_LOUD)
	{
		disp_bool(audioParam&LOUD);
	}
	if(flag==SEL_EQ)
	{
		disp_audio_eq(currentEq);
	}
	if(flag==SEL_LOC)
	{
		disp_bool(radioParam&RA_LOC);
	}
#ifdef _SUPPORT_RDS
	if(flag==SEL_AF)
	{
		disp_bool(rdsAFEnable);
	}
#endif
#ifdef _SUPPORT_RDS
	if(flag==SEL_PTY)
	{
		if(knobParam&KNOB_INT)
		{
			//strcpy_E(dispStrBuff,*(ptyName+cur_pty));
			disp_string_E(tmpDispBuff,*(ptyName+cur_pty),1,8);
		}else{
			//strcpy_E(dispStrBuff,*(ptyName+nCurrentPty));
			disp_string_E(tmpDispBuff,*(ptyName+nCurrentPty),1,8);
		}
		//disp_string(tmpDispBuff,dispStrBuff,1,8);
	}
#endif
}
#ifdef LCD_888
void disp_set_vol(BYTE* thisBuff,BYTE value)
{
	BYTE i=0;
	while(i<=value)
	{
		disp_set_bit(thisBuff,pgm_read_byte(volLevelMap+i),ON);
		i++;
	}
	while(i<sizeof(volLevelMap))
	{
		disp_set_bit(thisBuff,pgm_read_byte(volLevelMap+i),OFF);
		i++;
	}
}
#endif
void disp_tunner_type(BYTE value)
{
	memset(tmpDispBuff,0,sizeof(tmpDispBuff));//clear disp buff
	if(value<=CET_JAPAN)
		disp_string_E(tmpDispBuff,(char *)pgm_read_word(TurnerList+value),1,7);
}
void disp_board(void)
{
//353/363开机点亮边框
#if defined(LCD_353) || defined(LCD_316)
		disp_set_bit(dispBuff,LCD_BIT_BORDER,ON); 
#ifdef LCD_BIT_EQ
		disp_set_bit(dispBuff,LCD_BIT_EQ,ON);
#endif
#ifdef LCD_BIT_RDS
		if(rdsEnable)
			disp_set_bit(dispBuff,LCD_BIT_RDS,ON);
#endif
//393
#elif defined(LCD_393)
		disp_set_bit(dispBuff,LCD_BIT_RDS,ON);
		disp_set_bit(dispBuff,LCD_BIT_EQ,ON);
#elif defined(LCD_392)
		disp_set_bit(dispBuff,LCD_BIT_V1,ON);
#elif defined(LCD_888)
		disp_set_bit(dispBuff,LCD_BIT_VOL,ON);
		if(rdsEnable)
			disp_set_bit(dispBuff,LCD_BIT_RDS,ON);
#endif
}

//显示Radio的状态和数据
//radioFlag 
void disp_radio(BYTE *thisBuff,BYTE band,UINT16 freq)  
{
	if(currentPower==_POWER_RADIO)
	{
		disp_clr_led(thisBuff);
		if(band<=RADIO_TYPE_FM3)
		{
#if DISP_MAX_CHAR<11
			//disp_string(thisBuff,"F",1,1);
			disp_string_E(thisBuff,strFm,1,1);
			disp_char(thisBuff,2,ASCII_NUM+band);
#elif defined(LCD_316)
			//disp_string(thisBuff,"F",1,1);
			disp_string_E(thisBuff,strFm,1,1);
			disp_char(thisBuff,2,ASCII_NUM+band);
#else
			//disp_string(thisBuff,"FM",1,2);
			disp_string_E(thisBuff,strFm,1,2);
			disp_char(thisBuff,3,ASCII_NUM+band);
#endif
			if(freq<freqParam[regionIndex][FM_FREQ_START])
				freq=freqParam[regionIndex][FM_FREQ_START];
			disp_FM_data(thisBuff,freq);				//显示fm的频率值
#if defined(PT6523) || defined(PT6524)
			disp_set_bit(thisBuff,LCD_BIT_DOT,ON);		//显示小数点
#endif
		}else{
			//disp_string(thisBuff,"AM",1,2);
			disp_string_E(thisBuff,strAm,1,2);
			disp_char(thisBuff,3,ASCII_NUM+band-RADIO_TYPE_FM3);
			disp_AM_data(thisBuff,freq);			//显示AM的频率
		}
	}
}

void disp_volume(BYTE value)
{
	BYTE i=0;
	while(value>=adcVolumeTable[i])
	{
		disp_set_bit(dispBuff,pgm_read_byte(volMapLcd+i),ON);//将小于该值得点亮
		i++;
	}
	for(;i<sizeof(volMapLcd);i++)					//将余下的清除
	{
		disp_set_bit(dispBuff,pgm_read_byte(volMapLcd+i),OFF);
	}
}

void display(void)
{
	display_buff(dispBuff);	
}
/***********************************dispDiscNumber*******************************************/
void disp_disc_track(UINT16 discNumber)
{
#ifdef COMM_VER3
	if(!trackInputing && !bId3Mode)
#endif
	{
		disp_char(dispBuff,DISP_DISC_TRACK+1,ASCII_NUM+discNumber/10);		//discNumber的十位
		disp_char(dispBuff,DISP_DISC_TRACK+2,ASCII_NUM+discNumber%10);		//个位
	}
#ifdef LCD_BIT_DP2
	if(!bId3Mode)
		disp_set_bit(dispBuff,LCD_BIT_DP2,ON);
#endif
}

#ifdef DISP_DISC_RUN_LOGO
void disp_disc_out_tray(void)
{
	disp_set_bit(dispBuff,LCD_BIT_RUN1,OFF);
	disp_set_bit(dispBuff,LCD_BIT_RUN2,OFF);
	disp_set_bit(dispBuff,LCD_BIT_RUN3,OFF);
	disp_set_bit(dispBuff,LCD_BIT_RUN4,OFF);
}
void disp_disc_in_tray(void)
{
	disp_set_bit(dispBuff,LCD_BIT_RUN1,ON);
	disp_set_bit(dispBuff,LCD_BIT_RUN2,ON);
	disp_set_bit(dispBuff,LCD_BIT_RUN3,ON);
	disp_set_bit(dispBuff,LCD_BIT_RUN4,ON);
}
#endif
void disp_clr_cd_flag(void)
{
#if defined(LCD_BIT_INT)
	disp_set_bit(dispBuff,LCD_BIT_INT,OFF);
#endif
#if defined(LCD_BIT_RDM)
	disp_set_bit(dispBuff,LCD_BIT_RDM,OFF);
#endif
#if defined(LCD_BIT_RPT)
	disp_set_bit(dispBuff,LCD_BIT_RPT,OFF);
#endif
#if defined(LCD_BIT_PROG)
	disp_set_bit(dispBuff,LCD_BIT_PROG,OFF);
#endif
#if defined(LCD_BIT_ESP)
	disp_set_bit(dispBuff,LCD_BIT_ESP,OFF);
#endif
#ifdef LCD_BIT_DISC_TYPE
	disp_set_bit(dispBuff,LCD_BIT_DISC_TYPE,OFF);
#endif
#ifdef LCD_BIT_PLAY_BOARD
	disp_set_bit(dispBuff,LCD_BIT_PLAY_BOARD,OFF);
#endif
#ifdef LCD_BIT_DP2
	disp_set_bit(dispBuff,LCD_BIT_DP2,OFF);
#endif
#ifdef LCD_BIT_COL1
	disp_set_bit(dispBuff,LCD_BIT_COL1,OFF);
#endif
#ifdef LCD_BIT_COL2
	disp_set_bit(dispBuff,LCD_BIT_COL2,OFF);
#endif
	disp_clr_disctype();
}

void disp_clr_disctype(void)
{
#ifndef DISP_DISC_TYPE
	disp_set_bit(dispBuff,LCD_BIT_DVD,OFF);
	disp_set_bit(dispBuff,LCD_BIT_VCD,OFF);
	disp_set_bit(dispBuff,LCD_BIT_CD,OFF);
	disp_set_bit(dispBuff,LCD_BIT_MP3,OFF);
#else
	disp_string(dispBuff,"   ",DISP_DISC_TYPE,3);
#endif
#ifdef LCD_BIT_MP4
	disp_set_bit(dispBuff,LCD_BIT_MP4,OFF);
#endif
#ifdef LCD_BIT_WMA
	disp_set_bit(dispBuff,LCD_BIT_WMA,OFF);
#endif
}
void disp_clr_radio(void)
{
#ifdef LCD_BIT_ST
	disp_set_bit(dispBuff,LCD_BIT_ST,OFF);
#endif
#ifdef LCD_BIT_STEREO
	disp_set_bit(dispBuff,LCD_BIT_STEREO,OFF);	//两个圈
#endif
#ifdef LCD_BIT_ANT
	disp_set_bit(dispBuff,LCD_BIT_ANT,OFF);//两个圈
#endif
#ifdef LCD_BIT_ANT
	disp_set_bit(dispBuff,LCD_BIT_ANT,OFF);
#endif
#ifdef LCD_BIT_ANT1
	disp_set_bit(dispBuff,LCD_BIT_ANT1,OFF);
#endif
#ifdef LCD_BIT_ANT2
	disp_set_bit(dispBuff,LCD_BIT_ANT2,OFF);
#endif
#ifdef LCD_BIT_ANT3
	disp_set_bit(dispBuff,LCD_BIT_ANT3,OFF);
#endif
#ifdef LCD_BIT_ANT4
	disp_set_bit(dispBuff,LCD_BIT_ANT4,OFF);
#endif
#ifdef LCD_BIT_LOC
	disp_set_bit(dispBuff,LCD_BIT_LOC,OFF);
#endif
#ifdef LCD_BIT_CH
#ifndef LCD_316
	disp_set_bit(dispBuff,LCD_BIT_CH,OFF);
#endif
#endif
}

void disp_disc_hour(BYTE value)
{
#if defined(VCD_563)
	return;
#endif
	if(!bId3Mode)
	{
#if defined(PT6523) || defined(PT6524)
	if(!bCDProgON)
	{
		if(value)
			disp_char(dispBuff,DISP_DISC_TRACK+3,ASCII_NUM+(value&0x0F));
		else
			disp_char(dispBuff,DISP_DISC_TRACK+3,'-');
	}
#elif defined(PT6578)
	disp_char(dispBuff,DISP_DISC_TRACK+4,ASCII_NUM+(value&0x0F));
	disp_char(dispBuff,DISP_DISC_TRACK+5,':');
#endif
	}
}
void disp_dot(void)
{
#if defined(PT6523) || defined(PT6524)
	#ifdef LCD_BIT_COL2
	disp_set_bit(dispBuff,LCD_BIT_COL2,ON);
	#else
	disp_set_bit(dispBuff,LCD_BIT_DOT,ON);		//冒号长亮
	#endif

	#ifdef LCD_BIT_COL1
	disp_set_bit(dispBuff,LCD_BIT_COL1,ON);		//冒号1长亮
	#endif
#elif defined(PT6578)
	disp_char(dispBuff,DISP_HOUR+2,':');
#endif
}
void disp_clr_dot(void)
{
#if defined(PT6523) || defined(PT6524)
	#ifdef LCD_BIT_COL2
	disp_set_bit(dispBuff,LCD_BIT_COL2,OFF);
	#else
	disp_set_bit(dispBuff,LCD_BIT_DOT,OFF);		//冒号长亮
	#endif

	#ifdef LCD_BIT_COL1
	disp_set_bit(dispBuff,LCD_BIT_COL1,OFF);		//冒号1长亮
	#endif
#elif defined(PT6578)
	//disp_char(dispBuff,DISP_HOUR+2,' ');
#endif
}
void disp_disc_time(void)
{
	disp_disc_second(cdTimeInfo[_SECOND]);
	disp_disc_minute(cdTimeInfo[_MINUTE]);
	disp_disc_hour(cdTimeInfo[_HOUR]);
	disp_disc_track(currentTrack);
	disp_char(dispBuff,DISP_DISC_TRACK,ASCII_NUM+currentTrack100);
}
void disp_disc_minute(BYTE value)
{
	if(!bId3Mode)
	{
#if defined(PT6523) || defined(PT6524)
#if defined(ALI5673S)||defined(ALI5672)
	disp_char(dispBuff,DISC_TIME_M_10,ASCII_NUM+(value/10));
	disp_char(dispBuff,DISC_TIME_M_1,ASCII_NUM+(value%10));
#else
	disp_char(dispBuff,DISC_TIME_M_10,ASCII_NUM+(value>>4));
	disp_char(dispBuff,DISC_TIME_M_1,ASCII_NUM+(value&0x0F));
#endif
	disp_dot();
#elif defined(PT6578)
#if defined(ALI5673S)||defined(ALI5672)
	disp_char(dispBuff,DISC_TIME_M_10,ASCII_NUM+(value/10));
	disp_char(dispBuff,DISC_TIME_M_1,ASCII_NUM+(value%10));
#else
	disp_char(dispBuff,DISC_TIME_M_10,ASCII_NUM+(value>>4));
	disp_char(dispBuff,DISC_TIME_M_1,ASCII_NUM+(value&0x0F));
#endif
	disp_char(dispBuff,DISC_TIME_M_1+1,':');		//冒号长亮
	disp_disc_hour(cdTimeInfo[_HOUR]);
#endif
	}

}
void disp_disc_second(BYTE value)
{
	if(!bId3Mode)
	{
#if defined(ALI5673S)||defined(ALI5672)
		disp_char(dispBuff,DISC_TIME_S_10,ASCII_NUM+(value/10));
		disp_char(dispBuff,DISC_TIME_S_1,ASCII_NUM+(value%10));
		disp_char(dispBuff,12,' ');   //清掉'.'
#else
		disp_char(dispBuff,DISC_TIME_S_10,ASCII_NUM+(value>>4));
		disp_char(dispBuff,DISC_TIME_S_1,ASCII_NUM+(value&0x0F));
#endif
	}
}


//显示刷新
void disp_thread(void)
{
	//if(refresh==1)
	if(event_flag&EVENT_DISPLAY)
	{
		switch(currentMode)
		{
		//case _MODE_IDLE:
		case _MODE_TIME:
			disp_sys_time();
			break;
		case _MODE_PE:
			if(selIndex==SEL_TIME)
			{
				disp_sys_time();
			}else{
				display_buff(tmpDispBuff);
			}
			break;
		case _MODE_RADIO:
#ifndef ST_SMETER
			if(!bRadioSeeking)
				radio_detect_sd();
#else
			if(adcValue[AD_SMETER]>ADC_SMETER_ST)
				disp_set_bit(dispBuff,LCD_BIT_STEREO,ON);
			else
				disp_set_bit(dispBuff,LCD_BIT_STEREO,OFF);
#endif
		case _MODE_DISC:
		case _MODE_AUX:
			//if(!bRadioSeeking||(currentMode>_MODE_RADIO))//扫描时不显示音量
			{
				if(eqParam[SEL_VOL][0])
					disp_volume((adcValue[AD_LCH]>>2)&0xFF);	//丢弃最低2位
				else
					disp_volume(0);
			}
#if 1
			if(TenPlusTimeout==1)
			{
				TenPlusTimeout--;
				if(currentPower==_POWER_DISC)
				{
				disp_disc_track(currentTrack);
				if(currentTrack100)
					disp_char(dispBuff,DISP_DISC_TRACK,ASCII_NUM+currentTrack100);
				else
					disp_char(dispBuff,DISP_DISC_TRACK,' ');
				}
			}
#endif
			if(dvdFlagTimeout==0)	//如果没有显示其他信息
			{
				display();
			}else
				display_buff(tmpDispBuff);
			break;
		case _MODE_MUTE:
			if(halfSecond&0x01)
			{
				//disp_string(tmpDispBuff,"MUTE",DISP_4CHAR_START,sizeof("MUTE"));
				disp_string_E(tmpDispBuff,strMute,DISP_4CHAR_START,4);
			}else{
				memset(tmpDispBuff,0,sizeof(tmpDispBuff)); 
			}
			display_buff(tmpDispBuff);
			break;
		case _MODE_PAUSE:
			if(halfSecond&0x01)
			{
				//disp_string(tmpDispBuff,"PAUSE",DISP_5CHAR_START,5);
				disp_string_E(tmpDispBuff,strPause,DISP_5CHAR_START,5);
			}else{
				memset(tmpDispBuff,0,sizeof(tmpDispBuff)); 
			}
		case _MODE_STOP:
			display_buff(tmpDispBuff);
			break;
		case _MODE_OFF:
			if(bit_is_set(PIN_ACC_IN,ACC_IN));
			{
				memset(tmpDispBuff,0,sizeof(tmpDispBuff));
				display_buff(tmpDispBuff);
			}
			break;
		}
		//refresh=0;
		event_flag &= ~EVENT_DISPLAY;
#ifndef MECH_VIA_DSA
		if(currentPower==_POWER_DISC)
			dvd_send_buff();
#endif

	}
}

⌨️ 快捷键说明

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