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

📄 keyscan.c

📁 比较容易理解的键盘扫描程序
💻 C
字号:
unsigned char code table[]=
{
	0x3f,0x06,0x5b,0x4f,
	0x66,0x6d,0x7d,0x07,
	0x7f,0x6f,0x77,0x7c,
	0x39,0x5e,0x79,0x71,
	0x76,0x79,0x38,0x3f
};	//共阴数码管码表(0-F)
void delayms(unsigned int z)
{
	unsigned int x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}
void delaycnt(unsigned int cnt)
{
	while(--cnt);
}
void ioinit(void)
{
	;
}
unsigned char keyscan(void)
{	
	unsigned char keycode;
	unsigned char temp;
	P1=0xfe;
	temp=P1;
	temp=temp&0xf0;
	while(temp!=0xf0)
	{
		delayms(5);
		temp=P1;
		temp=temp&0xf0;
		while(temp!=0xf0)
		{
			temp=P1;
			switch(temp)
			{
				case 0xee:keycode=1;
					break;
				case 0xde:keycode=2;
					break;
				case 0xbe:keycode=3;
					break;
				case 0x7e:keycode=4;
					break;
			}
			while(temp!=0xf0)	//松手检测
			{
				temp=P1;
				temp=temp&0xf0;
			}
		}
	}

	P1=0xfd;
	temp=P1;
	temp=temp&0xf0;
	while(temp!=0xf0)
	{
		delayms(5);
		temp=P1;
		temp=temp&0xf0;
		while(temp!=0xf0)
		{
			temp=P1;
			switch(temp)
			{
				case 0xed:keycode=5;
					break;
				case 0xdd:keycode=6;
					break;
				case 0xbd:keycode=7;
					break;
				case 0x7d:keycode=8;
					break;
			}
			while(temp!=0xf0)	//松手检测
			{
				temp=P1;
				temp=temp&0xf0;
			}
		}
	}
	
	P1=0xfb;
	temp=P1;
	temp=temp&0xf0;
	while(temp!=0xf0)
	{
		delayms(5);
		temp=P1;
		temp=temp&0xf0;
		while(temp!=0xf0)
		{
			temp=P1;
			switch(temp)
			{
				case 0xeb:keycode=9;
					break;
				case 0xdb:keycode=10;
					break;
				case 0xbb:keycode=11;
					break;
				case 0x7b:keycode=12;
					break;
			}
			while(temp!=0xf0)	//松手检测
			{
				temp=P1;
				temp=temp&0xf0;
			}
		}
	}

	P1=0xf7;
	temp=P1;
	temp=temp&0xf0;
	while(temp!=0xf0)
	{
		delayms(5);
		temp=P1;
		temp=temp&0xf0;
		while(temp!=0xf0)
		{
			temp=P1;
			switch(temp)
			{
				case 0xe7:keycode=13;
					break;
				case 0xd7:keycode=14;
					break;
				case 0xb7:keycode=15;
					break;
				case 0x77:keycode=16;
					break;
			}
			while(temp!=0xf0)	//松手检测
			{
				temp=P1;
				temp=temp&0xf0;
			}
		}
	}
	
	return keycode;
}

⌨️ 快捷键说明

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