欢迎来到天天文库
浏览记录
ID:54701511
大小:121.00 KB
页数:3页
时间:2020-04-20
《简易数字频率计(2).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、简易数字频率计一、实验目的测量某一信号的频率,并通过实验箱上的八位数码管显示出来。二、方案论证与比较在此方案的前提下,如果能完成1Hz的精密时钟,则数码管显示的结果与被测信号的误差很小,但是在数码管的高位上显示出了不需要的0,则在此基础上加入了清零模块,则最终确定的方案如下:三、设计步骤1、1Hz的精密时钟该模块中,若要得到1Hz精密时钟,则需要经过24M次分频,即将其转化为十六进制为“16E3600”,二进制为“1011011100011011000000000”,那么二进制的位数25即为需要的D触发器个数,因此当计数到等于“16E3
2、600”时,将数据锁存,则输出即为1Hz精密时钟。CLK2为扫描时钟,可直接取计数中的任意时钟,如count14,但要满足>40Hz。则该模块的硬件描述语言如下:(sel-clock.tdf)subdesignsel_clock(clk:input;clk1,clk2:output;)variablecount[24..0]:dff;s:dff;begincount[].clk=clk;s.clk=clk;clk1=s;ifcount[]==H"16e3600"thens=VCC;count[]=0;elsecount[].d=coun
3、t[].q+1;s=GND;endif;clk2=count14;end;2、门控电路将被测信号与1Hz的时钟经过一个或门,将输出作为计数器的计数时钟,将1Hz的时钟经过一个与门作为计数器的清零时钟,从而实现当1Hz时钟为高电平时,对计数器清零,即不对被测信号计数,而当1Hz时钟为低电平时,计数器对被测信号进行计数,由此1Hz时钟不会对被测信号构成影响。其电路连接如下:3、清除高位显示的零该模块用来实现由缓冲模块锁存输出的数据经数码管显示后在高位出现的零,其设计方法为:当输出全为0,则经此模块输出后在数码管上只显示一个0,其它的数码管均
4、不显示,即将输出改为数码管显示不出来的字符,如b;同理,当输出为多于一位时,则将输入的数据直接输出,其它位改为显示不出的字符,如b。则该模块的硬件描述语言如下:(qingling0.tdf)subdesignqingling0(da[31..0]:input;out[31..0]:output;)beginifda[31..0]==H"00000000"thenout[31..0]=H"bbbbbbb0";elsifda[31..4]==H"0000000"thenout[31..4]=H"bbbbbbb";out[3..0]=da[3
5、..0];elsifda[31..8]==H"000000"thenout[31..8]=H"bbbbbb";out[7..0]=da[7..0];elsifda[31..12]==H"00000"thenout[31..12]=H"bbbbb";out[11..0]=da[11..0];elsifda[31..16]==H"0000"thenout[31..16]=H"bbbb";out[15..0]=da[15..0];elsifda[31..20]==H"000"thenout[31..20]=H"bbb";out[19..0]=
6、da[19..0];elsifda[31..24]==H"00"thenout[31..24]=H"bb";out[23..0]=da[23..0];elsifda[31..28]==H"0"thenout[31..28]=H"b";out[27..0]=da[27..0];endif;end;4、数据缓冲该模块实现数据缓冲,即在每个时钟上升沿到来时用D触发器将此时的数据锁存,直到下一个上升沿到来时更新数据。则该模块的波形仿真如下:该模块的硬件描述语言如下:(huan-chong0.tdf)subdesignhuan_chong0(cl
7、k,A[31..0]:input;out[31..0]:output;)variablecount[31..0]:dff;begincount[].clk=clk;count[].d=A[];out[]=count[].q;end;5、数码管扫描显示上图为cont模块的波形仿真,用于实现数码管的动态扫描;Sel]2..0]接数码管的位选端。四、原理图如下五、实验总结1、假如不用数据锁存的方法,直接用count24得到1.43Hz的时钟作为1Hz时钟使用,则误差很大。2、注意引脚的绑定:sel1~sel0锁定到Pin132,Pin133,
8、Pin135;被测时钟dsx锁定到Pin55;3、对于这样的综合设计实验,我们应采取各个击破的方式,对每个模块做到分析、思考,再去编程,然后将所有的模块组装在一起,就可完成该设计。如果碰到解决不了的问题,不
此文档下载收益归作者所有