嗯,这个应该可以这么想,假设我们使用12MHz晶振,由于是6T模式,所以最高可以产生1MHz的输出,我们直接调整置0和置1的数量就行了啊,如果设置1个高电平,99个低电平,那么就是10kHz,占空比1%的方波。
而你的要求最高100khz,占空比1%,意味着最小的脉冲时长0.1微秒,比你输出的频率要高,恐怕是实现不了啊。。。
提高晶振频率,假设能提高到120MHz(实际上好像最高是40还是80MHz,我不记得了,反正肯定到不了120),你的要求就做到了。
STC89C52这个只有使用定时器+IO进行设置。
假设单片机晶振是12MHZ
定时器每加一个数是1us, PWM分辨率为100,得到PWM的周期100us,也就是10KHZ.
如果你要达到100KZ,那你的精度就很差,只有10%
建议使用增强型的MCU ,如STC15等或者STM32都可以
这个芯片应该 是没有PWM的,要使用定时器与IO口组合 成PWM波生成器
修改定时器的频率,在中断函数中反转IO口的电平生成可调的方波,频率就可以调整定时器的频率了