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

📄 ji.c

📁 常用经典小车程序常用经典小车程序常用经典小车程序
💻 C
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit t1 = P3^0;
sbit t2 = P3^1;
sbit a1 = P1^0;
sbit a2 = P1^1;
sbit a3 = P1^2;
sbit a4 = P1^3;

sbit a10 = P2^0;		  // 避 障 
sbit a11 = P2^1;
sbit a12 = P2^2;	  

sbit a13 = P2^3;		 // 寻 光 
sbit a14 = P2^4;
sbit a15 = P2^5;

sbit M= P3^6;		  	//   寻 黑 线    
sbit L= P3^7;
sbit R= P3^5;

uint SpeedA=40;
uint SpeedB=40;
uint m0=0;
uint m1=0; 

void FX(uint f){
    switch(f)
	{
		case 0: a1 = 0;a2 = 0;a3 = 0;a4 = 0; break;	 		//停 车 
		case 1: a1 = 1;a2 = 0;a3 = 1;a4 = 0; break;	 		//前 进 
		case 2: a1 = 0;a2 = 1;a3 = 0;a4 = 1; break;			//倒 退 
		case 3: a1 = 0;a2 = 1;a3 = 1;a4 = 0; break;		    //右 转 
		case 4: a1 = 1;a2 = 0;a3 = 0;a4 = 1; break;			//左 转 
	}
}

void delay(uint z) 
{
	uint x,y;
	for(x=z;x>0;x--)
	for(y=125;y>0;y--);
}
	   
void main(void)
{
	delay(1000);
	delay(1000);
	TH0 = 0x86;
	TL0 = 0xE8;
	TH1 = 0x86;
	TL1 = 0xE8;
	TMOD = 0x11;
	TR0 = 1;
	TR1 = 1;
	ET0 = 1;
	ET1 = 1;
	EA  = 1;	
    FX(0);
	while(1)
	{

		if( M==0)					//寻黑线 
		{						
			FX(1);		
		} 			
		else if(L==0)  
		{
			FX(4);
		}	
	   	 else if(R==0)  
		{
			FX(3);
		}
		
			
	 	if(a11==0)						//避 障 
	 	{						   
			delay(200);	 
			if(a11==0)
			{
				delay(200);	  
			 	FX(0); 
				if(a11==0 && a10==1 && a12==1)
				{	    
					FX(0); 
					delay(1000);
					FX(2);
					delay(400);
					FX(0);	   	
					delay(1000);
					FX(3);
					delay(800); 
				}	
			} 
		}
		  
	  	if( a11==0&&a12==0 )	
		{   
			delay(200);
			if( a11==0&&a12==0 )	
			{   
				FX(0); 
				delay(1000);
				FX(2) ;
				delay(400);
				FX(0) ;	   	
				delay(1000);
				FX(3);
				delay(800);
			} 
		}
			
		if( a10==0 && a11==0 ) 
		{
			delay(200);
			if( a10==0 && a11==0 )
			{
				FX(0); 
				delay(1000);
				FX(2) ;
				delay(400);
				FX(0) ;	   	
				delay(1000);
				FX(4);  
				delay(800);
			 }	
		}
	  

		if(a14==0 && a13==1&& a15==1) 	                     //寻 光 
		{		
		 	FX(1);
		}
		else if(a13==0)	
		{
		 	FX(3); 
			if(a14==0)
			{
				FX(1);
			}
		}
		else if(a15==0)	
		{	 
		 	FX(4);
			if(a14==0)
			{
				FX(1);
			}
		}  	 

		else
		{
			FX(1);
		}
	}
}  	
	   

 

void time0_int() interrupt 1 using 1
{
	TR0=0;				
	TH0=0x86;
	TL0=0xE8;
	m1=m1 + 1;						 
	if(m1< SpeedA)
	{
		t1 = 1;
	}
	else 
		t1 = 0;
	if(m1== 40)
	{
		m1=0;
	}
	TR0 = 1;
}

void time1_int() interrupt 3 using 1
{
	TR1=0;
	TH1=0x86;
	TL1=0xE8;
	m0=m0 + 1;
	if(m0 < SpeedB)
	{
		t2=1;
	}
	else t2 = 0;
	if(m0 == 40)
	{
		m0=0;
	}
	TR1 = 1;
}

void int0() interrupt 0 using 1
{
	ET0 = 1;
}	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -