标题: 51单片机用PWM控制电压时,PWM的周期如何确定呢? [打印本页]

作者: a8200232    时间: 2016-3-4 00:42
标题: 51单片机用PWM控制电压时,PWM的周期如何确定呢?
做毕业设计中,希望各路大神指点

作者: Accordion    时间: 2016-3-4 09:10
用定时器做
作者: a8200232    时间: 2016-3-4 11:37
Accordion 发表于 2016-3-4 09:10
用定时器做

恩,我是不知道如何确定周期。比如我要得到原电压的一半,那么高电平的频率和低电平的频率在一个周期内是相等的,关键是这个周期可以是500us 1ms 或者1s   ,这个周期如何确定呢?
作者: Accordion    时间: 2016-3-4 13:01
void timer0(void) interrupt 1 //using 2
{
   static uchar click=0;              /*中断次数计数器变量*/
   TH0=T_TH0;                         /*恢复定时器初始值*/
   TL0=T_TL0;
   ++click;
   if (click>=100) click=0;

   /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/
   if (click<=PWM1)   P10=1;
   else  P10=0;
}

定时器时间*100就是PWM周期
作者: 51hei852    时间: 2016-3-4 15:46
本帖最后由 解放君 于 2016-3-4 15:47 编辑

设置定时器1MS 中断一次  设置一个变量N M   每中断一次N M自加一次   假设N=60 你复位管脚状态  m>你设置的PWM  更新引脚状态   

简单的写下 就是

{
  n++;
m++;
if(n==100)
{
    p0.1=0;
n=0;
m=0;
}

if(m<你设的pwm值)
{
    p0.1=1;
}
else
{
    p0.1=0;
}


设想一下  假设1ms 中断一次 n+100次 就是100ms   假设你PWM设置的值为60  那个M 在小于60的时候  管脚是不是高电平 在60《m《100  的时候 管脚是不是为低电平   那么占空比 不就是60/100了吗
作者: a8200232    时间: 2016-3-5 00:56
解放君 发表于 2016-3-4 15:46
设置定时器1MS 中断一次  设置一个变量N M   每中断一次N M自加一次   假设N=60 你复位管脚状态  m>你设置 ...

懂了 谢谢
作者: a8200232    时间: 2016-3-5 00:56
Accordion 发表于 2016-3-4 13:01
void timer0(void) interrupt 1 //using 2
{
   static uchar click=0;              /*中断次数计数器 ...

懂了 谢谢




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