¿Cómo utilizar el microcontrolador 51 para generar PWM y utilizar PWM para controlar la potencia de las luces LED?
Figura 12. Salida PWM de ancho de pulso fijo
La salida PWM se completa con el temporizador T0 y el ancho de pulso es fijo: 65536 microsegundos. El temporizador T0 está configurado en: temporizador de 16 bits.
Modulación de ancho de pulso:
Lista de programas: (12MHz)
PwmData0T0 temporización t1 (palabra) valor inicial de temporización requerida
Datos PWM 1; valor inicial de temporización (palabra) requerido para la temporización T0 t2
Indicador de salida PwmFPWM
;****************** *** **************************************
setb tro Iniciar T0
. . . . . .
T0Int:; Rutina de servicio de interrupción T0
JB PwmF, la salida PwmOutHPWM no regresa por completo.
Mov TH0, nivel alto (PwmData0)
Mov TL0, nivel bajo (PwmData0)
Setb tr0
Setb PwmF p>
clr p 1.0; pin de salida PWM
Reti
PwmOutH:
Setb p1.0
Clr tr0
Mov TH0, nivel alto (PwmData1)
Mov TL0, nivel bajo (PwmData1)
Setb tr0
Clr PwmF
Reti
Descripción: Calcula los valores de PwmData0 y PwmData1 en el programa principal. Salida PWM de ancho de pulso variable
El ciclo de trabajo de PWM está controlado por el temporizador T0 y el ancho de pulso está controlado por el temporizador T1 (máximo: 65536 microsegundos).
Las configuraciones del temporizador de T0 y T1 son: Temporizador de 16 bits.
Lista de programas: (12MHz)
PwmData0T0 temporización t1 (palabra) valor inicial de temporización requerida
Datos PWM 1 temporización T1 (palabra) Temporización inicial requerida; valor
;****************************************** * ************************
setb tro inicia T0
setb tr1
. . . . . .
T0Int:; rutina de servicio de interrupción T0
Clr tr0
setb p 1.0 pin de salida PWM
Reti
<; p>t 1 int:; rutina de servicio de interrupción T1Clr p1.0
Clr tr0
Clr tr1
Mov TH0, nivel alto (PwmData0)
Mov TL0, nivel bajo (PwmData0)
Mov TH1, nivel alto (PwmData1)
Mov TL1, nivel bajo Flat(PwmData1) )
Setb tr1
Setb tr0
Reti
Descripción: Calcula los valores de PwmData0 y PwmData1 en el programa principal.