使用定时器产生PWM

2020-01-25 15:36发布

由于最近想做一个红外遥控赛车,目前正在准备阶段,现在正在准备的是PWM控制直流电机的部分,这个程序也就是学习定时器产生PWM的一个小成果,实际上这也就是一个呼吸灯
在没打算做遥控车之前零零碎碎的看过PWM但是遇到了一点困难就放弃了,之前都是看别人写的程序,这次是在学习了一篇别人写的论文之后比较有收获而写出的程序,论文我发上来了,有需要的朋友可以参考参考
现在我对于PWM是这么理解的,不知道对不对,PWM就如同是不同海拔高度上空气的稀薄程度,占空比高即如同一定体积空气内含氧量高,反之则低

点击此处下载 ourdev_678058FUBHHQ.pdf(文件大小:121K) (原文件名:PWM直流电机调速论文.pdf)

#include<reg52.h>


sbit led1=P1^1;//变化

unsigned char num,pwm;
bit flag;//明暗方向标志

void init()
{
    flag=0;pwm=0;num=0;//赋初值
       
        TMOD=0x01;//定义定时器1和定时器0 都工作与方式1
    TH0 = 0xFF;//100us=0.1ms
    TL0 = 0x9C;
        EA=1;
        ET0=1;
        TR0=1;

}

void main()
{
  init();
  while(1)
  {
    if(flag==0)//暗---明
        {
          if(num==100)
          {
            num=0;
                pwm++;
                if(pwm==100)
                {
                  flag=~flag;
                }
          }
        }
        if(flag==1)//明---暗
        {
          if(num==100)
          {
            num=0;
                pwm--;
                if(pwm==0)
                {
                  flag=~flag;
                }
          }
        }
        if(num<=pwm)
          led1=0;
        else
          led1=1;
  }
}

void t0() interrupt 1//定时器0
{
  TH0 = 0xFF;//100us=0.1ms
  TL0 = 0x9C;
  num++;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
wctmdgcd
1楼-- · 2020-01-26 06:23
看了LZ这个比喻之后,想问:LZ是不是读气象学之类的
longwu911
2楼-- · 2020-01-26 09:16
PWM有这么难吗!!呵呵
baobaoxiaowei
3楼-- · 2020-01-26 14:17
 精彩回答 2  元偷偷看……
bbs2009
4楼-- · 2020-01-26 15:42
回复【7楼】wctmdgcd  
-----------------------------------------------------------------------

只是因为今天看了一个关于西藏的纪录片
hzc171
5楼-- · 2020-01-26 20:45
回复【8楼】longwu911  
-----------------------------------------------------------------------
水哎 么的办法
hzc171
6楼-- · 2020-01-26 21:46
回复【10楼】bbs2009  
-----------------------------------------------------------------------
应该就是的吧

一周热门 更多>