数字频率计课程设计

时间:2024-09-17 19:37:32编辑:coo君

数字频率计

1)测周法:使用“测周法”测量输入信号的频率,在数字电路中可以利用被测信号的边沿来向电路内部提供一个闸门时间,在闸门时间内对系统内部提供的标准高频时钟信号的边沿进行计数。若被测信号的频率为 ,标准高频时钟信号的频率为 ,测量所得计数值为 ,则可以根据公式(1)得到被测信号频率。

时序图如图1.1.1所示:

2)计数法:使用“计数法”测量输入信号的频率,即通过系统内部给一个固定闸门时间,在闸门时间内用计数器对被测信号的边沿进行计数。若被测信号的频率为 ,内部闸门时间为T,测量所得计数值为 ,则可以根据公式(2)得到被测信号频率。


时序图如图1.1.2所示:

因为在数字电路中使用中小规模逻辑器件构建多位除法器电路十分困难,故选择计数法来测量被测信号的频率。通过设置内部闸门时间T为1s,计数器在闸门时间内的计数值 即为被测信号的频率值。

根据设计要求,数字频率计最高需测量100kHz的TTL电平信号,故数字频率计系统通过逻辑控制电路给计数器芯片提供1s闸门时间的计数信号,在1s计数完成之后锁存计数器所得到的计数值,并且通过译码器译码完成后通过数码管显示出来。锁存完成之后再向计数器提供清零信号,然后计数器再开始下一次的测量,系统整体设计框图如图1.2.1所示。

时基电路是由555定时器构成的多谐振荡器,电路原理图如图2.1.1所示。在接通电源之后,若此时555定时器的放电三极管T未导通,则电容C1通过电阻R1、R2进行充电,此时电路输出高电平。当电容C1上的电压达到 时,电路输出高电平,同时放电三极管T导通,电容C1通过电阻R2放电,电路输出低电平。当电容C1上电压下降至 时,电路输出翻转为高电平,同时放电三极管T截止,电路周而复始的工作,产生时基信号。





时基信号的高电平时间由电容充电时间决定,其计算公式如下:

时基信号的低电平时间由电容充电时间决定,其计算公式如下:


使用模拟示波器测量时基电路输出的时基信号,示波器测量结果如图2.1.2所示。根据示波器测量结果,时基信号的高电平时间约为1s,低电平时间约为120ms,时基信号满足设计要求。





根据设计要求,需测量100kHz的信号,使用计数法计数时,计数模块最低需在1s内可以计100k个边沿脉冲。且因为显示模块为数码管,为了让数码管方便显示,故每一个计数器芯片都应设计为模十计数器,同时为6个模十计数器级联才能符合设计要求。但是当计数模块为6个计数器级联时,若采用同步计数器,则可能会使得计数脉冲的负载加重,故选择采用异步十进制计数器芯片74LS90,其芯片的功能表如表2.2.1所示。

根据芯片功能表,当R9(1)、R9(2)保持低电平时,可以通过控制R0(1)、R0(2)两个引脚的电平高低来控制计数器工作状态。故通过逻辑控制电路向计数模块输入计数/清零信号,当该信号为高电平时,计数器计数。当该信号为低电平时,计数器清零。为了实现计数器之间的级联,将低位计数器的Q4输出端接至高位计数器的CKA输入端。当低位计数器的计数状态Q0Q1Q2Q3从1001变为0000即计数值从9变为0时,Q4会产生一个下降沿信号输入到高位计数器的CKA端,实现了低位计数器向高位计数器的进位功能。计数模块电路图如图2.2.2所示。

给电路加上计数/清零信号和被测信号后,使用逻辑分析仪去测量其中一个计数器芯片的输出,其输出结果如图2.2.3所示,其中A0-A3分别对应着计数器芯片的四个输出端Q0-Q3,A4为计数/清零信号。根据测量结果,计数器能够在计数信号有效时正常计数,在清零信号有效时保持清零状态。

根据设计方案,译码显示模块需完成对计数器的计数结果进行锁存、译码并且通过数码管显示出来。为了减少芯片数量,故选择自带锁存功能的译码器芯片CD4511,CD4511的功能表如表2.3.1所示。

