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

📄 skey.c

📁 Max5479 数字电位器的驱动源程序 用M16来实现C语言的编程!
💻 C
字号:


/*******************************************
函数名称: Skey_press
功    能: 检测是否有键按下
参    数: 无
返回值  : pressed--有键按下时为TRUE,否则为FALSE
/********************************************/
uchar Skey_press(void)
{
 uchar pressed;		 		
 KEY_DDR=OUT;			//定义数据端口为输出
 KEY_PORTO|=0x0F;		//输出数据(输出检测码)
 KEY_DDR=IN;				//定义数据端口为输入
 if((KEY_PORTI&0x0F)!=0x0F)	//检测是否有键按下
 	pressed=TRUE;			//有键按下则返回TRUE
 else
 	pressed=FALSE;			//无键按下则返回FALSE
 KEY_DDR=OUT;				//数据端口还原为输出
 return pressed;
}
/*******************************************
函数名称: Skey_scan
功    能: 扫描所按的键并返回键值
参    数: 无
返回值  : keycode--被按下键值
/********************************************/
uchar Skey_scan(void)
{
 uchar keycode=0xFF;
 Delayms(15);		 		//延时消抖
 if(Skey_press()==TRUE)		//如果有键按下
 {
    KEY_DDR=IN;				//定义数据端口为输入
	keycode=KEY_PORTI;		//读入原始键码
	keycode&=0x0F;			//屏蔽高4位
	switch(keycode)			//翻译原始键码为0~3
	{
	   case 0x0E:
	   		keycode=0;
			break;
	   case 0x0D:
	   		keycode=1;
			break;
	   case 0x0B:
	   		keycode=2;
			break;
	   case 0x07:
	   		keycode=3;
			break;
	   default:
	        keycode=0x00;
	}
	do
	{
	}while(Skey_press()==TRUE);	//等待按键释放(为了防止按一次,执行多次的现象)
 }
 return keycode;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -