简单频率计的制作.doc_第1页
简单频率计的制作.doc_第2页
简单频率计的制作.doc_第3页
简单频率计的制作.doc_第4页
简单频率计的制作.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一设计的基本原理和框图 1.1基本原理:数字频率计是用数字显示被测信号的频率的仪器,被测信号可以是正弦波,方波或者其他周期性变化的信号,它的基本原理是时基信号发生器提供标准的时基脉冲信号,若其周期为1s则门控电路的输出信号持续时间亦准确到1s。闸门电路有标准秒信号控制,当秒信号到来时闸门开通,信号通过闸门送到计数译码显示电路,秒信号结束时闸门关闭,计数器停止计数,由于计数器记得脉冲数N的是一秒内的累积数,所以被测频率是NHZ。闸门时间可以取大于或者小于1秒的值,测得的频率时间间隔与闸门时间的取值成正比,在这里取的闸门时间为1s。在此,数字频率计由分频器,片选电路,计数器,锁存器,译码电路和显示电路作为主要组成部分。 1.2设计框图如图1.1所示:译码信号清零信号锁存器计数器待测信号显示器片选信号时钟信号译码器片选分频器 图1.1二单元电路设计 2.1分频电路模块 分频器在总电路中有两个作用。由总图框图中分频器有两个输出,一个给计数器,一个给锁存器。时钟信号经过分频电路形成了20分频后的门信号。另一个给锁存器作锁存信号,当信号为低电平时就锁存计数器中的数。 分频电路图如图2.1 图2.1 分频电路图2.2片选信号电路模块 这个电路有两个用途:一是为后面的片选电路产生片选信号,二是为译码模块提供选择脉冲信号。 电路图如图2.2图2.2 片选信号电路图2.3计数器模块 计数器模块为该电路中的核心模块,它的功能是:当门信号为上升沿时,电路开始计算半个周期内被测信号通过的周期数,到下升沿后结束。然后送给锁存器锁存。计数器电路图如图2.3所示:图2.3 计数器电路图2.4锁存器模块 在分频信号的下降沿到来时,锁存器将计数器的信号锁存,然后送给编译模块中。其电路图如图2.4所示:图2.4 锁存器电路图2.5译码信号模块 此模块是对四个锁存器进行选择,按顺序的将四个锁存器中的数值送给译码模块中译码。其电路图如图2.5图2.5 译码信号电路图2.6片选模块 该模块接收到片选信号后,输出给显示器,选择显示那个显示管。其电路图如图2.6所示:图2.6 片选电路图2.7译码模块译码模块的作用就是将译码信号模块中选择出的信号进行译码,并将其送给显示器。其电路图如图2.7所示:图2.7 译码电路图2.8总电路图图2.8总电路图三编程下载 3.1分频模块的程序library ieee;use ieee.std_logic_1164.all;entity fen isport(clk:in std_logic; q:out std_logic);end fen;architecture fen_arc of fen isbeginprocess(clk)variable cnt:integer range 0 to 9;variable x:std_logic;beginif clkevent and clk=1 then if cnt9 then cnt:=cnt+1; else cnt:=0;x:=not x;end if;end if;q=x;end process;end fen_arc;3.2片选信号模块的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sel isport(clk:in std_logic; q:out std_logic_vector(2 downto 0);end sel;architecture sel_arc of sel isbeginprocess(clk)variable cnt:std_logic_vector(2 downto 0);beginif clkevent and clk=1 then cnt:=cnt+1;end if;q=cnt;end process;end sel_arc;3.3计数器模块的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity corna isport(clr,sig,door:in std_logic; alm:out std_logic; q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0);end corna;architecture corn_arc of corna isbeginprocess(door,sig)variable c3,c2,c1,c0:std_logic_vector(3 downto 0);variable x:std_logic;begin if sigevent and sig=1 then if clr=0 then alm=0;c3:=0000;c2:=0000;c1:=0000;c0:=0000; elsif door=0 then c3:=0000;c2:=0000;c1:=0000;c0:=0000; elsif door=1 then if c01001 thenc0:=c0+1; elsec0:=0000;if c11001 thenc1:=c1+1;else c1:=0000;if c21001 thenc2:=c2+1;elsec2:=0000;if c31001 thenc3:=c3+1;elsec3:=0000;alm=1;end if; end if; end if; end if; end if;if c3/=0000 then q3=c3;q2=c2;q1=c1;q0=c0;dang=0100; elsif c2/=0000 then q3=0000;q2=c2;q1=c1;q0=c0;dang=0011; elsif c1/=0000 thenq3=0000;q2=0000;q1=c1;q0=c0;dang=0010; else q3=0000;q2=0000;q1=0000;q0=c0;dang=0001;end if; end if;end process; end corn_arc;3.4锁存器模块的程序library ieee;use ieee.std_logic_1164.all;entity lock isport(l:in std_logic; a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0); q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0);end lock;architecture lock_arc of lock isbegin process(l) variable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0);beginif levent and l=0 thent4:=a4;t3:=a3;t2:=a2;t1:=a1;t0:=a0;end if;q4=t4;q3=t3;q2=t2;q1=t1;q0qqqqqqqqqqqqqqqqqqqqqqqqqqclr,sig=sig,door=t11,alm=alm,q3=t1,q2=t2,q1=t3,q0=t4,dang=t5);u2: fen port map (clk=clk,q=t11);u3: lock port map (l=t11,a4=t1,a3=t2,a2=t3,a1=t4,a0=t5,q4=t6,q3=t7,q2=t8,q1=t9,q0=t10);u4: sel port map (clk=clk,q=t20);u5: ch port map (sel=t20,a3=t6,a2=t7,a1=t8,a0=t9,dang=t10,q=t12);u6: disp port map (d=t12,q=q);u7: ym port map (d=t20,q=se);end architecture art;四仿真与调试 4.1分频电路模块的仿真 在quartus II中打开事先编译好的程序,然后建立工程文件,再打开波形图显示窗口,设置好参数,保存后编译,编译无错误既可以生成电路图。其仿真图如图4.1所示: 图4.1 分频电路仿真图4.2片选信号电路的仿真 其仿真图如图4.2.图4.2 片选信号电路仿真图4.3计算器模块的仿真 其仿真图如图4.3所示: 图4.3 计算器电路仿真图4.4锁存器模块仿真 其仿真图如图4.4所示: 图4.4 锁存器电路仿真图4.5译码信号模块的仿真 其仿真图如图4.5. 图4.5 译码信号电路仿真图4.6片选模块的仿真 其仿真图如图4.6 图4.6 片选电路仿真图4.7译码器模块其仿真图如4.7 图4.7 译码电路仿真图4.8总电路图的仿真用顶层文件将七个模块用导线相形成总电路图。其仿真图如图4.8 图4.8总电路仿真图4.9硬件调试软件仿真完成以后就与硬件相连,先设置好管脚。点击“assingmengt”菜单的“pin planner”将管脚设置好,再在实验箱上按设置好的管脚用导线连起来,确定后编译。关闭puartus软件,将试验箱接入电脑,按提示安装。重新打开软件,点击菜单“tools”中的”granmmer”确定接好USB接口。将实验箱的线接好后就可以运行,看结果与仿真是否相符.点击“start”将清零信号置低电平,显示器显示1 0000的字样。将被侧信号与时钟信号设置合理的数值,将清理信号置为高电平。显示器中就能显示器分频数值。1.清零信号为低电平时候的显示结果如图4.9.1 图4.9.1清零信号为低电平时的结果 图中为清零信号为低电平时,显示为0000,前面的1为在这种情况下只需要一个计数器工作。2.清零信号置为高电平后的结果如下图图4.9.2所示: 图4.9.2 清零信号为高电平时的显示结果 图中显示的为将被测信号为时钟信号的3840倍的显示结果。显示为3840,前面的4为需要用4个计数器工作。五心得体会这次课程设计是我们几个同学一起做的,我最深刻的体会就是合作更容易创造成功,在做课程设计的过程中,我碰到很多的问题,有的是在书上和网上都没找到答案的,由于自己平时遇到问题的时候一般都习惯在书上和网上寻找答案,所以也没怎么问同学和老师,但是这样做得结果是问题始终解决不了,又花了很多时间,后来我就问了同学,他们一下子就告诉了我该怎么解决这个问题,后来大家有问题的时候就互相问,结果是问题解决得既快又好,这让我们大家都节约了很多不必要的时间,我想分组做课程设计真的有很多好处,因为学习的目的是学知识,至于是怎么学到的并不是最重要的。这让我想到为什么公司在招聘员工的时候常常会考察这个员工是否有与他人合作的精神,而不是看他能力怎么样了,因为仅仅只靠自己一个人的能力,而不会与他人合作是很难在段的时间里取得成绩的,而要在这个社会上有很强的竞争力,需要的不仅仅是事情做得好,更重要的是能不能很快的解决问题。在刚拿到这个课题的时候,我对Quartus II这个软件是很不熟悉的,于是就找了EDA这本书来仔细的看,先是按照书上所说的来自己先练习使用这个软件,结果还是遇到了问题,比如事先已经把程序保存在一个文件夹里了,心想直接调出来用就可以了吧!因为保存在文件夹里的程序是已经编译过没有问题的了,调出来用的时候就不必再编译一遍了吧!实际是如果这样做了是不能做出仿真图形的,要在建立工程之后,打开波形图窗口再保存和编译过后才能仿真出波形图。有些问题自己一直解决不了,后来经过问了老师和同学之后才把问题解决了。所以我认识到,在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论