标题: 最简单的PWM调节程序 [打印本页]

作者: a4732710    时间: 2016-12-21 15:49
标题: 最简单的PWM调节程序
我不知道为什么这么多人写51定时器PWM程序这么复杂,本身51定时器不管工作模式在0或1或2都会自动装初值,你如果要来调光或要一个不太精确的PWM波,它都能胜任了。(设晶振12MHZ)模式0最大定时时间=8.192ms,模式1=65.536ms,模式2=256us。只要你打开定时器中断,不用你装定时器初值,它自己装,你就得到8.192ms或65.536ms或256us时间的中断。比如256us的中断时间,中断10次就是2.56ms,你让它5次中断输出高电压,5次中断输出低电压,它就是高1.28ms低就是1.28ms。你让它9次中断输出高,1次中断输出低,就改变了PWM的占空比。

不多说了,下面程序就是只用一个定时器,并带一个按键调节占空比。电路较应该好画了吧。一片89C51,一个BUTTON按键,一个示波器观察波形。



#include "reg51.h"
unsigned char a=5;
unsigned char i=0;
sbit K1=P2^0;
void main()
{   TMOD=0x02;
        EA=1;
        ET0=1;
        TR0=1;
  while(1)
  {  if(K1==0)
         {TR0=0;
            a--;
            if(a==0)
              {a=10;}
          while(~K1)
                {TR0=1;}
            }
        }
}

void time() interrupt 1
{
   i++;       
   if(i>11)
   {i=0;}
  if(i>a)
  {P0=0xff;}
  else P0=0x00;
}





作者: lyxxzrb    时间: 2016-12-21 21:54
简洁精辟,受教了。
作者: waas1987    时间: 2016-12-21 23:44
牛,太牛了,
作者: 5314039    时间: 2017-3-14 20:55
非常的简洁明了!希望能看到多一些这样的教程,非常感谢楼主!
作者: cqhejian    时间: 2017-3-15 10:25
这个借鉴啦,正好在学习这个,谢谢您分享
作者: 852921651    时间: 2017-3-15 13:52
来学习下,刚来的小白
作者: zhangyada    时间: 2017-3-24 13:06
简单精辟  正好用到 谢谢谢谢
作者: HOLLAND    时间: 2017-3-24 20:45
不错,看看
作者: goty2000    时间: 2017-3-24 20:45
本帖最后由 goty2000 于 2017-3-24 21:12 编辑

看明白了,我最近买了那个8脚STC单片机,15F104w,研究中。。。
作者: tangjinshi    时间: 2017-3-26 12:03
好的程序,源自好的思路
作者: menghuantao    时间: 2017-3-27 22:31
谢谢分享
作者: 夜漫亭    时间: 2017-3-28 13:19
正好需要这个程序!
作者: 用户以注销    时间: 2017-5-13 02:28
学习了
作者: zha    时间: 2017-5-14 01:28
和我以前写的输出三路pwm控制rgb灯思路差不多
作者: 3760609865    时间: 2017-6-5 21:44
非常的简洁,非常的优秀,谢谢分享。
作者: 29198516    时间: 2017-6-19 13:17
好好学习一下
作者: lxa0    时间: 2017-8-13 00:41
谁有汇编语言的代码?
作者: 零度时空    时间: 2017-9-17 14:27
很厉害   但我想加多一个按键调占空比,一个加一个减,可不懂哪里出问题调不出来
作者: 单调的唯一的    时间: 2017-11-2 19:49
分析的简洁透彻,很棒

作者: 铭乐    时间: 2018-5-18 15:44

这个借鉴啦,正好在学习这个,谢谢您分享
作者: 有一天    时间: 2018-5-18 19:26
很不错!
作者: 15942379927    时间: 2018-5-19 08:31
我竟然看明白了。感谢楼主分享
作者: coolxuf123    时间: 2018-5-19 19:18
好教程,受教了
作者: 守候枫林红叶时    时间: 2018-5-20 21:29
为楼主好的构思点赞!
作者: 小花生和哈哈    时间: 2018-5-23 21:03
6666666666666666
作者: Hi℡    时间: 2019-4-3 09:15
nice  很好
作者: assor    时间: 2019-4-3 15:07
i和a分别代表什么?
作者: 快乐眼泪    时间: 2019-4-3 20:28
呵呵!没看懂,能不能加上备注?谢谢!
作者: wdl_1998    时间: 2019-4-28 13:52
学习了,谢谢
作者: univers    时间: 2019-4-28 23:33
非常好的思路,优秀。
作者: bulaoquan    时间: 2019-4-29 07:59
学习了,谢谢分享!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1