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

📄 keyh.c

📁 这里有很多我自己做的凌阳单片机源程序
💻 C
字号:
#include<spce061a_chf.h>
#include"bit.h"
//键盘接口初始化函数
void init_keyIO(void)
{	
	PA_Dir->byte.byteh=0x0f;
	PA_Attrib->byte.byteh=0x0f;
	PA->byte.byteh=0x00;
}
//键盘取值函数
unsigned int get_keyvalue(void)
{
	unsigned int keyhang[4]={0x0e,0x0d,0x0b,0x07};//行扫描码	
	unsigned int keyi=0;
	for(keyi=0;keyi<4;keyi++)
	{		
		PA->byte.byteh=keyhang[keyi];
		if(P0_12==0)
		{
			while(P0_12==0)
			{
				*P_Watchdog_Clear=0x01;
			}
			return(keyi*4);
		}
		else if(P0_13==0)
		{
			while(P0_13==0)
			{
				*P_Watchdog_Clear=0x01;
			}
			return(keyi*4+1);
		}
		else if(P0_14==0)
		{
			while(P0_14==0)
			{
				*P_Watchdog_Clear=0x01;
			}
			return(keyi*4+2);
		}
		else if(P0_15==0)
		{
			while(P0_15==0)
			{
				*P_Watchdog_Clear=0x01;
			}
			return(keyi*4+3);
		}		
	}		
}
//加按键消抖的键盘扫描函数
unsigned int key_scan_delay(void)
{
	if(key_scan())
	{
		delay();//延时5ms
		if(key_scan())
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}
	else
	{
		return 0;
	}
}
	
//键盘扫描函数,有按键按下就返回1,否则返回0
unsigned int key_scan(void)
{
	init_keyIO();
	if(PA->byte.byteh==0xf0)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}
void delay(void)
{
	unsigned int timei=5000;
	while(timei--)
	{
		asm("nop");
	}
}
	
	

⌨️ 快捷键说明

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