关于STC12c5a60s2系列单片机的PWM

请看图,最后一句如何理解?不是应该是8位PWM吗,现在有第九位怎么处理的?是在高位还是低位?

还有,手册上说: ’‘在pwm模式下,当寄存器CL的值小于[EPCnL,CCAPnL]输出为低,大于或等于的时候为高,当CL值由FF变为00溢出时,[EPCnH,CCAPnH]内容装载到[EPCnL,CCAPnL],这样可以实现无干扰的更新PWM。’‘ CL是个8位计数的吧,而[EPCnL,CCAPnL]组成了9位的,CH的值会自动装载到CL吗?上面没提这点啊?例程中也没有看到相关。而且在例程中CL=CH=0;麻烦哪位大神解答一下,万分感谢!!!!!

按例程写就ok啦,改变其中一个寄存器的值可以改变其pwm脉冲宽度
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-15
一般只需改变8位即可实现0-255级的PWM

工作在PWM模式下CL一定是从0加到255溢出的 不会装载任何值

CCAP0L是会自动跟CL比较 大于输出0小于输出1

CL完成一个255计数之后CCAP0H的值重新装入CCAP0L CL还是从0开始计数
EPCnL的作用是 固定PWM输出


EPC0L=1时 PWM固定输出低
EPC0L=0时 PWM固定输出高追问

“一般只需改变8位即可实现0-255级的PWM”

这句话怎么理解啊?

其他的感觉明白了,改变占空比是改变CCAPnL,改变PWM频率是改变PCA计数频率即可也就是CL的计数频率(系统时钟的分频或T0的溢出率)。此时不用管CH的内容吧?

追答

STC12c5a60s2单片机只能实现8位PWM第九位是设置PWM输出脚常高或者常低的
启动PWM后CH CL是不用管的
要改变PWM值的时候只需要改变CCAPnH改变CCAPnL只是修改一次第二次还是装载回CCAPnH的值了