morningdaisy 发表于 2011-10-26 19:30:26

STC单片机PWM波频率计算

STC单片机,我用11.0592MHz的晶振,定时器0作为PCA的输入源,定时器0设置为1T模式和自动重装载模式,如果要产生1KHz的PWM波,则定时器0的初值应设为多少?是否是TH0=TL0=2的8次方-11.0592MHz/256/1KHz=256-43=213?谢谢各位大侠

陈纪友103 发表于 2012-5-6 19:52:07

同上求解

xuyapple 发表于 2012-5-6 20:04:49

TH0=TL0=0xd2

BXAK 发表于 2012-5-6 20:37:43

你是想定时器模拟还是用硬件PWM啊,
如果是硬件PWM资料中应该有相关公式的

黑暗深处 发表于 2012-5-7 19:01:15

本帖最后由 黑暗深处 于 2012-5-7 19:02 编辑

∵f = 1/s
∴ 1000=1/s
   s = 0.001秒=1000微秒

如果通过定时器中断产生PWM的话,50%占空比,就每500us端口翻转一次

STC12C5A,PCA模块的PWM频率,PWM=PCA时钟输入频率/256
∴PCA时钟输入源频率 = 1000 × 256 × 1 = 256000Hz
又∵f = 1/s
∴s = 1/256000 s=3.90625us

∵11.0592在STC12C5A中,1T模式时钟周期为 11.0592/12 = 0.09042us
∴3.90625 / 0.09042 = 43.20117
   256-43 = 213
∴TL0 = TH0 = 0xD5

应该是这样,记不太清楚了

BXAK 发表于 2012-5-7 21:08:00

本帖最后由 BXAK 于 2012-5-7 21:09 编辑

善于应用资源啊,
资料有公式,再利用“Microsoft Excel 工作表”的计算功能建个表不就OK,
以后想用直接输入晶振频率、PWM频率,Excel 工作表就自动计算了,一劳永逸{:victory:}



ym7205 发表于 2012-6-13 08:39:43

BXAK 发表于 2012-5-7 21:08 static/image/common/back.gif
善于应用资源啊,
资料有公式,再利用“Microsoft Excel 工作表”的计算功能建个表不就OK,
以后想用直接输 ...

楼上的,可以把你的EXCEL表共享一下呗。。。

jun66 发表于 2012-6-13 08:50:21

你这个晶振1K的好像生成不了,datasheet上面都写了fosc/256是最大的,然后你再除1到255的任何值就是他最大频率到最小频率的值,貌似里面没有1K的

ldhavr 发表于 2012-12-13 14:29:22

BXAK 发表于 2012-5-7 21:08 static/image/common/back.gif
善于应用资源啊,
资料有公式,再利用“Microsoft Excel 工作表”的计算功能建个表不就OK,
以后想用直接输 ...

您好,看到您的关于PWM波计算的一个非常漂亮的Excel表。能否给我一个不胜感谢。ldh119@126.com

烂泥桑 发表于 2012-12-13 14:47:32

如果是用定时器软件处理,那不难,网上很多例程;硬件产生的话是公式,是选择分频,很有可能没有1K的频率,至少我用的stc12c5410就没有,只有两种分频。。。

信天游 发表于 2012-12-13 15:43:42

不知楼主用的那一款,stc12c5a60s2的话,时钟配置为T0的溢出率,T0用方式2,Focs/(12*(256-初值)*12*256)=1KHz
其他款的应该差不多一样吧(T0为12T模式)
页: [1]
查看完整版本: STC单片机PWM波频率计算