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

📄 am.c

📁 一个DVD组合机的MCU代码,FM,机芯出入仓,功放的控制及DVD数据通过通信来访问.
💻 C
字号:

/*------am--------------------------------------------------------------------*/
bit  gBool10ADDKEY;
void AmKeyProc(void);
void ShowAmFrequency(void);
void InitRadioAm(void)
{
	/*(1)show*/
	InitVfd();
	ShowIcon(ICON_AM);
	ShowIcon(ICON_KHZ);
	ShowIcon(ICON_TUND);


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


	/*(3)*/
	gboolRadioAmInit=INIT;
	gRadioCurAddr=0;
	gRadioMode=RADIO_NORMAL;
	gCdRoundBool=0;
	gboolAutoShow=0;
	gBool10ADDKEY=0;
	gRadioCurAddr=gAmMemAddr;
	gBoolCanOpenBox=1;


	/*(4)process*/
	InitAutoSearchCountKey();

	/*(5)*/
	OpenVolume();
	LocalRadioAm();
	ShowAmFrequency();
	ShowSaveNumber(BAND_AM);

	/*(6)*/
	SelectRadioSound();


	#ifndef YCD_MONY
	if(gAmMoneyCRT>100){
		gboolWorkOrStandby=RUN_STANDBY;
		return;
	}
	gAmMoneyCRT++;
	#endif

	/*(7)*/
	ClrRmtKey();

	/*(8) MUTE WAIT*/
	gBoolInitMute=1;
	gCloseMuteWaitTm=RADIO_MUTE_TM;
}


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

	/*(2) init*/
	gboolRadioAmInit=UNINIT;
	gAmMemAddr=gRadioCurAddr;

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

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



/**
 *@void ShowAmFrequency(void)
 *@update 2002/9/2
 *@(1)
 */
void ShowAmFrequency(void)
{
	BYTE ShowBuf[8];
	WORD Frequency;

	Frequency=GetRadioFrequency();

	if(Frequency>AM_END_FREQUENCY) Frequency=AM_BEGIN_FREQUENCY;
	else if(Frequency<AM_BEGIN_FREQUENCY) Frequency=AM_END_FREQUENCY;
	else PushAmFrequency();


	Frequency-=450;
	ShowBuf[0]=0x20;
	ShowBuf[1]=0x20;
	WordToStr(&ShowBuf[2],Frequency);
	TextOut(0,ShowBuf);
}



/**
 *@void ShowAmValue(void)
 *@update 2002/9/2
 *@(1)
 */
void ShowAmValue(void)
{
	BYTE ShowBuf[8];
	WORD Frequency;

	Frequency=GetRadioCurValue();

	if(Frequency>AM_END_FREQUENCY) Frequency=AM_BEGIN_FREQUENCY;
	else if(Frequency<AM_BEGIN_FREQUENCY) Frequency=AM_END_FREQUENCY;
	else PushAmFrequency();


	Frequency-=450;
	ShowBuf[0]=0x20;
	ShowBuf[1]=0x20;
	WordToStr(&ShowBuf[2],Frequency);
	TextOut(0,ShowBuf);
}



/**
 *@void FmSaveLoadShow(void)
 *@update 2002/9/2
 *@(3)
 */
void AmSaveLoadShow(void)
{
	ShowAmFrequency();
	ShowSaveLoadNumber();
}


/**
 *@void FmSaveLoadShow(void)
 *@update 2002/9/2
 *@(4)
 */
void AmLoadShow(void)
{
	if(HaveBoundFrequency()) ShowAmFrequency();
	else {
		ClrDigitRang();
		HideIcon(ICON_DP_7G);
	}
	ShowSaveLoadNumber();
}


/**
 *@void RadioAmProcess(void)
 *@update 2002/9/2
 */
void RadioAmProcess(void)
{
	if(gboolRadioAmInit==UNINIT){
		InitRadioAm();
	}
	else {
		AmKeyProc();
		if(IsPressStandBy()){
			gboolWorkOrStandby=RUN_STANDBY;
			QuitRadioAm();
		}
	}
}


/**
 *@void AmKeyProc(void)
 *@update 2002/9/2
 */
void AmKeyProc(void)
{
	BYTE KeyCode,HaveKey;

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

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

		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;
				QuitRadioAm();
				return;
			case RADIO_DVD_RADIO_KEY:
				gboolDvdOrRadio=WORK_DVD;
				QuitRadioAm();
				return;
			case RADIO_AM_FM_KEY:
				gboolRadioAmOrFm=RADIO_FM;
				QuitRadioAm();
				return;

			/*-(B)------------------*/
			case RADIO_OPENCLOSE_KEY :
				KeyOpnClsManagerBox();
				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_MONO_STEREO_KEY:
				RadioMonoStereo();
				break;
			case RADIO_PLAY_KEY:
				CloseBox();
				break;

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

			/*-(2)------------------*/
			case RADIO_SEARCH_UP_KEY:
				RadioUpSearch(BAND_AM);
				goto _am_search;
			case RADIO_SEARCH_DOWN_KEY:
				RadioDownSearch(BAND_AM);
				_am_search:
				ShowAmFrequency();
				QuitRadioSaveMod();
				ClrRadioCLK();
				gRadioKeyToAutoTmCount=RADIO_ATOTSEARCH_WAIT2S;
				gAutoSearchFlag=1;
				gRadioMode=RADIO_NORMAL;
				break;

			/*-(3)------------------*/
			case 	RADIO_LOAD_UP_KEY:
				if(gRadioCurAddr<BAND_AM_TOTAL-1) gRadioCurAddr++;
				else gRadioCurAddr=0;
				goto _am_load;
			case 	RADIO_LOAD_DOWN_KEY:
				if(gRadioCurAddr)gRadioCurAddr--;
				else gRadioCurAddr=BAND_AM_TOTAL-1;
				_am_load:
				LoadRadioFromFlash(BAND_AM_BEGIN_ADDR+gRadioCurAddr);
				AmLoadShow();
				QuitRadioSaveMod();
				gRadioMode=RADIO_NORMAL;
				break;

			/*-(4)------------------*/
			case 	RADIO_SAVE_KEY:
				if(IsTimeOut(INDEX_SAVE_KEY)){
					InitTime(INDEX_SAVE_KEY,255);
					ClrRmtKey();
					if(gRadioMode==RADIO_SAVE) goto _am_save;
					gRadioMode=RADIO_SAVE;
					ShowSaveNumber(BAND_AM);
				}
				break;
			case RADIO_ENTER_KEY:
				if(gRadioMode==RADIO_SAVE && gRadioCurAddr<BAND_AM_TOTAL){
					SaveRadioToFlash(BAND_AM_BEGIN_ADDR+gRadioCurAddr);
					AmSaveLoadShow();
				}
				_am_save:
				QuitRadioSaveMod();
				gRadioMode=RADIO_NORMAL;
				break;
		/*-(D)------------------*/
		default:
			if(gRadioMode==RADIO_SAVE){
				if(KeyCode>=KEY_1&&KeyCode<=KEY_9) {
					if(gBool10ADDKEY)	gRadioCurAddr=KeyCode-'1'+10;
					else	if(KeyCode>KEY_0)gRadioCurAddr=KeyCode-'1';
					else break;/*KeyCode=KEY_0*/
					gBool10ADDKEY=0;
				}
				else if(KeyCode==RADIO_0_10_KEY) {gRadioCurAddr=9;}
				else break;
				if(gRadioCurAddr>17) gRadioCurAddr=17;
				AmSaveLoadShow();
			}
			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_AM);
				else RadioDownSearch(BAND_AM);
				ShowAmValue();
				InitTime(INDEX_AUTO_SEARCH,255);
			}
		}
	}

	if(KeyCode==RADIO_10ADD_KEY && gRadioMode==RADIO_SAVE ){
		TextOut(0,"1_");
		gBool10ADDKEY=1;
	}
	else gBool10ADDKEY=0;
}

⌨️ 快捷键说明

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