X57187422 发表于 2012-4-27 07:37:23

STC12C5A60S2单片机如何产生方波,并能通过电位计改变方波...

本人新手,求教STC12C5A60S2单片机如何产生方波,并能通过电位计改变方波频率,在网上好了好久也没有找到方法,都是PWM产生波形,可是PWM改变的是脉宽,我要改变的是频率,求教一段程序举例,和解释 谢谢各位大侠!!!!!

gyzzg2030 发表于 2012-4-27 08:06:38

你改变定时器的周期不就行啦

黑霜 发表于 2012-4-27 18:15:14

改变PWM的周期就好。周期改变了,频率自然就变了。举一个简单的历程,这是一个产生PWM波的中断,系统晶振是11.0592M,定时器方式一。作用是产生周期为20ms,占空比为PWM/18349的PWM.
void timer0() interrupt 1
{

    switch(order1)
{
case 1:p0=1;
                          TH0=(65536-pwm)/256;                     //PWM可决定波形的脉宽
                   TL0=(65536-pwm)%256;
                   break;
case 2:p0=0;
                         TH0=(65536-18349+pwm)/256;             //这个18349是根据所需的周期计算出来的。20000*(1/11.0592M)
                   TL0=(65536-18349+pwm)%256;       
                   order1=0;
                   break;
        default:order1=0;
             break;              
}
order1++;
}
改变上面的那个18349即可改变周期。至于电位器,可用AD采集电位器的数值,数学处理下,替换上面的那个18349就好。不同的值会产生不同的周期。

哪浀、佷羙 发表于 2012-7-23 23:24:59

好 、改天试一下 、据说可以产生100HZ-100KHZ的PWM   不知道是怎么实现的 、俺新人
页: [1]
查看完整版本: STC12C5A60S2单片机如何产生方波,并能通过电位计改变方波...