甲:
#include
#define uchar unsigned char
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
void delay(uchar a)
{
uchar i;
while(1--)for(i=0;i<120;i++);
}
void uart() interrupt 1
{
if(RI)
{
RI=0;
P0=SBUF;
}
if(TI)TI=0;
}
main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
ES=1;
EA=1;
while(1)
{
if(k1==0)
{
delay(10);
if(k1==0)
{
while(k1==0);
SBUF=0x01;
while(TI==0);
}
}
if(k2==0)
{
delay(10);
if(k2==0)
{
while(k2==0);
SBUF=0x02;
while(TI==0);
}
}
if(k3==0)
{
delay(10);
if(k3==0)
{
while(k3==0);
SBUF=0x03;
while(TI==0);
}
}
}
}
乙:
#include
#define uchar unsigned char
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit key=P3^2;
uchar sdat,rdat;
bit flag=0;
void delay(uchar a)
{
uchar i;
while(1--)for(i=0;i<120;i++);
}
void uart() interrupt 1
{
if(RI)
{
RI=0;
rdat=SBUF;
flag=1;
}
if(TI)TI=0;
}
main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
ES=1;
EA=1;
while(1)
{
if(flag)
{
flag=0;
switch(rdat)
{
case 1:led1=0;led2=1;break;
case 2:led1=1;led2=0;break;
case 3:led1=0;led2=0;break;
default:led1=1;led2=1;break;
}
}
if(key==0)
{
delay(10);
if(key==0)
{
while(key==0);
sdat++;
SBUF=sdat;
while(TI==0);
}
}
}
}