您的位置:首页单片机51单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

单片机数字频率计

[日期:2008-01-10 ] [来源: 作者:] [字体: (投递新闻)

频率测量在科技研究和实际应用中的作用日益重要。传统的频率计通采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。频率信号抗干扰性强、易于传输 ,可以获得较高的测量精度。同时 ,频率测量方法的优化也越来越受到重视.并采用 AT89C51 单片机和相关硬软件实现。

MCS51系列单片机具有体积小,功能强,性能价格比较高等特点,因此被广泛应用于工业控制和智能化仪器,仪表等领域。我们研制的频率计以89c51单片机为核心,具有性能优良,精度高,可靠性好等特点。

   实现一个宽频域,高精度的频率计,一种有效的方法是:在高频段直接采用频率法,低频段采用测周法。一般的数字频率计本身无计算能力因而难以使用测周发,而用89c51单片机构成的频率计却很容易做到这一点。对高频段和低频段的划分,会直接影响测量精度及速度。经分析我们将f=1MHz做为高频,采用直接测频法;将f=1Hz做为低频,采用测周期法。为了提高测量精度,我们又对高低频再进行分段。

    89C51单片机为控制器件的频率测量方法,并用C语言进行设计,采用单片机智能控制,结合外围电子电路,得以高低频率的精度测量。最终实现多功能数字频率计的设计方案,根据频率计的特点,可广泛应用于各种测试场所。

    在基础理论和专业技术基础上,通过对数字频率计的设计,用十进制数字来显示被测信号频率的测量装置。以精确迅速的特点测量信号频率,在本设计在实践理论上锻炼提高了自己的综合运用知识水平,为以后的开发及科研工作打下基础。

 

 

 

 

 

 

 

 

2方案设计与初步论证:

2.1. 频率测量方法概述

    

                        频率测量方法

模拟法

  数字法

直读法

比较法

 

电容充放电式

 

电子计数式

 

 

电桥法

 

 

谐振法

差频法

示波法

拍频法

 

李沙育图形法

 

测周期法

 

 

 

1  频率测量方法

直读法又称无源网络频率特性测量法;比较法是将被测频率信号与已知频率信号相比较 ,通过观、听比较结果 ,获得被测信号的频率;电容充放电式计数法是利用电子电路控制电容器充放电的次数 ,再用电磁式仪表测量充放电电流的大小 ,从而测出被测信号的频率值;电子计数法是根据频率定义进行测量的一种方法 ,它是用电子计数器显示单位时间内通过被测信号的周期个数来实现频率的测量。

     利用电子计数式测量频率具有精度高、测量范围宽、显示醒目直观、测量迅速 ,以及便于实现测量过程自动化等一系列优点 ,所以下面将重点介绍电子计数式测量频率的几种方法。

      (1) 脉冲数定时测频法(M ) : 此法是记录在确定时间 Tc内待测信号的脉冲个数 Mx ,则待测频率为 :

 Fx= Mx/ Tc                                                             

     显然,时间 Tc 为准确值,测量的精度主要取决于计数 Mx的误差。其特点在于:测量方法简单;测量精度与待测信号频率和门控时间有关 ,当待测信号频率较低时 ,误差较大。

     脉冲周期测频法(T) : 此法是在待测信号的一个周期 Tx,记录标准频率信号变化次数 Mo。这种方 法测出的频率是:

                       Fx = Mo/ Tx                                     

     此法的特点是低频检测时精度高 ,但当高频检测时误差较大。

     脉冲数倍频测频法(AM) : 此法是为克服 M 法在低频测量时精度不高的缺陷发展起来的。通过 A倍频,把待测信号频率放大 A ,以提高测量精度。其待测频率为:

                      Fx= Mx/ ATo                                       

     其特点是待测信号脉冲间隔减小 ,间隔误差降低;精度比 M法高A ,但控制电路较复杂。

      脉冲数分频测频法(AT) : 此法是为了提高T法高频测量时的精度形成的。由于T法测量时要求待测信号的周期不能太短 ,所以可通过A分频使待测信号的周期扩大A,所测频率为:

                         Fx = AMo/ Tx                                 

其特点是高频测量精度比T法高A;但控制电路也较复杂。

      脉冲平均周期测频法(M/ T) : 此法是在闸门时间 Tc,同时用两个计数器分别记录待测信号的脉冲数

Mx 和标准信号的脉冲数Mo 。若标准信号的频率为Fo ,则待测信号频率为 :

                        Fx = FoMx/ Mo                                 

M/ T 法在测高频时精度较高 ;但在测低频时精度较低。

     多周期同步测频法: 是由闸门时间Tc与同步门控时间Td共同控制计数器计数的一种测量方法,待测信号频率与 M/ T法相同。此法的优点是 ,闸门时间与被测信号同步,消除了对被测信号计数产生的±1个字误差 ,

测量精度大大提高 ,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量。 

3 确定实验方案

31可用实验方案介绍

3.1.1方案 1

    采用频率计模块( ICM7216)构成 ,原理框图如图3.2 所示。特点是结构简单 ,量程可以自动切换。

      ICM7216内部带有放大整形电路 ,可以直接输入模拟信号。外部振荡部分选用一块高精度晶振体和两个低温系数电容构成10MHz并联振荡电路。用转换开关选择 10ms ,0. 1s ,1s ,10s 四种闸门时间 ,同时量程自动切换。

缓冲电路是为了让频率计采用记忆方式 ,即计数过程中不显示数据 ,待计数过程结束后 ,显示测频结束 ,并将此显示结果保持到下一次计数结果 ,显示时间不小于1s ,小数点位置随量程自动移动。芯片驱动电路输出 15mA — 35mA 的峰值电流 ,所以在5V电源下可直接点亮 LED

 

                    3.2  ICM7216测频电路原理框图

3.1.2方案 2

系统采用可编程逻辑器件(PLD,如ATV 2500)作为信号处理及系统控制核心,完成包括计数、门控、显示等一系列工作。

该方案利用了PLD的可编程和大规模集成的特点,使电路大为简化,但此题使用PLD则不能充分发挥其特点及优势,并且测量精度不够高,导致系统性能价格比降低、系统功能扩展受到限制。

原理框图如图 B12所示

 

313方案3:

系统采用MCS——51系列单片机8032作为控制核心,门控信号由8032内部的计数定时器产生,单位为1 µs由于单片机的计数频率上限较低(12MhZ晶振时约500khz),所以需对高频被测信号进行硬件欲分频处理,8032则完成运算、控制及显示功能。由于使用了单片机,使整个系统具有极为灵活的可编程性,能方便地对系统进行功能扩展与改进。

原理框图如B13所示。

 

3.2 方案比较及确定

以上方案均需使用小信号放大、整形通道电路来提高系统的测量精度和灵敏度。

方案比较及选用依据:

显然方案二要比方案一简洁、新颖,但从系统设计的指标要求上看,要实现频率的测量范围01Hz-10MHz。以频率下限0.1Hz 比来说,要达到误差001的目的,必须显示5位的有效数字,而使用直接测频的方法,要达到达个测量精度,需要主门连续开启1000S,由此可见,直接测频方法对低频测量是不现实的,而采用带有运算器的单片机则可以很容易地解决这个问题,实现课题要求。也就是采用先测信号的周期,然后再通过单片机求周期的倒数的方法,从而得到我们所需要的低频信号的测量精度。另外由于使用了功能较强的8032芯片,使本系统可以通过对软件改进而扩展功能,提高测量精度。因此我们选择采用方案三作为具体实施的方案。

 

 

     

 

3.3  频率测量模块

对数字频率计电路各模块的实现有以下几种不同设计方案:

   对频率测量模块有以下四种实现方法:

1)直接测频法  直接测频法是把被测频率信号经脉冲形成电路后加到闸门的一个输入端,只有在闸门开通时间T(以秒计)内,被计数的脉冲被送到十进制计数器进行计数。设计数器的值为N,由频率定义式可以计算得到被测信号频率为

                             f=N/T                                     (3.9)

   经分析,本测量在低频段的相对测量误差较大。增大T可以提高测量精度,但在低频段仍不能满足该题发挥部分的要求。

