📄 key.c
字号:
#include <avr/io.h>
#include <util/delay.h>
unsigned char p_key;
unsigned int p_kcnt;
unsigned char Scankey(void) //键盘扫描
{ unsigned int key;
static unsigned int p_kold;
key=(PINB&0xC1)|((PIND&0x80)>>1); //读键盘口
if(key)
{
if(key!=p_kold&&(key!=(p_kold&0xFD))) { p_kold=key; p_kcnt=0; } //有新键按下
else
{ if(p_kcnt<300) p_kcnt++;
if((p_kcnt==3)||(p_kcnt>30)) //键值确认
if(!p_key||((p_key&0x02)==0&&p_kcnt>50))
{
if(p_kcnt>50) p_key=key|0x02;
else p_key=key;
return(1);
}
}
}
else p_kold=p_kcnt=0; //无键按下
return(0);
}
unsigned char Getkey(void) //程序提取键值
{ unsigned int rkey;
if(p_key&&p_kcnt==0)
{
rkey=p_key; p_key=0; // 短按键
return(rkey);
}
else if(p_key&0x02)
{
rkey=p_key; p_key=0;
return(rkey);
}
else return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -