标题: 求大神教我单片机PCA-PWM固定频率可调占空比输出 [打印本页]

作者: tcwoailuo    时间: 2017-9-4 22:15
标题: 求大神教我单片机PCA-PWM固定频率可调占空比输出
本帖最后由 tcwoailuo 于 2017-9-4 22:47 编辑

我用的是12C5A60S2     我没用过单片机自带PWM的功能,限于水平,搞不定,想高人教我用这个功能实现固定频率可调占空比的程序编程,
还有就是我的目的是用6050原始数据输出的0-32768变量值,去控制电机占空比的比值,如果能教会我,回答的精彩,可以追加悬赏!

作者: tilanta    时间: 2017-9-4 22:38
刚好学到这块儿。
周期=占空比*溢出时间,频率等于周期分之一,根据题设要求算出溢出时间,然后去配置定时器,八位自动重装模式,设置个定时器中断,然后就可以了,主要还是设置定时器中断。
作者: tcwoailuo    时间: 2017-9-4 22:53
tilanta 发表于 2017-9-4 22:38
刚好学到这块儿。
周期=占空比*溢出时间,频率等于周期分之一,根据题设要求算出溢出时间,然后去配置定时 ...

求程序哈
作者: tcwoailuo    时间: 2017-9-4 22:55
怎么来编辑占空比的控制呢
作者: tcwoailuo    时间: 2017-9-4 22:55
tilanta 发表于 2017-9-4 22:38
刚好学到这块儿。
周期=占空比*溢出时间,频率等于周期分之一,根据题设要求算出溢出时间,然后去配置定时 ...

怎么来编辑占空比的控制呢
作者: tilanta    时间: 2017-9-4 23:12
tcwoailuo 发表于 2017-9-4 22:53
求程序哈

/*这个程序就是简单的通过pwm脉宽调节控制led灯光强*/

unsigned char pwm_led_val = 0;   //占空比初值
unsigned char pwm_t;           //周期


//定时器0中断
void timer0() interrupt 1        
{
        pwm_t++;
        if(pwm_t == 20)       
        {        pwm_t =0;        
                P1 = 0xff;                     //所有灯熄灭
        }
        if(pwm_led_val == pwm_t)
                P1 = 0;                           //        点亮所有灯               
}


void main()
{
        TMOD |= 0x02;   //设置为八位自动重装
        TH0 = 240;
        TL0 =  240;                //11.0592MHz占空比最大比值20,输出2880hz
        TR0 = 1;                //启动定时器0
        ET0 = 1;                //允许定时器0中断
        EA = 1;                        //开总中断
        while(1);
}




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