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

📄 dianjizhongduan.c

📁 小车控制 传感器检测障碍物
💻 C
字号:
#include <reg51.h>
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P24=P2^4;
sbit P25=P2^5;
void dongji();
void delay(unsigned long i);
void timer0_(void);
unsigned int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0;
//~~~~~~~~~~~~~~~~~~~~~~延时子函数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void delay(unsigned long i)
{
	while(i--);
}
//~~~~~~~~~~~~~~~~~~~~~~延时子函数end ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~主函数~~~~~~~~~~~~~~~~~~~~~~
void main()
{     
	EA = 1;         //开总中断
	ET0=1;	
	TMOD = 0x1;       //定时器工作方式1
	TL0 = 0xF0;
	TH0 = 0xD8;     //定时器赋予初值12MHz/10ms
	TR0 = 1;        //启动定时器
	P11=1;
	P14=1;
	P15=1;
	P10=1;        
	P12=1;
	P13=0;
	P23=0;
	P24=0;
	P25=0;
	delay(25000);
	 while(1)
		{
		dongji();
		}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~主函数end~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~定时中断开始~~~~~~~~~~
void timer0_(void) interrupt 1 using 1
{
	
	P23=!P23;
	P24=!P24;
	P25=!P25;
	TL0 = 0xF0;
	TH0 = 0xD8;


}

//~~~~~~~~~~~~定时中断结束~~~~~~~~~
//~~~~~~~~~~~~动机驱动函数~~~~~~~~~~
void dongji()
{
      if(P23==1&P24==1&P25==1)
      	{
      	}
      else if(P23==0&P24==0&P25==0)
      {
      if(P22==0&P21==1&P20==1)    //右转
	 {
	      for(b=0;b<2;b++)
		{
		P11=1;
		P14=1;
		P15=0;
		P10=1;
		P12=1;
		P13=0;
		delay(7);
		P11=1;
	       P14=1;
	       P15=0;
	       P10=0;
	      delay(5);
		}
	       P11=1;
	       P14=1;
	       P15=0;
		P10=1;
		P12=1;
		P13=0;
		delay(5);
      	}
	 if(P22==0&P21==0&P20==1)     //中右转
	 {
	 	P11=1;
	       P14=1;
	       P15=0;
		P10=1;
		P12=0;
		P13=1;
		delay(10);
 	 for(c=0;c<2;c++)
		{
		P11=1;
		P14=1;
		P15=0;
		P10=1;
		P12=1;
		P13=0;
		delay(7);
		P11=1;
	       P14=1;
	       P15=0;
	       P10=0;
	      delay(5);
		}
		P11=1;
	       P14=1;
	       P15=0;
		P10=1;
		P12=1;
		P13=0;
		delay(5);
      	}
	if(P22==1&P21==0&P20==1)    //中右转
	 {   	P11=1;
	       P14=1;
	       P15=0;
		P10=1;
		P12=0;
		P13=1;
		delay(10);
	   for(d=0;d<2;d++)
		{
		P11=1;
		P14=1;
		P15=0;
		P10=1;
		P12=1;
		P13=0;
		delay(7);
		P11=1;
	       P14=1;
	       P15=0;
	       P10=0;
	      delay(5);
		}
	   	P11=1;
	       P14=1;
	       P15=0;
		P10=1;
		P12=1;
		P13=0;
		delay(5);
 }
	if(P22==0&P21==0&P20==0)    //中右转
	 {
	 	P11=1;
	       P14=1;
	       P15=0;
		P10=1;
		P12=0;
		P13=1;
		delay(10);
	   for(e=0;e<25;e++)
		{
		P11=1;
		P14=1;
		P15=0;
		P10=1;
		P12=1;
		P13=0;
		delay(7);
		P11=1;
	       P14=1;
	       P15=0;
	       P10=0;
	      delay(5);
		}
	   	 P11=1;
	       P14=1;
	       P15=0;
		P10=1;
		P12=1;
		P13=0;
		delay(5);
	 }
	if(P22==1&P21==0&P20==0)  //左转
	 {
	 	P11=1;
	       P14=0;
	       P15=1;
		P10=1;
		P12=0;
		P13=1;
		delay(10);
	  	for(f=0;f<25;f++)
		{
		P11=1;
		P14=0;
		P15=1;
		P10=1;
		P12=1;
		P13=0;
		delay(7);
		P11=1;
	       P14=0;
	       P15=1;
	       P10=0;
	      delay(5);
		}
		 P11=1;
	       P14=0;
	       P15=1;
		P10=1;
		P12=1;
		P13=0;
		delay(5);
	 }
	if(P22==1&P21==1&P20==0)  //左转
	 {
	 for(g=0;g<25;g++)
	     {P11=1;
		P14=0;
		P15=1;
		P10=1;
		P12=1;
		P13=0;
		delay(7);
		P11=1;
	       P14=0;
	       P15=1;
	       P10=0;
	      delay(5);
		}
	 	P11=1;
	       P14=0;
	       P15=1;
		P10=1;
		P12=1;
		P13=0;
		delay(5);
	 }
	if(P22==0&P21==1&P20==0) //中进
	{
		P11=1;
		P14=1;
		P15=1;
		P10=1; 
		P12=1;
		P13=0;
		delay(8);
		P11=1;
		P14=1;
		P15=1;
		P10=0;
		delay(5);
	}
	if(P22==1&P21==1&P20==1) //中进
	{

		P11=1;
		P14=1;
		P15=1;
		P10=1;
		P12=1;
		P13=0;
		delay(8);
		P11=1;
		P14=1;
		P15=1;
		P10=0;
		delay(5);
	 }
	}
}
//~~~~~~~~~~~~动机驱动函数end~~~~~~~



















































⌨️ 快捷键说明

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