单片机读取信号的频率?????

我想用89c51单片机接受一个大概是200HZ的信号,那么单片机需要时钟吗?用C语言怎样设计程序啊?时钟电路是什么样的啊?

单片机肯定需要时钟了,时序逻辑电路没有一个是不需要时钟的,时钟的电路到处都有啊,很简单的
200HZ的信号最好是先通过施密特触发器或者比较器整形,滤波,看你是测量200Hz的什么信息了,是频率还是脉冲宽度
测频率的话,主程序配置一个定时器,一个外部中断,边沿触发,设置一个标志位,中断程序先判断标志位,标志位为0,启动定时器,同时置位标志位,表示现在定时器在计数;标志位为1,停止定时器,同时复位标志位,这时定时器的值就是信号周期了,要是需要更精密的话,看反汇编,精确调整时间。
测脉冲宽度的话,程序差不多,定时器需要打开门控位,当外部中断管脚为高电平是自动启动定时器,外部中断还是边沿触发,也是建立一个标志位;中断程序里面,先判断标志位,标志位是0,把定时器清零,启动定时器,定时器就会记录高电平时间,如果标志位是1,可以直接读定时器的值,就是脉冲宽度了。
把两个程序结合起来使用两个定时器就能同时测量频率跟脉冲宽度了。
如果用52单片机,可以用T2定时器,这个定时器功能强大一些
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-02
楼上那位说的很对!
1、单片机要工作必须要有时钟信号
2、单片机中,如果你不是把信号做AD转换用的话,输入单片机的信号都必须 是 数字信号,也即是个0,1信号,就是楼上那位说的你要把他转成方波
3、至于时钟电路,如果单片机内部带时钟的你就用内部的吧,没有的话就需外加时钟,不过你说得这个单片机内部是没时钟的,所以你外接一个无源晶振加两个30PF的电容就可以构成时钟系统了,你到书上查下吧,很简单,没办法画。
4、至于程序,写出来太麻烦了,你这单片机内部是没有PCA模块的,所以用不成捕获中断,要不然就更容易了。你可以再端口检测他的高低电平,计时,然后折算成频率即可。
第2个回答  2010-08-31
1、单片机要工作必须有时钟,这和它要干什么没有关系,就像人活着必须有心跳;
2、检测200hz什么信号没有说清楚,如果是正弦波的话就要转换成方波,以利于单片机检测;
3、c语言程序看参考书;
4、时钟电路就是单片机最小系统,参考书也有。

其实初学者都会有这些疑问,最好自己动手做个最小系统,再参考资料学习编程,这样会很直观和有效率。
第3个回答  2010-09-02
时钟是必须的,的单片机是机器,要规律工作必须要时钟给他规律, 时钟电路到处有,随便搜都能找到。 信号处理最好是用DA转换 不然单片机不能识别模拟信号