版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3数字频率计的设计设计要求1 设计一个能测量方波信号频率的频率计,测量结果用十进制数显示。2.测量的频率范围是1、10KHz,分成两个频段,即1、999Hz,1KHz、10KHz,用三位数码管显示测量频率,用 LED显示表示单位,如亮绿灯表示 Hz,亮红灯表示 KHz。3. 具有自动校验和测量两种功能,即能用标准时钟校验测量精度。4. 具有超量程报警功能,在超出目前量程档的测量范围时,发出灯光和音响信号图1頻率计毎烷框團.设计提示脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为 f=N/T,f 为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需 的时间。所以,在1秒时
2、间内计数器所记录的结果,就是被测信号的频率。测量/校验选择模块计数器模块 送存选择报警模块锁存模块扫描显示模块测量/校验选择模块*输入信号:选择信号selet被测信号meas测试信号test输出信号:CP1当selet=0时,为测量状态,CP1=meas ;当selet=1时,为校验状态,CP仁test。校验与测量共用一个电路,只是被测信号 CP1不同而已。设置1秒定时信号(周期为2秒),在1秒定时时间内的所有被测信号送计 数器输入端。计数器对CP1信号进行计数,在1秒定时结束后,将计数器结果送锁存器 锁存,同时将计数器清零,为下一次采样测量做好准备。设置量程档控制开关 K,单位显示信号Y,当
3、K=0时,为1 999Hz量程档,数码管显示的数值为被测信号频率值, Y显示绿色,即单位为 Hz ;当K=1 时,为1KHz 10KHz量程档,被测信号频率值为数码管显示的数值乘 1000, Y显示红色,即单位为 KHz。设置超出量程档测量范围示警信号 alert。计数器由四级十进制计数构成(带 进位C)。若被测信号频率小于1KHz(K=0),则计数器只进行三级十进制计 数,最大显示值为999.HZ,如果被测信号频率超过此范围,示警信号驱动灯光、扬声器报警;若被测信号为1KHz0KHz( K=1),计数器进行四位十进制计数,取高三位显示,最大显示值为 9.99KHZ,如果被测信号频率超过此范围
4、,报警图2数字频率计硬件系统示盲图设计文档一、原理测频的原理归结成一句话,即在单位时间内对被测信号进行计数。下图说明了 测频的原理及误差产生的原因。计到7个豚冲多余(匕浜际参伍阳个膵沖)图1测频的原理在上图中,假设时基信号为1khz,则用此法测得待测信号为1khz*7=70khz o但从图中可以看出,待测信号应该在 77khz,误差约为7/779.1%。这个误差是比 较大的,实际上,测量的脉冲个数的误差会在 _1间。假设所测得脉冲个数为n,则所测频率的最大误差为1/( n-1)*100%。显然,减小误差的方法就是增大 n。本频 率计的要求测量结果以3位数表示,则测频误差应为1%0.1%,则n的
5、取值范围 为:100 n cto0jckjtQ| j/ counlrDl -pnnphBPhiHornPbIHUH图8十分频器仿真波形燃剳肿 删期 /期 卿册 阀肿剤胪 880./ M0 糾)限測肿糾)馬糾加 1c kintout円LDD店jowVuWwlWUW咛uniterDO B 砒町矶町时82町町时时叫町矶町91 H琳琳刑96洌叭琳图9 200分频仿真波形wclklOOkhz7 zlklOkh :1k 门t:* rlklOhz* clklkhz* tiki himrwuWWLOJUUWUWWW图10分频器模块仿真波形10分频和200分频的程序见附录4。5锁存器的设计在本课题中,用的是一个
6、正沿触发的 D锁存器,它有一个数据输入端 d,一个 时钟输入端elk和一个数据输出端q。D锁存器的输出端只有在正脉冲沿过后,输 入端d的数据才传递到输出端q。用VHDL语言描述该D锁存器的程序见附录5。上述D锁存器只是一个单输入输出的锁存器, 通过元件例化将单输入输出的锁 存器扩张成3输入输出的锁存器。详见下图:SHUOCUN1CLKBe. T 1|:SHUOfLIhl己njiw 匚 NumoMBO 0|Lkxijtjq图11锁存器模块6显示器的设计七段数码管分为共阴极和共阳极两种。简而言之,对共阴极来说,公共引脚要 接地,想要点亮某段数码管,就在相应的引脚上加高电平;对共阳极来说正好相反,
7、公共引脚提高电平,想要点亮某段数码管,就在相应的引脚上加低电平。设计时用的是并行连接的七段数码管驱动程序。并行连接,即每个数码管都由 单独的译码电路控制,各数码管之间除地端 GND接在一起外,其余引脚各不相关。 并行法的优点是控制简单,有几个数码管就用几个译码电路,不必修改程序,十分I/O 口,简单。但当系统中所需数码管较多时,这种方法既耗资源,又占用较多的 N个数码管需占用7N个引脚(若需要小数点,则是8N个引脚)。因此,此接法适 合于系统中数码管数量不多的应用场合。所以,本设计中用并行连接比较方便。带使能端的译码器的程序见附录 6,根据该程序通过类属映射得到显示器。Name:卫代10 01
8、200ns30 Ch 4喻 50M60 Orts JO.Ons 90 Ons 90ili1JJi1ii1mi-1JSumB0000oxn ( oooi ooiD ooit oioo | oidi 0110 0111 I 1000 * 0110000) iiQiiOf (rm oiii J) oniii 呻ooro | irnn 1图14七段数码管仿真波形Hane20.0ns11 血脑90.0ns印.thO.Ons13I41MO : 0(D1 omo(咖(血0101 fflID 汕 I 1000 X 1001 伽1011nunirb3001oom : oidii roio00110ID0 101
9、01 J HID 10111 ) 1D00 1001 1010 1011Vnrniio5(MCraro )r oom f roio1oor : ja oioi J fflio cm loot in icic) ton nd*11I111D 训10000伽10|1川001加00111101帅测 111川0000*1111 町111001卄0000( tnidb1111110 仙 10000伽101 仙时卩侧训脚测 11 巾IIOttBf 1111111 11100町0寸9 lib-1I1I1W 仙 10000伽叫1 川叫0側1|曲1测11 屮 110000 桝111|(1110(111诃 图15
10、显示器仿真波形下图为数字频率计的顶层文件图。其中clkproduct是分频模块,statemachine 为状态机,counter为计数器,signallatch 为同步整形电路,numlatch为琐存器,show num为七段数码管译码电路w czSHOWNUMddhzhucciuheriE N1.!. . 41蚀 rBLHKVDLE Lt. . *JVIUNVMQVTfll . ,4!UHIMftlL - OLNUFHe n,num=numin a,display=lsb);u2:display port map(e n1=e n,num=numin b,display=middle);u
11、3:display port map(e n1=e n,num=numin c,display=msb);end;这段程序是用类属映射的方法将一位七段数码管扩展成一个显示器的电路, 其实显示器可以用图形的形式生成,但这里用这个方法主要是为了学习VHDL的不同设计方法。图形方法的优点是比较直观,各个管脚的连接不容易出错, 特别是当一个模块的包含许多子模块的时候,更能体现出图形方法的优越性。又例如:library ieee;use ieee.std_logic_1164.all;en tity fredevider10 isgen eric (n:i nteger:=9);port(clki n:
12、in std_logic;clkout:out std_lo();end;architecture behavior of fredeviderlO is sig nal coun ter:i nteger range 0 to n; signal clk:std_logic;begi nprocess(clk in)beg inif rising_edge(clkin) thenif counter=n the nclk=not clk;coun ter=0;elsecoun ter=co un ter+1;end if;end if;end process;clkout=clk;end;上
13、述程序是一个十分频电路,如果想得到其它倍数的分频电路可以通过修改counter的上限值N得到。一般的计算规则是:对一个 2x的分频电路来说, counter上限值N=x-1 (从0计到x-1恰好为x次,每个上升沿翻转一次就实现 了 2x分频)。附录附录1 :状态机程序library ieee;use ieee.std_logic_1164.all;entity statemachine isport(clock,clock10hz,clock100hz,clock100khz:in stdo gic;-欠量程信号和超量程信号low,over:i n stdo gicreset:in std_l
14、ogic;-控制七段数码管的显示dp1,dp2:out std_logic;-dp1为百位的小数点-dp2为十位的小数点overlight,lowlight:out stdo gic;-待测信号频率超过总量-的指示灯-输出时基信号);end;architecture mooremach ine of statemachi ne istype state_type is(f10k,f100k,overerror,lowerror); sig nal state:state_type;begi nprocess(clock100khz,reset)begi nif (reset=1)the nst
15、ateif over=1the n state=overerror;elsif low=1 the nstate=f10k;elsestateif over=1 the n state=f100k;elsif low=1 the n state=lowerror;else stateif low=1 the n state=f10k;elsif over=1 the n state=overerror;else stateif low=1 the n state=lowerror;elsif over=1 the n state=f100k;elsestateen 二1;outclock=cl
16、ock100h z;overlight=0;lowlight=0;dp1=0;dp2outclock=clock10hz;overlight=0;lowlight=0;en 二1;dp1=1;dp2en =0;outclock=clock100h z;overlight=1;lowlighten =0;outclock=clock10hz;lowlight=1;overlight=0;end case;end process;end;附录2:计数器程序:library ieee;use ieee.std_logic_1164.all;en tity coun ter is port (cloc
17、k1,clock2:in std_logic; result1,result2,result3:out in teger range 0 to 9; over,low:out stdogic);end;architecture behavior of coun ter issig nal en,entran sfer:std_logic;sig nal nu m1, num2,nu m3:i nteger range 0 to 9;sig nal overmode:stdo gic;beg inprocess(clock1)beg inif risin g_edge(clock1) the n
18、en=not en;end if;end process;-en=时传输数据-entransfer以保证数值-与信号只传输一次-超量程的情况-欠量程的情况process(clock2)beg inif risin g_edge(clock2) the nif en=1 thenif entran sfer=1 the n entran sfer=0;if overmode=1 the nlow=0;over=1;overmode=0;elsif nu m3=0 the nlow=1;over=0;elselow=0;over=0;result1=nu m1;result2=nu m2;resu
19、lt3=nu m3;end if;nu m1=0;nu m2=0;nu m3=0;end if;else-en= 时计数entran sfer=1;low=0;over=0;if nu m1=9 the nif nu m2=9 the nif nu m3=9 the novermode=1;elseovermode=0;nu m3=nu m3+1;nu m2=0;nu m1=0;end if;elseovermode=0;nu m2=nu m2+1;nu m1=0;end if;elseovermode=0; nu m1=nu m1+1;end if;end if;end if;result1
20、=nu ml;result2=nu m2;result3=nu m3;end process;end;附录3:同步整形电路程序:library ieee;use ieee.std_logic_1164.all;entity signallatch isport(clock:in std_logic;signalin:in std_logic;sig nalout:out std_logic);end;architecture pataflow of sig nallatch is sig nal clear,s:std_logic;begi nprocess(sig nali n)beg in
21、if clear=1 the ns=0;elsif rising_edge(signalin) then s=1;end if;end process;process(clock)beg inif falli ng_edge(clock) the nif s=1 thensig nalout=1;clear=1;else sig nalout=0; clear=0;end if;end if;end process;end;附录4 :分频器程序library ieee;use ieee.std_logic_1164.all;en tity fredevider10 is gen eric (n
22、:i nteger:=9);port (clki n:in std_logic;);end;architecture behavior of fredeviderlO is sig nal coun ter:i nteger range 0 to n;signal clk:stdogic;begi nprocess(clk in)beg inif rising_edge(clkin) thenif counter=n the nclk=not clk;coun ter=0;elsecoun ter=co un ter+1;end if;end if;end process;clkout=clk;end;library ieee;use ieee.std_logic_1164.all;en tity fredevider200 is gen eric (n:i nteger:=99);port(clki n:in std_l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广东省云浮市单招职业倾向性测试题库(含答案详解)
- 2026年广东茂名幼儿师范专科学校单招综合素质考试题库附参考答案详解(能力提升)
- 2026年山西管理职业学院单招职业适应性测试题库含答案详解(达标题)
- 2026年广东省肇庆市单招职业倾向性测试题库有答案详解
- 2026年广东农工商职业技术学院单招职业技能考试题库参考答案详解
- 2026年广州民航职业技术学院单招综合素质考试题库完整答案详解
- 2026年山西省吕梁市单招职业适应性考试题库及答案详解(易错题)
- 2026年山西省大同市单招职业倾向性测试题库有完整答案详解
- 2026年山西警官职业学院单招职业适应性测试题库附参考答案详解(培优)
- 2026年广东南华工商职业学院单招职业适应性考试题库附参考答案详解(巩固)
- 【试论小微企业的应收账款管理9700字(论文)】
- 网络漏洞利用与渗透测试服务项目可行性分析报告
- 2022年甘肃高考物理真题及答案
- 烹调技术(第三版)中职PPT完整全套教学课件
- 2021西安美术学院附中招生语文试卷
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- 室内绿化植物的配置形式和原则
- 地质环境与地质灾害防治绪论课件
- GB/T 30256-2013节能量测量和验证技术要求泵类液体输送系统
- GB/T 19634-2021体外诊断检验系统自测用血糖监测系统通用技术条件
- GB/T 18354-2021物流术语
评论
0/150
提交评论