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

📄 radio_1.c.bak

📁 ROHM 公司BU9432:application:应用范围
💻 BAK
📖 第 1 页 / 共 5 页
字号:
//		CPU_LCD_SIOSR0=B00000000;			//0:o/p;1:i/p;051207
//		CPU_LCD_SIOSR1=B00000000;			//0:o/p;1:i/p;051207

//		CPU_LCD_SIODR0=B11111111;			//all high,led off
//		CPU_LCD_SIODR1=B11111111;			//all high,led off

//		CPU_LCD_SSR2 = B00000000;			//SEG23-16: PIO(0)/SEG(1)
//		CPU_LCD_SIOSR2 = B00000000;			//SEG23-22: input(1)/output(0)
		CPU_LCD_SIODR2 = B11001111;			//seg16/18 to high,led off,seg22/23 to high,LED(+)  to LOW

	}


//-------------------------------------------------------
//	LCD config

//	CPU_LCD_CR = B11000011;				//LCD ON, 1/4duty, Fsub/300 <- choose @fosc=4.2MHz
//	CPU_LCD_CSR = B00001111;			// COM0-3 = LCD common

//	CPU_LCD_SSR0 = B11111111;			//SEG07-00: LCD segment
//	CPU_LCD_SSR1 = B11111111;			//SEG15-08: LCD segment

//-------------------------------------------------------
//			<PIO2>			i/o			init	[LCDSIODR2]
//
// 24	7	DRAM2			[Input]		x
// 23	6	DRAM1			[Input]		x
// 22	5	LCD segment		[LCD]		x		;LCD segment use
// 21	4	LCD segment		[LCD]		x		;LCD segment use
// 20	3	LCD segment		[LCD]		x		;LCD segment use
// 19	2	LCD segment		[LCD]		x		;LCD segment use
// 18	1	LCD segment		[LCD]		x		;LCD segment use
// 17	0	LCD segment		[LCD]		x		;LCD segment use

//	CPU_LCD_SSR2 = B00111111;			//SEG23-16: PIO(0)/SEG(1)
//	CPU_LCD_SIOSR2 = B11000000;			//SEG23-22: input(1)/output(0)
//	CPU_LCD_SIODR2 = B00000000;			//initial all "L"

//-------------------------------------------------------
//	 		<PIO3>		i/o			init	[LCDSIODR3]
//
// 32	7	EE_SDA		[I/O]		x		;EEPROM data
// 31	6	EE_SCL		[Output]	x		;EEPROM clock
// 30	5	ST_DET		[Input]		x		;Station detection
// 29	4	SYNC		[Input]		x		;Tape sync rec
// 28	3				[Input]		x		;
// 27	2				[Input]		x		;
// 26	1	DIG/ANA		[Input]		x		;Digital/Analog Volume
// 25	0	LCD			[Input]		x		;3 Digit or Full Digit

//	CPU_LCD_SSR3 = B00000000;			//SEG31-24: PIO(0)/SEG(1)
//	CPU_LCD_SIOSR3 = B00111111;			//SEG31-24: input(1)/output(0)
//	CPU_LCD_SIODR3 = B00000000;			//inital all "L"

//-------------------------------------------------------
//			<PIO4>		i/o			init		[SIO0PIODR]
//
// 36	2				[Input]		x			;
// 35	1				[Input]		x			;
// 34	0	MO/ST		[Input]		x			;Mono/Stereo

//	CPU_SIO0_PSR = B00000111;			//PIO[bit7~5:(0)], i/p[bit2~0:(1)]
//	CPU_SIO0_PIODR = B00000000;			//all Low

//-------------------------------------------------------
//	<PIO5>							[RCRPIODR]
//	37								;REMOTE

//	CPU_RCR_CR = 0xCD;					//Remote control register
//	CPU_RCR_FMR = 0x20;					//Remote format register
//	CPU_RCR_PSR = 0x81;
//	CPU_RCR_DR0 = 0x44;					//Data register 0 (Header L Min)
//	CPU_RCR_DR1 = 0x64;					//Data register 1 (Header L Max)
//	CPU_RCR_DR2 = 0x94;					//Data register 2 (Header H Min)
//	CPU_RCR_DR3 = 0xAF;					//Data register 3 (Header H Max)
//	CPU_RCR_DR4 = 0x04;					//Data register 4 (Data 0 L Min)
//	CPU_RCR_DR5 = 0x10;					//Data register 5 (Data 0 L Max)
//	CPU_RCR_DR6 = 0x04;					//Data register 6 (Data 0 H Min)
//	CPU_RCR_DR7 = 0x10;					//Data register 7 (Data 0 H Max)
//	CPU_RCR_DR8 = 0x12;					//Data register 8 (Data 1 L Min)
//	CPU_RCR_DR9 = 0x2C;					//Data register 9 (Data 1 L Max)
//	CPU_RCR_DR12 = 0x00;				//Data register 12 (continue code L Min)
//	CPU_RCR_DR13 = 0x00;				//Data register 13 (continue code L Max)
//	CPU_RCR_DR14 = 0x26;				//Data register 14 (continue code H Min)
//	CPU_RCR_DR15 = 0x30;				//Data register 15 (continue code H Max)

//-------------------------------------------------------
//		<PIO6>		i/o			pullup	init	[PIODPR]
//
// 45 7	BUZZER		[Output]	0		L
// 44 6	BUSY		[Input]		0		L
// 43 5	XRESET		[Output]	0		L
// 42 4	SUBSYQ		[Input]		1		L		(interrupt)
// 41 3	TMUTE		[Output]	1		L
// 40 2	INNER		[Input]		1		L
// 39 1	LID			[Input]		1		L
// 38 0	BL			[Output]	1		L

	CPU_PIO_DPR = B00000001;			//all "L" except BackLight
	CPU_PIO_PCR = B00111111;			//pin38-45, 0:pull up off, 1:pull up
//	CPU_PIO_PCR = B00001001;			//pin38-45, 0:pull up off, 1:pull up
//	CPU_PIO_DDR = B01010110;			//input(1) output(0)
//	CPU_PIO_IALR = B11101111;			//0:falling edge trigger interrupt, 1:rising edge trigger interrupt
	CPU_PIO_IRMR = B11111111;			//0:interrupt enable, 1:interrupt mask

//	CPU_PIO_BCR = B00000001;			//Buzzer stop, 1KHz o/p

//-------------------------------------------------------
//		<PIO7>			i/o			init	[SIO1PIODR]
//
// 48	2	MCK			[Output]	x
// 47	1	DIN-OUT		[Output]	x
// 46	0	RW/PLL_CE	[Output]	x


	CPU_SIO1_PSR = B00000000;
//	CPU_SIO1_PSR = B11000110;			//PIO[bit7~5:(0)], i/p[bit2~0:(1)]
//	CPU_SIO1_CR1 = B00000100;			//SIN - no use, SIO - reception mode
//	CPU_SIO1_CR2 = B10000000;			//MASK on, LSB, POL->H
//	CPU_SIO1_CR3 = B00000010;			// 1/2 SYSCLK
	CPU_SIO1_PIODR = B00000000;			//RW=H

//-------------------------------------------------------
//			<PIO8>			i/o		init		[SIO2PIODR]
//
// 51	2	PWR			[Output]	H
// 50	1	ASP_SC		[Output]	x
// 49	0	ASP_SI		[Output]	x

	CPU_SIO2_PSR = B00000000;			//PIO[bit7~5:(0)], i/p[bit2~0:(1)]
	CPU_SIO2_PIODR = B00000100; 		//Power ON

//-------------------------------------------------------
//		<PIO9>   		i/o		init		[PWMPIODR]
//
// 56 3	MMUTE		[Output]	L			;Driver mute
// 55 2	CD_PWR		[Output]	L			;CD Power Control
// 54 1	TU_PWR		[Output]	H			;Tuner Power Control
// 53 0	AMUTE		[Output]	L			;Audio mute

	CPU_PWM_PSR = B00000000;			//7-4: 0:PIO mode 1:PWM, 3-0: 0:OUT 1:IN
	CPU_PWM_PIO_DR = B00000010;			//All data "L"	** TU power ON "H"

//-------------------------------------------------------
//	AD-port setting
//
// 73	7	JUMP_HEIGHT		AD
// 72	6	MEKA_SEL		AD
// 71	5	GAIN_SEL		AD
// 70	4	KEY3			AD
// 69	3	KEY1			AD
// 68	2	KEY0			AD
// 67	1	TUNER_O			AD
// 66	0	SLIDE			AD

//	CPU_ADC_ICR = B00000000;	//0:ADin, ADC0-7 = ADC PORT
//	CPU_ADC_CR = B11010000;		//ADC auto. sampling mode start, ch 0-7 auto. sampling, AD0 for peak and bottom value
//	CPU_ADC_PRR = B00111100;	//俠俫愗懼偵娭偡傞懸偪帪娫// 懍偔偡傞偲丄師偺俠俫偵塭嬁弌傞丅偩偭偝乣丅

//-------------------------------------------------------
//			<PIOA>		i/o			init		[SIOFPIODR]
//
// 76	2	PLL_CLK		[Output]	x		;PLL clock
// 75	1	PLL_DA		[Output]	x		;PLL data input
// 74	0	PLL_CD		[Input]		x		;PLL data output


	CPU_SIOF_PSR = B00000001;			//PIO mode, Input port(1)
//	CPU_SIOF_CR1 = B00110100;			//FIFO=4, MODE 01
//	CPU_SIOF_CR2 = B10000000;			//INT MASK, LSB first, POL "H"
//	CPU_SIOF_CR3 = B00000000;			//NO WAIT, SYSCLK
	CPU_SIOF_PIODR = B00000000;			//All data "L"

//-------------------------------------------------------

//  inside CPU
//  <TIMER0>
//	CPU_TMR0_SCR = 0x00;				//Stop Timer0
//	CPU_TMR0_CR = B00000000;			//SYSCLK, 16 Bit timer, F/8
//	CPU_TMR0_CPRL = 0xE8;
// 	CPU_TMR0_CPRH = 0x03;         		//(03E8*8)=0x1F40=8000 =2mS@4MHz
//	CPU_TMR0_CPRL = 0x20;
//	CPU_TMR0_CPRH = 0x04;				//(041F*8)= 0x20F8 =8440 =2mS@4.19MHz (16.9/4)
//	CPU_TMR0_SCR = 0x80;				//count START

//  <TIMER1>
//	CPU_TMR1_SCR  = 0x00;				// Stop Counter
//	CPU_TMR1_CR   = B00000000;			// Sys Clk, 16bit, Fsys/8
//	CPU_TMR1_CPRL = 0xAC;				// 10msec/(8*(4/16.9344)) =5292 =0x14AC
//	CPU_TMR1_CPRH = 0x14;

//	SubClock_75KHz(  );

/*	CPU_OSC_CMR = B00000011;			//Connect 75KHz
	CPU_TMR0_SCR = 0x00;				//Stop Timer0
	CPU_TMR0_CR = B10000000;			//SUBCLK, 16 Bit timer, F/8
	CPU_TMR0_CPRL = 0x13;
 	CPU_TMR0_CPRH = 0x00;         		//(0013*8)=0x0098=152 =2mS@75KHz
	CPU_TMR0_SCR = 0x80;				//count START
	CPU_OSC_CMR = B00000111;			//OFF 4MHz
*/

//	CPU_OSC_CMR = B00000011;			//On 4MHz
//	CPU_OSC_CMR = B00000010;			//Connect 4MHz
	CPU_TMR0_SCR = 0x00;				//Stop Timer0
	CPU_TMR0_CR = B00000000;			//SYSCLK, 16 Bit timer, F/8
	CPU_TMR0_CPRL = 0xE8;
 	CPU_TMR0_CPRH = 0x03;         		//(03E8*8)=0x1F40=8000 =2mS@4MHz
//	CPU_TMR0_CPRL = 0x20;
//	CPU_TMR0_CPRH = 0x04;				//(041F*8)= 0x20F8 =8440 =2mS@4.19MHz (16.9/4)
	CPU_TMR0_SCR = 0x80;				//count START
//	CPU_OSC_CMR = B00000010;			//Connect 4MHz
		//051230

//  interrupt                   丂丂IRQ10傪嫋壜

//                  +--------IMR7
//                  |+-------IMR6
//                  ||+------IMR5
//                  |||+-----IMR4
//                  ||||+----IMR3
//                  |||||+---IMR2
//                  ||||||+--IMR1   TMR0.16<2mS>
//                  |||||||+-IMR0
//                  ||||||||
	CPU_ICU_IMR0 = B11111101;	//0:妱崬壜
//	CPU_ICU_IMR0 = B11111101;	//0:妱崬壜			//AD
//
//                  +--------IMR15
//                  |+-------IMR14
//                  ||+------IMR13  TMR1.16bit(10msec)
//                  |||+-----IMR12
//                  ||||+----IMR11  PIO6 bit4<subsyq>
//                  |||||+---IMR10
//                  ||||||+--IMR9
//                  |||||||+-IMR8
//                  ||||||||
	CPU_ICU_IMR1 = B01101111;	//0:妱崬壜


	CPU_CLK_CR = B10001001;			//Clk start, enable interrupt, 0.5s
}


//B0001 <---
/*---------------------------------------*/
void MainClock_Change(void)
{
	if ( ( u08h_tu_stat[1] & TU_STAT_AM1 ) == 0 )
		{
		SubClock_75KHz();
		}
	else
		{
		MainClock_4MHz();
		}
	return;

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

//AP905

void Tuner_ManuLCD_Main( void )   
{
       TunerPort_Init(  );        
	Common_Wait_ms( 100 );
	
       CPU_SIOF_PSR = B00000000;                        //PIO mode  output port(2,1,0)  
 	CPU_PWM_PIO_DR = B00000010;	//All data "L" ,except Tu power

	if(gu08_kind_VolCtrl==VOL_DIG)
		{
		Audio_Init(  );
		BD3871_Data1( B01000000 );				//Channel B
		DrvLCD_Equalizer_Init(  );
		}

	gu16_timer_wait =100;	
//	gu16_usb_wait=350;
//	SubClock_75KHz( );
		
	while ( ( gu08_now_mode == 2 ) && ( gu08_power_df != 0 ) )
	{

		Clk_Job();
		Alm1_Job();
		Alm2_Job();
		Sleep_Main();
		
		Common_Timing(  );
		Common_SoftTimer(  );			
		Key_Ctrl(  );

		Amute_Ctrl(  );		
		Que_Cont_Common(  );
		CPU_LCD_SDR1 |= B00000001;								// On "Tune" icon
		Freq_Count_Ap905(  );			

		Common_Disp();
		
		if( gu08_power_df == 0 )
		{
			DrvLCD_ALL_Off(  );
		}
	}
	return;
}




void Read_Ap905( UINT08 byte )
{
	volatile UINT08 i, j;	
	
	for ( i = 0 ; i < 5 ; i++ )
	{
		gu08_ap905_sts[i] = 0;
	}
	
	CPU_SIOF_PIODR|= B00000110;      //    set clk high, set data high, set CSB low 
       Common_Wait_us( 10 );
       CPU_SIOF_PIODR&= B00000100;      //    set clk high, set data low , set CSB low
       Common_Wait_us( 10 );
	CPU_SIOF_PIODR&= B00000000;      //    set clk low, set data low , set CSB low
      	CPU_SIOF_PSR = B00000010;           //   PIO mode  input port(1)   

	for( j = 0 ; j < byte ; j++ )
	{	
		for( i = B00000001; i>B00000000 ; i <<= 1 )
		{
			CPU_SIOF_PIODR &= B11111000;      //set CLK low  ,  DATA -- ,  set CSB low  
			Common_Wait_us(10 );                        
		      CPU_SIOF_PIODR |= B00000100;     		//set CLK high
			if(CPU_SIOF_PIODR & B00000010)    // check DATA bit  
			{
				gu08_ap905_sts[j] |= i;
			}
			Common_Wait_us(10 );             
		}
	}
	
//       CPU_SIOF_PSR = B00000000;                        //PIO mode  output port(2,1,0) 
	CPU_SIOF_PIODR &= B00000100;                  //set clk --, set data low, set CSB low  
       Common_Wait_us(10 );	
       CPU_SIOF_PIODR |= B00000100;                  //set clk high, set data low, set CSB low 
       Common_Wait_us( 10 );	
       CPU_SIOF_PIODR |= B00000110;                  //set clk high, set data high, set CSB low  
       Common_Wait_us( 10 );		
	return;
}


void Freq_Count_Ap905( void )     
{
//     if( gu16_folder_wait==0 )
	if(gu16_timer_wait==0)
	{
//		gu16_folder_wait = 75;
		gu16_timer_wait=75;
		Read_Ap905(3);
	}	

      Common_Disp(  );   

  //    if(gu16_usb_wait!=0 ) 
 // 	if(gu16_timer_wait!=0)
//	 {
//	return;
//	}

     if( gu08_sts_Volume != 0 )     
      	{
      	 return;
      	}


	  
 //--------------------------------------------------------------
       gu32Work.w.l = divub( BcdToDec(gu08_ap905_sts[0]), 10 );
/*	if(gu08_kind_Display == DISP_5DIGIT)
	{
	CPU_LCD_SDR3 = Tbl_DISP_NUM[ gu32Work.b.ll ] ;         
	CPU_LCD_SDR4 = Tbl_DISP_NUM[ gu32Work.b.lh ] ;  
	}
	else
*/	{
	CPU_LCD_SDR5 = Tbl_DISP_NUM[ gu32Work.b.ll ] ;         
	CPU_LCD_SDR6 = Tbl_DISP_NUM[ gu32Work.b.lh ] ;  
	}	
       gu32Work.w.l = divub( BcdToDec(gu08_ap905_sts[1]), 10 ); 
/*      if(gu08_kind_Display == DISP_5DIGIT)
	{
	     if( ((u08_host_sts[1])&B11110000)==0)
                { 
                CPU_LCD_SDR0=B00000000;
	     	  }
		 else
		 {	
	         CPU_LCD_SDR0= Tbl_DISP_NUM[ gu32Work.b.ll ] ;  
		  }	
	         CPU_LCD_SDR2 = Tbl_DISP_NUM[ gu32Work.b.lh ] ;  
	}
	else
	{*/  
                if( ((gu08_ap905_sts[1])&B11110000)==0)
                {                     			 
                CPU_LCD_SDR6&=B11101111;  
      	         }
                else
                {	
	         CPU_LCD_SDR6 |=B00010000 ;   //-----------------------display  "1"
      	         }    
                CPU_LCD_SDR4 = Tbl_DISP_NUM[ gu32Work.b.lh ]  ;  
//	}
//-----------------------------------------------------------------------------
	
      if( (gu08_ap905_sts[2]&B00001100)==0 )
      	{
       FM_Icon_On( );
      	}
      else
      	{
      	AM_Icon_On( );
      	}
      return;
}






void AM_Icon_On( void )
{
	if(gu08_kind_tuner!=3)
	{

	CPU_LCD_SDR0 &= B11101111;				// Clr ST icon

	CPU_LCD_SDR8 &= B00000000;
	CPU_LCD_SDR8 |= B01101111;				// "A"

	CPU_LCD_SDR9 &= B00010000;
	CPU_LCD_SDR9 |= B01111010;				// "M"

	CPU_LCD_SDR7 |= B00010000;				// KHz
	}
	return;
}



void FM_Icon_On( void )
{
	if(gu08_kind_tuner!=3)
	{

	CPU_LCD_SDR8 &= B00010000;
	CPU_LCD_SDR8 |= B00001111;				// "F"

	CPU_LCD_SDR9 &= B00010000;
	CPU_LCD_SDR9 |= B01111010;				// "M"

	}
	return;
}


/*----------------------------------------*/
void Aux_Main( void )
{
	TunerPort_Init(  );
	CPU_PWM_PIO_DR = B00000000;					//All data "L" OFF TU and CD power
	if(gu08_kind_tuner!=3)
		{
		CPU_LCD_SDR1 |= B00000010;								// On "AUX" icon
		}
	else
		{
		CPU_LCD_SIODR2&=B11110111;
		}


//	Common_Wait_ms( 100 );

	gu16_timer_wait=10;			//051215
	if(gu08_kind_VolCtrl==VOL_DIG)
		{
		Audio_Init(  );
		BD3871_Data1( B00000000 );				//Channel A
		DrvLCD_Equalizer_Init(  );
		}
	gu16_timer_wait = 150;
// 	CPU_PWM_PIO_DR|=B00000001;			//Amute off	

	while ( ( gu08_now_mode == 3 ) && ( gu08_power_df != 0 ) )
	{
		tap1_select();
		Clk_Job();
		
		if(gu08_flg_dcin==LOW)POWER_Off();			//for backup bat.,060110
	
	
		Sleep_Main();
//		if(gu08_kind_Display==DISP_LED)DrvLED_ComPort();
		
		Common_Timing(  );
		Common_SoftTimer(  );
		Amute_Ctrl(  );

		if(gu08_flg_dcin==HIGH)
		{
			Alm1_Job();
			Alm2_Job();

			Key_Ctrl(  );
			Que_Cont_Common(  );

//			if(gu08_kind_Display==DISP_LCD)
//			if(gu08_kind_tuner!=3)
//				{
//				CPU_LCD_SDR1 |= B00000010;								// On "AUX" icon
//				}
//			else
//				{
//				CPU_LCD_SIODR2&=B11110111;
//				}
			Aux_Disp();
		}

		if( gu08_power_df == 0 )
		{
			DrvLCD_ALL_Off(  );
		}
	}
	return;
}


void Common_Disp( void )
{
//if(gu08_kind_Display==DISP_LED)
	if(gu08_kind_tuner==3)
	{
	if(gu08_timer_SetVolume==0)
		{
		if(gu08_sts_Volume!=0)
			{
			gu08_mode_disp=0;
	//		DrvLED_ClkHour_Off();
			DrvLED_ClkMin_Off();
	//		DrvLED_ClkDot_Off();
			}
		UserCtrl_VolumePopup_cansel();
		}
	if(gu08_sts_Volume!=0)
		{
//		DrvLED_ClkHour_Off();
		DrvLED_ClkDot_Off();
		DrvLED_AllNumber_Off();
		DrvLED_ClkMin_On(gu08_num_Volume);
		}

	}
else
	{

		if( gu08_timer_SetVolume == 0 )
		{
			if(gu08_sts_Volume != 0)
			{
				Preset_No_Off(  );			//digit 0/1/2 cleared,except icon
			}
			UserCtrl_VolumePopup_cansel();
		}

		if( gu08_sts_Volume != 0 )
		{
			DrvLCD_Volume_On();
			DrvLCD_TitleNumberCD_On( gu08_num_Volume );	//尰嵼EVR抣傪昞帵
			DrvLCD_Freq_Off(  );
			return;
		}

	}
	return;
}

void Aux_Disp(void)
{
//	 if(gu08_kind_Display==DISP_LCD)
	if(gu08_kind_tuner!=3)
	 	{
	 	DrvLCD_AllNumber_Off(  );
	 	}

	if((gu08_alm1_df!=1)&&(gu08_alm2_df!=1)/*&&(gu08_sleep_df!=1)*/)		//clk display
		{
		Clk_Normal_Disp();
		Common_Disp();
		}

	 DrvLCD_Alm1_Disp();
	 DrvLCD_Alm2_Disp();
	DrvLCD_Sleep_Display();			//test	051214
						
	return;		

}

void Que_Cont_Common( void )
{
	if(gu08_kind_VolCtrl==VOL_DIG)UserCtrl_Key_AudioEffect( 0 );

	switch ( gu08_KeyBuffer )
	{
//		case KEY_PLAY:
//			if( gu08_kind_Power )				//NO CD FUNC.
//				break;
//			gu08_autoplay_sts = 1;
//		case KEY_FUNC1:
//		case KEY_FUNC2:
//		case KEY_CD_ON:
//			Radio_Amute_Sens_On(  );
//			gu08_timer_SetVolume = 0;
//			gu08_now_mode = 1;
//			Stdby_Port_Init(  );
//			break;


		case KEY_TUNER:
			if( gu08_kind_Power )
				break;
		case KEY_TU_ON:
			Radio_Amute_Sens_On(  );
			gu08_timer_SetVolume = 0;
			gu08_now_mode = 2;
			Stdby_Port_Init(  );
			break;


//		case KEY_AUX:
//			if( gu08_kind_Power )
//				break;
//		case KEY_AUX_ON:
//			if( gu08_now_mode == 3 )
//				break;
//			Radio_Amute_Sens_On(  );
//			gu08_timer_SetVolume = 0;
//			gu08_now_mode = 3;
//			Stdb

⌨️ 快捷键说明

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