“简易数字频率计”是第三届(1997年)全国大学生电子设计竞赛试题之一。我院学生就该试题设计获得山东赛区一等奖。原设计有许多不完善之处,考虑到此题具有一定实用价值,特经完善后,整理成文。1设计要求1.1基本要求(1)频率测量:a.测量范围:信号:方波、正弦波幅度:0.5V~5V频率:1Hz~10MHzb.测试误差≤0.1%(2)周期测量:a.测量范围:信号:方波、正弦波幅度:0.5V~5V频率:1Hz~10MHzb.测试误差≤0.1%(3)脉冲宽度测量:a.测量范围:信号:脉冲波幅度:0.5V~5V频率:1Hz~10MHzb.测试误差≤0.1%(4)显示:十进制数字显示,显示刷新时间1~10秒连续可调,对上述三种测量功能分别用不同颜色的发光二极管指示。(5)具有自校功能,时标信号频率为10MHz。(6)自行设计并制作满足本设计任务要求的稳压电源。1.2发挥部分:(1)扩展频率测量范围为0.1Hz~10MHz(信号幅度0.5V~5V),测试误差降低为0.01%(最大闸门时间≤10s)。(2)测量并显示周期脉冲信号(幅度0.5V~5V、频率1Hz~1kHz)的占空比,占空比变化范围为10%~90%,测试误差≤0.1%。(3)在1Hz~1MHz范围内及测试误差≤0.1%的条件下,进行小信号的频率测量,提出并实现抗干扰的措施。2设计方案选择:方案一:选用频率计专用模块。该方案在技术上是可行的,但竞赛规则规定不能采用频率计专用模块。即使允许使用,对于设计要求中的某些指标,采用专用模块来完成也是困难的。方案二:采用逻辑芯片和可编程器件实现。该方案也是可行的。该方案的优点是:仅使用硬件电路实现,调试工作量相对较小。缺点是,某些功能实现困难,不易修改。图1N周期测量原理方案三:用单片机实现。目前单片机种类很多,单片机功能越来越强。根据设计要求,选用MCS-51系统单片机中的AT89C52,该芯片内含3个16位定时/计数器,能最大限度地简化频率计外围硬件。AT89C52还含一个全功能串行口、8K程序存储器等,因此该方案具有硬件构成简单,功能灵活,易于修改等优点。综合上述三种方案,本设计选用方案三。3测量原理与分析计算3.1频率、周期测量由于频率和周期之间存在倒数关系(f=1/T),所以只要测得两者中的一个,另一个可通过计算求得。3.1.1测量方法本设计采用直接测周期法,而频率则通过计算得出。但是,单片机内部计数器一个计数值为1μs,在f很高时仅测量一个周期,无法保证测量精度。为此,本设计采用在闸门时间内,最大限度地测量多个信号的周期,从而保证信号频率、周期测量的精度。测量原理如图1所示。3.1.2测量方法实现为实现上述测量方法,需要启动AT89C52中的3个定时/计数器。其中T0设置成16位定时方式,用于产生闸门时间;T2设置成16位定时方式,用于记录NTx值;T1设置成16位计数方式,用于记录闸门时间内波形个数N。为了提高精度,T0~T2通过软件中断方式分别扩展一字节内部RAM,与16位定时/计数器一起构成24位定时/计数器。AT89C52单片机内部定时/计数器的响应频率低于10MHz,当信号输入为高频时,需先进行分频。根据实验,当AT89C52单片机晶振频率等于12MHz,输入信号频率≤500kHz时,内部定时/计数器能够进行可靠计数。当信号频率f为500kHz≤f≤10MHz时,需进行分频,兼顾500kHz与10MHz,取分频数为128。因此,当输入信号为低频(≤500kHz)时,不进行分频;当输入信号为高频(≥500kHz)时,进行128分频。3.1.3信号周期计算设T1计数值N为X1,T2计数值NT为X2,则信号周期为:低频段(不分频)T=X2/X1μs(1)高频段(128分频)T=X2/(1283X1)μs(2)3.1.4信号频率计算X1,X2含义同上,则信号周期f为低频段:f=(X1/X2)106Hz(3)高频段:f=(1283X1/X2)3106Hz(4)3.1.5测量理论误差设闸门时间为1s,低频段、高频段分别取2个典型点进行分析。低频段(≤500kHz):(1)f=1.999Hz时,闸门时间内仅能测量1个波形的周期,若计数误差为1μs,即0.000001s,理论误差为:〔0.000001/(1/1.999)〕3100%=0.0002%(2)f=499.9999kHz时,闸门时间内能测量499999个波形的周期,若计数误差为1μs,则理论误差为:〔(0.000001/(499999/499999.9)〕3100%=0.0001%高频段(≥500kHz):(1)128分频后f=3906.99Hz(分频前500094.72Hz),闸门时间内能测量3906个波形的周期,若计数误差1,即1μs,则理论误差为:(0.000001/(3906/3906.99))3100%=0.0001%(2)128分频后f=7811.99Hz(分频前999934.72Hz),闸门时间内能测量7811个波形的周期,若计数误差1,即1μs,则理论误差为:(0.000001/(78811/7811.99))3100%=0.0001%可见周期测量理论误差最大为0.0002%。3.1.6计算误差当采用三字节浮点数计算时,有效数字为两个字节,计算误差为:(1/65536)3100%=0.0015%除理论误差、计算误差外,还有基准频率误差等。3.2脉冲宽度及占空比测量(低频段)3.2.1测量方法:T1采用定时工作方式,当信号正跳变时启动定时器T1,当信号负跳变时存储T1计数值X3(高电平宽度),并清0,信号再次正跳变时存储计数值X4(低电平宽度。)为了增加计算位数除定时器T1自身16位外,扩展1字节内存与T1共同形成一个24位计数器(定时器)。3.2.2(高电平)脉冲宽度计算W=X3μs(5)3.2.3占空比计算P=〔X3/(X3+X4)〕3100%(6)4简易数字频率计的硬件设计简易数字频率计的硬件电路如图1所示,该电路可分为:(1)前置整形电路,(2)分频电路,(3)基准信号源,(4)单片机电路:单片机、数据选择器、键盘、状态指示,(5)数字显示电路,(6)稳压直流电源等。4.1前置整形电路根据设计要求,信号频率最大值为10MHz,考虑到器件性能与价格等因素,选择高速低功耗比较器MAX913构成整形电路,MAX913的响应时间为10ns,最高时钟频率为70MHz;在DC±5V供电时,输入电压范围为-5.2V~+3.5V.为克服振铃现象,整形电路在MAX913正向输入端引入弱正反馈,使其产生一个迟滞回差。当输入信号幅度较大时,信号经电阻衰减后再加到MAX913。4.2分频电路分频电路由2片74HC161构成。根据3.1的分析,只要对高频信号(500kHz)进行128分频,即可满足精度要求,也能满足AT89C52计数器的要求。因此分频信号由第二片74HC161的Q2输出。分频电路如图1—(2)所示。4.3基准信号源根据设计要求,1MHz信号基准源由74HC04以及1MHz晶振构成。电路如图1—(3)。4.4单片机电路单片机选用AT89C52,其内部含3个16位定时/计数器,8K程序存储器,其它内部结构及指令系统与单片机8031相同。为便于计算,选用12MHz晶振,这时内部定时器一个计数值为1μs。信号在低频段(≤500kHz)直接输入,在高频段(500kHz)时经128分频后输入到单片机,另外还要根据1MHz时基准信号进行校正。三路信号通过74HC151进行控制选择。控制信号为P1.2和P1.3。4只LED发光二极管由P1.3~P1.6控制,分别指示测频率、测周期、测脉冲宽度和测占空比四个状态。5个按键由P3.2、P3.3、P3.4、P3.6、P3.7读入,分别控制测频率、测周期、测脉冲宽度、占空比和校正5项功能。4.5数字显示电路显示共用8只共阳极LED数码管显示器,由AT89C52串行口扩展8片74HC164驱动。电路如图2所示。4.6稳压直流电源稳压电源采用双9V变压器分别经整流滤波和稳压后产生+5V直流电源。+5V输出要求≥500mA,-5V输出要求达到≥500mA(电路略)。5软件设计根据设计的硬件和测量方法,编写并调试了全部软件程序。限于篇幅,下面仅给出部分程序框图。