Red de conocimiento informático - Aprendizaje de código fuente - Programa inteligente para evitar obstáculos en vehículos~~~Urgente

Programa inteligente para evitar obstáculos en vehículos~~~Urgente

#includelt;reg52.hgt;

#define uchar unsigned char

#define uint unsigned int

sbit moto1=P1^ 5;

sbit moto2=P1^6;

sbit moto3=P2^0;

sbit moto4=P2^1

>bit en1=P1^7;

bit en2=P2^2;

///////////////

bit izquierdo1=P1^0; //

bit izquierdo2=P1^1;

bit izquierdo3=P1^2;

bit medio=P1^ 3; //

bit derecha1=P1^4;

bit derecha2=P2^3;

bit derecha3=P2^4; ////////////

sbit hled=P0^0;

sbit bled=P0^1;

sbit lled= P0^2;

sbit rled=P0^3;

sbit bizhang=P2^5;

uchar pro_head;

uchar pro_back;

uchar i;

uchar j; //indicadores de ciclo de trabajo delantero y trasero

retraso nulo (uint z)

{

uchar i;

while(z--)

{

for(i=0;ilt;121;i ) ;

}

}

void init()

{

TMOD=0x01;

TH0=(65536-100)/256;

TL0=(65536-100)6;

EA=1; = 1;

TR0=1

en1=1

en2=1; > tiempo vacío0(vacío) interrupción 1

{

i

j

if(ilt;=pro_back)

{

en1=1

}

más

{

en1= 0 ;

}

if(i==40)

{

en1=~en1;

i=0;

}

if(jlt;=pro_head)

{

en2=1;

}

más

{

en2=0;

}

si(j==40)

{

en2 =~en2;

j=0;

}

TH0=(65536-100)/256; 65536-100)6;

}

void qianjin()///////////////////////

{

pro_back=15;

pro_head=5;

moto1=0;

moto2=0; p> p>

moto3=1;

moto4=0;

lled=1; > sangrado =1;

}

void turn_right1()//

{

pro_back=10;

pro_head=15;

moto1=0;

moto2=1;

moto3=1;

moto2=1;p>

}

. . . . . . .

void xunji() //

{

uchar flag;

if((left1==0)amp;amp; (izquierda2==0)amp; (izquierda3==1)amp; (derecha3==0)amp; >

{

flag=1

}

else if((left1==0) amp;amp;(left2==0) amp;amp;(izquierda3==1)amp;amp;(mid==0)amp;amp;(derecha1==0)amp;amp;(derecha2==0) amp; )

{

flag=2

}

else if((left1 ==0)amp;amp;(left2 ==1)amp;amp;(izquierda3==1)amp;amp;(mid==0)amp;amp;(derecha1==0)amp;amp;(derecha2 ==0)amp;amp;(derecha3 ==0))

{

flag=3;

}

, . . . . . . . . . . . . .

cambiar (bandera)

{

caso 0: qianjin(); encabezado()

romper

caso 1: turn_left1(); leftled();

romper;

caso 2: turn_left2(); . . . . . . . . . . . . . .

romper; predeterminado: backled();

romper

}

}

void main()

{

init();

retraso(600);

jiance();

retraso(300);

p>

p>

mientras(1)

{

si(bizhang==1)

{

xunji();

}

más

bz(); ¡Complételo más tarde de acuerdo con su situación real!