一种基于单片机的高精度频率计的实现电路及方法与流程

文档序号:11516707阅读:278来源:国知局
一种基于单片机的高精度频率计的实现电路及方法与流程

本发明涉及一种基于单片机的高精度频率计的实现电路及方法,属于电子技术领域。



背景技术:

频率是电子技术重要的研究项目,目前采用的方法基本上都是采用的也就是当信号下降沿到来时时间闸门开启,计数器便开始计数,在闸门关闭的同时计数器停止计数(即固定时间测脉冲的个数)。闸门开放时间为t1(通常为整数1s、2s…),计数的次数设为n1,于是被测频率可表示为:使用这个方法来测量频率,当精度要求比较高的时候,测量的周期比较长,例如要将测量精度达到1hz,需要1s,精度达到0.1hz,需要10s,精度达到0.01hz,需要100s。因为固定时间数脉冲的个数,脉冲个数一定是一个整数,这样精度就是所以精确到1hz需要1s,10hz需要10s。同时目前使用的频率计电路对于小信号、调幅信号很难准备测量其频率。



技术实现要素:

本发明提供了一种基于单片机的高精度频率计的实现电路及方法,以用于提高测量精度。

本发明的技术方案是:一种基于单片机的高精度频率计的实现电路,包括波形处理电路、控制电路和显示电路;所述波形处理电路和显示电路分别与控制电路相连;

所述波形处理电路包括滤波电路、放大电路和逻辑门电路;其中滤波电路输入端与信号相连,滤波电路输出端与放大电路输入端相连,放大电路输出端与逻辑门电路输入端相连,逻辑门电路输出端与控制电路中单片机的计数器相连;

所述控制电路采用的是单片机最小系统,包括电源、单片机、振荡电路和复位电路;其中电源分别与单片机、振荡电路和复位电路相连,单片机再分别与逻辑门电路、显示电路、振荡电路和复位电路相连;

所述显示电路采用的是lcd1602,用来显示测量的频率。

所述滤波电路采用的是rc滤波器和陶瓷滤波器,其中rc滤波器的一端与信号相连,rc滤波器另一端与陶瓷滤波器一端相连,陶瓷滤波器另一端与放大电路相连;

所述振荡电路采用的是有源晶振。

一种基于单片机的高精度频率计的实现方法,所述方法的具体步骤如下:

s1、利用控制电路中单片机定时器功能计时,计数器功能计脉冲的数量,将计数器设置为下降沿有效:当从波形处理电路来一个脉冲时计数器自动进行加1,同时定时器进行计时,当计数器溢出时,正好记录了n个脉冲,这时定时器停止计时;

s2、取出定时器计时的时间t;

s3、计算出脉冲信号的周期则脉冲信号的频率为

s4、将实际脉冲信号的频率与测得的脉冲信号的频率进行比较,用统计的方法进行纠错矫正误差。

所述定时器计时的时间t满足:

若定时器采用方式1,则

若定时器采用方式2,则

其中,th0、tl0表示与定时器有关的寄存器里的值,c表示n个脉冲进入中断的次数,f晶表示单片机使用的时钟频率,单片机为51系列单片机。

本发明的工作原理是:

利用单片机本身的定时器功能采用一个标准的时钟进行计时,同时利用单片机本身的计数器功能计从波形处理电路中传来的脉冲数,假设固定脉冲的脉冲数为n,对这n个脉冲计时的时间为t,则单位脉冲的周期为则频率由于闸门的结束时刻对信号来说是随机的,将会有一个脉冲的量化误差,所以通过测量n个脉冲的总时间减小单个脉冲周期的误差,最后再通过测量的频率与真实频率进行比较,通过查表法由测量的频率计算出真实频率,提高频率计的准确度。同时根据该方法,频率是用脉冲的个数与时间t的商而得,所以可以精确到任何位数,提高了频率的精度。进一步分析测量的精度和误差,假设待测信号的周期个数为n,标准的时钟周期为t0,晶振的频率为t晶,则t0=12*t晶,设晶振的频率为f晶,机器周期频率为f0,则在n个脉冲里面经过了m个标准时钟,则所以由于闸门的结束时刻对信号来说是随机的,计时器将会有一个时钟的的量化误差,因此计这n个脉冲的时间会少计零个到一个晶振的机器周期,因此根据推到可得真实的真实的则每个周期误差为例如:当测量的n=1时,采取f晶=12000000hz的晶振,则周期测量的误差最大为0.1us,通过可以精确到0.1hz或者更高精度。

以51系列单片机为例,具体步骤如下:

1、利用单片机的定时器和计数器的功能,将计数器设置为下降沿有效,且设置为方式a(这里a的取值只能取1、2),初始值设置为28*a-n(这里8表示51系列单片机的位数),当a=1时,th1设置为28*a-n%256,tl1设置为28*a-n%256;当a=2时,th1设置为(28*a-n)/256,tl1设置为(28*a-n)%256。来一个脉冲,计数器进行加1,同时定时器开始计时,当脉冲个数为n时,定时器停止计时。

2、假设单片机使用的时钟频率(即晶振的频率)是f晶hz,则机器周期频率为(这里存在一个关系),使用的是定时器0进行计时,采用方式b,n个脉冲进入中断的次数为c,则计时的时间为:如果b=2,如果b=1,这里th0,tl0表示与定时器有关的寄存器里的值,th1、tl1表示与计数器有关的寄存器里的值。

3、计算出脉冲信号的周期:则脉冲信号的频率为:

4、将实际的脉冲频率与测得的脉冲频率与测得的脉冲频率进行比较,利用统计的方法进行纠错,校正误差。这里是将实际的脉冲频率与测得的脉冲频率进行比较,看每一个实际频率与测得的脉冲频率直接的误差,然后利用仿真软件形成一个对应关系,并显示实际的频率(就是例如我们由于测量上存在一定的误差例如我们要测频率为50000hz的频率,我们用机器测出来的频率是49999.9hz,则我们就可以知道当我们测出来的频率是49999.9hz时其实代表的的50000hz,这样我们就显示50000hz),减小误差。

所述波形处理电路包括:滤波电路、放大电路和逻辑门电路,其中所述滤波电路的一端与待测信号(待测信号可以是正弦波、方波、三角波等)相连,另一端与所述放大电路相连;所述放大电路一端与滤波电路相连,另一端与逻辑门电路相连;所述逻辑门电路一端与放大电路相连,另一端与所述逻辑门电路相连;

所述滤波电路采用的是rc滤波器和陶瓷滤波器,所述rc滤波器的一端与信号相连,另一端与陶瓷滤波器相连;所述陶瓷滤波器一端与rc滤波器相连,另一端与放大电路相连;所述滤波电路使用采用的是rc滤波电路和陶瓷滤波电路,用来将信号中的直流分量和其他的波纹滤除。

所述放大电路采用的是共射极放大电路,根据电路图(这里的r1对应的是电路图中的滑动变阻器r1接进电路的实际阻止,ib表示三极管的基极电流,vcc表示电压的电压值)则静态工作点(这里的r2、r3对应的是电路图中的滑动变阻器r2、r3接进电路的实际阻止,β是三极管的放大系数,ic表示三极管的集电极的电流,uc表示三极管的集电极电压),这里可以通过调节滑动变阻器r2和r3的阻值(同样这里的r2、r3对应的是电路图中的滑动变阻器r2、r3接进电路的实际阻止)来调节三极管uc的静态工作点,来调节脉冲信号的占空比。当进入交流信号时,可以对小信号进行放大,以至于使放大电路输出在0v-5v之间;当放大后信号超过5v的时候,三极管发大截止,输出5v电压;当放大后的信号低于0v的时候,三极管输出0v。但是此时的波并不是标准的脉冲信号。

所述逻辑门电路采用的是cd4011与非门,所述逻辑门电路与所述放大电路的输出端相连。所述放大电路的输出端信号经过两个与1的与非门之后,即经过1个与非门(a表示信号的状态0或者1)经过第二个与非门就变成比较好的脉冲信号。所述逻辑门的输出电路与单片机的计数器相连。

所述处理器电路为单片机最小系统,包括电源、单片机、振荡电路和复位电路,所述电源分别与所述单片机、所述振荡电路和所述复位电路相连,所述单片机分别与所述振荡电路和所述复位电路相连。

所述振荡电路采用的是有源晶振,为系统提供一个精准的时钟。所述电源是给整个系统供电;复位电路是给单片机进行复位。

所述显示电路采用的是lcd1602,用来显示所测得的频率,所述显示电路与所述单片机相连。

本发明的有益效果是:能够准确测量信号的频率,并将精度提至0.1hz或者更高精度。

附图说明

图1为本发明中的电路总体结构框图;

图2为本发明电路原理图;

图3为本发明中的方法结构图;

图4为本发明方法流程图。

具体实施方式

实施例1:如图1-4所示,一种基于单片机的高精度频率计的实现方法,包括波形处理电路、控制电路和显示电路;所述波形处理电路和显示电路分别与控制电路相连;

所述波形处理电路包括滤波电路、放大电路和逻辑门电路;其中滤波电路输入端与信号相连,滤波电路输出端与放大电路输入端相连,放大电路输出端与逻辑门电路输入端相连,逻辑门电路输出端与控制电路中单片机的计数器相连;

所述控制电路采用的是单片机最小系统,包括电源、单片机、振荡电路和复位电路;其中电源分别与单片机、振荡电路和复位电路相连,单片机再分别与逻辑门电路、显示电路、振荡电路和复位电路相连;

所述显示电路采用的是lcd1602,用来显示测量的频率。

所述滤波电路采用的是rc滤波器和陶瓷滤波器,其中rc滤波器的一端与信号相连,rc滤波器另一端与陶瓷滤波器一端相连,陶瓷滤波器另一端与放大电路相连;

所述振荡电路采用的是有源晶振。

这里我们选用的是stc12c5a60s2单片机,具体实现方法步骤如下:

1、利用单片机的定时器和计数器的功能,将计数器设置为下降沿有效,且设置为方式2,初始值设置为65536-100,th1设置为(65536-100)/256,tl1设置为(65536-10)%256,来一个脉冲,计数器进行加1,同时定时器开始计时,定时器采用方式2,th0、tl0都设置为0,当脉冲个数为n时,定时器停止计时。

2、假设单片机使用的时钟频率(即晶振的频率)是12000000hz(这里12000000hz相当于是f晶),则机器周期为1us(这里相当于上面的),使用的是定时器0进行计时,采用方式2,n个脉冲进入中断的次数为c,则计时的时间为:

3、计算出脉冲信号的周期:

其中,s表示单位秒;

则脉冲信号的频率为:

我们测100个脉冲,c=0,th0=199,tl0=56,用时51ms,则测得的频率为196078.431hz,精确到了0.001hz,这时每个周期误差为为0.01us。

实施例2:如图1-4所示,一种基于单片机的高精度频率计的实现方法,包括波形处理电路、控制电路和显示电路;所述波形处理电路和显示电路分别与控制电路相连;

所述波形处理电路包括滤波电路、放大电路和逻辑门电路;其中滤波电路输入端与信号相连,滤波电路输出端与放大电路输入端相连,放大电路输出端与逻辑门电路输入端相连,逻辑门电路输出端与控制电路中单片机的计数器相连;

所述控制电路采用的是单片机最小系统,包括电源、单片机、振荡电路和复位电路;其中电源分别与单片机、振荡电路和复位电路相连,单片机再分别与逻辑门电路、显示电路、振荡电路和复位电路相连;

所述显示电路采用的是lcd1602,用来显示测量的频率。

所述滤波电路采用的是rc滤波器和陶瓷滤波器,其中rc滤波器的一端与信号相连,rc滤波器另一端与陶瓷滤波器一端相连,陶瓷滤波器另一端与放大电路相连;

所述振荡电路采用的是有源晶振。

这里我们选用的是stc12c5a60s2单片机,具体实现方法步骤如下:

1、利用单片机的定时器和计数器的功能,将计数器设置为下降沿有效,且设置为方式2,初始值设置为65536-100,th1设置为(65536-100)/256,tl1设置为(65536-10)%256,来一个脉冲,计数器进行加1,同时定时器开始计时,定时器采用方式1,th0、tl0都设置为0,当脉冲个数为n时,定时器停止计时。

2、假设单片机使用的时钟频率(即晶振的频率)是12000000hz(这里12000000hz相当于是f晶),则机器周期为1us(这里相当于上面的),使用的是定时器0进行计时,采用方式1,n个脉冲进入中断的次数为c,则计时的时间为:

3、计算出脉冲信号的周期:

其中,s表示单位秒;

则脉冲信号的频率为:

我们测100个脉冲,c=0,th0=199,tl0=56,用时51ms,则测得的频率为196078.431hz,精确到了0.001hz,这时每个周期误差为为0.01us。

实施例3:如图1-4所示,一种基于单片机的高精度频率计的实现方法,包括波形处理电路、控制电路和显示电路;所述波形处理电路和显示电路分别与控制电路相连;

