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

📄 main.c

📁 一个DVD组合机的MCU代码,FM,机芯出入仓,功放的控制及DVD数据通过通信来访问.
💻 C
📖 第 1 页 / 共 2 页
字号:
 */
void InitAutoSearchCountKey(void)
{
	gRadioAutoSearchCountKey=1;
	gboolAutoShow=0;
}


/**
 *@void  SubAutoSearchCountKey(void)
 *@update 2002/9/2
 */
void  SubAutoSearchCountKey(void)
{
	if(gRadioAutoSearchCountKey) gRadioAutoSearchCountKey--;
}


/**
 *@void ShowFmFrequency(void)
 *@update 2002/9/9
 *@(1) NORMAL
 */
void ShowFmFrequency(void)
{
	BYTE ShowBuf[6],Dot;
	WORD Frequency;

	Frequency=GetRadioFrequency();
	if(Frequency>FM_END_FREQUENCY) Frequency=FM_BEGIN_FREQUENCY;
	else if(Frequency<FM_BEGIN_FREQUENCY) Frequency=FM_END_FREQUENCY;
	else PushFmFrequency();

	Frequency>>=3;
	Frequency&=0X0fff;
	Frequency-=108;
	Dot=Frequency%10;
	Frequency/=10;

	WordToStr(ShowBuf,Frequency);
	TextOut(0,ShowBuf);

	ShowIcon(ICON_DP_7G);

	ShowBuf[0]=Dot+0x30;
	ShowBuf[1]=0;
	TextOut(5,ShowBuf);

}


/**
 *@void ShowFmValue(void)
 *@update 2002/9/9
 *@(1) NORMAL
 */
void ShowFmValue(void)
{
	BYTE ShowBuf[6],Dot;
	WORD Frequency;

	Frequency=GetRadioCurValue();
	if(Frequency>FM_END_FREQUENCY) Frequency=FM_BEGIN_FREQUENCY;
	else if(Frequency<FM_BEGIN_FREQUENCY) Frequency=FM_END_FREQUENCY;
	else PushFmFrequency();

	Frequency>>=3;
	Frequency&=0X0fff;
	Frequency-=108;
	Dot=Frequency%10;
	Frequency/=10;

	WordToStr(ShowBuf,Frequency);
	TextOut(0,ShowBuf);

	ShowIcon(ICON_DP_7G);

	ShowBuf[0]=Dot+0x30;
	ShowBuf[1]=0;
	TextOut(5,ShowBuf);

}


/**
 *@void ShowSaveLoadNumber(void)
 *@update 2002/9/2
 */
void ShowSaveLoadNumber(void)
{
	TextOut(0,kNumber[gRadioCurAddr]);
}

/**
 *@void FmSaveLoadShow(void)
 *@update 2002/9/2
 *@(2) SAVE LOAD
 */
void FmSaveLoadShow(void)
{
	ShowFmFrequency();
	ShowSaveLoadNumber();
}


/**
 *@void FmLoadShow(void)
 *@update 2002/9/29
 */
BYTE HaveBoundFrequency(void);
void FmLoadShow(void)
{
	if(HaveBoundFrequency()) ShowFmFrequency();
	else {
		ClrDigitRang();
		HideIcon(ICON_DP_7G);
	}
	ShowSaveLoadNumber();
}


/**
 *@void FmVioceShow(void)
 *@update 2002/9/2
 *@(3) VOICE
 */
extern BYTE gCurVolume;
void VoiceShow(void)
{
	BYTE Buf[8];

	ClrDigitRang();
	HideIcon(ICON_DP_7G);

	WordToStr(&Buf[1],MAX_ATTEN-gCurVolume);
	Buf[0]='V';
	Buf[1]='O';
	Buf[2]='L';
	TextOut(0,Buf);
}

void VoiceReShow(void)
{
	BYTE Buf[8];
	WordToStr(Buf,MAX_ATTEN-gCurVolume);
	TextOut(3,&Buf[2]);
}

/**
 *@void QuitRadioSaveMod(void)
 *@update 2002/9/2
 */
void QuitRadioSaveMod(void)
{
	if(gRadioMode==RADIO_SAVE) HideIcon(ICON_MEM);
}


/**
 *@void SaveIconProc(void)
 *@update 2002/9/2
 */
void SaveIconProc(void)
{
	IsTimeOut(INDEX_SAVE_KEY);
	if(gRadioMode==RADIO_SAVE){
		if(IsTimeOut(INDEX_SAVE_ICON)){
			if(gboolSaveIcon)ShowIcon(ICON_MEM);
			else HideIcon(ICON_MEM);
			gboolSaveIcon=~gboolSaveIcon;
			InitTime(INDEX_SAVE_ICON,255);
		}
	}
}


