⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 转弯.c

📁 本人学习单片机一年多时间厚参加全国电子设计大赛的程序以及赛前练习的程序。
💻 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 + -