2)组合法  直接测量周期法在低频段精度高。组合测频法是指在低频时采用直接测量周期法测信号周期,然后换算成频率。这种方法可以在一定程度上弥补方法(1)的不足,但是难以确定最佳分测点,且电路实现较复杂。

3)倍频法  直接测频法在高频段有着很高的精度。可以把频率测量范围分成多个频段,使用倍频技术,根据频段设置倍频系数将经整形的低频信号进行倍频后再进行测量,高频段则进行直接测量。

4)高精度恒误差测频法  通过对传统的测量方法的与研究,结合高精度恒误差测量原理,我们设计里一种测量精度与被测频率无关的硬件测频电路。本方法立足于快速的宽位数高精度浮点数字运算。

   

                    3.4  预置门控信号图

    如图3.4所示,预置门控信号是一个宽度为Tpr的脉冲,CNT1CNT2是两个可控计数器,标准频率信号从CNT1的时钟输入端CLK输入,其频率为Fs;经整形后的被测信号从CNT2的时钟输入端CLK输入,其频率为Fxe,测得Fx

    当预置门控信号为高电平时,经整形后的被测信号的上升沿通过D触发器的Q端同时启动计数器CNT1CNT2CNT1CNT2分别对整形后的被测信号(频率为Fx)和标准频率信号(频率为Fs)同时计数;预置门信号为低电平时,经整形后的被测信号的一个上升沿将使这两个计数器同时关闭。

    设在一次预置时间Tpr中对被测信号计数值Nx,对标准频率信号的计数值Ns,则下式成立

                          F x/Nx=Fs/Ns                              

