51单片机怎样输出频率F=0.2-50HZ,占空比D=1-100%可调的PWM波形

最好用一个定时器,实在不行用两个定时器也可以;不要在网上瞎复制一个答案给我,写的代码主要部分标注一下;... 最好用一个定时器,实在不行用两个定时器也可以;不要在网上瞎复制一个答案给我,写的代码主要部分标注一下; 展开
 我来答
户哲茂5B
2017-06-22 · TA获得超过817个赞
知道小有建树答主
回答量:781
采纳率:59%
帮助的人:134万
展开全部

利用定时器。

uint PwmCnt = 0; 

sbit  PWN_OUT = P1^1;//可改动
uint PwmD = 50;//占空比  可调
uint PwmF = 500;//频率  可调  10 = 1HZ   500 =50HZ
uint PwmCnt = 0;//占空比计数值
uint FreCnt = 0;//频率分频值
void T0 interrupt 1
{
   .....//赋值TO计数值  50us
   if(++FreCnt>= (1000/PwmF))//通过改变PwmF 达到分频效果  改变输出频率
   {
       if(++PwmCnt>=100) PwmCnt=0; //再次分频100  占空比精度需要这样
       if(PwmCnt<PwmD )//改变D值  可以改变引脚状态占用时间
       {
           PWN_OUT = 1;
       }
       else
       {
           PWN_OUT =0;
       }
    }
}

//思想是这样  我也没测过
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式