Cómo utilizar 80C51 para programar y generar una señal de modulación de pulsos PWM (DAC de 4 teclas)
Utilizando dos temporizadores, puedes generar pulsos PWM con cualquier ciclo de trabajo y cualquier período.
TIMER0 se usa para controlar el período de la onda PWM (establezca el nivel bajo en nivel alto en la interrupción)
TIMER1 se usa para controlar el ciclo de trabajo de la onda PWM ( puede contar el alto voltaje en tiempo normal, establezca el nivel alto en el nivel bajo en la interrupción)
void main()
{
P0=0xff ; p>
TMOD=... ;
TH0=... ; //Establece el período de onda PWM
TL0=...
TH1=.. ; //Ajuste del ancho de pulso
TL1=...
EA=1
ET0=1; >
ET1=1;
TR0=1;
mientras(1
}
temporizador nulo(); interrumpir 1
p>
{
TR1=0;
TH0=... //Recargar, si el tiempo puede cumplir con los requisitos; , lo mejor es utilizar el modo de carga automática
TL0=...;
P0^0 = 1
TR1=1;
TR0=1
}
temporizador nulo1() interrupción 3
{
TR1=0
;TH1=...; //Reiniciar carga
TL1=...;
P0^0=0; //Finalizar salida
}