📄 keyproc.c
字号:
display_48(m % 10);
display_maohao();
}
if((flash_counter > 280 ) && (flash_counter < 330))
clear_lcd();
if(flash_counter > 330)
flash_counter = 0;
DelayX1ms(255);
DelayX1ms(125);
if(IR_KeyAct == 1 )
{
Current_Key = IR_KEY_TBL[Remote_Key];
IR_KeyAct = 0;
if(Current_Key == VOLUME_UP_KEY)
{
if(h < 13)
{
h++;
if(h == 13)
h = 1;
display_18(h / 10);
display_28(h % 10);
set_pcf8563(0x04,((h / 10)<<4) | (h % 10));
}
}
if(Current_Key == VOLUME_DOWN_KEY)
{
if(m < 60)
{
m++;
if(m == 60)
m = 0;
display_38(m / 10);
display_48(m % 10);
set_pcf8563(0x03,((m / 10)<<4) | (m % 10));
}
}
if(Current_Key == CLOCK_KEY)
clock_flag = 0;
}
}
}
//add ir clock end
Current_Key = NO_KEY;
if(Need_Button_up == 0)
{
Keypointer = KeyBound_TBL;
SendKeyToiPod();
}
}
}
void Panel_SearchKey()
{
BYTE Key_Temp;
P3 |= 0xf0;
_nop_();
Key_Temp = P3 & 0xf0;
if( Key_Temp == 0xf0)
{
Key_Rebound = 0;
Key_LongTimer = 0;
Key_ShortTimer = 0;
Save_Key = NO_KEY;
return;
}
DelayX1ms(15);
P3 |= 0xf0;
_nop_();
Key_Temp = P3 & 0xf0;
if( Key_Temp == 0xf0)
return;
if(Key_Rebound == 0)
{
Panel_KeyAct = 1;
Key_Rebound = 1;
switch(Key_Temp)
{
case 0x70:
Panel_Key = POWER_KEY;
break;
case 0xb0:
Panel_Key = Source_Select;
Save_Key = Panel_Key;
Key_LongTimer = 1;
break;
case 0xd0:
Panel_Key = VOLUME_DOWN_KEY;
Save_Key = Panel_Key;
Key_LongTimer = 1;
break;
case 0xe0:
Panel_Key = VOLUME_UP_KEY;
Save_Key = Panel_Key;
Key_LongTimer = 1;
break;
default:
Panel_Key = NO_KEY;
Panel_KeyAct = 0;
break;
}
}
else if(Key_Rebound == 1)
{
if((Key_LongTimer == 130)) //130
{
Key_Rebound = 2;
Panel_KeyAct = 1;
Panel_Key = Save_Key;
Key_LongTimer = 0;
Key_ShortTimer = 1;
}
}
else if(Key_Rebound == 2)
{
if((Key_ShortTimer == 25))// 25
{
Panel_KeyAct = 1;
Panel_Key = Save_Key;
Key_ShortTimer = 1;
}
}
//校时
if(POWER_Status == 0)//关机状态校时
{
P3 |= 0xf0;
if((P3 & 0xf0) == 0xc0)
{
adj_counter++;
h = hour;
m = minute;
if(adj_counter > 80)
{
adj_counter = 0;
while((P3 & 0xf0) != 0xb0)//按source键退出
{
//set_pcf8563(0x02,0); //清零秒,()
//对时闪烁
if((flash_counter > 0 ) && (flash_counter < 280))
{
display_18(h / 10);
display_28(h % 10);
display_38(m / 10);
display_48(m % 10);
display_maohao();
}
if((flash_counter > 280 ) && (flash_counter < 330))
clear_lcd();
if(flash_counter > 330)
flash_counter = 0;
DelayX1ms(255);
DelayX1ms(125);
switch(P3 & 0xf0)
{
case 0xd0: //调小时
if(h < 13)
{
h++;
if(h == 13)
h = 1;
display_18(h / 10);
display_28(h % 10);
set_pcf8563(0x04,((h / 10)<<4) | (h % 10));
}
break;
case 0xe0: //调分钟
if(m < 60)
{
m++;
if(m == 60)
m = 0;
display_38(m / 10);
display_48(m % 10);
set_pcf8563(0x03,((m / 10)<<4) | (m % 10));
}
break;
default:
break;
}
}
}
}
}
}
void SendKeyToiPod(void)
{
BYTE Command_length;
BYTE i;
SBUF = 0xFF;
while(TI == 0);
TI = 0;
DelayX1ms(20);
SBUF = 0xFF;
while(TI == 0);
TI = 0;
SBUF = 0x55;
while(TI == 0);
TI = 0;
Command_length = Keypointer[0] + 2;
for(i = 0; i< Command_length; i++)
{
SBUF = *(Keypointer + i );
while(TI == 0);
TI = 0;
DelayX1ms(3);
}
}
void Power_Proc()
{
if(POWER_Status == on)//开机状态
{
AV_MUTE = 1; //静音防止开机噪音
DelayX1ms(255);
Power_Pin = 1;
DelayX1ms(20);
Volume_Tune(0);
DelayX1ms(255);
AV_MUTE = 0;
// Current_Volume = I2C_GetByte(A24C02_WRITE,0);//读出上次音量值
Current_Volume = byte_read(0x2000);
if(Current_Volume > 50)//防止第一次开机显示音量错乱
Current_Volume = 30;
Volume_Tune(Current_Volume);
LED_G = 0;
lcd_light = 0;
//开机显示通道
if (Channel_Select == 0)
{
Volume_Tune(0);
DelayX1ms(255);
C4052_A = 1;
C4052_B = 0;
display_aux2(); //显示
P1_6 = 0;
P3_3 = 1;
P1_7 = 1;
}
else if (Channel_Select == 1)
{
Volume_Tune(0);
DelayX1ms(255);
C4052_A = 0;
C4052_B = 1;
display_main();//显示
P3_3 = 0;
P1_6 = 1;
P1_7 = 1;
}
else if (Channel_Select == 2)
{
Volume_Tune(0);
DelayX1ms(255);
C4052_A = 1;
C4052_B = 1;
display_aux1();//显示
P1_7 = 0;
P1_6 = 1;
P3_3 = 1;
}
Volume_Tune(Current_Volume);
//开机显示音量进度条
switch(Current_Volume / 5)
{
case 0:
display_0bar();
break;
case 1:
display_1bar();
break;
case 2:
display_2bar();
break;
case 3:
display_3bar();
break;
case 4:
display_4bar();
break;
case 5:
display_5bar();
break;
case 6:
display_6bar();
break;
case 7:
display_7bar();
break;
case 8:
display_8bar();
break;
case 9:
display_9bar();
break;
case 10:
display_10bar();
break;
default:
break;
}
//显示音量数码值
display_68(Current_Volume % 10 );
display_58(Current_Volume / 10);
POWER_Status = off;
}
else if(POWER_Status == off)//关机状态
{
AV_MUTE = 1; //关机静音
DelayX1ms(255);
mute_flag = 0;//如果静音则关机解除静音,为开机不静音准备
P3_3 = 1;
P1_6 = 1;
P1_7 = 1;
// I2C_PutByte(A24C02_WRITE, 0,Current_Volume);
/* 扇区擦除 */
sector_erase(0x2000);
/* 字节编程 */
byte_program(0x2000, Current_Volume);
Power_Pin = 0;
LED_G = off;
lcd_light = off;
display_0bar(); //关机不显示bar
display_offchanel();//关机不显示任何通道
display_mute(lcd_unmute);//关机不显示MUTE
lcd_wr_addr(0x03);
lcd_wr_data(0x0);//关机不显示第一个小8数码管
lcd_wr_addr(0x02);
lcd_wr_data(0x0);
lcd_wr_addr(0x01);
lcd_wr_data(0x0);
lcd_wr_addr(0x00);//关机不显示第二个小8数码管
lcd_wr_data(0x0);
C4052_A = 0;
C4052_B = 0;//power off switch to void chanel.
//关机时关闭IPOD
{
Keypointer = POWER_OFF_TBL;
SendKeyToiPod();
}
POWER_Status = on;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -