📄 key.c
字号:
#include<head.h>
#include "key.h"
BOOL keydd_Flag;
Uchar key_old;
/*******************************************************
* 按键驱动程序
**********************************************************/
/*******************************************************
* 函数原型:void key_init(void)
* 用途:按键复位
**********************************************************/
void key_init(void)
{
TMOD&=0xf0;
TMOD|=0X01;
TL0=(0x10000-(SYSCLK/1200))&0x00ff;
TH0=(0x10000-(SYSCLK/1200))>>8;
TR0=1;
ET0=1;
EA=1;
key_old=0;
}
/*******************************************************
* 函数原型:T0_int()(void)
* 用途:t0中断,获得按键值
* 出口:无
**********************************************************/
void T0_int(void) interrupt 1
{
Uchar key_temp=0;
Uchar key_check=0;
Uchar i=0;
TL0=(0x10000-(SYSCLK/1200))&0x00ff;
TH0=(0x10000-(SYSCLK/1200))>>8;
KC=0x0f;
key_temp=(~KC)&0x0f;
if(key_temp!=key_old)
{
if(keydd_Flag)
{
key_check=1;
while(key_check!=0x10)
{
if(key_temp&key_check)
{
if(!(key_old&key_check))
{
if((key_temp&CTRL)&&(key_check!=CTRL))i|=CTRLF;
if((key_temp&SHIFT)&&(key_check!=SHIFT))i|=SHIFTF;
PostMessage(M_KEYDOWN,key_check|i);
}
}
else if(key_old&key_check)
{
if(key_temp&CTRL)i|=CTRLF;
if(key_temp&SHIFT)i|=SHIFTF;
PostMessage(M_KEYUP,key_check|i);
}
key_check<<=1;
}
key_old=key_temp;
keydd_Flag=FALSE;
}
else
{
keydd_Flag=TRUE;
}
}
else
{
keydd_Flag=FALSE;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -