📄 main.c
字号:
/*-TAB=2-------------------------------------------------------------------*/
/**------------------------------------------------------------------------*
* *
* NAME:MAIN.C *
* *
* *
* UPDATE: 2002/8/15 YCD *
* *
* *
* *
*-------------------------------------------------------------------------*/
#include "..\SRC\ZM.H"
#include "..\SRC\key.H"
#include "..\SRC\display.H"
#include "..\SRC\radio.h"
void InitSystem(void);
void MainProc(void);
void InitRun(void);
void RunWorkProcess(void);
void RunStandByProcess(void);
void WorkDvdProcess(void);
void WorkRadioProcess(void);
void ShowIcon(BYTE aIcon);
void TextOut(BYTE Index,BYTE *aBuf);
BYTE IsPressStandBy(void);
WORD GetRadioFrequency(void);
WORD GetRadioCurValue(void);
void WordToStr(BYTE *aBuf,WORD aData);
BYTE IsTimeOut(BYTE aIndexType);
void InitTime(BYTE aIndexType,BYTE aCount);
BYTE Lsb_DetectStMo();
BYTE IsStereo(void);
BYTE IsSaveFrequency(BYTE aBand);
extern bit gCdRoundBool;
bit gboolWorkOrStandby;
bit gboolDvdOrRadio;
bit gboolRadioAmOrFm;
bit gbooStandbyInit;
bit gboolDvdInit;
bit gboolRadioAmInit;
bit gboolRadioFmInit;
extern bit gboolRestBoxEnd;
extern bit gboolMtln;
extern bit gBoolCanOpenBox;
BYTE gFmMemAddr=0;
BYTE gAmMemAddr=0;
extern bit gboolSt;
BYTE gAmMoneyCRT;
#define RADIO_ATOTSEARCH_WAIT2S 1200
WORD gRadioKeyToAutoTmCount;
bit gBoolInitMute;
#define RADIO_MUTE_TM 1200
#define DVD_MUTE_TM 3500
WORD gCloseMuteWaitTm;
bit gRadioCLK=P1.2;
bit gRadioStMo=P1.3;
/**
*@void main(void)
*@update 2002/8/20
*/
void main(void)
{
InitSystem();
MainProc();
}
/**
*@void InitSystem(void)
*@update 2002/8/20
*/
void InitSystem(void)
{
/*(1) delay */
Lst_ResetDelay();
/*(2) io init*/
InitCdDriver();
Lsb_InitMpg();
InitRemote();
InitRadio();
InitMpg();
InitVfd();
InitAt89c52();
/*(3) process */
TurnOffOpenCloseLed();
/*(4) power process */
CloseRadioPower();
CloseDvdPower();
RstStandbyPowHiProc();
/*(5)app init */
InitRun();
}
/**
*@void MainProc(void)
*@update 2002/8/20
*/
void MainProc(void)
{
for(;;){
CdRoundProc();
BoxProce();
OpenCloseLedProc();
if(gboolWorkOrStandby==RUN_WORK) RunWorkProcess();
else RunStandByProcess();
}
}
/**
*@void InitRun(void)
*@update 2002/9/2
*/
void InitRun(void)
{
gCdRoundBool=0;
gboolWorkOrStandby=RUN_STANDBY;
gboolDvdOrRadio=WORK_DVD;
gboolRadioAmOrFm=RADIO_FM;
gbooStandbyInit=UNINIT;
gboolDvdInit=UNINIT;
gboolRadioAmInit=UNINIT;
gboolRadioFmInit=UNINIT;
gCloseMuteWaitTm=65535;
gBoolInitMute=1;
gboolSt=0;
}
/*-- standby proc ---------------------------------------------------------*/
void StandbyKeyProc(void);
bit gboolNoTurnOffStandbyPower;
/**
*@void InitStanby(void)
*@update 2002/9/2
*/
void InitStanby(void)
{
/*-(1)show -*/
EnableMute();
InitVfd();
TurnOnStandbyLed();
/* (2)init */
gbooStandbyInit=INIT;
gCdRoundBool=0;
gboolNoTurnOffStandbyPower=1;
/* (3) proc */
CloseRadioPower();
CloseDvdPower();
ResetBox();
/*(4) clr key code*/
ClrRmtKey();
}
/**
*@void QuitStandby(void)
*@update 2002/9/2
*/
void QuitStandby(void)
{
/*- (1)turn of power -*/
StandbyLow();
DelayMs(250);
/* (2) set param*/
gbooStandbyInit=UNINIT;
gboolWorkOrStandby=RUN_WORK;
gboolDvdOrRadio=WORK_DVD;
/* (3) proc*/
StartBox();
TurnOffStandbyLed();
/* (4) clr key */
ClrRmtKey();
}
/**
*@void RunStandByProcess(void)
*@update 2002/9/2
*/
void RunStandByProcess(void)
{
if(gbooStandbyInit==UNINIT) InitStanby();
else StandbyKeyProc();
}
/**
*@void StandbyKeyProc(void)
*@update 2002/9/2
*/
void StandbyKeyProc(void)
{
BYTE KeyCode;
/*-(1)turn off power process -------------------------*/
if(gboolNoTurnOffStandbyPower==1 && gboolRestBoxEnd==1) {
gboolNoTurnOffStandbyPower=0;
DelayMs(250);
StandbyHi();
}
/* (2) remotekey process */
if(RemoteKbHit()){
KeyCode=RemoteGetKey();
if(KeyCode==RADIO_STANDBY_EKY&&gboolRestBoxEnd==1) QuitStandby();
}
/* (3) local standby key process */
else if(IsPressStandBy()) QuitStandby();
}
/**
*@void RunWorkProcess(void)
*@update 2002/9/2
*/
void RunWorkProcess(void)
{
if(gboolDvdOrRadio==WORK_DVD) WorkDvdProcess();
else WorkRadioProcess();
if(gBoolInitMute==1&&gCloseMuteWaitTm==0){
DesableMute();
gBoolInitMute=0;
}
}
const BYTE kMuteBuf[]=" MUTE ";
bit gboolMuteShow;
/**
*@void MuteShow(void)
*@update 20002/10/8
*/
void MuteShow(void)
{
if(!gboolMtln){
if(IsTimeOut(INDEX_MUTE_SHOW)){
HideIcon(ICON_COL_7G);
HideIcon(ICON_COL_5G);
HideIcon(ICON_DP_5G);
HideIcon(ICON_DP_7G);
if(gboolMuteShow) TextOut(0,kMuteBuf);
else ClrDigitRang();
gboolMuteShow=~gboolMuteShow;
InitTime(INDEX_MUTE_SHOW,1);
}
}
}
/*------------------------------------------------------------------------*/
/* dvd process */
/*------------------------------------------------------------------------*/
void DvdKeyProcess(void);
const BYTE kDvdTitle[]=" DVD ";
extern bit gBoxOpenOrClose;
/**
*@void InitDvd(void)
*@update 2002/9/2
*/
void InitDvd(void)
{
/*(1) clear screnn */
ClrWorkRang();
TextOut(0,kDvdTitle);
/*(2) init */
StopCdRound();
gboolDvdInit=INIT;
gBoolCanOpenBox=1;
/*(3) power */
CloseRadioPower();
OpenDvdPower();
/*(4) process */
TurnOnServe();
/*(5) select sound */
SelectDvdSound();
/*(6) clr rmt key */
ClrRmtKey();
gBoolInitMute=1;
gCloseMuteWaitTm=DVD_MUTE_TM;
}
/**
*@void QuitDvd(void)
*@update 2002/9/2
*/
void QuitDvd(void)
{
/*(1) mute */
EnableMute();
DelayMs(100);
/*(2) uninit*/
gboolDvdInit=UNINIT;
/*(3) process*/
TurnOffServe();
/*(4) Power process */
CloseDvdPower();
/*(4) clear rmt key*/
ClrRmtKey();
}
/**
*@void WorkDvdProcess(void)
*@update 2002/9/2
*/
void WorkDvdProcess(void)
{
if(gboolDvdInit==UNINIT) InitDvd();
else{
MpgRcvProc();
DvdKeyProcess();
if(IsPressStandBy()){
gboolWorkOrStandby=RUN_STANDBY;
QuitDvd();
}
}
}
/**
*@void DvdKeyProcess(void)
*@update 2002/9/2
*/
void SnedKeytoMpg(BYTE aKeyCode);
void DvdKeyProcess(void)
{
BYTE KeyCode;
/* vfd key process */
if(VfdKbHit()){
KeyCode=VfdGetKey();
switch(KeyCode){
case RADIO_DVD_RADIO_KEY:
gboolDvdOrRadio=WORK_RADIO;
QuitDvd();
return;
case RADIO_NO_KEY:
break;
case RADIO_OPENCLOSE_KEY:
KeyOpnClsManagerBox();
break;
case RADIO_PLAY_KEY:
CloseBox();
/*break send key*/
default:
SnedKeytoMpg(KeyCode);
break;
}
}
/* remote key process */
if(RemoteKbHit()){
KeyCode=RemoteGetKey();
switch(KeyCode){
case RADIO_STANDBY_EKY:
gboolWorkOrStandby=RUN_STANDBY;
QuitDvd();
break;
case RADIO_DVD_RADIO_KEY:
gboolDvdOrRadio=WORK_RADIO;
QuitDvd();
break;
case RADIO_OPENCLOSE_KEY :
KeyOpnClsManagerBox();
break;
case RADIO_MUTE_KEY:
if(gBoolInitMute==1) break;
MuteProc();
if(gboolMtln) DVDDiMute();
else DVDMute();
break;
case RADIO_PLAY_KEY:
CloseBox();
break;
}
}
}
/*------------------------------------------------------------------------*/
/* radio process */
/*------------------------------------------------------------------------*/
void RadioFmProcess(void);
void RadioAmProcess(void);
void ShowFmFrequency(void);
void SaveIconProc(void);
/**
*@void WorkRadioProcess(void)
*@update 2002/9/2
*/
void WorkRadioProcess(void)
{
if(gboolRadioAmOrFm==RADIO_FM) RadioFmProcess();
else RadioAmProcess();
SaveIconProc();
RadioMonoStereoShow();
if(gBoolInitMute==0) MuteShow();
}
/*------fm--------------------------------------------------------------------*/
extern bit gboolRmtContinueKey;
void RadioDownSearch(BYTE aBand);
void RadioUpSearch(BYTE aBand);
void SaveRadioToFlash(BYTE aNumber);
void LoadRadioFromFlash(BYTE aNumber);
void RadioFmKeyProc(void);
void InitAutoSearchCountKey(void);
#define RADIO_NORMAL 0
#define RADIO_SAVE 1
#define RADIO_VOICE 2
bit gboolSaveIcon;
BYTE gRadioMode;
BYTE gOldRadioMode;
BYTE gRadioCurAddr;
BYTE gRadioAutoSearchCountKey;
bit gboolAutoShow;
BYTE gAutoSearchFlag;
bit gboolAutoSearchUp;
const BYTE kNumber[20][3]={
"1","2","3","4","5","6","7","8","9",
"10","11","12","13","14","15","16","17","18","19","20"};
/**
*@void InitAutoSearchCountKey(void)
*@update 2002/9/2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -