ace2050 发表于 2014-6-20 14:31:28

老调重弹,51单片机一个定时器如何实现PWM

知道这对老手就是小菜,这个小弟一直没机会弄,这次遇到了,网上下了不少,
说下 用的STC89C52RC   要求 频率固定50K占空比10%----50%可调, 一个按键增加占空比,一个按键减小占空比
求合适的历程最好只用一个定时器就搞定

熬松螺丝 发表于 2014-6-20 15:33:33

hameyou 发表于 2014-6-20 15:13
STC89C52RC 没有硬件PWM,只有使用软模拟了

貌似模拟的上不了50K,你看用外置的还是换芯片吧

huangdog 发表于 2014-6-20 15:40:51

肯定搞不定的。
STC的1T单片机,12M晶振下跑过15K左右
依LZ的需求找自带PWM发生器的芯片吧。。。。

takashiki 发表于 2014-6-20 15:48:05

要是占空比以10%步进的话(10%、20%、30%、40%、50%五档),采用高频率的振荡器,倍速模式,使用T2的捕获,实现50K还是比较容易的。只是没什么实际用处,建议不要尝试了。此时的单片机远远不如一个555来得方便,因为它基本上无法干其他活了。

wkman 发表于 2014-6-20 15:49:28

选 stc12 吧,带2~4路 pwm硬件

也可以选 mpc82g516 带6路pwm

{:lol:}

ace2050 发表于 2014-6-23 09:51:39

takashiki 发表于 2014-6-20 15:48
要是占空比以10%步进的话(10%、20%、30%、40%、50%五档),采用高频率的振荡器,倍速模式,使用T2的捕获, ...

能这样干,那太好了,请教下怎么实现?、我只是那这个单片机做一个信号发生器用,也不会用来做别的事情

ace2050 发表于 2014-6-23 09:52:13

takashiki 发表于 2014-6-20 15:48
要是占空比以10%步进的话(10%、20%、30%、40%、50%五档),采用高频率的振荡器,倍速模式,使用T2的捕获, ...

在线的回复下啊

takashiki 发表于 2014-6-23 10:53:37

ace2050 发表于 2014-6-23 09:51
能这样干,那太好了,请教下怎么实现?、我只是那这个单片机做一个信号发生器用,也不会用来做别的事情 ...

毫无意义的事情,不想多说了。
用24M振荡器,6T。然后开启T2,捕捉模式,P1.0设置为脉冲输出模式,这时不需要你手动对端口赋值的。通过不断地改变RCAP2(事实上只需要改变RCAP2L就可以了)就能达到你的要求。用查询,少用中断。
T2的脉冲输出功能可以看做是一个阉割了的PWM。
页: [1]
查看完整版本: 老调重弹,51单片机一个定时器如何实现PWM