Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo utilizar el temporizador del microcontrolador 51 para simular la onda PWM?

¿Cómo utilizar el temporizador del microcontrolador 51 para simular la onda PWM?

PWM significa "modulación de ancho de pulso"

PWM tiene dos parámetros más básicos: frecuencia y ciclo de trabajo.

La frecuencia es el número de cambios de nivel alto-bajo por segundo, y el ciclo de trabajo se refiere a la relación proporcional entre el tiempo de retención de alto nivel y todo el ciclo de pulso.

Para la simulación con un temporizador, el método más básico es utilizar un puerto IO para realizar un bucle y establecer su valor de salida en nivel alto y nivel bajo.

Entonces el temporizador juega un papel de sincronización aquí y requiere dos tiempos: duración de alto nivel y duración de bajo nivel.

Siempre que estos dos tiempos estén sincronizados, se puede implementar PWM básico.

Para lograr la sincronización de dos tiempos, existen dos soluciones:

1. Solución de temporizador único int?i;//variable de sincronización

timer1(){ // Función de interrupción del temporizador 1 // El ejemplo aquí es que el nivel cambia cada 100 ciclos de tiempo mínimo, es decir, parpadea una vez cada 200 ciclos de tiempo mínimo i++ if?(i==200){

i=0;//Reset variable, completar un ciclo, prepararse para el siguiente ciclo} else?if?(i==100){

LED_OFF;//Apagar la luz} else?if ?(i==0){

LED_ON;//Enciende la luz}

}

2. Esquema de temporizador dual//Solo necesitas diseño dos El valor inicial y el período del temporizador se pueden usar para completar el encendido y apagado alternativo

timer1(){//Función de interrupción del temporizador 1//El ejemplo aquí cambia el nivel cada 100 ciclos de tiempo mínimos Es decir, LED_ON parpadea una vez cada 200 ciclos de tiempo mínimo;//Enciende la luz

}

timer2(){ LED_OFF;//Apaga la luz

.

}