根据CD4511功能表,数码管应选择共阴极数码管。逻辑控制电路给译码显示模块输入锁存译码信号,即CD4511芯片的 和 始终保持着接高电平,给芯片的LE端输入译码显示信号。当译码显示信号为高电平时,译码显示模块锁存在上一个LE=0时的状态,显示在高电平来临之前的状态,当译码显示信号为低电平时,译码显示模块就会实时刷新显示状态。译码显示模块电路图如图2.3.2所示。

闸门电路需根据闸门信号来控制被测信号是否能够输入到计数模块。当闸门信号为高电平时,被测信号能够正常地通过闸门电路输入到计数模块,而当闸门信号为低电平时,被测信号被闸门阻碍,无法通过闸门电路。

根据闸门电路的设计要求,可以采用二输入与非门来实现闸门信号对被测信号是否输入到计数模块的控制。如表2.4.1为四2输入与非门74LS00的功能表。若闸门信号输入到与非门的A端,被测信号输入到与非门的B端,根据其功能表可知,当闸门信号为高电平时,闸门电路的输出信号与被测信号反相,当闸门信号为低电平时,闸门电路的输出信号一直保持高电平,阻碍被测信号输入计数模块。闸门电路的电路图如图2.4.2所示。

向闸门电路输入闸门信号和被测信号,使用模拟示波器观察输出信号与两个输入信号的波形图,如图2.4.3所示。

如图所示,第一个信号为闸门电路输出信号,第二个为被测信号,第三个为闸门信号。当闸门信号为高电平时,被测信号能够正常地通过闸门电路输出到计数模块,当闸门电路为低电平时,闸门电路输出保持为高电平,导致被测信号无法传输到计数模块,满足设计要求。

根据设计方案,逻辑电路需要根据输入的时基信号,通过逻辑电路来产生控制计数模块的清零信号和控制译码显示模块的锁存信号,以此来实现数字频率计的自动测量和刷新功能。

译码显示模块需要通过逻辑控制电路产生一个译码信号来实现对译码显示模块的锁存数据和刷新数据的功能。译码信号是在计数模块测量完成之后,在清零信号有效之前进行锁存当前测量结果的数据,根据CD4511的功能表, 锁存信号是高电平有效,即在高电平时译码器对高电平来临之前的输入信号进行锁存并保持,在低电平时锁存失效,即根据输入信号的变化实时刷新输出信号。在逻辑控制电路内,为了让其基于时基信号产生锁存信号,采用了555构成的不可重复触发的单稳态触发器。

单稳态触发器的特点是电路有一个稳定状态和一个暂稳状态。在触发信号作用下,电路将由稳态翻转到暂稳态,但是暂稳态是一个不能长久保持的状态,由于电路中RC延时环节的作用,经过一段时间后,电路会自动返回到稳态,并在输出端获得一个脉冲宽度为 的矩形波。在单稳态触发器中,输出的脉冲宽度 ,就是暂稳态的维持时间,其长短取决于电路中电阻R和电容C的参数值。

由555构成的单稳态触发器电路及工作波形如图2.5.2所示。图中R,C为外接定时元件,输人的触发信号 接在555的低电平触发端(2脚)。稳态时,输出 为低电平,即无触发器信号( 为高电平)时,电路处于稳定状态且输出低电平。在 的负脉冲作用下,低电平触发端得到低于 ,输出 为高电平,放电三级管T截止,电路进入了暂稳态,定时开始。在暂稳态期间,电源→R→C→地,实现对电容的充电,充电时间常数T=RC, 按指数规律上升。当电容两端电压 上升到 后,6端为高电平,输出 变为低电平,放电三极管T导通,定时电容C充电结束,即暂稳态结束。电路恢复到稳态 为低电 平的状态。当第二个触发脉冲到来时,又重复上述过程。

根据上述555单稳态触发器电路原理, 从零电平上升到 的时间就是输出电压 的脉宽 ,其计算公式如公式5所示。

逻辑控制电路的原理图如图2.5.3所示,实现对输入的时基信号进行变换,转化为清零信号和锁存信号。

向逻辑控制电路输入时基信号,使用示波器测量其输入信号和输出的清零信号及锁存信号的波形图,如图2.5.4所示。锁存信号在时基信号的下降沿触发,一直持续到时基信号下一次下降沿之前才转化为低电平,清零信号与时基信号相比较发现清零信号在产生于时 基信号的上升沿,且比较短暂,仿真结果满足设计方案。

方波发生器的电路是以555多谐振荡器为模板,通过控制555多谐振荡器的电阻大小和电容大小来改变输出的矩形波的频率。具体的555多谐振荡器电路原理参见节2.2.1。根据设计要求,矩形波发生器的电路原理图如图2.6.1所示。

使用频率计测量矩形波发生器的输出频率,其最大频率与最小频率如图2.6.2所示。

在设计逻辑控制电路时,原本采取的设计方案是用单稳态触发器通过对时基信号的触发产生一个很窄的高电平脉冲信号作为清零信号,再对清零信号通过一个单稳态触发器产生一个很窄的低电平脉冲信号作为锁存信号。这个设计方案是基于所使用单稳态触发器为脉冲触发时,才可能使得单稳态触发器的暂稳态时间低于触发信号的脉冲宽度。但是所使用的单稳态触发电路是由555定时器芯片为核心搭建的,而根据555定时器芯片的功能表,如表3.1.1所示,555定时器搭建的单稳态触发电路为电平触发的单稳态电路,故修改设计方案,具体方案参考节2.5.1。

在制作频率计时,考虑到电路较为复杂,如果在洞洞板上搭建电路则在电路连接上会受限制,会使用大量的跳线或者杜邦线去连接电路,电路的稳定性和可靠性比较低。故采用设计PCB制作电路板的方式去实现电路。

但是在设计PCB时由于经验不足,在布线时将两个不同网络的线路和焊盘放的过近,导致所制作出来的电路板在有的地方发生了短路的现象,花费了大量的时间去排查和解决短路问题。在放置数码管与CD4511之间的限流电阻时,由于疏忽导致电阻的阻值不等,使得数码管亮度不均匀。

通过本次数字频率计课程设计,加强了我在数字电路方面的认识。在设计频率计的电路时,通过查找资料加深了对时序电路和逻辑电路的了解,同时也学会了如何去通过查阅芯片的数据手册来分析它的功能和建立时间、保持时间等一些参数,以此来选取符合设计功能的芯片。在电路的时序逻辑设计上,通过本次设计让我体会到了数字电路中的时序对于整个系统是否正常能够工作起着决定性作用。在时基电路和逻辑控制电路的设计中所运用的555定时器芯片搭建的不同功能的电路,让我对与单稳态电路和无稳态电路有直接的体会。在仿真电路,学会了使用Protues这一款电子电路仿真软件,并且通过虚拟示波器和逻辑分析仪去观察和分析电路的时序逻辑。

在制作实物时,使用了EDA电路设计软件来设计PCB和制作电路板来完成实物制作,在制作的过程中逐渐熟悉了软件的时候和画PCB的技巧。同时也发现了并非电路仿真成功电路就一定不存在问题。由于在实际电路中,各类元件的参数上的误差和焊接上的缺陷对电路都会造成影响。而且在制作电路时一定要认真检查,如果一处出现失误,会导致整个电路失去作用甚至烧坏电路。所以在制作实物时要足够的细心去排查电路故障产生的原因并且去修正它。

在短短几天的课程设计中,不仅加深了我对数字电路基础知识的掌握程度,而且还让我经历了一个电路从无到有的设计和制作过程,加深了对专业知识的理解,让我对专业知识的学习有了更大的兴趣和动力。


简易数字频率计的设计

