¿Cómo realizar la regulación de velocidad y la rotación hacia adelante y hacia atrás del motor de CC PWM de un solo chip 51?
El ajuste de velocidad consiste en ajustar el ciclo de trabajo del pulso
//Velocidad de 4 niveles ajustable: 0, 1, 2, 3 ciclo de trabajo correspondiente: 0, 1; /4, 2/4, 3/4
#include
llave de bits=P3^6;
motor de bits=P2^ 4;
key_scan de caracteres sin firmar(void);
void motor_set(car v sin firmar);
void motor_init(void);
carácter sin firmar PWM_H=0,n=0,i=0;
void main()
{
motor_init();
mientras (1)
{
si (key_scan() == 1)
{
motor_set(i%4 );
}
}
}
//El motor gira
void motor_run() interrupción 3
{
if(n else motor=0; n++; if(n>=4) n=0; } //Control de velocidad, velocidad ajustable de 4 niveles: 0, 1, 2, 3; ciclo de trabajo correspondiente: 0, 1/4, 2/4, 3/4 void motor_set(unsigned char v) { if (v> 3) v= 3; si (v == 0) TR1 = 0; else { TR1 = 1 ; PWM_H = v; } } //Inicialización del motor void motor_init(void ) { EA=1; ET1=1; TMOD=TMOD & 0X0F | } //Escanear clave carácter sin firmar key_scan(void) { carbón sin firmar en = 0,i ; while(1) { if(key==0) //Determina si presionar { p> for(i=0;i<100;i++); //Retraso del software if(key==0) //Determina si presionar nuevamente { p> on = 1; break; //salir del bucle } } } mientras(clave==0); devuelve 1; }