4-4动态扫描.txt

来自「4*4键盘扫描程序」· 文本 代码 · 共 139 行

TXT
139
字号
/*--------------------------------------------------------------------------------
									 低4位控制列,
									 高4位控制行,
									 键位:
									 1	2	3	A
									 4	5	6	B
									 7	8	9	C
									 0	H	L	D





----------------------------------------------------------------------------------*/


#include <AT89X51.h>
char tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x89,0xc7};

void display(char k)
{
	P0=tab[k];
	P1=0x10;
}

void delay(char t)
{
	char a;						  
	for(;t>0;t--)
	for(a=0;a<125;a++)
	{;}												  
}
void keyscan()
{
	    char temp,key;
	    P2=0xef;
		temp=P2;
		temp&=0xf;
		if(temp!=0xf)
		{
			delay(10);
			temp=P2;
			temp&=0xf;
			if(temp!=0xf)
					{
						temp=P2;
						temp&=0xf;
						switch(temp)
						{
							case 0xE:key=1;break;
							case 0xD:key=4;break;
							case 0xb:key=7;break;
							case 0x7:key=0;break;
						}	
					 display(key);
					 }}
			P2=0xdf;
		temp=P2;
		temp&=0xf;
		if(temp!=0xf)
		{
			delay(10);
			temp=P2;
			temp&=0xf;
			if(temp!=0xf)
			{
				temp=P2;
				temp&=0xf;
				switch(temp)
				{
					case 0xE:key=2;break;
					case 0xD:key=5;break;
					case 0xb:key=8;break;
					case 0x7:key=14;break;
				}	
			display(key);
			}}
          P2=0xbf;
		temp=P2;
		temp&=0xf;
		if(temp!=0xf)
		{
			delay(10);
			temp=P2;
			temp&=0xf;
			if(temp!=0xf)
			{
				temp=P2;
				temp&=0xf;
				switch(temp)
				{
					case 0xE:key=3;break;
					case 0xD:key=6;break;
					case 0xb:key=9;break;
					case 0x7:key=15;break;
				}	
			display(key);
			}
			
		}	
		 P2=0x7f;
		temp=P2;
		temp&=0xf;
		if(temp!=0xf)
		{
			delay(10);
			temp=P2;
			temp&=0xf;
			if(temp!=0xf)
			{
				temp=P2;
				temp&=0xf;
				switch(temp)
				{
					case 0xE:key=10;break;
					case 0xD:key=11;break;
					case 0xb:key=12;break;
					case 0x7:key=13;break;
				}	
			display(key);
			
		}
	}
}			  
	
	
	
		

 void main()
 {
 	while(1)
	{
 keyscan();
		
	}

 }

⌨️ 快捷键说明

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