新手入门 
 
	- 积分
 - 2
 
        - 金钱
 - 2 
 
       - 注册时间
 - 2018-11-16
 
      - 在线时间
 - 0 小时
 
 
 
 | 
 
 
发表于 2018-11-16 08:54:08
|
显示全部楼层
 
 
 
修改后的参考 
  发: 
#include<reg52.h> 
#define u8 unsigned char 
#define u16 unsigned int 
sbit r1=P3^3; 
sbit c1=P3^4; 
sbit c2=P3^5; 
sbit c3=P3^6; 
sbit c4=P3^7; 
 
void delayms (u8 xms) 
{ 
u8 i,j; 
for(i=xms;i>0;i--) 
for(j=110;j>0;j--); 
} 
 
void send(u8 x) 
{ 
SBUF=x; 
while(!TI); 
TI=0; 
} 
void keyscan() 
{ 
u8 a; 
if(c1==0) 
{ 
 
delayms(10); 
if(c1==0) 
{ 
a=1; 
while(!c1)P1=0; 
send(a); 
P1=0xff; 
a=0; 
} 
} 
if(c2==0) 
{ 
 
delayms(10); 
if(c2==0) 
{ 
a=2; 
while(!c2); 
send(a); 
a=0; 
} 
} 
if(c3==0) 
{ 
 
delayms(10); 
if(c3==0) 
{a=3; 
while(!c3); 
send(a); 
a=0; 
} 
} 
  if(c4==0) 
{ 
 
delayms(10); 
if(c4==0) 
{a=4; 
while(!c4); 
send(a); 
a=0; 
} 
} 
} 
void main() 
{ 
r1=0; 
c1=1; 
c2=1; 
c3=1; 
c4=1; 
 
 
 
 
TMOD=0x20; 
TH1=0xfd; 
TL1=0xfd; 
SCON=0x50; 
TR1=1; 
//REN=1; 
//SM0=0; 
//SM1=1; 
//EA=1; 
//ES=1; 
while(1) 
{ 
keyscan(); 
} 
} 
 
 
收: 
 
#include<reg52.h> 
#define u8 unsigned char 
#define u16 unsigned int 
sbit led1=P1^0; 
sbit led2=P1^1; 
sbit led3=P1^2; 
sbit led4=P1^3; 
u8 a; 
void ledscan() 
{ 
 
if(a==1) 
{ 
led1=~led1; 
a=0; 
} 
 
if(a==2) 
{ 
led2=~led2; 
a=0; 
} 
 
  if(a==3) 
{ 
led3=~led3; 
a=0; 
} 
if(a==4) 
{ 
led4=~led4; 
a=0; 
} 
} 
 
 
 
 
 
void main() 
{ 
TMOD=0x20; 
TH1=0xfd; 
TL1=0xfd; 
TR1=1; 
SCON=0x50; 
REN=1; 
 
//SM0=0; 
//SM1=1; 
EA=1; 
ES=1; 
while(1); 
 
} 
 
 
 
void ser() interrupt 4 
{ 
 
ES=0; 
RI=0; 
a=SBUF; 
ledscan(); 
ES=1; 
} 
 |   
 
 
 
 |