📄 keyboard.c
字号:
#include <iom128v.h>
#include <control.h>
#include <macros.h>
extern unsigned char key_status,key_time_start,key_time_value;
extern unsigned char power_on,password_check;
extern unsigned char key_50ms,time_1val;
extern unsigned char time_15s,T_15s;
extern unsigned char power_off,keycount,power_off,power_to_off;
extern unsigned char ucMenuLayer;
//---------------------------------------------------------
// NAME: key_scan()
// ENTRY: void
// RETURN: void
// FUNCTION:按键分析子程序
// MODIFY DATE : 2004.1.28
//--------------------------------------------------------
unsigned char key_in;
unsigned char key_scan( void )
{
static unsigned char key_count,key_first,key_second;
unsigned char key_sts,key_sv;
key_sts = 0;
WDR();
if((key_status&0X1F)!=0X1F)
{
PORTC|=0X40; //LED_PORT=1;
key_time_start=1;
key_time_value=0;
}
if(key_time_value>10)
{
PORTC&=~0X40; //LED_PORT=0;
key_time_start=0;
key_time_value=0;
}
if( key_50ms ) //50ms software timer flag
{
key_50ms = 0;
key_sv = (~key_status)&0x1f;
//取键值
if( key_sv!=key_first )
{
key_first = key_sv; // save the new key status
key_count = 0;
}
else if( key_first!=key_second )
{
key_sts = key_first ^ key_second;
key_sts &=key_first;
key_second = key_first;
key_count = 1;
time_1val= 0;
}
else if( key_first>0 )
{
key_count++;
if( (key_count>6) )
{
key_count = 0;
key_sts = key_first;
}
}
}
if(key_sts!=0)
{
switch(key_sts)
{
case 1:
spk_key(0x38);
break;
case 2:
spk_key(0x39);
break;
case 4:
spk_key(0x37);
break;
case 8:
spk_key(0x35);
break;
case 16:
spk_key(0x36);
break;
default:
break;
}
}
if((key_sts==4)&&(power_on)&&(!password_check))
power_off=1;
else
{
power_off=0;
if((key_sts==1)||(key_sts==8))
password_check=0;
}
if(key_sts==16)
key_sts=3;
key_in=key_sts;
if(key_sts!=0)
{
time_15s=0;
T_15s=0;
}
else
{
if(T_15s)
{
exit_from_menu_operation();
T_15s=0;
time_15s=0;
}
}
return ( key_sts );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -