论坛风格切换切换到宽版
  • 3133阅读
  • 6回复

使用3310液晶的数字频率计(转) [复制链接]

上一主题 下一主题
离线yake10
 
发帖
1034
只看楼主 倒序阅读 0楼 发表于: 2006-05-11
原文:http://www.ouravr.com/app_using_3100_lcd_frequency_meter.html

设计思路

频率的测量实际上就是在1s时间内对信号进行计数,计数值就是信号频率。用单片机设计频率计通常采用两种办法,1)使用单片机自带的计数器对输入脉冲进行计数,或者测量信号的周期;2)单片机外部使用计数器对脉冲信号进行计数,计数值再由单片机读取。

由于单片机自带计数器输入时钟的频率通常只能是系统时钟频率的几分之一甚至几十分之一,因此采用单片机的计数器直接测量信号频率就受到了很大的限制。

本实验电路采用方式2,使用一片74ls393四位双二进制计数器和atmega8的t1计数器组成了24位计数器,最大计数值为16777215。如果输入信号经过mb501分频器进行64分频后再进行测量,则固定1s时基下最高测量频率为1073.741760mhz。

为了方便得到准确的1秒钟测量闸门信号,我们使用了atmega8的异步实时时钟功能,采用32.768khz的晶振由tc2产生1秒钟的定时信号。

测量原理:

单片机打开测量闸门,即pb1输出高电平,同时tc2定时器启动。74ls393开始对输入脉冲进行计数,74ls393每计数达256时,atmega8的t1计数器也向上计数1次。当1s定时到达时,单片机产生中断,pb1输出低电平关闭测量闸门,然后atmega8读取74ls393和t1的计数值,然后送lcd显示。

由于1s的测量闸门时间在业余条件下不好测试,因此,实验程序中在lcd上同时显示实时时钟用于判断1s闸门时间的准确性。实验中,我使用cdma手机上显示的gps卫星精确时间进行比较。手机时间显示的最小单位是分钟,测量时一旦手机分钟值发生跳变,则立即记录下lcd显示的秒值,这样的话让频率计运行一段时间后,再多次记录下lcd显示的秒,就可以准确判断频率计的异步时钟是否准确。实验过程中,我让频率计走了10个小数左右,测量的1s时钟还是非常准确的。


实验问题:实验测试8m有源晶振的测量结果如上图所示,而测试4m普通晶振的测量结果是3.999932mhz。感觉上好像测量稍稍有一点偏低。

实验源程序:http://www.ouravr.com/download_file.jsp?filename=app_using_3100_lcd_frequency_meter_c_code_1.rar&downloadpath=./bbs/bbs_upload/download/app_using_3100_lcd_frequency_meter_c_code_1.rar&filesize=5k
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线BG2CW/7
发帖
4409
只看该作者 1楼 发表于: 2006-05-11
好电路,可惜程序下载不了!
离线ncradio
发帖
11345
只看该作者 2楼 发表于: 2006-05-11
我有它的代码啊
离线BG2CW/7
发帖
4409
只看该作者 3楼 发表于: 2006-05-11
'
我有它的代码啊
'


可以发给我吗?搞个板子实验一下多好啊!
在线bd8te
发帖
4254
只看该作者 4楼 发表于: 2006-05-11
可以下   。
离线yake10
发帖
1034
只看该作者 5楼 发表于: 2006-05-11
其实也不杂地这玩样
离线BG3死鱼
发帖
611
只看该作者 6楼 发表于: 2006-05-24
好家伙,用eda做的图啊?