版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一背景介绍数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。它不仅可以测量正弦波、方波、三角波、尖脉冲信号和其他具有周期特性的信号的频率,而且还可以测量它们的周期。经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;可以测量电容做成数字式电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。因此数字频率计在测量物理量方面应用广泛。本设计用VHDL在CPLD器件上实现数字频率计测频系统,能够用十进制数码显示被测信号的频率,能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。数字频率计是计算机、通讯设备、音频视频等科研
2、生产领域不可缺少的测量仪器。采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。 第 17 页 共 15 页二设计思路以及实现方法1.测频原理本频率计设计测量频率的基本原理是,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数的结果,用锁存器锁存起来,最后用显示译码器,把锁存的结果用LED数码显示管显示
3、出来。频率计测量频率需要设计整形电路使被测周期性信号整形成脉冲,然后设计计数器对整形后的脉冲在单位时间内重复变化的次数进行计数,计数器计出的数字经锁存器锁存后送往译码驱动显示电路用数码管将数字显示出来,需要设计控制电路产生允许计数的门闸信号、计数器的清零信号和锁存器的锁存信号使电路正常工作。2.实现方法根据数字频率计的基本原理,本文设计方案的基本思想是分为五个模块来实现其功能,即整个数字频率计系统分为分频模块、控制模块、计数模块、译码模块和量程自动切换模块等几个单元,并且分别用VHDL对其进行编程,实现了闸门控制信号、计数电路、锁存电路、显示电路等。三系统框图与模块说明1.系统原理框图计数器锁
4、存器译码驱动电路数码管显示测频控制信号发生器待测信号2.模块说明标准时钟发生电路模块借用实验板上标准时钟发生电路,为计数闸门控制电路提供一个标准8Hz信号。计数器闸门控制电路模块计数器闸门控制电路就是产生三个控制信号,即计数器复位信号、4位十进制计数器允许计数信号、锁存信号。锁存电路模块锁存电路就是为了让LED数码管在信号来临之前保持计数值不变。4位十进制计数器锁存电路译码电路计数器闸门控制电路片选电路数据选择电路LED数码显示。计数器复位电路模块计数器复位电路是让频率计恢复到计数初始态。LED数码管驱动电路模块LED数码管驱动电路就是为LED数码管提供驱动电压。4位十进制计数器数据选择器译码
5、电路计数器闸门控制电路锁存电路片选电路LED数码显示待测输入信号4MH时钟4MH时钟四各部分模块具体设计1. 模块FEN,通过对 4MHz 时钟进行分频以获得 0.5 Hz 时钟,为核心模块,CORNA 提供 1 的闸门时间。 library ieee; use ieee.std_logic_1164.all; entity fen is port(clk:in std_logic; q:out std_logic); end fen; architecture fen_arc of fen is begin process(clk) variable cnt: integer range 0
6、 to 3999999; variable x:std_logic; begin if clk'event and clk='1'then if cnt<3999999 then cnt:=cnt+1; else cnt:=0; x:=not x; end if; end if; q<=x; end process; end fen_arc; 仿真图: 2. 模块SELX,该模块产生数码管的片选信号。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ent
7、ity selx is port(clk:in std_logic; sel:inout std_logic_vector(2 downto 0); end selx; architecture sel_arc of selx is begin process(clk) variable cnt:std_logic_vector(2 downto 0); begin if (clk'event and clk='1') then cnt:=cnt+'1' end if; sel<=cnt; end process; end sel_arc;仿真图:
8、3. 核心模块CORNA,该模块是整个程序的核心,它能在1 的闸门时间里完成对被测信号频率计数的功能,并通过选择输出数据实现自动换档的功能。library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity corna is port(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
9、corna is begin process(door,sig) variable c0,c1,c2,c3,c4,c5,c6:std_logic_vector(3 downto 0); variable x:std_logic; begin if (sig'event and sig='1')then if door='1'then if c0<"1001"then c0:=c0+'1' else c0:="0000" if c1<"1001"then c1:=c1+
10、'1' else c1:="0000" if c2<"1001"then c2:=c2+'1' else c2:="0000" if c3<"1001"then c3:=c3+'1' else c3:="0000" if c4<"1001"then c4:=c4+'1' else c4:="0000" if c5<"1001"then c5:=c5+
11、'1' else c5:="0000" if c6<"1001"then c6:=c6+'1' else c6:="0000" alm<='1' end if; end if; end if; end if; end if; end if; end if; else if clr='0'then alm<='0' end if; c6:="0000" c5:="0000" c4:="000
12、0" c3:="0000" c2:="0000" c1:="0000" c0:="0000" end if; if c6/="0000"then q3<=c6; q2<=c5; q1<=c4; q0<=c3; dang<="0100" elsif c5/="0000"then q3<=c5; q2<=c4; q1<=c3; q0<=c2; dang<="0011" e
13、lsif c4/="0000"then q3<=c4; q2<=c3; q1<=c2; q0<=c1; dang<="0010" elsif c3/="0000"then q3<=c3; q2<=c2; q1<=c1; q0<=c0; dang<="0001" end if; end if; end process;end corn_arc;仿真图:4. 模块 LOCK,该模块实现锁存器的功能在信号L的下降沿到来时将信号A4、A3、A2、A1锁存。 lib
14、rary ieee; use ieee.std_logic_1164.all; entity lock is port(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 is begin process(l) variable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0); begin if l
15、9;event and l='0'then t4:=a4; t3:=a3; t2:=a2; t1:=a1; t0:=a0; end if; q4<=t4; q3<=t3; q2<=t2; q1<=t1; q0<=t0; end process; end lock_arc;5. 模块CH,该模块对应于数码管片选信号,将相应通道的数据输出,其中档位也通过显示。 library ieee; use ieee.std_logic_1164.all; entity ch is port(sel:in std_logic_vector(2 downto 0);
16、 a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0); end ch;architecture ch_arc of ch is begin process(sel) begin case sel is when"000"=>q<=a0; when"001"=>q<=a1; when"010"=>q<=a2; when"011"=>q<=a3; when
17、"111"=>q<=dang; when others=>q<="1111" end case; end process; end ch_arc; 6. 模块 DISP,该模块为4线七段译码器。 library ieee; use ieee.std_logic_1164.all; entity disp is port(d:in std_logic_vector(3 downto 0); q:out std_logic_vector(6 downto 0); end disp; architecture disp_arc of d
18、isp is begin process(d) begin case d is when "0000"=>q<="0111111" when "0001"=>q<="0000110" when "0010"=>q<="1011011" when "0011"=>q<="1001111" when "0100"=>q<="1100110"
19、when "0101"=>q<="1101101" when "0110"=>q<="1111101" when "0111"=>q<="0100111" when "1000"=>q<="1111111" when "1001"=>q<="1101111" when others=>q<="0000000" end case; end process; end disp_arc; 五系统仿真结果原理图:仿真结果:六心得体会:EDA课设的时间挺紧张的,很多问题自己都难
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度陶瓷行业展会代理招商合同4篇
- 二零二五年度酒店客房灯具更换及维护服务合同3篇
- 2025年度人工智能研发团队保密协议及技术成果转化合同3篇
- 2025年度车辆赠与及维修保养费用分摊合同3篇
- 2025年度车辆拍卖合同协议4篇
- 2025年度摩托车租赁企业信用评价合同4篇
- 二零二五版节日促销广告印刷制作与市场活动合同2篇
- 二零二五版股东垫资支持新能源汽车产业合同3篇
- 二零二五版房屋买卖与抵押权设立及保险合同3篇
- 二零二五年度智能钢棚系统采购合同4篇
- 人教版(2025新版)七年级下册数学第七章 相交线与平行线 单元测试卷(含答案)
- GB/T 44351-2024退化林修复技术规程
- 从跨文化交际的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中药饮片培训课件
- 医院护理培训课件:《早产儿姿势管理与摆位》
- 空气自动站仪器运营维护项目操作说明以及简单故障处理
- 2022年12月Python-一级等级考试真题(附答案-解析)
- T-CHSA 020-2023 上颌骨缺损手术功能修复重建的专家共识
- Hypermesh lsdyna转动副连接课件完整版
- 小学六年级数学计算题100道(含答案)
- GB/T 7946-2015脉冲电子围栏及其安装和安全运行
评论
0/150
提交评论