STC单片机PWM波频率计算
STC单片机,我用11.0592MHz的晶振,定时器0作为PCA的输入源,定时器0设置为1T模式和自动重装载模式,如果要产生1KHz的PWM波,则定时器0的初值应设为多少?是否是TH0=TL0=2的8次方-11.0592MHz/256/1KHz=256-43=213?谢谢各位大侠 同上求解 TH0=TL0=0xd2 你是想定时器模拟还是用硬件PWM啊,如果是硬件PWM资料中应该有相关公式的 本帖最后由 黑暗深处 于 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:09 编辑
善于应用资源啊,
资料有公式,再利用“Microsoft Excel 工作表”的计算功能建个表不就OK,
以后想用直接输入晶振频率、PWM频率,Excel 工作表就自动计算了,一劳永逸{:victory:}
BXAK 发表于 2012-5-7 21:08 static/image/common/back.gif
善于应用资源啊,
资料有公式,再利用“Microsoft Excel 工作表”的计算功能建个表不就OK,
以后想用直接输 ...
楼上的,可以把你的EXCEL表共享一下呗。。。 你这个晶振1K的好像生成不了,datasheet上面都写了fosc/256是最大的,然后你再除1到255的任何值就是他最大频率到最小频率的值,貌似里面没有1K的 BXAK 发表于 2012-5-7 21:08 static/image/common/back.gif
善于应用资源啊,
资料有公式,再利用“Microsoft Excel 工作表”的计算功能建个表不就OK,
以后想用直接输 ...
您好,看到您的关于PWM波计算的一个非常漂亮的Excel表。能否给我一个不胜感谢。ldh119@126.com
如果是用定时器软件处理,那不难,网上很多例程;硬件产生的话是公式,是选择分频,很有可能没有1K的频率,至少我用的stc12c5410就没有,只有两种分频。。。 不知楼主用的那一款,stc12c5a60s2的话,时钟配置为T0的溢出率,T0用方式2,Focs/(12*(256-初值)*12*256)=1KHz
其他款的应该差不多一样吧(T0为12T模式)
页:
[1]