Red de conocimiento informático - Material del sitio web - ¡Cómo usar un microcontrolador para controlar un motor paso a paso y usar dos luces para indicar su rotación hacia adelante y hacia atrás! Héroe, ¿puedes dibujarme un circuito cuando tengas tiempo? Gracias

¡Cómo usar un microcontrolador para controlar un motor paso a paso y usar dos luces para indicar su rotación hacia adelante y hacia atrás! Héroe, ¿puedes dibujarme un circuito cuando tengas tiempo? Gracias

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

?

Nombre del programa:? La llave controla la rotación hacia adelante y hacia atrás del motor.

¿La clave P1.0 está invertida? ¿P1.1 tecla para parar? ¿Es P1.2 clave para la rotación hacia adelante?

?

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

/*Archivo de encabezado*/

#Contiene ? ltreg52.hgt?

#¿Incluir? ltintrins.h gt

#¿Definición? uint? ¿No firmado? (Igual que las organizaciones internacionales) Organizaciones internacionales

#Definición? ¿Uchar? ¿No firmado? Té

#Definición? _Nop()? _nop_()

/*Definición de puerto*/

#¿Definición? ¿Motor? ¿P0? /*Interfaz del motor paso a paso*/

sbit? ¿P12? =?p1^2;? /*Controlar la tecla de avance*/

sbit? ¿P11? =?p1^1;? /*Controlar el motor para que se detenga*/

sbit? ¿P10? =?p1^0;? /*Controlar marcha atrás del motor*/

sbit? led1? =?p1^3;? /*Luz indicadora de avance*/

sbit? led2? =?p1^4;? /*Luz indicadora de marcha atrás*/

Uchar? ¿Código? tabla1[]={0xf3, 0xf6, 0xfc, 0x F9};? /*Adelante*/

Uchar? ¿Código? tabla2[]={0xf3, 0xf9, 0xfc, 0x F6};? /*Tabla inversa*/

/*Programa de retraso de 1 milisegundo*/

¿No válido? delay_1ms(uchar?x)

{

Uchar? j;

mientras(x -)? {?para(j = 0; j lt125; j );? }

}

/*Programa principal*/

¿No es válido? Señor()

{

Uchar? Yunzhuang = 0;? /*¿Estado de ejecución? 0 parada? 1 adelante? 2Inversión*/

Uchar? contar = 0;? /*Número de pasos de rotación del motor*/

¿Motor? =?0xf0? /*El motor se detiene*/

while(1){

if(Yunzhuang==0){

¿Motor? =?0xf0? /*El motor deja de funcionar*/

led 1 = 0; led 2 = 0;

}

¿Qué más? if(Yunzhuang==1){

led 1 = 0; led 2 = 1;? //Igual a 0 para encender la luz LED.

¿Motor? =?tabla 1[recuento];? /*El motor gira hacia adelante*/

}

¿Y si? if(Yunzhuang==2){

led 1 = 1; led 2 = 0;? //Igual a 0 para encender la luz LED.

¿Motor? =?Tabla2[recuento];? /*Motor marcha atrás*/

}

count;

if(count gt;=4)?count = 0;

retraso _ 1 ms(5);

if(P12==0){

retraso _ 1 ms(3);

if(P12= = 0){

¿Yunzhuang? =?1;

}

}

¿Y si? if(P11==0){

retraso _ 1 ms(3);

if(P11==0){

Yunzhuang? =?0;

¿Contar? =?0;

}

}

¿Y si? if(P10==0){

retraso _ 1 ms(3);

if(P10==0){

Yunzhuang? =?2;

}

}

}

}