推得                    Fx=Fs/Ns)·Nx                              

相对误差公式           

                        δ=±2/Nδ+Fδ/Fδ                             

    从误差分析中可以看出,其测量精度为Ns和标准频率精确度有关,而与被测频率无关。显然Ns决定于预置门时间和标准频率信号的频率,其关系式如下:

                        Ns=Tpr·Fs                                   

    如果采用频率为60 MHz的晶体振荡器,则有

                        |δ|≤1/Νs                                      

    若顶置门时间Tpro1s,则

                 Ns=0.1×60000000=6000000,    |δ|≤1.6×10¯6

可见,在整个测量范围内,精度比赛题发挥部分的要求高一个数量级,若采用更高频串的晶体振荡器或适当延长顶置门时间,精度则会更高。

    以上四种方法中,倍频法虽然在理论上可以达到很高的精度,但在低频段,就目前常规的锁相器件而言,锁相电路工作性能不理想,频率小于looHz时甚至不能工作.

    前三种方法本质上都是立足于频率基本定义,没有摆脱传统的测量方法的局限。从下文的详细论述中可以看出,用方法(4)可以用单片机程序方便地完成宽位浮点数的数学运算,实现高精度测量。

    基于上述论证及第二部分中详细的理论分析,我们拟选择方法(4)

3.4  周期测量模块

    (1)直接周期测量法  用被测信号经放大整形后形成的方波信号直接控制计数门控电路,使主门开放时间等于信号周期Tx,时标为Ts的脉冲在主门开放时间进入计数器。设T为被测周期,Ts为时标,在Ts期间计数值为N,可以根据以下公式来算得被测信号周期:

                       Tx=NTs                                        (3.15)

经误差分析表明,被测信号频率越高,测量误差越大。

    采用对多个周期进行计数取平均值的方法虽可提高精皮,但如果要达到赛题要求,测量频率为01Hz信号时,每测一次至少要等待1000s,显然是不可取的。

    (2)高料度恒误差周期测量方法  本方法在测量电路和测量精度上与高精度恒误差频率测量完全相同,只是在进行计算时公式不同,用周期T代换高精度恒误差频率测量公式中的频率因数即可.

  计算公式为

                       Tx=(Ts·Ns)/Nx                                (3.16)

式中,Tx为被测信号周期的测量值,Ns,Nx分别与(1—2)式中的Ns,Nx含义相同。

    从降低电路的复杂度及提高招度上考虑、显然方法(2)远好于方法(1),方法(2)的测量电路完全可以使用高精度恒误差频率测量电路o

3.5  脉冲宽度测量模块

    在进行脉冲宽度的测量时,首先经信号处理电路进行处理,限制只有信号的50%幅度及其以上部分才能输入数字测量部分。脉冲边沿被处理得非常陡峭,然后送入测量计数器进行测量。

    测量电路在检测到脉冲的上升沿时打开计数器,在下降沿时关掉计数器。由下式

                       Twx=Nx/Fs                                     (3.17)

可知计数值既为测得的脉冲宽度。

3.6  周期脉冲信号占空比测量模块

    测一个脉冲信号的脉宽,记其值为Twx1;信号反相后,再测一次脉宽并记录其值Twx2,通过以下公式汁算:

                      占空比=[Twx1/(Twx1+Twx2)]×100%               (3.18)

3.7  标频发生电路

本模块采用高频率稳定度和高精度的恒温可微调的晶体振荡器作标频发生电跃

3.8  小信号处理部分

