📄 ceju.c
字号:
#include </atmel/at89x51.h>
unsigned char i,zflag;
void delay(unsigned int times)
{
unsigned int j;
for(j=0;j<=times;j++){;}
}
void mdelay(unsigned int times)
{
unsigned int i,j;
for(i=0;i<=times;i++)
{
for(j=0;j<=111;j++){;}
}
}
void init_distance(void)
{
TR0=0;EA=0;EX0=0;P0_0=0;P0_1=0;P0_2=0;
TH0=0x00;TL0=0x00;TMOD=0x21;
IT0=0;
TR0=1;
}
void init_uart(void)
{
TMOD=0x21;
TH1=0xe8;
PCON=0X00;
SCON=0x50;
TR1=1;
}
void close_uart(void)
{
TR1=0;
TMOD=0x21;
SCON=0x00;
}
void int0(void) interrupt 0 using 1
{ unsigned char distance;
EA=0;EX0=0;
TR0=0;
init_uart();
distance=(TH0*256+TL0)*0.0187;
switch(zflag)
{
case 0:
{
SBUF='^';while(TI==0);TI=0;
}break;
case 1:
{
if((distance>5)&&(distance<50)){
SBUF='l';while(TI==0);TI=0;
delay(100);
SBUF='=';while(TI==0);TI=0;
delay(100);
SBUF=distance/10+0x30;
while(TI==0);TI=0;
delay(100);
SBUF=distance%10+0x30;
while(TI==0);TI=0;}
}break;
case 2:
{
if((distance>5)&&(distance<50)){
SBUF='r';while(TI==0);TI=0;
delay(100);
SBUF='=';while(TI==0);TI=0;
delay(100);
SBUF=distance/10+0x30;
while(TI==0);TI=0;
delay(100);
SBUF=distance%10+0x30;
while(TI==0);TI=0;}
}break;
}
close_uart();
i=20;
}
void shot(unsigned char flag)
{
switch(flag)
{
case 0://左侧超声波
{
zflag=0;
for(i=0;i<30;i++)
{
init_distance();
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=0;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=1;
P0_0=0;
delay(15);
EA=1;
EX0=1;
}
}break;
case 1://前侧超声波
{
zflag=1;
for(i=0;i<20;i++)
{
init_distance();
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=0;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P0_1=1;
P1_1=0;
delay(15);
EA=1;
EA=1;
EX0=1;
EX0=1;
delay(300);
}
}break;
case 2://右侧超声波
{
zflag=2;
for(i=0;i<20;i++)
{
init_distance();
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=0;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=1;
P0_2=0;
delay(15);
EA=1;
EX0=1;
delay(300);
}
}break;
}
}
void main(void)
{while(1){
shot(0);
mdelay(1000);
shot(1);
mdelay(1000);
shot(2);
mdelay(1000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -