关于C51单片机测频率

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:37:21
我用单片机AT89C51的P0口测频率,频率范围在50到76赫兹之间,用程序测之前通过示波器观察频率信号的波形,频率比较稳定:61.3赫兹,最大值5v,峰峰值也有4v多。
我用程序测的方法是先检测到低电平,再检测到高电平时开始启动定时器T1,然后不停地对端口电平进行扫描,扫描到低电平时立刻停止T1,然后将TH1、TL1的数据挪出保存,分别与信号周期的上限、下限比较,当TH1、TL1的总时间长度低于周期上限且高于周期下限时,认为频率是正确的。
请大家帮我看下,我这样做有什么不对或欠考虑的地方吗?为什么我的程序测验老是通不过呢?
分数另外追加吧
20s时间太长了,而且这个待测时间长度只知道在一定范围内,并不知道具体多少,否则就不用测了。这个电平信号的长度约为6到10ms 。
有个200us的误差没关系。

问题在于板子已经布好了,而且我上面说的理论上也没有问题,也将测试范围放宽了,为什么还是不行呢

你可以,定一个时间比如20秒时间长精度高,来计数,开一个定时一个计数,高电平时计数和定时,定时到时中断处理数据把两个数除一下输出比较简单,
频率比较稳定可用,如果频率变化太快不可用

T0作为计数器,T1作为定时器。T1定时时间1s,这样再读入TH0 TL0的数据不就是脉冲的频率。
我这有完整资料~