keyscan_3x3.h

来自「C语言的模块移植通用很好」· C头文件 代码 · 共 62 行

H
62
字号
uchar key,value,variable;

void keyscan();
void scan();
void count_key();
void keyscan()
{
	uchar i;
	uchar key_table[]={0xfe,0xfd,0xfb};
	P3=0xf8; 
	value=P3;
	if(value!=0xf8)		 //判断是否有键按下
	{
		for(i=0;i<3;i++)
		{
			P3=variable=key_table[i];
			scan();
		}
	}		
}

void scan()
{
	value=P3;
	value=value&0xf8;
	if(value!=0xf8)
	{
		delay(5);
		value=P3;
		value=value&0xf8;
		if(value!=0xf8)
		{
			while(P3!=variable);  //判断是否松手				
			delay(1);
			count_key();
		}
	}
}

void count_key()
{
	if(value==0xf0)
	{
	    if(variable==0xfe) key=0;
	    if(variable==0xfd) key=3;
	    if(variable==0xfb) key=6;
	} 
	
	if(value==0xe8)
	{
		if(variable==0xfe) key=1;
	    if(variable==0xfd) key=4;
	    if(variable==0xfb) key=7;
	} 

	if(value==0xd8)
	{
		if(variable==0xfe) key=2;
	    if(variable==0xfd) key=5;
	    if(variable==0xfb) key=8;
	} 
}

⌨️ 快捷键说明

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