51

来自「51单片机编程中常用的一些函数」· 代码 · 共 116 行

TXT
116
字号
uchar keyscan()
{
    P3=0xef;
	temp=P3;
	temp=temp&0x0f;
	if(temp!=0x0f)
	{
	   delay(5);
	   if(temp!=0x0f)
		{
		   temp=P3;
		   temp=temp&0x0f;
			switch(temp)
			{
				case  0x07:a=1;
				break;
				case  0x0b:a=2;
				break;
				case  0x0d:a=3;
				break;
				case  0x0e:a=4;
				break;
			
			}
		 }
//	while(temp!=0x0f);
//		delay(5);
//	while(temp!=0x0f);
 	   }

	P3=0xdf;
	temp=P3;
	temp=temp&0x0f;
	if(temp!=0x0f)
	{
	   delay(5);
	   if(temp!=0x0f)
		{
		   temp=P3;
		   temp=temp&0x0f;
			switch(temp)
			{
				case  0x07:a=5;
				break;
				case  0x0b:a=6;
				break;
				case  0x0d:a=7;
				break;
				case  0x0e:a=8;
				break;
			
			}
		 }
//	while(temp!=0x0f);
//		delay(5);
//	while(temp!=0x0f);
 	   }

	P3=0xbf;
	temp=P3;
	temp=temp&0x0f;
	if(temp!=0x0f)
	{
	   delay(5);
	   if(temp!=0x0f)
		{
		   temp=P3;
		   temp=temp&0x0f;
			switch(temp)
			{
				case  0x07:a=9;
				break;
				case  0x0b:a=10;
				break;
				case  0x0d:a=11;
				break;
				case  0x0e:a=12;
				break;
			
			}
		 }
//	while(temp!=0x0f);
//		delay(5);
//	while(temp!=0x0f);
 	   }

	P3=0x7f;
	temp=P3;
	temp=temp&0x0f;
	if(temp!=0x0f)
	{
	   delay(5);
	   if(temp!=0x0f)
		{
		   temp=P3;
		   temp=temp&0x0f;
			switch(temp)
			{
				case  0x07:a=13;
				break;
				case  0x0b:a=14;
				break;
				case  0x0d:a=15;
				break;
				case  0x0e:a=16;
				break;
			
			}
		 }
//	while(temp!=0x0f);
//		delay(5);
//	while(temp!=0x0f);
 	   }
return a;

}

⌨️ 快捷键说明

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