关于单片机测量信号频率的精度问题
扫描二维码
随时随地手机看文章
问题:
用C51系列单片机测TTL(f<50KHz)的信号,精度达到0.001Hz,用12MHz的单片机还是更高?
怎么计算是否达到这个精度?
===============================================
解答:
这个0.001Hz的测量精度,在单片机领域是不能达到的。
精度为0.001Hz,一般是指最大的绝对误差。
当测量50KHz信号的时候,显示数值不应超过:49 999.999Hz ~ 50 000.001Hz。
这才是精度达到了0.001Hz。
12MHz的单片机,根本别想达到这个精度!!!
测量频率,有“测量频率”和“测量周期”两种方法。
如果采用“测量频率”的方法,也就是“定时计数”法。
为了统计出来 49 999 999 ~ 50 000 001 的区别,就要用1000s的时间(16分钟多)。
时间短了,就达不到0.001Hz的精度要求。
“定时计数”法用时太长,不实用,那就再看看“测量周期”法。
用单片机的确是可以测出50KHz信号的周期是20us,取倒数,确实能换算出50 000Hz。
但是输入的频率,以0.001Hz 分档,再输入几个看看:
频率是49 999.999Hz,它的周期是20.0000004us;
频率是49 999.998Hz,它的周期是20.0000008us;
……
……
呵呵,不用多说了,大家一眼就可以看出,这0.0000004us的差别,单片机是分辨不出来的。
也就是说,单片机分辨不出来49 999.999Hz和49 999.998Hz的区别。
所以,0.001Hz的精度,是不可能达到的。