我没有实物调试,此处提供一个方法,占空比和频率你自己用实物调试好就可以了!#include
sbit key=P1^1;
bit key_flag;
unsigned char time,pwm;void delayms(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}void InitT0()
{
TMOD=0x01;
TH0=(65535-100)/256;
TL0=(65535-100)%256;
ET0=1;
EA=1;
TR0=1;
}
void main(void)
{
InitT0();
while(1)
{
if(key==0)
{
delayms(10);
if(key==0)
{
while(key==0);
key_flag=!key_flag;
}
}
if(key_flag)
{
if(pwm<95)pwm++;
}
else
{
if(pwm>5)pwm--;
}
}
}void Timer0(void) interrupt 1
{
TH0=(65535-100)/256;
TL0=(65535-100)%256;
time++;
if(time==100)time=0;
if(time>pwm)led=0;
else led=1;
}