cbs110 发表于 2010-4-3 11:15:16

用C51模拟PWM

例如,想实现周期为20ms的矩形波,其中高电平持续时间为15ms,低电平持续时间为5ms
思路:用T0、T1两个定时器,T0控制频率,T1控制占空比
void time0(void) interrupt 1
{
TH0=0xb8;                        //11.0592M, 20ms;
TL0=0x00;
led=1;
TR1=1;
}

void time1(void) interrupt 3
{
TH1=0xca;                        //15ms
TL1=0x00;
led=0;
TR1=0;
}
我都是用上面的来调整不同占空比的矩形波,请教是不是51的都是用2个定时器来模拟PWM吗?我觉得做了这个占两个定时器太浪费了。

longquan 发表于 2010-4-3 11:39:05

用软件计数,循环一次一百微秒,静态变量加一,循环两百次就够二十毫秒了,也可用定时中断来做
页: [1]
查看完整版本: 用C51模拟PWM