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

📄 main.c

📁 本程序是汽车音响中不可缺少的LCD显示程序
💻 C
📖 第 1 页 / 共 5 页
字号:
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 + -