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

📄 key.c

📁 c8051f020+ad9852+12864+键盘(频率合成)贝一特电子
💻 C
字号:
#include<main.h>

unsigned char k;
		   
unsigned char Getkey()
{   
    P7=0xFE;
    if(P7==0xEE)return 1;
	if(P7==0xDE)return 2;
	if(P7==0xBE)return 3;
	//if(P7==0x7E)return 10;
	P7=0xFD;
    if(P7==0xED)return 4;
	if(P7==0xDD)return 5;
	if(P7==0xBD)return 6;
	//if(P7==0x7D)return 11;
	P7=0xFB;
    if(P7==0xEB)return 7;
	if(P7==0xDB)return 8;
	if(P7==0xBB)return 9;
	//if(P7==0x7B)return 12;
	P7=0xF7;
    //if(P7==0xE7)return 13;
	if(P7==0xD7)return 0;
	//if(P7==0xB7)return 15;
	//if(P7==0x77)return 16;
	return 0;
}

void key_delay(void)  		 //延时
{
	int t;
	for(t=0;t<2500;t++);
}
/*******************************键盘扫描************************************/

void keyscan(void)	                      //键盘扫描函数
{
	unsigned char a;					
	P7 = 0xf0;				              //键盘初始化
	if(P7!=0xf0)			              //有键按下?
	{
		key_delay();		              //延时
		if(P7!=0xf0)		              //确认真的有键按下?
		{
			P7 = 0xfe;		              //使行线P2.4为低电平,其余行为高电平
			key_delay();
			a = P7;			              //a作为缓存
			switch (a)		              //开始执行行列扫描
			{
				//case 0xee:k=15;break;
				//case 0xde:k=11;break;
				case 0xbe:k=7;break;
				case 0x7e:k=3;break;
				default:P7 = 0xfd;	      //使行线P2.5为低电平,其余行为高电平

				a = P7;
				switch (a)
				{
					//case 0xed:k=14;break;
					//case 0xdd:k=10;break;
					case 0xbd:k=6;break;
					case 0x7d:k=2;break;
					default:P7 = 0xfb;	   //使行线P2.6为低电平,其余行为高电平

					a = P7;
					switch (a)
					{				
						//case 0xeb:k=13;break;
						case 0xdb:k=9;break;
						case 0xbb:k=5;break;
						case 0x7b:k=1;break;
						default:P7 = 0xf7;	  //使行线P2.7为低电平,其余行为高电平

						a = P7;
						switch (a)
						{
							//case 0xe7:k=12;break;
							case 0xd7:k=8;break;
							case 0xb7:k=4;break;
							case 0x77:k=0;break;
							default:break;	   			   			        
						}
					}
				}
				break;
			}
		}
	}
}

⌨️ 快捷键说明

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