/**
 *@void ShowSaveNumber(BYTE aBand)
 *@update 2002/11/5
 */
void ShowSaveNumber(BYTE aBand)
{
	BYTE n;
	n=IsSaveFrequency(aBand);
	if(n!=0xff)TextOut(0,kNumber[n]);
}


/**
 *@void InitRadioFm(void)
 *@update 2002/9/2
 */
void InitRadioFm(void)
{
	/*(1) show */
	InitVfd();
	ShowIcon(ICON_MHZ);
	ShowIcon(ICON_FM);
	ShowIcon(ICON_TUND);

	/*(2) power process */
	OpenRadioPower();
	DelayMs(255);

	/*(3) init */
	gboolRadioFmInit=INIT;
	gRadioCurAddr=0;
	gRadioMode=RADIO_NORMAL;
	gCdRoundBool=0;
	gboolAutoShow=0;
	gRadioCurAddr=gFmMemAddr;
	gBoolCanOpenBox=1;
	gAutoSearchFlag=0;

	/* (3) process */
	InitAutoSearchCountKey();


	/* (4)first process */
	OpenVolume();
	LocalRadioFm();
	ShowFmFrequency();
	ShowSaveNumber(BAND_FM);

	/* (5) slect sound */
	SelectRadioSound();

	/* (6) clear rmt key*/
	ClrRmtKey();

	/* (7) MUTE PROC*/
	gBoolInitMute=1;
	gCloseMuteWaitTm=RADIO_MUTE_TM;
}



/**
 *@void RadioFmProcess(void)
 *@update 2002/9/2
 */
void QuitRadioFm(void)
{
	/*(1) mute */
	EnableMute();
	DelayMs(100);

	/*(2) init*/
	gboolRadioFmInit=UNINIT;
	gFmMemAddr=gRadioCurAddr;

	/*(3) power process*/
	CloseRadioPower();

	/*(4) clear key*/
	ClrRmtKey();
}

/**
 *@void RadioFmProcess(void)
 *@update 2002/9/2
 */
void RadioFmProcess(void)
{
	if(gboolRadioFmInit==UNINIT)	InitRadioFm();
	else {
		RadioFmKeyProc();
		if(IsPressStandBy()){
			gboolWorkOrStandby=RUN_STANDBY;
			QuitRadioFm();
		}
	}
}

/**
 *@void RadioFmKeyProc(void)
 *@update 2002/9/2
 */
