基于单片机的数字频率计该如何设计
注:本文只讲思路,没有具体原理图和代码,伸手党可以走开了,有基础的留下,不然看不懂。
事情要追溯到2014年5月3日的夜里,我的贴吧私信收到一条消息,不过我当时没看到,一直到四号晚上才注意到:
您好,我正在做关于频率计的毕业设计,设计题目是《基于单片机的通用计数器的设计》。
内容:
利用单片机实现频率测量,时间间隔测量,并将测量值显示。
技术要求:
(1)频率测量范围:0~200MHZ;
(2)频率分辨率:10-10HZ;(10的负10次幂)
(3)时间间隔分辨率:150ps;(150皮秒)
我有在网上进行搜索,有一些了解系统大概这样运行:产生信号--放大整形---分频(不知原因)-----单片机检测----显示。
基本方法有:周期测频法(适合低频),直接测频法(适合高频)等等。
我遇到的问题是:
1.不知道用单片机能不能实现这些技术要求,在网上没看见到那么高的,最高的也就50MHz左右,大多数10几MHz。
2.为什么需要分频呢?
3.假如能实现,系统该如何设计?如果您知道的话,请给个方向,最好是系统的大体方案。
麻烦了,谢谢~~
并不是所有的私信我都会认真去回复,之所以对这哥们的题目感兴趣,是因为他是个会提问的人。
首先,他说清楚了自己做的题目,这是开头,然后他解释清楚了他的项目要实现的功能,这是最重要的,如果连功能都描述不清,别人是没法给你帮助的;最后,他提出了他遇到的问题,这说明他是个知道思考的人,不像别人,基本不思考,上来就要完整的方案,虽然我尽量满足大部分人要求,但是还是希望大家尽量多思考一些,少伸手一些。
现在回到他的毕业设计上,其实他的设计的主要功能是检测外来波形的频率,这样看的话,他的题目改为《基于单片机的频率计的设计》更为合适一些,不过无所谓了。
频率测量范围:0~200MHZ:先说普通的51单片机,通常能接的最大晶振也就24M左右,由于是复杂指令集,每秒能运行的简单指令也就2M条。这个速度,去检测200M的频率肯定是不可能的。所以,需要把200M进行分频,降低到51单片机能检测出来的范围内。
至于剩下的参数:频率分辨率,时间间隔分辨率就都简单了。方案的大体结构也就出来了。
按键控制、数码管显示;
外部信号接到分频电路上进行分频,如果外部信号是正弦波,分频电路还能把波形整形为方波;
分频后的方波接到单片机外部中断引脚上,配置该引脚下降沿触发中断;
通过计算两次中断之间的时间间隔来计算外部波形的频率;
计算出的数值显示在数码管或者LCD上面。
图片是他传过来的参考电路,和我预想的差不多,只是分频电路这里考虑的不太一样。方法有很多,能达到想要的效果就行,不要太拘泥于形式。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)