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

📄 键盘控制1.c

📁 我写的矩阵按键模块
💻 C
字号:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
uint code tab[]={0,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x3f,0}; 
uint code tac[]={0,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};  
uchar a,b,c,d,num,r,w,s;
uchar yi,er,sa,si,wu;
void delay(uint z)
{
for(a=0;a<=110;a++)
for(b=0;b<z;b++);
}
void xianshi(uchar x,uchar y)
{
wela=1;
P0=tac[y];
wela=0;
dula=1;
P0=tab[x];
dula=0;
delay(1);
y=0;
}

jianpan()
{
P3=0xfe;
d=P3;
d=d&0xf0;
while(d!=0xf0)
	{delay(5);
	d=P3;
	d=d&0xf0;
	while(d!=0xf0)
	{
		d=P3;
	switch(d)
		{
		case 0x7e:c=1;b++;break;
		case 0xbe:c=2;b++;break;
		case 0xde:c=3;b++;break;
		case 0xee:c=4;b++;break;
		}
		while(b>0)
		{
		s++;
		/*switch(s)
	{
	case 1:yi=c;break;
	case 2:er=c;break;
	case 3:sa=c;break;
	case 4:si=c;break;
	case 5:wu=c;break;
	}*/
	b=0;
		}
	while(d!=0xf0)
		{
		d=P3;
		d=d&0xf0;
		}
	}

}

P3=0xfd;
d=P3;
d=d&0xf0;
while(d!=0xf0)
{
delay(5);
d=P3;
d=d&0xf0;
while(d!=0xf0)
{
d=P3;
switch(d)
{
case 0x7d:c=5;b++;break;
case 0xbd:c=6;b++;break;
case 0xdd:c=7;b++;break;
case 0xed:c=8;b++;break;
}
while(b>0)
{
s++;
b=0;
}
while(d!=0xf0)
{
d=P3;
d=d&0xf0;
}
}
}

P3=0xfb;
d=P3;
d=d&0xf0;
while(d!=0xf0)
{
delay(5);
d=P3;
d=d&0xf0;
while(d!=0xf0)
{
d=P3;
b++;
switch(d)
{
case 0x7b:c=9;b++;break;
case 0xbb:c=10;b++;break;
case 0xdb:c=11;b++;break;
case 0xeb:c=12;b++;break;
}
while(b>0)
{
s++;
b=0;
}
while(d!=0xf0)
{
d=P3;
d=d&0xf0;
}
}
}

P3=0xf7;
d=P3;
d=d&0xf0;
while(d!=0xf0)
{
delay(5);
d=P3;
d=d&0xf0;
while(d!=0xf0)
{
d=P3;
switch(d)
{
case 0x77:c=13;b++;break;
case 0xb7:c=14;b++;break;
case 0xd7:c=15;b++;break;
case 0xe7:c=16;b++;break;
}
while(b>0)
{
s++;
b=0;
}
while(d!=0xf0)
{
d=P3;
d=d&0xf0;
}
}
}
if(s==7)
s=1;
}

void main()
{
c=17; 
b=0;  
yi=0;
er=0;
sa=0;
si=0;
wu=0;
while(1)
{

jianpan();
xianshi(c,s);
}
}

⌨️ 快捷键说明

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