pwm 开关频率 51单片机 C语言 stc12c2052 单片机 目前只会调占空比 开关频率该改哪个参数 求高手指教

void PWM_init (void){
CMOD=0x02; //设置PCA定时器
CL=0x00;
CH=0x00;
CCAPM0=0x42; //PWM0设置PCA工作方式为PWM方式(0100 0010)
CCAP0L=0x00; //设置PWM0初始值与CCAP0H相同
CCAP0H=0x00; // PWM0初始时为0
12m晶振 1T单片机 开关频率可以调到 500Hz左右么?

修改开关频率要用到PCA模块CMOD寄存器中的PS0和PS1,通过调整 时钟输入源来调整频率,时钟输入源可以是:Fosc, Fosc/2, Fosc/4,Fosc/6,Fosc/8,Fosc/12,这几种频率都是固定的可以任选其一,如果想无极调整就要用到定时器0,mcu根据定时器 的溢出率输出频率,也可以从P3.4 外部输入,这要看你怎么用了。 你上面的程序是CMOD=0x02;应该是时钟频率/2。追问

可以把开关频率调到500Hz左右么 前提是12M晶振 1T单片机

追答

让定时器0溢出率作为时钟源,初值=12M/256/500HZ ≈94=5EH 初值=FF-5E=A1H
CMOD=0x84;
AUXR=0x80;
TMOD=0x02;
TH0=0xA1;
TL0=0xA1;
TR0=1;
如果还不清楚,我的qq 1941064388

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-12
你能把问题再说清楚吗

pwm 开关频率 51单片机 C语言 stc12c2052 单片机 目前只会调占空比...
修改开关频率要用到PCA模块CMOD寄存器中的PS0和PS1,通过调整 时钟输入源来调整频率,时钟输入源可以是:Fosc, Fosc\/2, Fosc\/4,Fosc\/6,Fosc\/8,Fosc\/12,这几种频率都是固定的可以任选其一,如果想无极调整就要用到定时器0,mcu根据定时器 的溢出率输出频率,也可以从P3.4 外部输入,这要看你...

新买的STC12C2052AD单片机 P3^7口 PWM0 输出一直为高 代码为说明文档里 ...
CCAP1H = CCAP1L = 0xff;这有问题,这一句意思是P3.5输出的脉冲占空比是99%这样测量就感觉一直高电平,因为只有1%的低电平只有示波器能测出来。CCAP1H = CCAP1L = 0x80;就是50%的占空比,CCAP1H = CCAP1L = 0x00;是1%的占空比 如果还不行,你把这句删掉试试看PCAPWM0 = 0x00;反正我没...

怎么用STC单片机控制舵机???
选个STC的带PWM和AD功能的单片机,比如便宜的STC12C2052AD,支持两路PWM,8路复用AD。配置单片机PWM输出,调整占空比来控制舵机的速度,如果需要正反转,可以加个H桥电路或者芯片。舵机的转动角度,可以用AD来采样舵机电位器。

相似回答