所述波形处理电路包括滤波电路、放大电路和逻辑门电路;其中滤波电路输入端与信号相连,滤波电路输出端与放大电路输入端相连,放大电路输出端与逻辑门电路输入端相连,逻辑门电路输出端与控制电路中单片机的计数器相连;

所述控制电路采用的是单片机最小系统,包括电源、单片机、振荡电路和复位电路;其中电源分别与单片机、振荡电路和复位电路相连,单片机再分别与逻辑门电路、显示电路、振荡电路和复位电路相连;

所述显示电路采用的是lcd1602,用来显示测量的频率。

所述滤波电路采用的是rc滤波器和陶瓷滤波器,其中rc滤波器的一端与信号相连,rc滤波器另一端与陶瓷滤波器一端相连,陶瓷滤波器另一端与放大电路相连;

所述振荡电路采用的是有源晶振。

这里我们选用的是stc12c5a60s2单片机,具体实现步骤如下:

1、利用单片机的定时器和计数器的功能,将计数器设置为下降沿有效,且设置为方式1,初始值设置为256-100,th1设置为256-100,tl1设置为256-100,来一个脉冲,计数器进行加1,同时定时器开始计时,定时器采用方式1,th0、tl0都设置为0,当脉冲个数为n时,定时器停止计时。

2、假设单片机使用的时钟频率(即晶振的频率)是12000000hz(这里12000000hz相当于是f晶),则机器周期为1us(这里相当于上面的),使用的是定时器0进行计时,采用方式1,n个脉冲进入中断的次数为c,则计时的时间为:

3、计算出脉冲信号的周期:

其中,s表示单位秒;

则脉冲信号的频率为:

我们测100个脉冲,c=0,th0=199,tl0=56,用时51ms,则测得的频率为196078.431hz,精确到了0.001hz,这时每个周期误差为为0.01us。

实施例4:如图1-4所示,一种基于单片机的高精度频率计的实现方法,包括波形处理电路、控制电路和显示电路;所述波形处理电路和显示电路分别与控制电路相连;

所述波形处理电路包括滤波电路、放大电路和逻辑门电路;其中滤波电路输入端与信号相连,滤波电路输出端与放大电路输入端相连,放大电路输出端与逻辑门电路输入端相连,逻辑门电路输出端与控制电路中单片机的计数器相连;

所述控制电路采用的是单片机最小系统,包括电源、单片机、振荡电路和复位电路;其中电源分别与单片机、振荡电路和复位电路相连,单片机再分别与逻辑门电路、显示电路、振荡电路和复位电路相连;

所述显示电路采用的是lcd1602,用来显示测量的频率。

所述滤波电路采用的是rc滤波器和陶瓷滤波器,其中rc滤波器的一端与信号相连,rc滤波器另一端与陶瓷滤波器一端相连,陶瓷滤波器另一端与放大电路相连;

所述振荡电路采用的是有源晶振。

这里我们选用的是stc12c5a60s2单片机,具体实现方法步骤如下:

1、利用单片机的定时器和计数器的功能,将计数器设置为下降沿有效,且设置为方式1,初始值设置为256-100,th1设置为256-100,tl1设置为256-100,来一个脉冲,计数器进行加1,同时定时器开始计时,定时器采用方式2,th0,tl0都设置为0,当脉冲个数为n时,定时器停止计时。

2、假设单片机使用的时钟频率(即晶振的频率)是12000000hz(这里12000000hz相当于是f晶),则机器周期为1us(这里相当于上面的),使用的是定时器0进行计时,采用方式2,n个脉冲进入中断的次数为c,则计时的时间为:

3、计算出脉冲信号的周期:

其中,s表示单位秒;

则脉冲信号的频率为:

我们测100个脉冲,c=0,th0=199,tl0=56,用时51ms,则测得的频率为196078.431hz,精确到了0.001hz,这时每个周期误差为为0.01us。

4、将实际的脉冲频率与测得的脉冲频率与测得的脉冲频率进行比较,利用统计的方法进行纠错,校正误差。

通过多测试几组频率不同的实验,当测试f实=0hz,f测=0hz;f实=10000hz,f测=10001hz;f实=20000hz,f测=10002hz;f实=30000hz,f测=30003hz;f实=40000hz,f测=40004hz;则我们在f测<40004hz这段范围内就可以得到一个关系同时将f实显示。

上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1