Red de conocimiento informático - Conocimiento informático - Programa C para seguimiento de coches

Programa C para seguimiento de coches

# include & ltreg52.h & gt

#Definir carácter uchar sin signo

#Definir uint entero sin signo

sbit moto1=p1^5;

p>

sbit moto2=p1^6;

sbit moto3=p2^0;

sbit moto4=p2^1;

sbit en1= p1^7;

sbit en2=p2^2;

//*Siete sensores infrarrojos en el puerto de seguimiento*//////////

sbit izquierda1=p1^0; //*sensor izquierdo*//

sbit izquierda2=p1^1;

sbit izquierda3=p1^2;

p>

sbit mid=p1^3; //*posición de la línea negra*//

sbit right1=p1^4;

sbit right2=p2^3;

sbit right3=p2^4;//*Sensor a la derecha*///////////////////////////// /////////////////////////////////////////////////// /////////////////////////////////////////////////// /////////////////////////////////////////////////// /////////////////////////////////////////////////// ////

sbit bled=p0^1;

sbit lled=p0^2;

sbit rled=p0^3;

sbit bizhang=p2^5;

uchar pro _ cabeza

uchar pro _ espalda

Uchar I;

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

Retraso no válido (unidad z)

{

Uchar I;

while( z -)

{

for(I = 0;i<121;i++);

}

}

/* * * * * *Inicializar el temporizador e interrumpir* * * * * * * *

void inicialization()

{

TMOD = 0x 01;

TH0 =(65536-100)/256;

TL0 =(65536-100)% 256;

EA = 1;

ET0 = 1;

TR0 = 1;

en 1 = 1;

en2 = 1;

Hora no válida 0 (no válida) interrupción 1

{

i++;

j++;

if( i<=pro_back)

{

es 1 = 1;

}

Otro

{

es 1 = 0;

}

si (i==40)

{

es 1 = ~ en 1;

I = 0;

}

if(j & lt;=pro_head)

{

en2 = 1;

}

Otro

{

en2 = 0;

}

Si (j==40)

{

en2 = ~ en2

j = 0;

}

TH0 =(65536-100)/256;

TL0 =(65536-100)% 256;

}

Void qianjin()//*Sigue recto*///////////////

{

pro _ back = 15 ;

pro_cabeza = 5;

moto 1 = 0;

moto 2 = 0

moto 3 = 1; p>moto 4 = 0;

lled = 1;

rled = 1;

bled = 1; p>

Voidturn _ right1 ()/*función de giro a la derecha 1*//

{

pro _ back = 10

pro _ head; = 15;

moto 1 = 0;

moto 2 = 1;

moto 3 = 1; ;

}

. . . . . . .

Void xunji() //*Función de seguimiento*//

{

Banner Uqiar;

if((izquierda 1 = = 0)& amp; )& amp;& amp(derecha 2 = = 0)& amp;& amp(right3==0))

{

bandera = 1;

}

else if((izquierda 1 == 0)& amp;& amp(izquierda 2 == 0)& amp;& amp(izquierda 3 == 1)& amp;& amp(mid = = 0)& amp(right 1 = = 0)& amp;& amp(right 2 = = 0)& amp;& amp(right3==0))

{

flag = 2;

}

si no((izquierda 1 = = 0)& amp;& amp(izquierda 2 = = 1)& amp;& amp (izquierda 3 = = 1)& amp;& amp(media = = 0)& amp;& amp(derecha 1 == 0)& amp;& amp(derecha 2 == 0)& amp;& amp(right3== 0))

{

bandera = 3;

}

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

Cambiar (bandera)

{

Caso 0: adelante(); encabezado();

Interrupción;

Caso 1: turn_left 1(); led izquierdo();

Rotura;

Caso 2: turn_left 2(); led izquierdo();

,. .. . . . . . . . . . . . . Romper; Valor predeterminado: backled();

Romper

}

}

void main()

{

init();

Retraso(600);

Consejo();

Retraso(300); /p>

while(1)

{

If (Zhang Bi==1)

{

Mensaje impar ();

}

Otro

BZ();

}

},,, , "Omita el medio, debe escribirlo usted mismo".