小信号处理部分受限于宽带放大器的性能,放大电路需要附有高速整形电路。有以下几种方案。

    (1)采用分立元件  使用场效应管做输入级,以提高输入阻抗。用截止频率1000的三极管如9018做放大级。由于电路复杂,要调节部分较多,且一致性差,故不采用。

    (2)采用运算放大器  电路简洁,但因为与TTL电平接口而另需电平移位电路。并且要用运放做一高速宽带放大器,市场上难以买到高速运放,应用受到了限制。

    (3)立接采用比较器  采用比较器可以简单地完成设计。采用高速比较器LM361可以处理高达10 MHz的插入信号。LM961有低输入失调电压和电压范围灵活等特点,响应时间最大仅20ns,输出电平可与TTL电平相匹配。

    综合考虑,本部分电路采用方案(3)。比较器输入易受干扰,因此电路上采用净化电源并合理安排地线。经最后实测,输入灵敏度4mV左右,完全满足小信号测量的需要。

4、硬件系统实现

    系统电路原理框图如4.1图所示,因输入信号为脉冲信号,所以直接将信号送入AT89C51单片机计数,但为了增强抗干扰能力及实现对非标准脉冲信号的测量,因此利用试密特触发器(74LS132)进行整形。

 

 

                     4.1  系统电路原理框图

5、软件系统实现

    该方案主要利用89C51内部的定时器和数据处理,其程序设计相应软件包括:主程序、数据处理、显示主程序等。主程序流程图如5.1图所示。

 

                 5.1   主程序流程图

6、基本测量原理与理论误差分析

6.1  高精度恒定误差频率/周期测量技术

频率测量误差分析及其公式推导如下。

    (1)量化误差  设测得频率为Fx被测频率真实值为Fxe标准频率为Fs,在一次测量中预置门时间为Tpr,被测信号计数值为Nx,标推频率信号计数值为Ns .

    Fx计数的起停时间都是由该信号的上升沿触发的,在Tpr时间内对Fx的计数Nx无误差;在此时间内Fs的计数从Ns最多相差一个脉冲,即

                          |Δet|≤1                                        (6.1)

                      Fx/Nx=Fs/Ns                                    (6.2)

                      Fex/Nx=Fs/(Ns+Δet)                                (6.3)

由上式可得

                      Fx=(Fs/Ns)·Nx                                    (6.4)

                      Fxe=[Fs/(Ns+Δet)]·Nx                              (6.5)

根据相对误差公式有

                     |δ|=ΔFxe/Fxe=|Fxe-Fx|/Fxe                            (6.6)

由上式得               ΔFxe/Fxe=|Δt|/Ns                                  (6.7)

因为                  |Δet|≤1                                            (6.8)

所以                  |Δet|/Ns≤1/Ns                                      (6.9)

                    |δ|=ΔFxe/Fxe≤1/Ns                                 (6.10)

                      Ns=Tpr·Fs                                       (6.11)

由上式可以得出以下结论

相对测量误差与频率无关。

增大Tpr或提高Fs,可以增大Ns,减少测量误差,提高测量精度。

  2)标准频率误差  标准频率误差为ΔFs/Fs,因为晶体的稳定度很高,标准频率误差可以进行校准,相对于量化误差,校准后的标准频率误差可以忽略。

  3)分变率误差分析

  先由单片机给出闸门开启信号 ,此时计数器并不计数 ,而是等到被测信号的上升沿到来时,才开始计数。然后,两组计数器分别对被测信号和时标脉冲计数,当单片机给出闸门关闭信号后 ,计数器并不立即停止计数 ,而是等到被测信号下降沿到来的时刻才结束计数 ,完成一次测量过程。可以看出 ,实际闸门与设定的闸门并不严格相等 ,但最大差值不超过被测信号的一个周期。

     设被测信号的计数为 NX ,对时标的计数为 N0 ,时标频率为 f0 ,闸门时间为τ,则被测信号频率为:

      fx = foNx/ No                                                    (6.12)

     计数器的开闭与被测信号是完全同步的 ,即在实际闸门中包含整数个被测信号的周期 ,因而不存在对被测信号计数的 ±1 个字误差 ,由式微分可得:

      dfx= - ( NxfodNo)/ N02                                             (6.13)

       dN0=±1                                                      (6.14)

       τ=Nx/fx                                                        (6.15)

       相对误差为:

      e=ΔfX/fX=ΔNX/NX-ΔN0/N0+Δf0/f0            (6.16)                           式(5)中前两项分别表示计数器 T0 和计数器 T1 的误差 ,第三项为频率准确度。由于计数是在相关同步门控时间τ内完成的,即由待测信号同步控制,因此同步门控τ与计数器 T1 的计数脉冲相关, T/ Tx 的比值 Nx为整数 ,故被测信号计数值不存在计数误差。而计数器 T0 对时标的计数 ,由于门控τ的启闭时刻的随机性及 T/ T0之比值 N0 为非整数( T0 为时标周期) ,在门控τ的启闭时刻分别有时间零头ΔT1 ΔT2 无法计入,故存在 ±1 误差。当忽略频率准确度误差时,多周期同步法测频的最大误差为:

      em = ±1/ N = ±1/ (τf0)                                             (6.17)

    由式(6)可以看出 ,测量分辨率与被测信号频率的大小无关 ,仅与闸门时间及时标频率有关 ,即实现了被测频带内的等精度测量,闸门时间越长,时标频率越高 ,分辨率越高。

