前段时间在做校内电子设计竞赛的题目,选题是《简易数字频率计》,因为这是电子类的竞赛,对于自己的能力是一个考查,所以自己也是比较的看重,与队友经过半个多月的努力,终于把它给做出来了,虽然做的不是很好,但还是拿出来看看,其中,队友做的是硬件,我负责的软件部分。
摘 要
基于单片机的数字频率计的设计,目的是设计一款数字频率计,能够测量1 Hz ~ 100KHz的数字频率,包括正弦波及方波的测量,支持0.5 V ~ 20 V电压。本频率计以STC89C52为核心,通过整形放大电路将外部脉冲变成同频率的矩形波,再利用单片机内部定时/计数器,通过控制其门控时间,对外部输入脉冲进行计数。优点是测量准确度高,响应速度快,功耗低,体积小。
关键字:单片机、整形放大、计数
目 录
目录
Simple digital frequency meter
1. 方案设计与论证
1.1 整体方案比较与论证
方案一:测周期法
测周期法又称为计时法,测周期法使用被测信号来控制闸门的开闭,而将标准时基脉冲通过闸门加到计数器,闸门在外信号的一个周期内打开,这样计数器得到的计数值就是标准时基脉冲外信号的周期值,然后求周期值的倒数,就得到所测频率值。
首先把被测信号通过二分频,获得一个高电平时间是一个信号周期T的方波信号;然后一直用一个周期为T1的高频方波信号作为计数脉冲,在一个信号周期T的时间内对T1信号进行计数,在被测信号的一个周期内也存在最大±1 的标准信号脉冲误差,被测信号频率越低,误差越小,一般在信号频率较低时采用。
方案二:测频法
测频法又被称为计数法,计数法是被测信号通过一个定时闸门加到计数器进行计数的方法,如果闸门打开时间为T,计数器得到的计数值为N,则被测频率为f=N/T.改变时间T,则改变频率范围。由此方法可得到准确的频率。
考虑到频率测量的准确性,所以本次设计采用方案二。
1.2 模块电路的方案设计
1.2.1 预处理功能模块
预处理功能模块包括2部分:输入通道电路、基准信号电路。
输入通道电路:输入级及过载保护 → 放大极 → 整形级
选用LM358对输入信号进行两级放大,有4倍和40倍两种放大倍数,用开关控制。放大后的信号送入由LM393构成的比较器,转变成TTL信号
电路图如下:
基准信号电路:本设计采用由NE555构成振荡电路产生方波来作为时基信号
电路图如下:
1.2.3 显示电路
通过键盘实现功能选择,信号频率显示功能用12864模块实现,它与单片机的接口如下图所示,D0-D7为数据口,E,RW,RS为控制信号,可以实现被测频率值与周期的显示。
2. 理论分析与计算
2.1 系统原理
图1
如图1所示,52单片机有3个定时/计数器,均有定时与计数两种模式。单片机工作在定时器模式时,C/T开关打向上边,对单片机内部晶振12分频(12时钟模式下)后的频率进行计数,通过设定计数初值来进行定时。单片机工作在计数器模式时,C/T开关打向下边,对Tn脚输入的外来脉冲进行计数。本设计将T0、T1两个定时器设置为计数器模式,分别对被测脉冲与基准脉冲进行计数,将T2设置为定时器模式,通过T2对T0、T0计数时间长短的控制,从而来计算外来频率的大小。
设T0计数的数值为M0 ,T2的定时时间为T,则被测信号的频率为:
Fx = M0 /T
本设计可产生一个25KHz左右的时基信号,通过该时基信号可以对测得的频率进行一定程度的自检,设T1计数的时基信号数值为M1,然后从T0输入与此时基信号相同频率的信号,设为M0,T2的定时时间为T,则误差为:
Ef = ( | M0 - M1 | / M1 )/ T
2.2电路原理
555振荡器:
3、软件系统分析与设计
3.1 主程序设计
3.2 子程序设计
延时函数: void delay(uint z);
写命令函数: void write_com(uint com);
写数据函数: void write_data(uint date);
频率显示函数: void disp(ulong z);
周期显示函数: void disp_cycle(ulong z);
显示定位函数: void pos(uchar x,uchar y);
液晶初始化函数: void lcd_init();
定时器初始化函数: void t0_t1_init();
4、功能与数据测试及结果分析
4.1 测试仪器
数字示波器:TDS1012
直流稳压电源:YB1732B3A
DDS函数信号发生器:SU3080
4.2 测试方法及数据
4.3 测试结果分析
通过对本频率计各类指标的测试,其满足频率测量和周期测量基本功能,可测频率范围0Hz ~ 130KHz,可测幅度范围为0.1V ~ 20V,具有简单的自检功能,测试精度基本满足基础部分要求,但是正弦波在1 ~ 5Hz区间由于部分原因无法测量出数据,但是此部分频率较小,影响不大,所以本频率计可用于一般场合下方波及正弦波的频率与周期测量。
[1]张毅刚.单片机原理及接口技术(C51编程)[M].北京:人民邮电出版社,2011.
[2]康华光.电子技术基础 数字部分(第五版)[M].北京:高等教育出版社,2006.
[3]Stephen Prata.C Primer Plus(第五版)中文版[M].北京:人民邮电出版社,2005.
[4]AT89S52 User’s Guide[EB/OL]. http://www.atmel.com/AT89S52.pdf
附录:
一、系统电路图
二、实物图
代码附件:
V3(定稿);测频、周、功能控制、液晶显示、可简自检、可测方波占空比.txt