频率测量的方法常用的有测频法和测周法两种。测频法的基本思想是让计数器在闸门信号的控制下计数1秒时间,计数结果是1秒内被测信号的周期数,即被测信号的频率。若被测信号不是矩形脉冲,则应先变换成同频率的矩形脉冲。测频法的原理框图如图所示。图中,秒脉冲作为闸门信号,当其为高电平时,计数器计数;低电平时,计数器停止计数。显然,在同样的闸门信号作用下,被测信号的频率越高,测量误差越小。当被测频率一定时,闸门信号高电平的时间越长,测量误差越小。但是闸门信号周期越长,测量的响应时间也越长。2、当被测信号频率较低时,为保证测量精度,常采用测周法。即先测出被测信号的周期,再换算成频率。测周法的实质是把被测信号作为闸门信号。在它的高电平的时间内,用一个标准频率的信号源作为计数器的时钟脉冲。若计数结果为N,标准信号频率为f1,则被测信号的周期为:T=T1·N。被测信号的频率为:f=1/T1·N=f1/N。利用测周法所产生的最大绝对误差,显然也等于±1个标准信号周期。如果被测信号周期的真值为T真=T1·N,则T测=T1·(N±1)σmax=(f测-f真)/f真=T真/T测_1=±1/(N±1)由上式可知,对于一定的被测信号,标准信号的频率越高,则N的值越大,因而相对误差越小。3、低频段的测量,鉴于上述困难,对于低频信号,为了达到规定的精度,要采取一些比较特殊的方法。例如,可考虑将被测信号倍频后再用测频法测量。或将闸门信号展宽。由于倍频电路比较复杂,所以一般采用后一种方法,实际上闸门信号展宽与被测信号倍频在效果上是相同的。闸门信号展宽比较容易做到,例如采用分频电路就可以实现。若闸门信号高电平时间从1秒展宽到10秒,则相对误差可以按比例下降,但响应时间也增大相同的比例。4、显示方式:共用右边四个数码管,左三个显示数据,最右端一个显示单位,为0时单位为Hz,为1时单位为Khz5、代码://#include#include#include#defineuintunsignedintuinta,b,c,d;unsignedlong x;unsignedlong count;unsignedcharflag=0;voidTimer0_Init()interrupt1{TH0=(65535-10000)/256;TL0=(65535-10000)%256;if(++count==40){count=0; TR1=0;x=TH1*256+TL1; TH1=0;TL1=0;TR1=1;flag=1;}}voidshow(void){if(x>=10&&x<100){a=0;b=x*10%100;c=x/10;d=x%10;ZLG7289_Download(1,7,0,a);ZLG7289_Download(1,6,0,b);ZLG7289_Download(1,5,1,d);ZLG7289_Download(1,4,0,c);}elseif(x>=100&&x<1000){a=0;b=x/100;c=x%100/10;d=x%10;ZLG7289_Download(1,7,0,a);ZLG7289_Download(1,6,1,d);ZLG7289_Download(1,5,0,c);ZLG7289_Download(1,4,0,b);}elseif(x>=1000&&x<10000){a=x/1000;b=x%1000/100;c=x%100/10;d=1;ZLG7289_Download(1,7,0,d);ZLG7289_Download(1,6,0,c);ZLG7289_Download(1,5,0,b);ZLG7289_Download(1,4,1,a);}}main(void){system_init();systemclk_init();port_init();ZLG7289_Init(40);ZLG7289_Reset();timer_init();while(1){if(flag==1){show();flag=0;}}}#include#includevoidsystem_init(){PCA0MD&=~0x40;}voidsystemclk_init(){OSCICL=OSCICL+42;//设置内部振荡器为24MHZOSCICN|=0x01; //内部振荡器4分频}voidport_init(){ P0SKIP=0x00; //跳过P0.0做INT0.P0.1做INT1(P0.6,P0.7模拟输出不跳)P1SKIP=0x00; //跳过P1.2,P1.3,P1.4XBR0=0x00; //交叉开关使能UART0XBR1=0x60; //打开交叉开关//IT01CF=0x10; //INT0配置在P0.0,INT1配置在P0.1P0MDIN=0xFF; //数字输入P1MDIN=0xFF;P0MDOUT=0xFF;//推挽P1MDOUT=0xFF;}voidtimer_init(){TMOD=0X51;TH0=(65535-2500)/256;TL0=(65535-2500)%256;EA=1;ET0=1;TR1=1;TR0=1;}#ifndef__port_H_#define__port_H_voidsystem_init(void);voidsystemclk_init(void);voidport_init(void);voidtimer_init(void);#endif

上一篇:intouch组态软件

下一篇:没有了