6.2  预置门时间信号与闸门时间信号

    预置门的概念与传统的闸门的概念是不同的。预置门是指同时启动或停止标准频率信号计数器和被测信号计数器的门控信号。硕置门的概念用于高精度恒定误差测频/测周期方法中,并称预置门的时间宽度为预置门时间。

    高精度恒定误差测频方法测量精度与预置门时间和标准频率有关,与被测信号的频率无关。在预置门时间和闸门时间相同而被测信号频率不同的情况下,高精度恒误差额率测量法的测量精度不变,而直接测频法精度随着被测信号频率的增加而接近线性地增大。

6.3  高精度恒误差周期测量方法

  分析思路和结果均与对高精度恒误差频率测量相似或相同。

6.4  脉冲宽度测量理论误差分析

  根据方案中的脉冲宽度测量方法,分析脉宽测量误差。

  设被测信号脉宽为Twxe,标准频率信号频率为Fs,则脉冲宽度的测量值为

                        Twx=Nx/Fs                                     (6.18)

    在一次测量中,对标准频率信号的计数值Nx可能产生±1个标准频率信号周期的计数误差,则脉宽测量相对误差为

                    |ΔTwx/Twx|=(1·Fs)/(Nx·Fs)=1/Nx                       (6.19)

其中NxTwx·Fs.可以看出,在Fs一定时,脉宽越小,误差越大。

    Twx=100μsFs=60MHz时,Nx6000,则有

                    |ΔTwx/Twx|=1/6000=0.17

6.5周期脉冲信号占空比测量误差分析

    使用第一部分中所述的占空比方法,根据误差合成原理,周期测量相对误差最大恒等于脉冲宽度测量相对误差。

    在标准频率为60MHz,被测频率1kHz(即周期为0.001s)时。设其占空比为10%,如果要满足题日部分要求,由脉冲宽测量相对误羌公式计算出的相对误差应小于

    1(0.001×10%×60×106)160000.17

实际精度完全可以超过这个要求。

7、系统设计与电路分析

7.1稳压电源设计

  本项设计要求的电源:±12V-12v+5v稳压电源。在进行电源设计时,功率交流输

入端加一级电源滤波器,以降低工频频率干扰。

7.2测量控制电路

  单片机(AT89C51)完成整个测量电路的控制和数据处理.两片Dpl5H016完成计数器功

能。键盘信号由AB9c51进行处理。AT89C51ispLSI1016读回计数数据进行高精度浮点运算,并向显示电路输出测量结果。电路如图7.1所示。

 

                          7.1   测量控制电路

 

7.3  输入信号处理部分

为测量小侍号,需要在输入端加前置信号处理电路,将小信号放大后送入整形电路.

7.4  小信号处理部分

    电路如图7.2所示,在调试中发现LM361的输出在零瞬间有些毛刺,在输出与地间并联一只100Hz瓷片电容消除了毛刺,且处理后的波形仍较陡峭,本部分电路抗干扰能力也很强。

        

                    7.2   LM361信号电路

7.5  标准频率方波发生电路

    本设计采用60Hz的晶体振荡器产生标准频率方波信号(频标)供数字测量电路使用。晶体振荡器采用恒温晶振,稳定度为:2.0×10724小时。

7.6  显示器电路

  显示器电路采用7SEG LED显示器。

  因为本设计用高精度恒误差的频率和周期测试方法,预置门时间为15s,在标准频率信号为60MHz的情况下,根据上文讨论的高精度恒误差的频率和周期测试方法相对误差计算公式可以算出测量精度为

    1(1.5×60×106)=1.1×108

即能够显示接近8位有效数字,所以,电路中采用了8LED显示器.

7.7  实际数字测量部分

  本题目要求测量功能模块较多,题目中要求的被测信号以及标准频率信号为1MHz,发挥部分要求为10MHz,高频信号之间的信号干扰非常强。在方案实现过程中要求处处考虑到干扰问题,减少布线的复杂度。

    本设计拟定计数器所采用电路中的两个计数器应不低于60MHz

    我们选用LATTICE公司高速ispLSI器件(在系统可编程大规模集成电路)。在一片ispLSI器件中可以完成一个或多个模块的设计,大大降低了电路复杂度,减少引线信号间的干扰,提高电路的可靠性、稳定性。鉴于本题目要求测量功能模块较多、我们采用两片工作频率为60MHzispLSI1016-60器件。

    采用在系统可编程逻辑器件来设计测量功能模块电路。

    在具体实现过程中我们将以下模块做在两片ispLSI1016器件中:

a频率测量模块

b周期测量模块;

c脉冲宽度测量模块;

d脉冲占空比测量模块;

e自校电路。

                      

                   7.3    ispLSI电路原理图

各模块电路详细设计如下:

    (1)频率测量与周期测量电路  因为本设计采用高精度恒误差频率测量法与高精度恒误差周期测量法,这两种方法使用的电路完全相同,所以在方案实现中,频率测量与周期测量用同一电路,只是单片机运算部分算法不同。

    频率测量与周期测量电路由前图中的控制信号及以下三个子模块所构成:

    a. CONTRL——本模块的控制部分,主要接收单片机的指令.控制计数器CONT1CONT2

    b. CONTl——对由被测信号整形后形成的脉冲进行计数。

    c. CONT2 ——对标准频率信号进行计数。

    根据高精度恒误差频率和周期测量原理,本模块电路按以下方式进行工作:经整形后被测信号脉冲从CONTRLFIN端输人,标准频率信号从CONTRLFSD端输入,CONTRLCLK输入端是本模块电路的工作初始化信号输入端。在进行频率或周期测量时,进行以下几步:

    a. CONTRLCLR端加一正脉冲信号以完成测试电路状态的初始化;

    b. 由预置门控信号将CONTRLSTART端置高电平,预置门开始定时。同时出被测信号的上升沿打开计数器CONT1,并使标准频率信号进入计数器CONT2

    c. 须置门定时结束信号把CONTRLSTART端置为低电平。这位在被测信号的下一个脉冲的上升沿到来时,CONTl停止计数,同时输入CONT2的标准频率信号被关断。

    d. 控制部分CONTRLEEND端输出低电乎来指示测量计数结束。单片机读回CONTlCONT2的计数值,根据高精度恒误差测量公式进行浮点运算,计算出被测信号的频率或周期值。

    (2) 控制部分设计  控制部分原理图如图7.4所示:

                      

                     7.4     控制设计电路图

     D触发器的输入端START为高电平时,在FIN端来一个上升沿时,Q端为高电平,导通FIN—CLK1FSD—CLK2,同时EEND被置为高电平;在D触发器的输入端START为低电平时,当FIN端输入一个脉冲上升沿,FIN—CLK1FSDCLK2的信号通道披切断。

    计数器CONT1是用8个四位并行二进制计数器按行波计数器原理所构成的32位二进制计数器,输出8位数据总线,分4次将32位数据全部读出。CONT1的设计是用ABEL语言实现的。

    ispLSI1016器件在结构上是由16GLB所构成,每个GLB中含有四个可配置的触发器、(对应着GLB的四个输出端)。根据GLB的结构及我们的设计经验,四位并行二进制计数器在ispLSI中的布线是最优的。

    我们在EDA设计中严格采用模块设计法、总体设计采用原理图输入方式,每个子模块都采用ABEL语言描述。

    (3)脉冲宽度测量和占空比列量电路  本模块的电路设计在ispLSIl016中。

    根据第二部分所述的脉宽副量原理,设计电路原理图如下所示。

 

                 7.5    脉冲测量宽度和占空比测量电路

输入到本模块的被测量信号是经过信号处理电路处理后的被测信号,该信号的上升沿和

下降沿信号对应于未经处理时的被测信号的50%幅度时上升沿和下降沿信号。

    信号从FIN端输入,CLR为本模块电路的工作初始化信号输入端。START为本电路的工作使能端,PUL端输出如图中所示GATE的输入端PUL

    测量脉冲宽度采用以下几步:

    aCONTRL2CLR端送一个脉冲以进行电路的工作状态初始化。

    bGATECNT端置高电平,表尔进入脉冲宽度测量,这时CONT2的输入信号为PUL&FSD

    c在经处理后的被测脉冲的上升沿到来时,CONTRAL2PUL端输出高电平,标准频率信号进入计数器CONT2

    d在经处理后的被测脉冲的下降沿到来时,CONTRL2PUL端输出低电平,计数器CONT2被关断。

    e单片机渎计数器CONT2的结果通过所述的测量原理公式计算得出脉冲宽度.

    占空比的测量方法是通过测量脉冲宽度记录CONT2的计数值Twx1,然后将输入信号反相,再测量其脉冲宽度,测得CONT2计数值Twx2,则可以计算出

    占空比=[Twx1/(Twx1–Twx2)]×100%  

    (4)自校电路

