修改开关频率要用到PCA模块CMOD寄存器中的PS0和PS1,通过调整 时钟输入源来调整频率,时钟输入源可以是:Fosc, Fosc/2, Fosc/4,Fosc/6,Fosc/8,Fosc/12,这几种频率都是固定的可以任选其一,如果想无极调整就要用到定时器0,mcu根据定时器 的溢出率输出频率,也可以从P34 外部输入,这要看你怎么用了。 你上面的程序是CMOD=0x02;应该是时钟频率/2。
对单片机的引脚进行固定时间的取反,不就行了。例如12mhz晶振,大概是139us取反一次。像高级单片机,自带pwm波输出,设置寄存器,根据公式就可以反推定时器初始值。每139us取反一次,一个周期也就是278us,1s也就有37k个频率。——来自
诺基亚
Lumia
920
如果你用带有PCA阵列的51单片机就可以实现,用计数阵列中的比较单元产生中断可以达到这样的功能,CH:CL的复位值是0,你设置好比较单元的内容(计数值)即可启动PCA计数,每次在比较中断里除了做你点亮发光二极管的工作外,停止CH:CL计数并对其清零即可。
如果非要用传统的T0/T1/T2进行计数,就需要换位思考。因为51单片机传统的计数器只有溢出才产生中断。这样无法直接得到想要的计数。但可以这样做,用65536(16位计数时)或256(8位计数时),减去你所需求的计数值;将获得的差值赋值给T0/T1/T2进行计数。这样在定时溢出产生中断时的计数,就是你想要的计数。
当然啰,你可以用软件实时监控计数器来控制你所需的计数值,但这个办法最笨也最浪费资源。
以上就是关于pwm 开关频率 51单片机 C语言 stc12c2052 单片机 目前只会调占空比 开关频率该改哪个参数 求高手指教全部的内容,包括:pwm 开关频率 51单片机 C语言 stc12c2052 单片机 目前只会调占空比 开关频率该改哪个参数 求高手指教、怎么用51单片机来产生固定的频率、怎样使51单片机达到所需数值时,计数器停止计数且发出提示信号(发光二极管D5亮)给出怎样使D5亮就好了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)