📄 key.c
字号:
#include "key.h"
#include "config.h"
volatile uint8 KeyCurrent,KeyOld,KeyNoChangedTime;
volatile uint8 KeyPress,KeyDown,KeyUp,KeyLast;
volatile uint8 KeyChangeable;
void Timer0Init(void)
{
EA = 0;
TMOD &= 0xf0;
TMOD |= 0x01;
TH0 = 0xdc; //定时中断约5ms
ET0 = 1; //TIMER0中断允许
TR0 = 1; //开始计数
EA = 1;
}
void KeyInit(void)
{
KeyIO = 0xff;
KeyCurrent = 0;
KeyOld = 0;
KeyNoChangedTime = 0;
KeyPress = 0;
KeyDown = 0;
KeyUp = 0;
KeyLast = 0;
KeyChangeable = 1;
Timer0Init();
}
void Timer0ISP(void) interrupt 1
{
TH0 = 0xdc; //timer0 溢出中断约5ms
if(0 == KeyChangeable)
return;
KeyCurrent = ~(KeyIO);
if(KeyCurrent != KeyOld)
{
KeyNoChangedTime = 0;
KeyOld = KeyCurrent;
return;
}
else
{
KeyNoChangedTime++;
if(KeyNoChangedTime >= 1)
{
KeyNoChangedTime=1;
KeyPress = KeyOld;
KeyDown |= (~KeyLast) & KeyPress;
KeyUp |= KeyLast & (~KeyPress);
KeyLast = KeyPress;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -