📄 keyscan.c
字号:
/////////////////////////////////////////////////////////
//Function Name :keyScan()
//Author :
//Date :
//Description :键盘扫描
//Input Parameter :none
// 从p1口采用回转扫描获取键盘状态
//Output Parameter:keyVal
//Call :
//Other :
////////////////////////////////////////////////////////
#define KEY_M 25
void keyScan(){
unsigned char tempVal = 0 ; ///保存扫描获得的键值
unsigned char tempKey1 = 0 ; ///保存高四位键值
unsigned char tempKey2 = 0 ; ///保存低四位键值
P1 = 0xF0 ; ////低四位输出0
tempKey1 = P1 & 0xF0 ; ////读进高四位
P1 = 0x0F ; ////高四位输出0
tempKey2 = P1 & 0x0F ; ////读进低四位
tempVal = tempKey1 | tempKey2 ; //产生键盘值
key1 = tempVal; ////获取临时键值
if( key1 == key2 ){ ////前后两次为同一按键
keyCount++ ; ////键盘计数加一
}else{
keyCount = 0 ; ////前后两次按键不同,则计数清零
keyFlag = 0 ; ////键释放标志清零
}
key2 = key1 ;
if( keyFlag == 0 ){ ////键盘已经释放
if( keyCount > KEY_M ){ ////且:成功读取同一按键大于某一限制
keyVal = key1 ; ////返回按键值
keyFlag = 1 ; ////键盘释放标志 = 1
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -