关于pwm呼吸灯的原理

2019-07-15 08:09发布

#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit pwm =P2^1;
uint count=0,timer1=0,value=0;
bit DIR=1;
void main()
{
TMOD=1;
    TH0=(65536-1)/256;
        TL0=(65536-1)%256;
        EA=1;//开总中断
        ET0=1;//开定时器0中断
   TR0=1;//TR0置位,启动定时器


while(1)
{
  
  if(timer1>value)
  {
          pwm=0;
  }
  else
  {
  pwm=1;
  }

        }
}

void time0() interrupt 1 using 1
{
        TH0=(65536-1)/256;
        TL0=(65536-1)%256;
        timer1++;
        count++;
        if(timer1>500)
        {
        timer1=0;
        }
        if(count>100)
  {
  count=0;
          if(DIR==1)
        {
          value++;
        }
        if(DIR==0)
        {
          value--;
        }
  }

  if(value==500)
  {
            DIR=0;
  }
  if(value==0)
  {
           DIR=1;
  }
       
}
到底哪个是周期?哪一个是调节占空比的参数?这个程序不懂==求教了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。