⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyscan.c

📁 一种很好的键盘键扫描方法
💻 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 + -