#include <reg52.h>
sbit pwm=P2^0;
unsigned int timer = 0;
void main(void)
{
TMOD = 0x01;
TL0 = 0x48;
TH0 = 0xff; //200us
ET0=1;
TR0=1; //开定时器0
EA=1; //开总中断
while(1);
}
void time0() interrupt 1
{
TL0 = 0x48;
TH0 = 0xff; //重装载
timer++;
if(timer >= 3)//理论占空比3% 实际占空比2.8%
{
pwm=0;
}
else
{
pwm=1;
}
if(timer>100)//理论周期200us*100=20ms 实际21.60ms
timer=0;
}