程序如下 :
#include <AT89X51.H>
unsigned char key,KTH0,KTL0;
sbit sp=P1^0;
unsigned int code tab[]={64021,64103,64260,64400,
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178};
void t0(void) interrupt 1 using 0
{
TH0=KTH0;
TL0=KTL0;
P1_0=~P1_0;
}
//??????
void ys()
{unsigned char aaa,bbb;
for(aaa=200;aaa>0;aaa--)
for(bbb=0;bbb<20;bbb++);
}
void main(void)
{key=0;TMOD=0X01;EA=1;ET0=1;
while(1)
{
P2=0x7f;
if(P2!=0x7f)
{
ys();
while(P2!=0x7f)
{
switch(P2)
{case 0x77:key=7;break;
case 0x7b:key=4;break;
case 0x7d:key=1;break;
case 0x7e:key=0;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
P2=0xbf;
if(P2!=0xbf)
{
ys();
if(P2!=0xbf)
{
switch(P2)
{case 0xb7:key=8;break;
case 0xbb:key=5;break;
case 0xbd:key=2;break;
case 0xbe:key=13;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
P2=0xdf;
if(P2!=0xdf)
{
ys();
if(P2!=0xdf)
{
switch(P2)
{case 0xd7:key=9;break;
case 0xdb:key=6;break;
case 0xdd:key=3;break;
case 0xde:key=14;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
P2=0xef;
if(P2!=0xef)
{
ys();
if(P2!=0xef)
{
switch(P2)
{case 0xe7:key=10;break;
case 0xeb:key=11;break;
case 0xed:key=12;break;
case 0xee:key=15;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
}
}
#include <AT89X51.H>
unsigned char key,KTH0,KTL0;
sbit sp=P1^0;
unsigned int code tab[]={64021,64103,64260,64400,
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178};
void t0(void) interrupt 1 using 0
{
TH0=KTH0;
TL0=KTL0;
P1_0=~P1_0;
}
//??????
void ys()
{unsigned char aaa,bbb;
for(aaa=200;aaa>0;aaa--)
for(bbb=0;bbb<20;bbb++);
}
void main(void)
{key=0;TMOD=0X01;EA=1;ET0=1;
while(1)
{
P2=0x7f;
if(P2!=0x7f)
{
ys();
while(P2!=0x7f)
{
switch(P2)
{case 0x77:key=7;break;
case 0x7b:key=4;break;
case 0x7d:key=1;break;
case 0x7e:key=0;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
P2=0xbf;
if(P2!=0xbf)
{
ys();
if(P2!=0xbf)
{
switch(P2)
{case 0xb7:key=8;break;
case 0xbb:key=5;break;
case 0xbd:key=2;break;
case 0xbe:key=13;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
P2=0xdf;
if(P2!=0xdf)
{
ys();
if(P2!=0xdf)
{
switch(P2)
{case 0xd7:key=9;break;
case 0xdb:key=6;break;
case 0xdd:key=3;break;
case 0xde:key=14;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
P2=0xef;
if(P2!=0xef)
{
ys();
if(P2!=0xef)
{
switch(P2)
{case 0xe7:key=10;break;
case 0xeb:key=11;break;
case 0xed:key=12;break;
case 0xee:key=15;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
}
}
#include <AT89X51.H>
unsigned char key,KTH0,KTL0;
sbit sp=P1^0;
unsigned int code tab[]={64021,64103,64260,64400,
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178};
void t0(void) interrupt 1 using 0
{
TH0=KTH0;
TL0=KTL0;
P1_0=~P1_0;
}
//??????
void ys()
{unsigned char aaa,bbb;
for(aaa=200;aaa>0;aaa--)
for(bbb=0;bbb<20;bbb++);
}
void main(void)
{key=0;TMOD=0X01;EA=1;ET0=1;
while(1)
{
P2=0x7f;
if(P2!=0x7f)
{
ys();
while(P2!=0x7f)
{
switch(P2)
{case 0x77:key=7;break;
case 0x7b:key=4;break;
case 0x7d:key=1;break;
case 0x7e:key=0;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
P2=0xbf;
if(P2!=0xbf)
{
ys();
if(P2!=0xbf)
{
switch(P2)
{case 0xb7:key=8;break;
case 0xbb:key=5;break;
case 0xbd:key=2;break;
case 0xbe:key=13;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
P2=0xdf;
if(P2!=0xdf)
{
ys();
if(P2!=0xdf)
{
switch(P2)
{case 0xd7:key=9;break;
case 0xdb:key=6;break;
case 0xdd:key=3;break;
case 0xde:key=14;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
P2=0xef;
if(P2!=0xef)
{
ys();
if(P2!=0xef)
{
switch(P2)
{case 0xe7:key=10;break;
case 0xeb:key=11;break;
case 0xed:key=12;break;
case 0xee:key=15;break;
}
P0=~key;
KTH0=tab[key]/256;
KTL0=tab[key]%256;
TR0=1;
}
}
}
}
|