数字频率计
发布时间:2014/7/22 20:34:29 访问次数:743
一、设计要求
①设计1个6位数字频率计系统,频率范HDSP-4836围为1~999 999 Hz,分辨率为1 Hz。
②输入测试信号为正负对称的幅度为1~5 V之间可调的正弦波、脉冲波、三角波。
③用动态扫描技术实现6位数字显示。
二、设计思路
1.总体方寨设计
根据要求,设计出总体方案,画出系统总体框图,如图7. 45所示。
各部分的组成及作用如下。
图7. 45频率计系统总体框图
①CPLD器件:接收被测频率信号、1 Hz标准信号和动态扫描信号,发出频率数字信号。
②转换电路:将正负对称的幅度为1~5 V之间可调的正弦波、脉冲波、三角波转换为同频率的TTL脉冲波形。
③反相驱动电路:加大由转换电路输出的TTL脉冲波形的驱动能力。
④动态扫描显示电路:用数码管显示输出的频率值。
⑤标准脉冲电路:产生1 Hz的标准脉冲信号和2 048 Hz的动态扫描信号。
⑥NE555Hz电路和单位显示亮熄电路:使“Hz”单位一亮一熄。
⑦直流稳压电源:给各部分电路提供电源。
频率计CPLD顶层电路原理图如图7.46所示。
图7. 46中:TESTCTL模块为测频控制器、CNT10模块为十进制加法计数器、REG4B为锁存器;动态扫描软件模块包括BCD6模块(六进制加法计数器)、MUX461模块(数据选择器)、74LS138模块(3-8译码)和DECL7S模块(七段译码)。
其中测频控制器模块( TESTCTL) VHDL语言程序如下。
LIBRARY IEEE;
USE IEEE. STD_LOGIC_1164. ALL;
USE IEEE. STD_LOGIC_UNSIGNED. ALL;
ENTITY TESTCTL IS
PORT( CLKK: IN STD_LOGIC;
CNT,RST,LOAD:OUT STD_LOGIC);
END TESTCTL;
ARCHITECTURE ONE OF TESTCTL IS
SIGNAL DIV2CLK: STD_LOGIC;
BEGIN
PROCESS(CLKK)
BEGIN
IF CLKK'EVENT AND CLKK= '1'THEN
DIV2CLK<= NOT DIV2CLK;END IF;END PROCESS;
PROCESS(CLKK,DIV2CLK)
BEGIN
IF CLKK= '0' AND DIV2CLK= '0' THEN
RST<='1';ELSE RST<='0'; END IF; END PROCESS;
LOAD<= NOT DIV2CLK; CNT<=DIV2CLK; END ONE;
一、设计要求
①设计1个6位数字频率计系统,频率范HDSP-4836围为1~999 999 Hz,分辨率为1 Hz。
②输入测试信号为正负对称的幅度为1~5 V之间可调的正弦波、脉冲波、三角波。
③用动态扫描技术实现6位数字显示。
二、设计思路
1.总体方寨设计
根据要求,设计出总体方案,画出系统总体框图,如图7. 45所示。
各部分的组成及作用如下。
图7. 45频率计系统总体框图
①CPLD器件:接收被测频率信号、1 Hz标准信号和动态扫描信号,发出频率数字信号。
②转换电路:将正负对称的幅度为1~5 V之间可调的正弦波、脉冲波、三角波转换为同频率的TTL脉冲波形。
③反相驱动电路:加大由转换电路输出的TTL脉冲波形的驱动能力。
④动态扫描显示电路:用数码管显示输出的频率值。
⑤标准脉冲电路:产生1 Hz的标准脉冲信号和2 048 Hz的动态扫描信号。
⑥NE555Hz电路和单位显示亮熄电路:使“Hz”单位一亮一熄。
⑦直流稳压电源:给各部分电路提供电源。
频率计CPLD顶层电路原理图如图7.46所示。
图7. 46中:TESTCTL模块为测频控制器、CNT10模块为十进制加法计数器、REG4B为锁存器;动态扫描软件模块包括BCD6模块(六进制加法计数器)、MUX461模块(数据选择器)、74LS138模块(3-8译码)和DECL7S模块(七段译码)。
其中测频控制器模块( TESTCTL) VHDL语言程序如下。
LIBRARY IEEE;
USE IEEE. STD_LOGIC_1164. ALL;
USE IEEE. STD_LOGIC_UNSIGNED. ALL;
ENTITY TESTCTL IS
PORT( CLKK: IN STD_LOGIC;
CNT,RST,LOAD:OUT STD_LOGIC);
END TESTCTL;
ARCHITECTURE ONE OF TESTCTL IS
SIGNAL DIV2CLK: STD_LOGIC;
BEGIN
PROCESS(CLKK)
BEGIN
IF CLKK'EVENT AND CLKK= '1'THEN
DIV2CLK<= NOT DIV2CLK;END IF;END PROCESS;
PROCESS(CLKK,DIV2CLK)
BEGIN
IF CLKK= '0' AND DIV2CLK= '0' THEN
RST<='1';ELSE RST<='0'; END IF; END PROCESS;
LOAD<= NOT DIV2CLK; CNT<=DIV2CLK; END ONE;
上一篇:电压电流转换电路设计
上一篇:转换电路设计