精确到50KHZ到0.001Hz用12M晶振足够了.
12M晶振在C51系列单片机中的机器周期是1us,机器执行指令的时间也就几us,在测量时考虑的是频率上限50KHZ即20us周期,用测单位时间里脉冲个数的方法可行,测频率下限时用测周期的方法可行.自己写程序时设计一个转换点就行了,能达到较高的精度.所以用12M晶振绝对能达到你的要求.
不过你的0.001HZ是1000秒的周期,这个数字转换用来测量人都要等老了(16分钟多).要求的频率其实也用不了那么低的.
精度达到0.001HZ,你把它换算成时间,然后就容易和单片机的时间进行联系了。
周期T是频率f的倒数 T=1/f 周期T(毫秒) 是频率f (Hz)的倒数的1000倍 T=1000/f (ms) 周期T=1毫秒相当于频率f=1000Hz