📄 键盘控制1.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 + -