void WriteSt(BYTE n);
BYTE Lsb_TurnEnd(void);
void RadioFmKeyProc(void)
{
	BYTE KeyCode,HaveKey,Turn;

	HaveKey=VfdKbHit();
	if(HaveKey) KeyCode=VfdGetKey();
	else {
		HaveKey=RemoteKbHit();
		if(HaveKey) KeyCode=RemoteGetKey();
	}

	if(HaveKey){
		InitTime(INDEX_VOICE,3);

		if(( gboolRmtContinueKey==1) && ((KeyCode==RADIO_SEARCH_UP_KEY)||(KeyCode==RADIO_SEARCH_DOWN_KEY)) ){
			if(KeyCode==RADIO_SEARCH_UP_KEY) gboolAutoSearchUp=1;
			else gboolAutoSearchUp=0;
			if(gRadioKeyToAutoTmCount==0 && gAutoSearchFlag==1){
				gAutoSearchFlag=2;
				InitTime(INDEX_AUTO_SEARCH,255);
			}
			QuitRadioSaveMod();
			return;
		}
		else gAutoSearchFlag=0;


		switch(KeyCode){
			/*-(A)-------------------*/
			case RADIO_STANDBY_EKY:
				gboolWorkOrStandby=RUN_STANDBY;
				QuitRadioFm();
				break;
			case RADIO_DVD_RADIO_KEY:
				gboolDvdOrRadio=WORK_DVD;
				QuitRadioFm();
				break;
			case RADIO_AM_FM_KEY:
				gboolRadioAmOrFm=RADIO_AM;
				QuitRadioFm();
				break;

			/*-(B)-------------------*/
			case RADIO_OPENCLOSE_KEY:
				KeyOpnClsManagerBox();
				break;
			case RADIO_MONO_STEREO_KEY:
				if(gboolRmtContinueKey==0) RadioMonoStereo();
				break;
			case 	RADIO_MUTE_KEY:
				if(gBoolInitMute==1)break;
				MuteProc();
				if(gboolMtln) Lsb_PopVfdBuf();
				else {
						if(gRadioMode==RADIO_VOICE) gRadioMode=gOldRadioMode;
						else Lsb_PushVfdBuf();
				}
				break;
			case RADIO_PLAY_KEY:
				CloseBox();
				break;

			/*-(C)-------------------*/
			/*-(1)--------------*/
			case RADIO_VOL_UP_KEY:
				if(gboolMtln){
					AddVolume();
					goto _fm_vol;
				}
				break;
			case RADIO_VOL_DOWN_KEY:
				if(gboolMtln){
					SubVolume();
					_fm_vol:
					QuitRadioSaveMod();
					if(gRadioMode!=RADIO_VOICE){
						Lsb_PushVfdBuf();
						gOldRadioMode=gRadioMode;
						gRadioMode=RADIO_VOICE;
						VoiceShow();
					}
					else VoiceReShow();
				}
				break;

			/*-(2)------------------*/
			case RADIO_SEARCH_UP_KEY:   /*AutoUpSearch(BAND_FM);*/
				RadioUpSearch(BAND_FM);
				goto _FmFreq;
			case RADIO_SEARCH_DOWN_KEY:
				RadioDownSearch(BAND_FM);
				_FmFreq:
				ShowFmFrequency();
				QuitRadioSaveMod();
				ClrRadioCLK();
				gRadioKeyToAutoTmCount=RADIO_ATOTSEARCH_WAIT2S;
				gAutoSearchFlag=1;
				gRadioMode=RADIO_NORMAL;
				break;

			/*-(3)-----------------*/
			case RADIO_LOAD_DOWN_KEY:
				if(gRadioCurAddr)	gRadioCurAddr--;
				else gRadioCurAddr=BAND_FM_TOTAL-1;
				goto _FmRad;
			case RADIO_LOAD_UP_KEY:
				if(gRadioCurAddr<BAND_FM_TOTAL-1)	gRadioCurAddr++;
				else gRadioCurAddr=0;
				_FmRad:
				LoadRadioFromFlash(BAND_FM_BEGIN_ADDR+gRadioCurAddr);
				FmLoadShow();
				QuitRadioSaveMod();
				gRadioMode=RADIO_NORMAL;
				break;

			/*-(4)-------------*/
			case	RADIO_SAVE_KEY:
				if(IsTimeOut(INDEX_SAVE_KEY)){  /* delay time */
					InitTime(INDEX_SAVE_KEY,255);
					ClrRmtKey();
					if(gRadioMode==RADIO_SAVE) goto _fm_save;
					gRadioMode=RADIO_SAVE;
					ShowSaveNumber(BAND_FM);
				}
				break;
			case RADIO_ENTER_KEY:
				if(gRadioMode==RADIO_SAVE&&gRadioCurAddr<BAND_FM_TOTAL){
					SaveRadioToFlash(BAND_FM_BEGIN_ADDR+gRadioCurAddr);
				}
				_fm_save:
				/*ShowFmFrequency();*/
				QuitRadioSaveMod();
				gRadioMode=RADIO_NORMAL;
				break;
			/*-(D)---------------------*/
			default:
				if(gRadioMode==RADIO_SAVE){
					if(KeyCode>=KEY_1 && KeyCode<=KEY_9) gRadioCurAddr=KeyCode-'1';
					else if(KeyCode==RADIO_0_10_KEY) gRadioCurAddr=9;
					else break;
					FmSaveLoadShow();
				}
				break;
		}
	}
	else{
		if(gRadioMode==RADIO_VOICE){
			if(IsTimeOut(INDEX_VOICE)){
				Lsb_PopVfdBuf();
				gRadioMode=gOldRadioMode;
			}
		}
	}

	/*-(2)wait show process ----------------------------------------------*/
	if(gAutoSearchFlag==2){
		if(IsTimeOut(INDEX_AUTO_SEARCH)){
			if(gRadioStMo==0 && gRadioCLK==1) {
				gAutoSearchFlag=3;
				ClrRadioCLK();
			}
			else{
				if(gboolAutoSearchUp) RadioUpSearch(BAND_FM);
				else RadioDownSearch(BAND_FM);
				ShowFmValue();
				InitTime(INDEX_AUTO_SEARCH,255);
			}
		}
	}

	/*- ----------------------------------------------*/
}

#include "..\src\Am.c"



⌨️ 快捷键说明

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