Red de conocimientos turísticos - Información de alquiler - Código de máquina paso a paso y descripción controlados por microcontrolador

Código de máquina paso a paso y descripción controlados por microcontrolador

# include & ltreg 51 . h & gt; // Archivo de encabezado de definición de pin de 51 chips

# include & ltintrins.h & gt//Función de retardo incluida internamente _ nop _(); p>#Definir carácter uchar sin signo

#Definir uint entero sin signo

código uchar FFW[8]={0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08, 0x 09 }; //Codificación directa de cuatro fases y ocho tiempos

uchar code REV[8]={0x09, 0x08, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x 01} /// /Four -Codificación de inversión de ocho tiempos

sbit k 1 = p3^2; //Girar hacia adelante

sbit k2 = p3^3 //Revertir

sbit k3 = p3^4; //Detener

sbit pitido = p3^6; //Zumbador

/************ *** ********************************************/

/*

/*Retraso t milisegundos

/* Reloj de 11,0592 MHz, retraso de aproximadamente 1 ms.

/*

/********************************* *** *************************/

Retraso no válido

{

uint k ;

mientras(t -)

{

for(k = 0;k & lt125;k++)

{ }

}

}

/************************ ****** *******************************/

retraso nuloB(uchar x )//x * 0.14 ms

{

Uchar I;

mientras(x -)

{

para( I = 0;i<13;i++)

{ }

}

}

/***** ** ************************************************* *** */

Bip no válido()

{

Uchar I;

for(I = 0; i & lt100 ;i++)

{

retrasoB(4);

Bip=! Beep; //Beep invertido

}

Beep = 1; //Apaga el timbre

}

/ *** ********************************************** ** ****/

/*

/*El motor paso a paso gira hacia adelante

/*

/*** *** ********************************************** ** */

void motor_ffw()

{

Uchar I;

uint j;

for( j = 0; j & lt8;J++) //Gira 1*n círculos

{

If (K3==0)

{ break}/ /Salir de este programa de bucle

for(I = 0;I<8;I++) //Gira 45 grados en un ciclo.

{

p 1 = FFW[I]; //Obtener datos

Retraso(2); //Ajustar velocidad

}

}

}

/*************************** *** *******************************/

/*

/* Rotación inversa del motor paso a paso

/*

/*************************** **** *****************************/

Motor_rev() no válido

{

Uchar I;

uint j;

for(j = 0; j & lt8;J++) //Número de vueltas 1×n gira

{

If (K3==0)

{ break}//Salir de este programa de bucle

for(I = 0 ;I<8;I++) //Gira 45 grados en un ciclo.

{

p 1 = REV[I]; //Obtener datos

Retraso(2); //Ajustar velocidad

}

}

}

/*************************** *** *******************************

*

*Programa principal

*

************************************ ******* **********************/

principal()

{

uchar r, N = 64//N número de ciclos de funcionamiento del motor paso a paso

while(1)

{

if(K1 ==0)

{

bip();

for(r = 0; r & ltn; r++)

{

motor _ ffw(); //El motor gira hacia adelante.

If (K3==0)

{ beep(); break }//Salir de este programa de bucle

}

}

si no(K2==0)

{

bip();

para(r = 0; r & ltn; r++)

{

Motor_speed(); // El motor invierte

Si (K3==0)

{ pitido (); break; }//Salir de este programa de bucle

}

}

Otros

p 1 = 0xf 0;

}

}

/************************ *** ********************************/

Espero que esto pueda ayudarte