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

📄 key.c

📁 51的键盘扫描程序,与原来的扫描方式不同,这种方式可以处理多键同时按下.
💻 C
字号:
// 键盘程序 4X4方式
// author:wacke
// date :2005/7/15

#include "key.h"

uchar kbscan(void)            //扫描当前键盘情况
{
	uchar key,temp;
    P1=0xf0;
    if(P1!=0xf0)
    {
		delay(1);
		temp = P1;				
        if(temp!=0xf0)
        {
			temp = temp|0x0f;
			P1 = temp;
			delay(5);
			key = P1;	
			if(key != temp)
				return key;
			else
				return 0;
        }            
    }
	return 0;
} 

uchar GetKey(void)			//获得一个按键
{
	uchar key;
	do{
	key = kbscan();
	}while(!key);
	switch(key)
	{
		case 0x77:
			key = '0';
			break;
		case 0x7b:
			key = '7';
			break;
		case 0x7d:
			key = '4';
			break;
		case 0x7e:
			key = '1';
			break;

		case 0xb7:
			key = 'L';
			break;
		case 0xbb:
			key = '8';
			break;
		case 0xbd:
			key = '5';
			break;
	    case 0xbe:
			key = '2';
			break;

		case 0xd7:
			key = 'R';
			break;
		case 0xdb:
			key = '9';
			break;
		case 0xdd:
			key = '6';
			break;
	    case 0xde:
			key = '3';
			break;

		case 0xe7:
			key = 'C';
			break;
		case 0xeb:
			key = 'D';
			break;
		case 0xed:
			key = 'U';
			break;
	    case 0xee:
			key = 'E';
			break;
		default:
			key = '-';
			break;
	}
	return key;
}

void WaitKeyUp(void)			//等待所有键都被放开
{
	uchar key;
	do{
	key = kbscan();
	}while(key);	
}

void delay(uchar time)			//内部用,延时程序
{
      uchar i,j;
      for(i = 0; i < time; i++)
      for(j = 0; j < 0xff; j++);
}

⌨️ 快捷键说明

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