当前位置:文档之家› 数字频率计实验报告

数字频率计实验报告

大连理工大学城市学院数字电路与系统课程设计设计题目:数字频率计学院:电子与自动化学院专业:自动化学生:揣智涵同组人:王晓宁周英茹指导教师:于海霞完成日期: 2012年3月26日目录第一章设计任务1.1项目名称1.2项目设计说明1.2.1设计任务和要求1.2.2进度安排1.3项目总体功能模块图第二章需求分析2.1问题基本描述(要求分析得出整个系统流程图)2.2系统模块分解及各模块功能的基本要求第三章设计原理3.1 设计原理3.2 MAXPLUSII介绍第四章系统功能模块设计4.1 FEN模块4.1.1 FEN模块流程图4.1.2 输入输出引脚及其功能说明4.1.3 程序代码实现4.2 SEL模块4.2.1 SEL模块流程图4.2.2输入输出引脚及其功能说明4.2.3程序代码实现4.3 CORNA模块4.3.1 CORNA模块流程图4.3.2 输入输出引脚及其功能说明4.3.3 程序代码实现4.4 LOCK模块4.4.1 LOCK模块流程图4.4.2 输入输出引脚及其功能说明4.4.3 程序代码实现4.5 CH模块4.5.1 输入输出引脚及其功能说明4.5.2 程序代码实现4.6 DISP模块4.6.1 输入输出引脚及其功能说明4.6.2 程序代码实现第五章调试并分析结果5.1输入说明5.2预计输出5.3测试结果记录5.4测试结果分析第六章结论心得体会参考文献第一章设计任务1.1 项目名称:数字频率计1.2 项目设计说明1.2.1 设计任务和要求此频率计共分4档:一档:0~9999Hz;二档:10~99.99kHZ;三档:100.0~999.9kHz;,四档:1.000~999MHz;在换挡的设计方面,此程序突破了以往改变闸门时间的方法,使自动换挡的实现更加简单可靠。

1.2.2 进度安排第一节课:画出模块及程序流程图第二节课:调试各模块程序使其无误第三节课:连接整个程序并下载到试验箱是数字频率计的功能实现第四节课:改进程序设计实现创新,然后完成课程设计报告第五节课:完成答辩1.3 项目总体功能模块图如下图1-1第二章需求分析2.1 问题基本描述所谓频率,就是周期信号在单位时间(1秒)内变化的次数。

频率计的测量范围为1MHZ,为了测量精确量程分别为10KHZ,100KHZ,1000KHZ和1MHZ四个档。

即最大读数分别为9.999KHZ,99.99KHZ,999.9KHZ,999MHZ。

要求两成自动换挡。

其具体功能如下:(1) 当量程超过999时,自动增大一档,下一次测量时量程大一档;(2) 当超过测量范围时,显示溢出,报警器报警。

(3) 小数点位置随量程变化自动移位。

(4) 采用记忆显示方法,在测量过程中不显示数据,在测量完成以后显示测频结果,并将此结果保存到下次测量结束,显示时间不少于1秒。

(5) 根据频率计的测频原理,可以选择合适的时基信号即阀门时间,对输入信号脉冲进行计数,实现测频的目的。

(6) 根据数字频率计的设计原理,可以将数字频率计设计分为五个模块来实现其功能。

即分频模块,控制模块,计数模块,锁存模块和显示模块。

用CLDH语言进行编程。

(7) 弄清什么情况下是测频率,就是选择合适的时基信号的问题。

测频率时以输入信号作为时钟信号,因为输入信号的频率大于频率计的基准频率。

:数字频率计的系统流程图如下图2-12.2 系统模块分解及各模块功能的基本要求计数器在各个档是被反复应用的,如果在各个档分别设计计数器就造成资源的浪费,而且在测周期和频率的时候,计数器的时基信号和输入信号要进行调换,但计数功能是一样的,所以将计数器设为单独的模块。

七段译码器也是被重复使用的,也设成单独的模块,这样的话就不用在重复使用的时候重复书写译码电路了。

总体来说数字频率计分为五个模块来设计,即分频模块计数模块,锁存模块,预测控制信号发生器,显示模块。

分频模块为计数模块提供1秒的阀门时间。

计数模块是整个程序的核心,它完成在1秒的时间里对被测信号计数的功能,并通过选择输出数据实现自动换挡的功能。

锁存模块在信号L的下降沿到来时将信号A4,A3,A2,A1锁存。

显示模块对应于数码管片选信号,将相应的数据送出,其中档位也通过数码管显示。

第三章设计原理3.1 设计原理众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。

因此,频率检测是电子测量领域最基本的测量之一。

频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。

通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为 1 s。

闸门时间可以根据需要取值,大于或小于1 s都可以。

闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。

闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。

一般取1 s作为闸门时间。

数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图3-1所示。

图3-1数字频率计原理图3.2 MAXPLUSII介绍MAX+PLUSⅡ(Multiple Array and Programming Logic User System)开发工具是Altera公司推出的一种EDA工具,具有灵活高效、使用便捷和易学易用等特点。

Altera公司在推出各种CPLD 的同时,也在不断地升级相应的开发工具软件,已从早起的第一代A+PLUS、第二代MAX+PLUS发展到第三代MAX+PLUSⅡ和第四代Quartus。

使用MAX+PLUSⅡ软件,设计者无需精通器件内部的复杂结构,只需用业已熟悉的设计输入工具,如硬件描述语言、原理图等进行输入即可,MAX+PLUSⅡ就会自动将设计转换成目标文件下载到器件中去。

