##include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit d2=P1^0;
sbit d3=P1^1;
sbit d4=P1^2;
sbit d5=P1^3;
sbit S2=P3^4;
sbit S3=P3^5;
sbit S4=P3^6;
sbit S5=P3^7;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init_ser()
{
TMOD=0X20;//定时器1工作在方式2
TH1=0XFD;
TL1=0XFD; //波特率9600
TR1=1; //启动T1
EA=1; //开总中断
SM0=0;
SM1=1; //串口工作方式一
REN=1;//允许串口接收
ES=1;//开串口 中断
}
void com_send(uchar m)
{
ES=0;
SBUF=m;
while(!TI);
TI=0;
ES=1;
}
void key()
{
uchar i=0,j=0;
i=S2;
if(i==0)
{
delay(30);
j=S2;
if(j==i)
{
while(i==0)
{
delay(10);
i=S2;
}
com_send(0xaa);
d2=0;
delay(200);
d2=1;
}
}
else
d2=1;
i=S3;
if(i==0)
{
delay(30);
j=S3;
if(j==i)
{
while(i==0)
{
delay(10);
i=S3;
}
com_send(0xbb);
d3=0;
delay(200);
d3=1;
}
}
i=S4;
if(i==0)
{
delay(30);
j=S4;
if(j==i)
{
while(i==0)
{
delay(10);
i=S4;
}
com_send(0xcc);
d4=0;
delay(200);
d4=1;
}
}
i=S5;
if(i==0)
{
delay(30);
j=S5;
if(j==i)
{
while(i==0)
{
delay(10);
i=S5;
}
com_send(0xdd);
d5=0;
delay(200);
d5=1;
}
}
}
void main()
{
init_ser();
P3=0xff;
while(1)
{
key();
}
}
delay(1000);
com_send("dd");
}
- 1
- 2
- 3
- 4
前往页