为了检测系统的精度,本电路附加了自校电路,用以产生1MHz信号,可在功能按键控制下进行自校。

8、高频抗干扰设计

    在高频情况下,线路之间的干扰对频率测量结果影响很大,因此我们采用了一些高频线路抗干扰措施。

    测量电路的电路板采用自制印刷电路板,减少了引线交叉,降低了高频引线干扰,效果明显。例如,在模块初步设计和调试期间,我们在实验板上采用直接连线方式,因电路工作不稳定而出现了很大的测量误差。在自制印刷电路板上完成设计时,这个现象消失了。

    被测信号经过前置处理后,引向测量部分的引线全部采用屏蔽线。

    由于输入信号的变化可能很大,在大信号时能满足要求而在50 mv(峰值)时,很容易受到干扰。电路在设计时,采用大面积接地和金属屏蔽层,输入引线采用高频输入线,以消除外界的电磁场干扰;在每一部分的电源电路均采用电感、电容滤波,消除各部分电路的相互干扰;而且在电路中采用施密特触发器,提高比较门限,消除了大部分杂波,保证了信号的纯真度;对机械按键在闭合时伴有的抖动,加上了防抖控制;单片机还采用了看门狗电路.防止CPU失控,确保系统安全运行;在软件上采用软件陷阱、容错技术和均值滤波等抗干扰措施,提高了抗干扰特性;采用四字节乘除法保证了测试的精度在数据处理时不受影响。

9,频率计的软件设计

9.1计数原理

信号经过整形成为方波,输入到 端,在P3.2处于低电平时进行初始化操作;TR0置位,打开定时器/计数器;GATE=1,使T0TR0 均为1时开始计数;将T0的高八位单元TH0和低八位单元TL0均赋值00H,使T00开始计数(如图7所示)。

 

              7 计数原理

T0初始化完成后,TR0=1,GATE=1,此时T0等待 升为高电平,高电平到达,T0启动计数。每一机器周期,T0自动加1计数。当 降为低电平后,由于不能同时满足TR0 均为高电平,故T0停止计数。T0中存储的是以周期数表示的脉宽。

经式(2)计算得出频率f

         8

     此计算过程调用无符号双字除法程序来实现。

     为显示频率,必须将二进制码转换为BCD码,这一过程分两步完成。第一步,二进制转换成压缩BCD码;第二步,将压缩BCD码分送各缓冲区,调用显示子程序,送数码管延时显示频率值。

 

 

 

 

 

9.2总体软件编程:

  921设计方案

      利用AT89C51单片机T0T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过4位动态数码管显示出来。要求能够对010KHZ的信号频率进行准确计数,计数误差不超过±1HZ

922电路图

923工作原理

 1). 定时/计数器T0T1的工作方式设置,由图可知,T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/12,由于fOSC12MHz,因此:T0的最大计数频率为10KHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。

 2) . T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20次,即可完成1秒的定时功能。

924、源程序                  

#include <AT89X52.H>

unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7};

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};                 

unsigned char dispbuf[4]={0,0, 10,10};                   

unsigned char temp[4];                 

unsigned char dispcount;                

unsigned char T0count;

unsigned char timecount;

bit flag;                   

unsigned long x;                  

void main(void)                   

{                   

unsigned char i;                   

TMOD=0x15;                    

TH0=0;

TL0=0;

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

TR1=1;

TR0=1;

ET0=1;

ET1=1;

EA=1;

while(1)

{

if(flag==1)

{

flag=0;

x=T0count*65536+TH0*256+TL0;

for(i=0;i<4;i++)

{

temp[i]=0;

}

i=0;

while(x/10)

{

temp[i]=x%10;

x=x/10;

i++;

}

temp[i]=x;

for(i=0;i<6;i++)

{

dispbuf[i]=temp[i];

}

timecount=0;

T0count=0;

TH0=0;

TL0=0;

TR0=1;

}

}

}

void t0(void) interrupt 1 using 0

{

T0count++;

}

 

void t1(void) interrupt 3 using 0

{

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

timecount++;

if(timecount==10)

{

TR0=0;

timecount=0;

flag=1;

}

P0=dispcode[dispbuf[dispcount]];

P2=dispbit[dispcount];

dispcount++;

if(dispcount==4)

{

dispcount=0;

}

}