MAX+PLUSⅡ开发系统具有以下特点。

(1) 多平台。

MAX+PLUSⅡ软件可以在基于PC机的操作系统如Windows95、Windows98、Windows2000、Windows NT下运行,也可以在Sun SPAC station等工作站上运行。

(2) 开放的界面。

MAX+PLUSⅡ提供了与其他设计输入、综合和校验工具的接口,借口符合EDIF 200/300、LPM、VHDL、Verilog-HDL等标准。

目前MAX+PLUSⅡ所支持的主流第三方EDA工具主要有Synopsys、Viewlogic、Mentor、Graphics、Cadence、OrCAD、Xilinx等公司提供的工具。

(3) 模块组合式工具软件。

MAX+PLUSⅡ具有一个完整的可编程逻辑设计环境,包括设计输入、设计处理、设计校验和下载编程4个模块,设计者可以按设计流程选择工作模块。

(4) 与结构无关。

MAX+PLUSⅡ开发系统的核心——Compiler(编译器)能够自动完成逻辑综合和优化,它支持Altera的Classic、MAX7000、FLEX8000和FLEX10K等可编程器件系列,提供一个与结构无关的PLD开发环境。

(5) 支持硬件描述语言。

MAX+PLUSⅡ支持各种HDL设计输入语言,包括VHDL、Verilog-HDL和Altera的硬件描述语言AHDL。

(6) 丰富的设计库。

MAX+PLUSⅡ提供丰富的库单元供设计者调用,其中包括一些基本的逻辑单元,74系列的器件和多种特定功能的宏功能模块以及参数化的兆功能模块。

调用库单元进行设计,可以大大减轻设计人员的工作量,缩短设计周期。

第四章系统功能模块4.1 FEN 模块4.1.1 FEN 模块流程图图4-14.1.2输入输出引脚及其功能说明模块FEN如图9-87所示。

通过对4MHz时钟的分频得到0.5Hz 时钟,为模块CORNA提供1s的闸门时间。

CLK:输入时钟信号;Q:输出分频后的基准信号。

程序代码的实现如下library ieee;use ieee.std_logic_1164.all;entity fen isport (clk:in std_logic;q: out std_logic); 图4-2 end fen;architecture fen_arc of fen isbeginprocess(clk)variable cnt: integer range 0 to 999999;variable x: std_logic;beginif clk'event and clk = '1' thenif cnt<999999 thencnt:=cnt+1;elsecnt:=0;x:= not x;end if;end if;q<=x;end process;end fen_arc;4.2 SEL模块4.2.1 SEL 模块流程图图4-34.2.2 SEL模块输入输出引脚及其功能说明CLK:基准时钟信号; Q[2..0]:产生数码管的片选信号。

4.2.3 程序代码实现library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sel isport (clk: in std_logic; 图4-4 q:out std_logic_vector(2 downto 0));end sel;architecture sel_arc of sel isbeginprocess(clk)variable cnt:std_logic_vector(2 downto 0);beginif clk'event and clk='1' thencnt:=cnt+1;end if;q<=cnt;end process;end sel_arc;4.3 模块CORNA4.3.1 CORNA 模块流程图图4-54.3.2 输入输出引脚及其功能说明该模块是整个程序的核心,它完成在1s的时间里对被测信号计数的功能,并通过选择输出数据实现自动换挡的功能输入输出引脚及其功能说明CLR:复位按钮;SIG:待测频率信号;DOOR:基准时钟频率;ALM:蜂鸣器;DANG[3..0]:档位值;Q0~4[3..0]:计算后的频率值。

4.3.3程序代码实现library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity corna isport (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 corna isbeginprocess (door,sig)variable c0,c1,c2,c3,c4,c5,c6: std_logic_vector (3 downto 0);variable x:std_logic;beginif sig'event and sig='1' thenif door='1' thenif c0<"1001"thenc0:=c0+1;elsec0:="0000";if c1<"1001" thenc1:=c1+1;elsec1:="0000"; 图4-6if c2<"1001" thenc2:=c2+1;elsec2:="0000";if c3<"1001" thenc3:=c3+1;elsec3:="0000";if c4<"1001" thenc4:=c4+1;elsec4:="0000";if c5<"1001" thenc5:=c5+1;elsec5:="0000";if c6<"1001" thenc6:=c6+1;elsec6:="0000";alm<='1';end if;end if;end if;end if;end if;end if;end if;elseif clr = '0' thenalm <= '0';end if;c6:="0000";c5:="0000";c4:="0000";c3:="0000";c2:="0000";c1:="0000";c0:="0000";end if;if c6/="0000" thenq3<=c6;q2<=c5;q1<=c4;q0<=c3;dang<="0100";elsif c5/="0000" thenq3<=c5;q2<=c4;q1<=c3;q0<=c2;dang<="0011";elsif c4/="0000" thenq3<=c4;q2<=c3;q1<=c2;q0<=c1;dang<="0010";elseq3<=c3;q2<=c2;q1<=c1;q0<=c0;dang<="0001";end if;end if;end process;end corn_arc;4.4 模块LOCK4.4.1 LOCK 模块流程图图4-74.4.2 输入输出引脚及其功能说明该模块实现锁存器的功能,在信号L的下降沿到来时信号A4、A3、A2、A1锁存。

相关主题