一、数字频率计功能
(1)设计一个4位数字显示的十进制频率计,其测量范围为1MHz。
(2)测量值通过4个数码管显示以8421BCD码形式输出;
(3)采用记忆显示方式,即计数过程中不显示数据,待计数过程结束后,显示计数结果,并将此显示结果保持到下一次计数结束。显示时间应不小于1s。
(4)可通过开关实现量程控制,量程分10kHz、100kHz、1MHz三档(最大读数分别为9.999kHz、99.99kHz、999.9kHz);
当输入信号的频率大于相应量程时,有溢出显示。
二、所用设备
SE-5M型EDA实验系统资源( EPF10K10LC84-4)。SE-5M型实验箱通用编程模块,开关按键模块,LED显示模块,数码管显示模块。
三、基本设计原理

数字频率计的原理框图如图所示。他主要由4个模块组成,分别是:控制模块、计数模块电路、锁存器、译码显示模块。 当系统正常工作时,脉冲发生器提供的1 Hz的输入信号,经过控制模块进行信号的变换,产生计数信号,被测信号送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。
四、设计实现
**1、**系统方框图的划分和结构设计
根据数字频率计的系统原理框图(图1),设计系统的顶层电路图如图2所示。

Control模块将系统时钟转换为计数时钟。
suocun为锁存器。在信号lock的上升沿时,立即对模块的输入口的数据锁存到suocun块的内部,输出端输出送扫描显示译码模块可以译码输出。在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。
counter计数模块,内部由3个计数器组成,分别为10进制、100进制和9999进制,有一时钟使能en输入,当高电平时允许计数,低电平时禁止计数。
show为扫描显示译码电路,可以将频率计数的结果译成能在数码管上显示相对应的阿拉伯数字,便于读取测量的结果。
为了实现系统功能,各个模块存在一个工作时序的问题,设计时需要综合考虑。
图3给出了系统的工作时序。图3中CLK是由图1中脉冲发生器产生的频率为1 Hz的标准时钟信号,当计数模块的en端为高电平时允许计数、低电平时停止计数,在停止计数期间,控制模块的lock端产生一个上升沿,将计数器在前1 s的计数值保存在锁存器中,并由5个7段译码器将计数结果译出稳定显示。锁存信号之后经过半个CLK周期,控制模块的clr端产生一个上升沿,对计数器进行清零。为下1 s的计数操作做准备。
为了产生这个时序图,首先有一个D触发器构成二分频器,在每次时钟CLK的上升沿到来使其值翻转。D触发器的输出高电平正好是1 s,因此可以作为计数模块的en端,用来控制计数。而lock信号正好是en端信号的翻转。在计数结束后半个CLK周期,CLK与en都为低电平,这时CLR产生一个上升沿作为清零信号。

2、各模块的VHDL源程序及仿真
A、control模块
library ieee;
use ieee.std_logic_1164.all;
entity control is
port(clk:in std_logic; --系统时钟
start:in std_logic;
en,clr,lock : out


1万+

被折叠的 条评论
为什么被折叠?



