Red de conocimiento informático - Descarga de software - ¿Utilizar un microcontrolador para controlar la rotación y parada de un motor de CC? ¡1 luz para representar!

¿Utilizar un microcontrolador para controlar la rotación y parada de un motor de CC? ¡1 luz para representar!

Un botón hecho especialmente para ti, esquema y programa para encender/apagar el LED (encendido/apagado del motor).

Programa de montaje:

Después de resetear ORG0000H, el LED se apaga.

Maestro:? JB P3.2, Maestro; Esperar la acción del botón

ACALL DELAY_50MS Retraso en el rebote del botón de 50 milisegundos.

JB P3.2, Principal; ¿Confirmar el funcionamiento del botón?

CPL p 1.0; acción del LED invertida

JNB P3.2, $; espere a que se suelte el botón

SJMP principal

Delay_50MS: MOV R2, #50; subrutina de retardo

Bucle:? MOV R3, #200

LOOP1: NOP

no se proporciona lo contrario a menos que se especifique lo contrario

DJNZ R3, LOOP1

DJNZ R2 , ¿termina el ciclo

?

Programa en lenguaje C:

#incluye ltREG51. H gt

# include ltintrins.h gt

#Definir carácter sin firmar uchar

# define ledp1 0//definición de pin led

# Tecla de definición P3 2 // Definición del pin del botón

Retraso vacío (uchar MS); //Declaración de función de retraso

void main()

{

while(1)

{

while(key); //Esperar la acción del botón

DELAY _ 50m s(50); // Retraso en el rebote del botón 50 ms.

If (!KEY)LED = ~ LED; //Confirma la acción del botón y la acción del LED se invertirá.

while(!key); //espera a que se suelte el botón

}

}

Retraso no válido (uchar MS)

p>

{

Uchar I;

for(;MS gt0;MS -)

for(I = 200;i gt0; I-)

{

_ nop _();

_ nop _();

}

}