关于键盘的几个程序.docx
《关于键盘的几个程序.docx》由会员分享,可在线阅读,更多相关《关于键盘的几个程序.docx(13页珍藏版)》请在冰豆网上搜索。
关于键盘的几个程序
关于键盘的几个程序
1、
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitwela=P2^7;
sbitdula=P2^6;
sbitled=P1^0;
sbitkey1=P3^4;
ucharnum=0;
ucharcodetable[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
voiddelay(uint);
voidmain()
{P3=0xff;
P0=0xfe;
wela=1;
wela=0;
while
(1)
{
if(key1==0)
delay(10);
if(key1==0)
{
led=0;
num++;
if(num==10)
num=0;
P0=table[num];
dula=1;
dula=0;
while(!
key1);
delay(10);
while(!
key1);
}
else
led=1;
//P0=table[num];
//dula=1;
//dula=0;
}
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
2、
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitwela=P2^7;
sbitdula=P2^6;
sbitkey1=P3^4;
sbitkey2=P3^5;
sbitkey3=P3^6;
sbitkey4=P3^7;
ucharcodetable[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
ucharcodewe[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
ucharshi,ge;
uintnum=0,num1;
voidDelay(uintt);
voiddisplay(uintnumdis);
voidkeyscan();
voidinti();
voidmain()
{inti();
while
(1)
{
display(num);
keyscan();
}
}
voiddisplay(uintnumdis)
{
shi=numdis/10;
ge=numdis%10;
P0=table[shi];
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
Delay(200);
P0=table[ge];
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
Delay(200);
}
voidinti()
{TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TMOD=1;
EA=1;
ET0=1;
}
voidkeyscan()
{
if(key1==0)
{
Delay(2000);
if(key1==0)
{
num++;
if(num==60)
num=0;
while(!
key1);
}
}
if(key2==0)
{
Delay(2000);
if(key2==0)
{
if(num==0)
num=60;
while(!
key2);
num--;
}
}
if(key3==0)
{
Delay(2000);
if(key3==0)
{
num=0;
while(!
key3);
}
}
if(key4==0)
{
Delay(2000);
if(key4==0)
{
while(!
key4);
TR0=~TR0;
}
}
}
voidDelay(uintt)
{
while(--t);
}
voidT0_time()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num1++;
if(num1==20)
{
num1=0;
num++;
if(num==60)
num=0;
}
}
3、
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitwela=P2^7;
sbitdula=P2^6;
ucharcodetable[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchari;
voiddelay(uint);
voiddisplay(uchari)
{
P0=table[i];
dula=1;
dula=0;
}
voidkeyscan()
{
ucharkey,temp;
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xee:
key=0;
break;
case0xde:
key=1;
break;
case0xbe:
key=2;
break;
case0x7e:
key=3;
break;
}
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
display(key);
}
}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xed:
key=4;
break;
case0xdd:
key=5;
break;
case0xbd:
key=6;
break;
case0x7d:
key=7;
break;
}
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
display(key);
}
}
P3=0xfb;
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xeb:
key=8;
break;
case0xdb:
key=9;
break;
case0xbb:
key=10;
break;
case0x7b:
key=11;
break;
}
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
display(key);
}
}
P3=0xf7;
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xe7:
key=12;
break;
case0xd7:
key=13;
break;
case0xb7:
key=14;
break;
case0x77:
key=15;
break;
}
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
display(key);
}
}
}
voidmain()
{
P0=0;
dula=1;
dula=0;
P1=0xc0;
wela=1;
wela=0;
while
(1)
{
keyscan();
}
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}