10 小论

    本文的工作基础是应用单片机设计的数字频率计。利用C语言进行单片机应用系统数字频率计的设计,不仅编程简单,精度高,而且避免了汇编语言在进行乘除法运算时要考虑采用浮点运算的要求。与汇编语言相比编程语句大大减少。数字频率计的软件均经过测试。并进行了误差分析。频率的测量范围从1Hz1MHz,具有一定的实用价值。


                                     结论

       大学四年中,我系统的学习单片机的知识,也看到了单片机控制程序的广阔前景,选择这个课题,正是希望能加深自己对单片机各方面的理解,并在运用先前学到的知识进行设计的过程中,进一步的理解其实质和作用,巩固和拓展以前的学习成果,从而希望今后能在这个领域作出成绩。

    由于单片机技术发展已经很成熟,我们更多的是借鉴前人的工作,完善我们的设计。当然,我们在前人的基础上向前走了一步,无论是原器件的选择,还是程序的设计,我们做的比他们复杂,这并不是简单意义上的重复,而是消化吸收和创新。

    在设计的过程中,我们一方面澄清了先前的一些错误理解,另一方面也真正的体会到了书本知识转化为实践时的困难,往往很不起眼的一件事情,就是设计的关键,必须得搞清楚。为了查找相关的技术文献资料,我们上网,去学校图书馆甚至去省图书馆查找资料,虽然辛苦一点,但是令人欣慰的是学到了书本上学不到的东西,并且掌握了设计的一般方法。

    三个月的时间很短,我们的能力也有限,很可能我们的设计存在这样或那样的不足,希望各位多多批评斧正。我在这次设计中学到了很多东西,我认为最大的收获就是学会了和别人分工协作去完成一件事。这次设计的成功是我和本组同学团结协作的成果。


致谢

三个月的时间很快过去了,本篇论文也已初步完成。在这里首先要感谢院、系领导给予的大力支持,特别是张清林主任的支持,为本组提供了良好的设计环境和必要的设计装备,特别要感谢指导老师——张清林老师给予的悉心指导和不厌其烦的热情帮助,张老师以其渊博的知识、严谨的治学态度、开拓进取的精神和高度的责任心,给我的学习、工作、生活以很大的影响,并将永远激励我奋发向上。在此谨向导师表示最衷心的感谢、并致以崇高的敬意!

感谢答辩组的各位老师在炎热的天气下为我们所作的各种工作和对我们论文所作的批评斧正。

感谢辅导老师——李永富的热情帮助。特别是在制图、工程设计方面给予了我们极大的指导和帮助。

感谢本组同学积极的配合和其他同学的热情帮助。

另外,衷心感谢本文所引文献的作者和编者们。


参考文献

[1] 马家辰、孙玉德《C-51单片机原理及接口技术》  哈尔滨工业大学出版社

[2] 陈丽芳  单片机原理与控制技术》             东南大学出版社

[3] 何立民 单片机系统设计》                   北京航空航天大学出版社

[4] 王修才、刘祖望:《单片机接口技术》           复旦大学出版社

[5] 李建忠 单片机原理及应用》                 西安电子科技大学出版社

[6] 李广娣  单片机基础》                              北京航空航天大学出版社

[7] 公茂法等《单片机人机接口实例集》         北京航天航空大学出版社1997

[8] Protel99SE原理图与PCB设计》              清源计算机工作室

[9]《实用电子电路手册》                    高等教育出版社,199110

                 

阅读:
录入:admin

推荐 】 【 打印
本文评论
      全部评论
    111 于04日评论道: 查看全部评论  
大哥,发个电路图,谢谢!
    流星 于29日评论道: 查看全部评论  
大哥能把图发给我吗!和文档一起我急用,万分感激!!xinfeng555@126.com
    yang 于28日评论道: 查看全部评论  
求助!能不能把图也发给我呀?急用!非常感谢! shin52@126.com
    JETTA会员 于23日评论道: 查看全部评论  
不好意思现没找到原稿,找到了我会放到网上的。
    幽幽 于23日评论道: 查看全部评论  
能把图也发给我吗?我急用!非常感谢zx.618@163.com
    裴润森 于20日评论道: 查看全部评论  
谢谢你 请把图发过来吧 小弟我急用~~~254238337@qq.com
    裴润森 于20日评论道: 查看全部评论  
把图发下吧 小弟我急用啊 谢谢了
    JETTA会员 于15日评论道: 查看全部评论  
我找一下吧!
     于15日评论道: 查看全部评论  
兄弟麻烦发下图急用啊~~ wangmiao_594520@yahoo.com.cn
    lvfan 于14日评论道: 查看全部评论  
大哥能发图么?急用,谢谢.lvfan850501@126.com
发表评论


点评: 字数
姓名:
站长推荐