📄 转弯.c
字号:
#include<reg51.h>
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
unsigned int i,j,k,l,m,x,y,z,yichu,dir,now=1,qian;
unsigned char th,tl;
void delay(void);
void timer0(void) interrupt 1
{yichu++;
if(yichu==1)
{yichu=0;
x++;
if(P1_3==0)
P1_3=1;
else
P1_3=0;
if(x%2==1)
{th=0xF4; //3ms
tl=0x48;
}
else
{th=0xE4; //7ms
tl=0xA8;
}
}
TH0=th;
TL0=tl;
}
main()
{unsigned char deng,jinru,jinru2=0,saomiao;
P1_0=0;
P1_1=0;
P1_2=0;
P1_3=0;
EA=1;
ET0=1;
TMOD=0x01;
TH0=0xF4; //2ms
TL0=0x48;
TR0=1;
P1_0=0;
P1_1=0;
for(;;) //000 000 00
{saomiao=P2&0x1C;
if(saomiao<0x1C)
break;
if(P2_0==0)
{P1_0=1;
P1_1=0;
delay();
break;
}
else if(P2_1==0)
{P1_0=0;
P1_1=1;
delay();
break;
}
}
for(;;)
{saomiao=P2&0x1C;
if(saomiao<0x1C)
{
break;
}
if(saomiao==0x1C)
{if(z==0)
{delay();
y++;
if(y==10)
{P1_0=!P1_0;
P1_1=!P1_1;
z=1;
}
}
else if(z==1)
delay();
continue;
}
}
for(;;)
{deng=P2&0x1C;
if(deng==0x1C) // 000 111 00
{qian=now;
now=1;
}
else if(deng==0x14)// 000 101 00
{qian=now;
now=2;
if(jinru2<=1)
jinru2=1;
if(jinru<=1)
jinru=1;
}
else if(deng==0x04)// 000 001 00
{qian=now;
now=3;
if(jinru<=1)
jinru=1;
}
else if(deng==0x0C)// 000 011 00
{qian=now;
now=4;
if(jinru<=1)
jinru=1;
}
else if(deng==0x10)// 000 100 00
{qian=now;
now=5;
if(jinru<=1)
jinru=1;
}
else if(deng==0x18)// 000 110 00
{qian=now;
now=6;
if(jinru<=1)
jinru=1;
}
else if(deng==0x00)// 000 000 00
{qian=now;
now=7;
if(jinru<=1)
jinru=1;
}
else if(deng==0x08)// 000 010 00
{qian=now;
now=8;
if(jinru<=1)
jinru=1;
}
if(now==1)
{if(qian==3||qian==4)
{P1_0=1;
P1_1=0;
delay();
}
else if(qian==5||qian==6)
{P1_0=0;
P1_1=1;
delay();
}
else
{;}
}
else if(now==2)
{if(qian==3||qian==5)
{if(jinru2==1)
{jinru2=2;}
else if(jinru2==2)
{P1_0=0;
P1_1=0;
delay();
}
}
else if(qian==2)
{;}
else
{P1_0=0;
P1_1=0;}
}
else if(now==3)
{if(qian==1)
{P1_0=0;
P1_1=1;
delay();
}
else if(qian==2)
{P1_0=1;
P1_1=0;
delay();
}
else if(qian==5||qian==6)
{P1_0=1;
P1_1=0;
delay();
}
else
{;}
}
else if(now==4)
{if(qian==1)
{if(jinru==1)
{P1_0=0;
P1_1=1;
delay();
jinru=2;
}
else if(jinru==2)
{P1_0=1;
P1_1=0;
delay();
}
}
else if(qian==2)
{P1_0=1;
P1_1=0;
delay();
}
else if(qian==3)
{P1_0=1;
P1_1=0;
delay();
}
else if(qian==5||qian==6)
{P1_0=1;
P1_1=0;
delay();
}
else if(qian==7)
{P1_0=1;
P1_1=0;
delay();}
else
{;}
}
else if(now==5)
{if(qian==1)
{P1_0=1;
P1_1=0;
delay();
}
else if(qian==2)
{P1_0=0;
P1_1=1;
delay();
}
else if(qian==3||qian==4)
{P1_0=0;
P1_1=1;
delay();
}
else
{;}
}
else if(now==6)
{if(qian==1)
{if(jinru==1)
{P1_0=1;
P1_1=0;
delay();
jinru=2;
}
else if(jinru==2)
{P1_0=0;
P1_1=1;
delay();
}
}
else if(qian==2)
{P1_0=0;
P1_1=1;
delay();
}
else if(qian==3||qian==4)
{P1_0=0;
P1_1=1;
delay();
}
else if(qian==5)
{P1_0=0;
P1_1=1;
delay();
}
else if(qian==7)
{P1_0=0;
P1_1=1;
delay();
}
else
{;}
}
else if(now==7)
{
{;}
}
else if(now==8)
{
{;}
}
}
}
void delay()
{unsigned int i,j;
for(i=0;i<50;i++)
for(j=0;j<120;j++)
;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -