#include<AT89X52.h>
#define uint unsigned int
#define uchar unsigned char
sbit Trig=P3^2;
sbit Echo=P3^4;
sbit s1=P1^4;
sbit s2=P1^5;
sbit s3=P1^6;
sbit s4=P1^7;
sbit dianji01=P0^0;
sbit dianji02=P0^1;
sbit dianji03=P0^2;
sbit dianji04=P0^3;
sbit ENA=P0^4;
sbit ENB=P0^5;
int S=0,c,N;
int pwm1=16,pwm2=16;
int flag;
void delay(uint i)
{
uchar j;
while(i--)
for(j=0;j<120;j++);
}
void keyscan01()
{
if(s1==0)
{
delay(50);
if(s1==0)
{
if(pwm1<32)
{
pwm1++;
}
}
}
if(s2==0)
{
delay(50);
if(s2==0)
{
if(pwm1>1)
{
pwm1--;
}
}
}
if(pwm1>flag)
{
dianji01=1;
}
else
{
dianji01=0;
}
}
void keyscan02()
{
if(s3==0)
{
delay(50);
if(s3==0)
{
if(pwm2<32)
{
pwm2++;
}
}
}
if(s4==0)
{
delay(50);
if(s4==0)
{
if(pwm2>1)
{
pwm2--;
}
}
}
if(flag<pwm2)
{
dianji02=1;
}
else
{
dianji02=0;
}
}
void init()
{
// ET0=1;
ET1=1;
EA=1;
TH1=0XFE;
TL1=0X00;
TR1=1;
}
void main()
{
int i=4;
int Time,time;
int LED[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
ENA=1;
ENB=1;
dianji01=1;
dianji02=0;
dianji03=1;
dianji04=0;
TMOD&=0xF0;
TMOD|=0x01;
TMOD=0X01;
init();
while(1)
{
Trig=1;
i=10;
while(i--);
Trig=0;
TH0=0;
TL0=0;
time=0;
while(Echo==0&&(time++<50000));
TR0=1;
time=0;
while(Echo==1&&(time++<50000));
TR0=0;
Time=TH0*256+TL0;
S=Time/58;
if(S>5&&S<20)
{
dianji01=0;
delay(50);
if(S>5&&S<20)
dianji01=0;
delay(50);
dianji01=1;
}
}
keyscan01();
keyscan02();
}
void interrupr() interrupt 3
{
TR1=0;
TH1=0XFE;
TL1=0X00;
TR1=1;
flag++;
if(flag>32)
{
flag=0;
}
}
|