kscan.h

来自「很实用的单片机例程」· C头文件 代码 · 共 50 行

H
50
字号
#include <intrins.h>
kscan(void)
{
	unsigned char i, temp,num=0;	
	for(i=0;i<4;i++)
	{
		P3=_crol_(0xfe,i);
		temp=P3;
		temp=temp&0xf0;
		if(temp!=0xf0)
		{
			delay(5);
			temp=P3;
			temp=temp&0xf0;
			if(temp!=0xf0)
			{
				temp=P3;			
				switch(temp)
				{
					case 0xee:num=1;break;
					case 0xde:num=2;break;				
					case 0xbe:num=3;break;				
					case 0x7e:num=4;break;

					case 0xed:num=5;break;
					case 0xdd:num=6;break;				
					case 0xbd:num=7;break;				
					case 0x7d:num=8;break;

					case 0xeb:num=9;break;
					case 0xdb:num=10;break;				
					case 0xbb:num=11;break;				
					case 0x7b:num=12;break;

					case 0xe7:num=13;break;
					case 0xd7:num=14;break;				
					case 0xb7:num=15;break;				
					case 0x77:num=16;break;			
					default:break; 
				}							
				while((temp&0xf0)!=0xf0)
				{
					temp=P3;temp=temp&0xf0;
					
				}					
			}			
		}	
	}
	return num;	
}

⌨️ 快捷键说明

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