我想用C51单片机的定时器0工作方式2输出一个PWM。它的频率要怎么设置???

void Delay(uchar x)
{
uchar i;
while(x--)
for(i=0;i<20;i++);
}
void main()
{
uchar Val;
TMOD=0x02;//定时器T0工作于方式2自动重装8位计数器
TH0=0x02;
TL0=0x00;
IE=0x82; //允许T0中断
TR0=1; //启动定时器
这是我设置的定时器,出来的PWM频率很低,改过TH0,好像也不行。请问要怎么改,我想PWM的频率可以达到500HZ左右,就是肉眼不会看到闪烁

如果要500HZ,那中断时间就是1 除 500 除 2 等于 1MS ,这时如果你的单片机是6M的(12分频),这时一个命令周期是2US,那定时器0设为0X05,这时中断周期为512US,那出来的PWM信号就是500HZ.

当你要用PWM调节出10个档位,那PWM的中断周期也要除10(因为要中断20次).这时PWM周期就是200US, 定时器的中断时间就是100US, 那定时器初始化就要是0X9B(155).

回答也没有分得!!!!!!
温馨提示:答案为网友推荐,仅供参考