(完整word版)量程自动转换数字频率计.doc

上传人:汽*** 文档编号:564332681 上传时间:2023-01-01 格式:DOC 页数:15 大小:235.10KB
返回 下载 相关 举报
(完整word版)量程自动转换数字频率计.doc_第1页
第1页 / 共15页
(完整word版)量程自动转换数字频率计.doc_第2页
第2页 / 共15页
(完整word版)量程自动转换数字频率计.doc_第3页
第3页 / 共15页
(完整word版)量程自动转换数字频率计.doc_第4页
第4页 / 共15页
(完整word版)量程自动转换数字频率计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《(完整word版)量程自动转换数字频率计.doc》由会员分享,可在线阅读,更多相关《(完整word版)量程自动转换数字频率计.doc(15页珍藏版)》请在金锄头文库上搜索。

1、量程自动转换数字频率计的设计1. 设计目标:A 设计一个3位十进制数字式频率计,其测量范围为1MHz,量程分10kHz,100kHz和1MHz三档(最大读数分别为9.99kHz,99.9kHz,999kHz)。被测信号应是一符合CMOS电路要求的脉冲或正弦波。B 要求量程可根据被测量的频率大小自动转换,即当计数器溢出时,产生一个换挡信号,让整个计数时间减少为原来的1/10,从而实现换挡功能。C 要求实现溢出报警功能,即当频率高于999kHz时,产生一个报警信号,点亮LED灯,从而实现溢出报警功能。D 小数点位置随量程变化自动移位。E 采用记忆显示方式,即计数过程中不显示数据,待计数过程结束后,

2、显示计数结果,并将此显示结果保持到下一次计数结束。显示时间应不小于1秒。2. 设计思路及实现方案:1. 频率计的工作原理:常用的测量频率的方法有两种,一种是测周期法,一种是测频率法。测周期法需要有基准系统时钟频率Fs,在待测信号一个周期Tx内,记录基准系统时钟频率的周期数Ns,则被测频率可表示为:Fx=Fs/Ns 测频率法就是在一定时间间隔Tw(该时间定义为闸门时间)内,测得这个周期性信号的重复变换次数为Nx,则其频率可表示为:Fx=Nx/Tw 本设计采用的是直接测频率的方法。2. 频率计的原理框图:频率计的系统设计可分为3位十进制计数模块,闸门控制模块,译码显示模块,可自动换挡模块和分频模块

3、。其原理框图如下:分频模块可自动换挡模块闸门控制模块3位十进制计数模块译码显示模块其中,可自动换挡模块为闸门控制模块提供3个挡,也就是三个测量范围的基准时钟信号,通过计数器的最高位的溢出情况来判定工作在第几挡。 闸门控制模块根据基准时钟信号产生基准时钟信号周期2倍的周期使能信号,随后为锁存器产生一周期性地锁存信号,再然后为计数模块产生一周期性的清零信号。 3位十进制计数模块在使能信号和清零信号的控制下对被测信号的波形变化进行计数,若产生溢出则为自动换挡模块输出一换挡信号。 译码显示模块显示被测信号的频率。3. 设计过程(包括关键模块的仿真结果及贴图)1. 分频模块: 输入信号为4MHZ的高频脉

4、冲,经过分频器后得到1KHZ的脉冲。分频器的代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenping2 isport(clk : in std_logic;clk_out : out std_logic);end fenping2;architecture behavior of fenping2 is begin process(clk) variable count: integer range 0 to 1999; variable x: std_logic;

5、begin if clkevent and clk=1 then if count1999then count:=count+1; else count:=0; x:=not x; end if; end if; clk_out0) ; elsif CLKevent and CLK=1 then if EN = 1 then if CQ1 0); end if; end if; end if; if CQ1 = 9 then COUNT = 1; else COUNT = 0; end if; CQ = CQ1; end process;end behav;以上源程序编译成功后,生成计数器模块

6、如下:3位十进制计数模块为:3.闸门控制模块: 以基准信号的周期为一秒为例,频率测量的基本原理是计算一秒内待测信号的脉冲个数,这就要求能产生一个周期为2秒,占空比为50%的周期信号TSTEN。用这个信号作为计数器的EN输入端,使其计数时间正好为1秒。当TSTEN为高电平时,计数开始,低电平时,计数停止。在计数器停止期间,首先要产生一个锁存信号LOAD,用其上升沿控制锁存器REG12将之前的计数结果存入锁存器中,并由显示模块将其显示出来。设置锁存器是为了让显示稳定,不会因为周期性的清零信号使得数值不断闪烁。锁存之后需有一清零信号CLR_CNT将计数器清零,为下一秒的计数操作做准备。 闸门控制模块

7、的VHDL源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity testctl is port (clk : in std_logic; clr_cnt : out std_logic; tsten : out std_logic; load : out std_logic ); end testctl;architecture behav of testctl issignal a:std_logic;begin process(clk) begin if clkevent

8、and clk=1 then a=nota; end if; end process; process(clk,a) if a=0 and clk=0 then clr_cnt=1; else clr_cnt=0; end if; end process; load=not a; tsten y =input0;o y =input1; o y =input2; o y=0;o=1;end case;end process;end behav;生成的模块为:仿真波形为:当输入为0000时:当输入为0001时:当输入为0010时:当输入为0011时:可以看到,设计完全符合要求,o端可以作为量程溢出标志。综上,量程自动转换模块为:5. 译码显示模块:译码显示模块的设计分为显示锁存器的设计,七段数码显示译码器的设计和小数点显示模块的设计3部分。显示

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档 > 租房合同

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号