📄 main.c
字号:
0x27/*-48.75db 5*/,
0x25/*-46.25db 6*/,
0x23/*-43.75db 7*/,
0x22/*0x21 -41.25db 8*/,
0x1e/*0x1f -38.75db 9*/,
0x1d/*-36.25db 10*/,
0x1c/*-35.00db 11*/,
0x1b/*-33.75db 12*/,
0x1a/*-32.50db 13*/,
0x19/*-31.25db 14*/,
0x18/*-30.00db 15*/,
0x17/*-28.75db 16*/,
0x16/*-27.50db 17*/,
0x15/*-26.25db 18*/,
0x14/*-25.00db 19*/,
0x13/*-23.75db 20*/,
0x12/*-22.50db 21*/,
0x11/*-21.25db 22*/,
0x10/*-20.00db 23*/,
0x0f/*-18.75db 24*/,
0x0e/*-17.50db 25*/,
0x0d/*-16.25db 26*/,
0x0c/*-15.00db 27*/,
0x0b/*-13.75db 28*/,
0x0a/*-12.50db 29*/,
0x09/*-11.25db 30*/,
0x08/*-10.00db 31*/,
0x07/*-08.75db 32*/,
0x06/*-07.50db 33*/,
0x05/*-06.25db 34*/,
0x04/*-05.00db 35*/,
0x03/*-03.75db 36*/,
0x02/*-02.50db 37*/,
0x01/*-01.25db 38*/,
0x00/*-00.00db 39*/,
};
const unsigned char bass_treble_data[] = {
0x00, /*-7*/
0x01, /*-6*/
0x02, /*-5*/
0x03, /*-4*/
0x04, /*-3*/
0x05, /*-2*/
0x06, /*-1*/
0x07, /*0*/
0x0e, /*1*/
0x0d, /*2*/
0x0c, /*3*/
0x0b, /*4*/
0x0a, /*5*/
0x09, /*6*/
0x08, /*7*/
};
const unsigned char Vol_Tbl[] = {
39,14,14,14,14,
};
#if PLAY_DVD
const unsigned int Lump_Adr[] = {
_SEG_SET_A ,_SEG_SET_B ,_SEG_RPT ,_SEG_RPT_ALL ,_SEG_PLAY ,_SEG_PAUSE ,_SEG_MEM ,_SEG_RDM,
_SEG_DVD ,_SEG_VCD ,_SEG_CD ,_SEG_MP3 ,_SEG_Dts ,_SEG_WMA ,_SEG_JPG ,_SEG_MP4,
_SEG_Dobly ,_SEG_ANG ,_SEG_AC3 ,_SEG_NTSC ,_SEG_PAL ,_SEG_PBC ,_SEG_INT ,EMPTY,
};
#else
const unsigned int Lump_Adr[] = {
_SEG_VCD , _SEG_CD ,_SEG_MP3 ,_SEG_INT ,EMPTY ,_SEG_RDM ,_SEG_MEM ,EMPTY,
_SEG_PLAY ,_SEG_PAUSE ,_SEG_RPT ,_SEG_RPT_ALL ,_SEG_PBC ,EMPTY ,EMPTY ,EMPTY,
};
#endif
const unsigned int TABLE[] = {
10000, /* 10,000 */
1000, /* 1,000 */
100, /* 100 */
10, /* 10 */
1, /* 1 */
};
/* *********************************************************************** */
const unsigned char Vol_Ms_Tbl[] = {
SHOW_VOL,SHOW_BAS ,SHOW_TRE,SHOW_BAL,SHOW_FAD,
};
/* ***************************************************************** */
#define END_KEY 99
const unsigned char Mute_Off_Key[] ={
EJECT_KEY,
M_VOLUP_KEY,
M_VOLDWN_KEY,
SOURCE_KEY,
AUX_KEY,
END_KEY,
};
const unsigned char Time_Enable_Key[] ={
SOURCE_KEY,
AUX_KEY,
TIME_SET_KEY,
EJECT_KEY,
M_VOLUP_KEY,
M_VOLDWN_KEY,
#if NEWTIMEADJ
MODE_KEY,
#endif
END_KEY,
};
const unsigned char AUX_Key_Enable[] =
{
M_VOLUP_KEY,
M_VOLDWN_KEY,
MODE_KEY,
LOUD_KEY,
MBP_KEY,
EJECT_KEY,
SOURCE_KEY,
AUX_KEY,
EQ_MODE_KEY,
POWER_KEY,
TIME_SET_KEY,
MUTE_KEY,
KEY_CLK,
END_KEY,
};
const unsigned char SkipKey[] =
{
M_VOLUP_KEY,
M_VOLDWN_KEY,
MODE_KEY,
EJECT_KEY,
EQ_MODE_KEY,
LOUD_KEY,
MBP_KEY,
DBASS_KEY,
LOCAL_KEY,
STEREO_KEY,
END_KEY,
};
const unsigned char PauseKey[] =
{
SOURCE_KEY,
AUX_KEY,
EJECT_KEY,
KEY_6,
VCD_PLAY_KEY,
END_KEY,
};
#if USE_BLUETOOTH
#include "blue.c"
#endif
/* ************************************************************************ */
/* ************************************************************************ */
/* ************************** main routine ******************************** */
/* ************************************************************************ */
void main(void)
{
unsigned char c1;
#if lcd_TEST
unsigned char c2,c3;
unsigned int test_1;
#endif
#if LC75817
// unsigned char c1;
#endif
__DI();
SYSCR1 = 0x40; /* level release, return to normal, high-impedance */
SYSCR2 = 0x80; /* single-clock mode */
Ioport_Init();
MP3Reset_Input;
MUTE_SET; /* line mute on */
MAIN_POWER_OFF; /* turn off power supply */
VCD_POWER_OFF; /* turn off VCD power */
RADIO_POWER_OFF; /* turn off radio power */
#if BACK_LIGHT
BACK_LIGHT_OFF;
#endif
POWER_IC_STANDBY;
/* ************************************************************************ */
// RAM CLEAR
__IX=RAM_TOP; // IX : RAM top address
__IY=RAM_SIZE-1; // IY : Clear RAM size
__asm("ram_clear:");
__asm(" LD (IX),0"); // RAM Zero clear
__asm(" INC IX"); // Address increment
__asm(" DEC IY"); // Counter decrement
__asm(" J F,ram_clear"); // Counter > 0 goto RAM_CLEAR
/* ************************************************************************ */
/* Initial data setting */
/*INTSEL = 0x00;*/
TBTCR = TBTENON + TBTCK3; /* TBT 2mS, select fs */
TC2CR = TC2SON + TC3CK010; /* TC2 cycle = 32768 s */
TTREG2 = 31250; /* 1s */
EINTCR = INT1NCON + INT0ENON + INT3ESON; /* INT1, int4 int3 falling edge interrupt */
TBTCR |= 0xa0; /* DVO enable, 2048 Hz pulse */
EIRW = 0; /* all interrupt clear */
ILW = 0; /* all interrupt latch clear */
/* ************************************************************************ */
IL4 = 0;
IL5 = 0;
IL12 = 0;
IL7 = 0;
IL22 = 0;
IL13 = 0;
EF4 = 0; /* interrupt int0 disable VCD STB*/
EF12 = 1; /* interrupt int3 enable Remote*/
EF7 = 1; /* interrupt inttbt enable */
EF5 = 1; /* interrupt inttc1 enable */
EF22 = 1; /* interrupt inttc2 enable TIME */
EF13 = 0; /* interrupt SIO disable */
#if ENCODE_VOL
IL6 = 0;
EF6 = 1; /* interrupt int1 enable */
EINTCR = INT1NCON + INT0ENON + INT3ESON + INT1ESON; /* INT1 falling edge interrupt */
#endif
#if USE_SENDIR
IL16 = 0;
IL17 = 0;
IL20 = 0;
IL21 = 0;
EF16 = 0; /* interrupt Rx1 disable */
EF17 = 1; /* interrupt Tx1 enable */
EF20 = 1; /* interrupt Rx2 enable */
EF21 = 0; /* interrupt Tx2 disable */
// UART1CR1 = UCLK010 + UPE + STBT; /* 9600BIT/S ODD STOP 2BIT */
// UART1CR2 = RXDNC11 + STOPBR;
// UART2CR1 = UCLK010 + UPE + STBT; /* 9600BIT/S ODD STOP 2BIT */
// UART2CR2 = RXDNC11 + STOPBR;
// URXE2 = 1;
//URXE1 = 1;
UART1CR1 = 0x3a;
UART1CR2 = 0x05;
UART2CR1 = 0x7a;
UART2CR2 = 0x05;
#endif
__EI(); /* open interrupt master */
ADCCR2 = 0x3C; /* always connect */
/* *************** Option detect ********************************* */
SYS_POWER_ON;
Delay1ms(200);
option_set();
/* ************************************************************************ */
init_set();
SlowClkMode = 0;
/***************************************************************************/
#if USE_BLUETOOTH
EqPairKey_Hit=0;
Send_dtmf_Hit=0;
Number_ease=0;
BLUE_link=0;
#endif
/* ************************************************************************ */
#if SIOTEST
IniSIO();
#endif
process_volume_init();
flag_set(); /* initial flag set */
LCD_state_init(1); /* sleep */
system_state = AUX_STATE;
pre_system_state = AUX_STATE;
First_Power = 1;
NOP();
VFD_processBlank(BLANK_ALL);
Write_Tuner_LCD();
NOP();
/* ************************************************************************ */
LCD_state_init(0); /* normal */
p_standby_set(0);
POWER_FAILURE = 0;
#if 0
MAIN_POWER_CTL = 1;
BACK_LIGHT_CTL=1;
for(c1=0;c1<72;c1++){ShadowRam[c1]=0xff;}
for(;;){
//ShowTftMsg((unsigned char*)("ABCDEFGHIJkL"));
//LCD_process7Segments(1, 0xFA);
// LCD_process7Segments(3, 0xBC);
// LCD_process7Segments(5, 0xDE);
//LCD_process7Segments(7, 0x78);
//LCD_process7Segments(9, 0x65);
//LCD_process7Segments(11, 0x43);
//Write_Tuner_LCD();
// Delay50ms(20);
for(c1=0;c1<16;c1++){ShadowRam[c1]=0xff;}
Write_Tuner_LCD();
Delay50ms(20);
for(c1=0;c1<16;c1++){ShadowRam[c1]=0x00;}
Write_Tuner_LCD();
Delay50ms(20);
//LCD_disply1();
//LCD_disply();
}
#endif
#if lcd_TEST
MAIN_POWER_CTL = 1;
BACK_LIGHT_CTL=1;
for(;;)
{
c2=1;
c3=0;
test_1=0x0001;
for(c1=0;c1<16;c1++){
//ShadowRam[c1]=0x0f;
if(c2==0x80){c3=c3+1;}
if(c2<0x80){c2=c2<<1;}
else{c2=1;}
test_1=c3;
test_1=test_1<<8;
test_1=test_1|c2;
VFD_clear_lite_anode(test_1, 1);
//VFD_clear_lite_anode(0X0C08, 1);
//VFD_clear_lite_anode(0X0C04, 1);
//VFD_clear_lite_anode(0X0C02, 1);
//VFD_clear_lite_anode(0X0C01, 1);
Write_Tuner_LCD();
Delay50ms(30);
VFD_processBlank(BLANK_ALL);
//ShadowRam[c1]=0xf0;
LCD_process7Segments(1, c3);
LCD_process7Segments(3, c2);
//VFD_clear_lite_anode(0X0C80, 1);
//VFD_clear_lite_anode(0X0C40, 1);
//VFD_clear_lite_anode(0X0C20, 1);
//VFD_clear_lite_anode(0X0C10, 1);
Write_Tuner_LCD();
Delay50ms(30);
//VFD_processBlank(BLANK_ALL);
}
}
#endif
/* *********************************************************************** */
/* ************************* main subroutine loop ************************* */
/* ************************** keyscan and analyze ************************ */
/* ************************************************************************ */
/* ************************************************************************ */
start:
start5:
/* ************************************************************************ */
#if key_panel_test
BACK_LIGHT_CTL=1;
VFD_processBlank(BLANK_ALL);
for(;;)
{
p_adc_in(ADKEY0);
LCD_process7Segments(1,AD_value);
p_adc_in(ADKEY1);
LCD_process7Segments(5,AD_value);
Write_Tuner_LCD();
}
#endif
if (g_time_base1 >= T20MS) { /* 15ms scan one time */
g_time_base1 = 0;
key_scan(); /* scan key */
}
key_data_confirm();
/* ******************tray process************************* */
if(POWER_FAILURE) goto start5;
DiscDetect();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -