单片机中按键模板Word格式.docx
《单片机中按键模板Word格式.docx》由会员分享,可在线阅读,更多相关《单片机中按键模板Word格式.docx(26页珍藏版)》请在冰点文库上搜索。
![单片机中按键模板Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/a21c7637-c4df-443d-8b15-547c24afa8c3/a21c7637-c4df-443d-8b15-547c24afa8c31.gif)
if(IN_CYCLE_TIME==50)//如果UP是长按,则系统音量连续+1
Delay_mS(10);
while(UP==0)
{
TDA7313_VOL_SET
(1);
System_Display_Volume();
Delay_mS(100);
System_Display_Time();
}
IN_CYCLE_TIME=0;
gotoRUN_KEY_START;
}
}
IN_CYCLE_TIME=0;
TDA7313_VOL_SET
(1);
//如果UP是短按,则系统音量单次+1
System_Display_Volume();
AT24C02_Write_Data(AMP_VOL_DATA_BK,AMP_VOL_DATA);
}
if(DOWN==0)
if(DOWN==0)
while(DOWN==0)//判断UP是长按还是短按
while(DOWN==0)
TDA7313_VOL_SET(0);
TDA7313_VOL_SET(0);
if(LEFT==0)
if(LEFT==0)
while(LEFT==0)//判断LEFT是长按还是短按
AMP_MUTE_FLAG=~AMP_MUTE_FLAG;
AMP_MUTE_CHANGE_FLAG=1;
TDA7313_MUTE_SET(AMP_MUTE_FLAG);
if(AMP_MUTE_FLAG==1)
System_Display_Mute();
else
LCD_Display_ColorBox(56,149,119,212,0XFFE0);
while(LEFT==0)System_Display_Time();
AT24C02_Write_Data(AMP_MUTE_FLAG_BK,AMP_MUTE_FLAG);
TDA7313_HP_VOL_SET(0);
System_Display_HP_Volume();
AT24C02_Write_Data(AMP_HP_VOL_DATA_BK,AMP_HP_VOL_DATA);
if(RIGHT==0)
if(RIGHT==0)
while(RIGHT==0)//判断UP是长按还是短按
AMP_LOUD_FLAG=~AMP_LOUD_FLAG;
TDA7313_LOUD_SET(AMP_LOUD_FLAG);
System_Display_Loud();
while(RIGHT==0)System_Display_Time();
AT24C02_Write_Data(AMP_LOUD_FLAG_BK,AMP_LOUD_FLAG);
TDA7313_HP_VOL_SET
(1);
if(MENU==0)
if(MENU==0)
while(MENU==0)//判断MENU是长按还是短按
if(IN_CYCLE_TIME==500)
{
AMP_MODE_CHANGE_FLAG=1;
AMP_POWER=~AMP_POWER;
//如果MENU长按,AMP进入SLEEP低功耗状态
AMP_STANDBY_FLAG=~AMP_STANDBY_FLAG;
while(MENU==0);
System_Display_Time();
gotoKEY_END;
while
(1)
{
RUN_MENU_LOOP:
OUT_CYCLE_TIME++;
if(OUT_CYCLE_TIME==1000)
{
OUT_CYCLE_TIME=0;
LCD_Display_String_ASCII8_16(1,0,"
CHANNEL:
"
0xF800,0x07E0);
LCD_Display_String_ASCII8_16(2,0,"
CHGAIN:
LCD_Display_String_ASCII8_16(3,0,"
CHLOUD:
LCD_Display_String_ASCII8_16(4,0,"
BALANCE:
LCD_Display_String_ASCII8_16(5,0,"
BASS:
LCD_Display_String_ASCII8_16(6,0,"
TREBLE:
LCD_Display_String_ASCII8_16(7,0,"
HPVOL:
LCD_Display_String_ASCII8_16(8,0,"
3DSOUND:
LCD_Display_String_ASCII8_16(9,0,"
AUTOOFF:
gotoKEY_SWITCH;
if(ID_CHANGE_FLAG==1)
ID_CHANGE_FLAG=0;
switch(RUN_CHANGE_ID)
case0:
//Line1channelhighlight
{
LCD_Display_String_ASCII8_16(9,0,"
LCD_Display_String_ASCII8_16(2,0,"
LCD_Display_String_ASCII8_16(1,0,"
0xF800,0x001F);
}
break;
case1:
LCD_Display_String_ASCII8_16(4,0,"
case2:
LCD_Display_String_ASCII8_16(5,0,"
case3:
LCD_Display_String_ASCII8_16(6,0,"
case4:
LCD_Display_String_ASCII8_16(8,0,"
case5:
case6:
default:
break;
if(MENU==0)
Delay_mS(10);
if(MENU==0)
while(MENU==0)
IN_CYCLE_TIME++;
System_Display_Time();
if(IN_CYCLE_TIME==500)
{
IN_CYCLE_TIME=0;
AMP_MODE_CHANGE_FLAG=1;
AMP_POWER=~AMP_POWER;
AMP_STANDBY_FLAG=~AMP_STANDBY_FLAG;
while(MENU==0);
gotoKEY_END;
}
IN_CYCLE_TIME=0;
OUT_CYCLE_TIME=0;
LCD_Display_String_ASCII8_16(1,0,"
LCD_Display_String_ASCII8_16(2,0,"
LCD_Display_String_ASCII8_16(3,0,"
LCD_Display_String_ASCII8_16(4,0,"
LCD_Display_String_ASCII8_16(5,0,"
LCD_Display_String_ASCII8_16(6,0,"
LCD_Display_String_ASCII8_16(7,0,"
LCD_Display_String_ASCII8_16(8,0,"
LCD_Display_String_ASCII8_16(9,0,"
gotoRUN_KEY_START;
if(RIGHT==0)
if(RIGHT==0)
while(RIGHT==0)System_Display_Time();
switch(RUN_CHANGE_ID)
case0:
//changeinputchannel
TDA7313_CHANNEL_SET
(1);
AT24C02_Write_Data(AMP_CHANNEL_DATA_BK,AMP_CHANNEL_DATA);
System_Display_Channel();
break;
case1:
//changeinputchannelgain
TDA7313_CHGAIN_SET
(1);
AT24C02_Write_Data(AMP_CHGAIN_DATA_BK,CHGAIN_DATA);
System_Display_Chgain();
case2:
//changeAMPBALANCE
TDA7313_BALANCE_SET
(1);
AT24C02_Write_Data(AMP_BALANCE_DATA_BK,AMP_BALANCE_DATA);
System_Display_Balance();
case3:
//changeAMPBASS
TDA7313_BASS_SET
(1);
AT24C02_Write_Data(AMP_BASS_DATA_BK,AMP_BASS_DATA);
System_Display_Bass();
case4:
//changeAMPTREBLE
TDA7313_TRE_SET
(1);
AT24C02_Write_Data(AMP_TRE_DATA_BK,AMP_TRE_DATA);
System_Display_Treble();
case5:
//changeAMPHeadphonevolume
VIRTUAL_3D_SET
(1);
System_Display_3D();
case6:
//changeAMPautopowerofftime
if(AUTO_OFF_FLAG==0)
{
AUTO_OFF_FLAG=1;
AUTO_OFF_TIME=0;
}
AUTO_OFF_TIME=AUTO_OFF_TIME+10;
if(AUTO_OFF_TIME==130)AUTO_OFF_TIME=120;
System_Display_Autooff();
default:
gotoRUN_MENU_LOOP;
if(LEFT==0)
if(LEFT==0)
while(LEFT==0)System_Display_Time();
TDA7313_CHANNEL_SET(0);
TDA7313_CHGAIN_SET(0);
//changeAMPbalance
TDA7313_BALANCE_SET(0);
//changeAMPBASS
TDA7313_BASS_SET(0);
TDA7313_