- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.
.
一.设计的基本原理和框图
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 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 to 9;
variable x:std_logic;
begin
if 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 is
port(clk:in std_logic;
q:out std_logic_vector(2 downto 0));
end sel;
architecture sel_arc of sel is
begin
process(clk)
variable cnt:std_logic_vector(2 downto 0);
begin
if clkevent and clk=1 then
cnt:=cnt+1;
end if;
q=cnt;
end process;
end
文档评论(0)