本发明涉及一种基于单片机的高精度频率计的实现电路及方法,属于电子技术领域。
背景技术:
频率是电子技术重要的研究项目,目前采用的方法基本上都是采用的
技术实现要素:
本发明提供了一种基于单片机的高精度频率计的实现电路及方法,以用于提高测量精度。
本发明的技术方案是:一种基于单片机的高精度频率计的实现电路,包括波形处理电路、控制电路和显示电路;所述波形处理电路和显示电路分别与控制电路相连;
所述波形处理电路包括滤波电路、放大电路和逻辑门电路;其中滤波电路输入端与信号相连,滤波电路输出端与放大电路输入端相连,放大电路输出端与逻辑门电路输入端相连,逻辑门电路输出端与控制电路中单片机的计数器相连;
所述控制电路采用的是单片机最小系统,包括电源、单片机、振荡电路和复位电路;其中电源分别与单片机、振荡电路和复位电路相连,单片机再分别与逻辑门电路、显示电路、振荡电路和复位电路相连;
所述显示电路采用的是lcd1602,用来显示测量的频率。
所述滤波电路采用的是rc滤波器和陶瓷滤波器,其中rc滤波器的一端与信号相连,rc滤波器另一端与陶瓷滤波器一端相连,陶瓷滤波器另一端与放大电路相连;
所述振荡电路采用的是有源晶振。
一种基于单片机的高精度频率计的实现方法,所述方法的具体步骤如下:
s1、利用控制电路中单片机定时器功能计时,计数器功能计脉冲的数量,将计数器设置为下降沿有效:当从波形处理电路来一个脉冲时计数器自动进行加1,同时定时器进行计时,当计数器溢出时,正好记录了n个脉冲,这时定时器停止计时;
s2、取出定时器计时的时间t;
s3、计算出脉冲信号的周期
s4、将实际脉冲信号的频率与测得的脉冲信号的频率进行比较,用统计的方法进行纠错矫正误差。
所述定时器计时的时间t满足:
若定时器采用方式1,则
若定时器采用方式2,则
其中,th0、tl0表示与定时器有关的寄存器里的值,c表示n个脉冲进入中断的次数,f晶表示单片机使用的时钟频率,单片机为51系列单片机。
本发明的工作原理是:
利用单片机本身的定时器功能采用一个标准的时钟进行计时,同时利用单片机本身的计数器功能计从波形处理电路中传来的脉冲数,假设固定脉冲的脉冲数为n,对这n个脉冲计时的时间为t,则单位脉冲的周期为
以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,则机器周期频率为
3、计算出脉冲信号的周期:
4、将实际的脉冲频率与测得的脉冲频率与测得的脉冲频率进行比较,利用统计的方法进行纠错,校正误差。这里是将实际的脉冲频率与测得的脉冲频率进行比较,看每一个实际频率与测得的脉冲频率直接的误差,然后利用仿真软件形成一个对应关系,并显示实际的频率(就是例如我们由于测量上存在一定的误差例如我们要测频率为50000hz的频率,我们用机器测出来的频率是49999.9hz,则我们就可以知道当我们测出来的频率是49999.9hz时其实代表的的50000hz,这样我们就显示50000hz),减小误差。
所述波形处理电路包括:滤波电路、放大电路和逻辑门电路,其中所述滤波电路的一端与待测信号(待测信号可以是正弦波、方波、三角波等)相连,另一端与所述放大电路相连;所述放大电路一端与滤波电路相连,另一端与逻辑门电路相连;所述逻辑门电路一端与放大电路相连,另一端与所述逻辑门电路相连;
所述滤波电路采用的是rc滤波器和陶瓷滤波器,所述rc滤波器的一端与信号相连,另一端与陶瓷滤波器相连;所述陶瓷滤波器一端与rc滤波器相连,另一端与放大电路相连;所述滤波电路使用采用的是rc滤波电路和陶瓷滤波电路,用来将信号中的直流分量和其他的波纹滤除。
所述放大电路采用的是共射极放大电路,根据电路图
所述逻辑门电路采用的是cd4011与非门,所述逻辑门电路与所述放大电路的输出端相连。所述放大电路的输出端信号经过两个与1的与非门之后,即经过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(这里相当于上面的
3、计算出脉冲信号的周期:
则脉冲信号的频率为:
我们测100个脉冲,c=0,th0=199,tl0=56,用时51ms,则测得的频率为196078.431hz,精确到了0.001hz,这时每个周期误差为
实施例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(这里相当于上面的
3、计算出脉冲信号的周期:
则脉冲信号的频率为:
我们测100个脉冲,c=0,th0=199,tl0=56,用时51ms,则测得的频率为196078.431hz,精确到了0.001hz,这时每个周期误差为
实施例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(这里相当于上面的
3、计算出脉冲信号的周期:
则脉冲信号的频率为:
我们测100个脉冲,c=0,th0=199,tl0=56,用时51ms,则测得的频率为196078.431hz,精确到了0.001hz,这时每个周期误差为
实施例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(这里相当于上面的
3、计算出脉冲信号的周期:
则脉冲信号的频率为:
我们测100个脉冲,c=0,th0=199,tl0=56,用时51ms,则测得的频率为196078.431hz,精确到了0.001hz,这时每个周期误差为
4、将实际的脉冲频率与测得的脉冲频率与测得的脉冲频率进行比较,利用统计的方法进行纠错,校正误差。
通过多测试几组频率不同的实验,当测试f实=0hz,f测=0hz;f实=10000hz,f测=10001hz;f实=20000hz,f测=10002hz;f实=30000hz,f测=30003hz;f实=40000hz,f测=40004hz;则我们在f测<40004hz这段范围内就可以得到一个关系
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。