新手入门
- 积分
- 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;
}
|
|