导航:首页 > 装置知识 > 电子装置设计数字频率计报告

电子装置设计数字频率计报告

发布时间:2023-02-14 15:36:02

1. 单片机开题报告范文

随着单片机由于其较小的体积和很高的性价比,而在各种电子产品中受到广泛的应用和发展,单片机的研发人员也在不断的进行技术上的革新。下面是我为大家整理的单片机开题报告范文,欢迎阅读。

单片机开题报告范文篇1:

基于单片机数字频率计设计开题报告

一、选题的依据及意义:

本课题主要研究如何用单片机来设计数字频率计。因为在电子技术中,频率的测量十分重要,这就要求频率计要不断的提高其测量的精度和速度。在科技以日新月异的速度向前发展,经济全球一体化的社会中,简洁、高效、经济成为人们办事的一大宗旨。在电子技术中这一点表现的尤为突出,人们在设计电路时,都趋向于用竟可能少的硬件来实现,并且尽力把以前由硬件实现的功能部分,通过软件来解决。因为软件实现比硬件实现具有易修改的特点,如简单的修改几行源代码就比在印制电路板上改变几条连线要容易的多,故基于微处理器的电路往往比传统的电路设计具有更大的灵活性。

因为数字频率计是计算机、通讯设备、音频视频等科研生产领域必不可少的测量仪器,所以频率的测量就显得更为重要。在数字电路中,频率计属于时序电路,它主要由具有记忆功能的触发器构成。在计算机及各种数字仪表中,都得到了广泛的应用。本课题采用的是直接测频式的频率计,设计原理简单、电路稳定、测量精度高,大大的缩短了生产周期。

二、国内外研究概况及发展趋势(含文献综述):

由于当今社会的需要,对信息传输和处理的要求不断提高,对频率的测量的精度也需要更高更准确的时频基准和更精密的测量技术。而频率测量所能达到的精度,主要取决于作为标准频率源的精度以及所使用的测量设备和测量方法。目前,测量频频的方法有直接测频法、内插法、游标法、频差倍增法等等。直接测频的方法较简单,但精度不高。频差倍增多法和周期法是一种频差倍增法和差拍法相结合的测量方法,这种方法是将被测信号和参考信号经频差倍增使被测信号

的相位起伏扩大,再通过混频器获得差拍信号,用电子计数器在低频下进行多周期测量,能在较少的倍增次数和同样的取样时间情况下,得到比测频法更高的系统分辨率和测量精度,但是仍然存在着时标不稳而引入的误差和一定的触发误差。

在电子系统广泛的应用领域中,到处看见处理离散信息的数字电路。供消费用的冰箱和电视、航空通讯系统、交通控制雷达系统、医院急救系统等在设计过程中都用到数字技术。 数字频率计是现代通信测量设备系统中必不可少的测量仪器,不但要求电路产生频率的准确度和稳定度都高的信号,也要能方便的改变频率。

数字频率计的实现方法主要有:直接式、锁相式、直接数字式和混合式

(1)直接式

优点:速度快、相位噪声低,但结构复杂、杂散多,一般只应用在地面雷达中。

(2)锁相式

优点:相位同步的自动控制,制作频率高,功耗低,容易实现系列化、小型化、模

块化和工程化。

(3)直接数字式

优点:电路稳定、精度高、容易实现系列化、小型化、模块化和工程化。

三、研究内容及实验方案:

研究内容:本课题设计以单片机为核心,设计一种数字频率计,应用单片机中的定时器/计数器和中断系统等完成频率的测量。

实验方案:

图1 频率计总体设计框图

四、目标、主要特色及工作进度

目标:

基于单片机的数字频率计,画出电路图并用软件仿真

工作特色:

(1)运用了单片机技术;

(2)运用了C语言、电路等知识;

(3)采用电脑等工具;

(4)采用显示模块、分频模块、单片机模块等;

(5)简单易理解,十分实用。

工作进度:

1、查阅文献,翻译英文资料,书写开题报告; 第1---4周

2、相关资料的获取和必要知识的学习 ; 第5---9周

3、设计系统的硬件和软件模块并调试 第10--14周

4、撰写论文; 第15--16周

5、总结,准备答辩; 第17周

五、参考文献

[1]李学海著.标准80C51单片机基础教程.北京航空航天大学出版社,2006

[2] 戴仙金主编.51单片机及其C语言程序开发实例.清华大学出版社,2008

[3] 李诚人.高宏洋等.嵌入式系统及单片机应用,清华大学出版社,2005

[4] 龚运新编著.单片机C语言开发技术.清华大学出版社,2006

[5] 张天凡等编著.51单片机C语言开发详解.电子工业出版社,2008

[6] 张义和.王敏男等.例说51单片机(C语言版).人民邮电出版社,2008

[7] 张洪润、刘秀英、张亚凡等.单片机应用设计200例 .北京航空航天大学出版社,2006

[8] 彭为、黄科、雷道仲等.单片机典型系统设计实例精讲.电子工业出版社, 2006

[9] 李学海著.标准80C51单片机基础教程.北京航空航天大学出版社,2006

[10] 李朝青.单片机原理及接口技术[M].北京航天航空大学出版社,1998.

[11] 余发山,王福忠.单片机原理应用技术[M].徐州:中国矿业大学出版社,2003.

[12]V.Yu.Teplov,A.V. Anisimov.Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Moles Based on the Peltier Effect[J] ,2002

[13] Yeager Brent.How to troubleshoot your electronic scale[J]. Powder and Bulk Engineering. 1995

[14]WeiXiaoRu,JuJianZhi.Design of a CCD's driving circuit based on ATmega16.Microcomputer&Its Applications,2010,(16).

[15]HeLianYun,The Traffic Signal Lamp System Controlled with Single Chip Microcomputer.Computer Study,2008,(01).

单片机开题报告范文篇2:

基于单片机的火灾报警器

一、毕业设计(论文)课题来源、类型

课题来源:生产(社会)实践

课题类型:毕业设计

二、选题的目的及意义

对于广大居民,尤其是单独居住的老人,无人看护的病人、婴幼儿童等弱势群体在遇到火灾时,行动不便,逃生能力不强,逃生所需时间相对较长,对他们来说火灾的早期报警,争取更多的逃生时间或者及时通知救援人员,避免造成人员伤亡,显得更为重要。

火灾报警器可以让百姓的家居生活更加安全,本报警器是一个由单片机控制的火灾烟雾浓度、温度检测系统,它将传感器输出地电压信号进行A/D转换、滤波、线性化,由单片机将电压值转换为气体浓度和温度送LCD1602液晶显示,并判断是否超过报警上限,若超过,则发出声光报警[1],并将报警情况通过GSM模块发出,同时可以实现消防局对火灾报警的集中接警,专业化处警,以最少的投资实现最快的接警和处警。同时还为接处警人员提供方便快捷的辅助决策手段,提高消防队伍快速反应的能力,密切警民关系。高效的工作,还可以减少火灾给居民带来的人生安全的危害和财产的损失。

三、本课题在国内外的研究状况及发展趋势

以火灾自动报警技术为核心的建筑消防系统,是预防和遏制建筑火灾的重要保障。近年来,我国火灾自动报警工程应用技术实现了较快发展。但由于在实际应用中,火灾自动报警系统的通讯协议不一致,火灾自动报警工程技术水平还相对落后,还存在着一些比较突出的问题。

(1)适用范围过小。我国火灾自动报警系统技术比美、英等发达国家起步较晚,安装范围主要是《高层民用建筑设计防火规范》、《建筑设计防火规范》规定的场所和部位,而在易造成群死群伤的中小型公众聚集场所和社区居民家庭甚至部分高层住宅都没有规定安装火灾自动报警系统,适用范围过小,防范措施不到位。

(2)智能化程度低。我国使用的火灾探测器虽然都进行了智能化设计,但由于传感器探测的参数较少、支持系统的软件开发不成熟、各种算法的准确性缺乏足够验证、火灾现场参数数据库不健全等,火灾自动报警系统难以准确判定粒子(烟气)的浓度、现场温度、光波的强度以及可燃气体的浓度、电磁辐射等指标,造成迟报、误报、漏报情况较多。

(3)网络化程度低。我国应用的火灾119动报警系统形式基本上以区域火灾自动报警系统、集中火灾自动报警系统和控制中心火灾自动报警系统为主,安装形式主要是集散控制方式,自成体系,自我封闭,尚未形成区域性网络化火灾自动报警系统。

(4)组件连接方式有待改善。火灾自动报警系统以多线制和总线制连接方式为主,探测器和报警器及控制器之间是采用两条或多条的铜芯绝缘导线或铜芯电缆穿管相接,存在耗材多、成本高、抗干扰能力差的缺点。同时,铜导线耐高温性能差、易磨损,系统施工维修复杂,影响了火灾自动报警系统的可靠性和更广泛的应用。

(5)火灾自动报警系统误报、漏报问题较多。由于火灾探测器的安装环境极其复杂,加之各种传感器在探测火灾方面存在着某些先天不足,无法准确地感应各种物质在燃烧过程中所特有的声波、光谱、辐射、气味等诸多方面发生的微妙变化,对火灾发生过程中所产生的不同粒径和颜色的烟存在探测“盲区”,误报、漏报现象时有发生。

(6)超早期火灾探测器技术应用还几乎处于空白。国外已开发出适合洁净空间高灵敏度感烟火灾探测报警系统,如激光式高灵敏度烟火灾探测器,吸气式高灵敏度感烟火灾探测报警系统和气体火灾探测报警系统,与普通火灾探测报警系统相比,其探测灵敏度提高了两个数量级,甚至更多,这些系统采用了激光粒子计

数、激光散射等原理监视被保护空间,以单位体积内粒子增加的多少来判断是否发生火灾,系统可在火灾发生前几小时或几天内识别潜在的火灾危险性,实现超早期火灾报警。而该技术我国目前还处于起步阶段,有待进一步研究开发使用[2]。

针对上述问题,火灾自动报警应用技术进一步着眼于当前国际发展的新形势,加快更新改造进程,加强对数字技术和新工艺、新材料的应用,改进系统能力,使火灾自动报警应用技术向着高可靠、低误报和网络化、智能化方向发展。当前,国外火灾自动报警应用技术的发展趋势主要表现为网络化、智能化、多样化、小型化、社区化、蓝牙化、高灵敏化等。这也是火灾自动报警应用技术的研究发展趋势。

四、本课题主要的研究内容

设计一种以STC89C52单片机为核心的火灾检测与报警系统,可以通过气体传感器实时获取可燃气体浓度、温度传感器获得火灾现场温度,并通过LCD1602液晶显示,当浓度或温度超过限定值时则报警并且把报警情况发送到报警器所设定的终端上。以方便人们更好的掌握安全状况,提高生活质量。

五、拟采取的方法、技术或设计(开发)工具

本设计主要以MCS-51系列单片机STC89C52为控制核心,它自带8K的FLASH程序存储器,它的核心处理单元为8位。数据处理主要是对数字温度传感器18B20采集温度数据和对MQ-2烟物传感器进行AD采集,并进行逻辑判断,根据数据的具体情况输出到数码管显示和使蜂鸣器动作[3]。整个单片机应用系统的设计分为硬件电路设计和软件编程设计两大部分;其中硬件电路设计包括温度采集电路,MQ-2烟物传感器电路,单片机控制电路,显示电路,报警与控制电路和GSM模块。软件设计部分包括系统主程序,温度采集子程序,数码管显示子程序,GSM模块子程序和输出驱动子程序,均采用51系列C语言编程实现。

六、本课题进度安排、各阶段预期达到的目标

进度计划:

2014.12.15 - 2015.3.1: 查找资料、搜集相关素材

2015.3.2 - 2015.3.6:完成需求分析

2015.3.7 - 2015.3.12: 完成概要设计

2015.3.13 - 2015.4.1:完成详细设计

2015.4.2 - 2015.4.10完成编码

2015.4.11 - 2015.4.13: 完成软件测试

2015.4.14 - 2015.4.25:整理资料、撰写设计报告

2015.4.26 - 2015.4.30:根据导师要求,完善毕业设计和设计报告

2. 数字频率计

1)测周法:使用“测周法”测量输入信号的频率,在数字电路中可以利用被测信号的边沿来向电路内部提供一个闸门时间,在闸门时间内对系统内部提供的标准高频时钟信号的边沿进行计数。若被测信号的频率为 ,标准高频时钟信号的频率为 ,测量所得计数值为 ,则可以根据公式(1)得到被测信号频率。

时序图如图1.1.1所示:

2)计数法:使用“计数法”测量输入信号的频率,即通过系统内部给一个固定闸门时间,在闸门时间内用计数器对被测信号的边沿进行计数。若被测信号的频率为 ,内部闸门时间为T,测量所得计数值为 ,则可以根据公式(2)得到被测信号频率。

时序图如图1.1.2所示:

因为在数字电路中使用中小规模逻辑器件构建多位除法器电路十分困难,故选择计数法来测量被测信号的频率。通过设置内部闸门时间T为1s,计数器在闸门时间内的计数值 即为被测信号的频率值。

根据设计要求,数字频率计最高需测量100kHz的TTL电平信号,故数字频率计系统通过逻辑控制电路给计数器芯片提供1s闸门时间的计数信号,在1s计数完成之后锁存计数器所得到的计数值,并且通过译码器译码完成后通过数码管显示出来。锁存完成之后再向计数器提供清零信号,然后计数器再开始下一次的测量,系统整体设计框图如图1.2.1所示。

时基电路是由555定时器构成的多谐振荡器,电路原理图如图2.1.1所示。在接通电源之后,若此时555定时器的放电三极管T未导通,则电容C1通过电阻R1、R2进行充电,此时电路输出高电平。当电容C1上的电压达到 时,电路输出高电平,同时放电三极管T导通,电容C1通过电阻R2放电,电路输出低电平。当电容C1上电压下降至 时,电路输出翻转为高电平,同时放电三极管T截止,电路周而复始的工作,产生时基信号。

时基信号的高电平时间由电容充电时间决定,其计算公式如下:

时基信号的低电平时间由电容充电时间决定,其计算公式如下:

使用模拟示波器测量时基电路输出的时基信号,示波器测量结果如图2.1.2所示。根据示波器测量结果,时基信号的高电平时间约为1s,低电平时间约为120ms,时基信号满足设计要求。

根据设计要求,需测量100kHz的信号,使用计数法计数时,计数模块最低需在1s内可以计100k个边沿脉冲。且因为显示模块为数码管,为了让数码管方便显示,故每一个计数器芯片都应设计为模十计数器,同时为6个模十计数器级联才能符合设计要求。但是当计数模块为6个计数器级联时,若采用同步计数器,则可能会使得计数脉冲的负载加重,故选择采用异步十进制计数器芯片74LS90,其芯片的功能表如表2.2.1所示。

根据芯片功能表,当R9(1)、R9(2)保持低电平时,可以通过控制R0(1)、R0(2)两个引脚的电平高低来控制计数器工作状态。故通过逻辑控制电路向计数模块输入计数/清零信号,当该信号为高电平时,计数器计数。当该信号为低电平时,计数器清零。为了实现计数器之间的级联,将低位计数器的Q4输出端接至高位计数器的CKA输入端。当低位计数器的计数状态Q0Q1Q2Q3从1001变为0000即计数值从9变为0时,Q4会产生一个下降沿信号输入到高位计数器的CKA端,实现了低位计数器向高位计数器的进位功能。计数模块电路图如图2.2.2所示。

给电路加上计数/清零信号和被测信号后,使用逻辑分析仪去测量其中一个计数器芯片的输出,其输出结果如图2.2.3所示,其中A0-A3分别对应着计数器芯片的四个输出端Q0-Q3,A4为计数/清零信号。根据测量结果,计数器能够在计数信号有效时正常计数,在清零信号有效时保持清零状态。

根据设计方案,译码显示模块需完成对计数器的计数结果进行锁存、译码并且通过数码管显示出来。为了减少芯片数量,故选择自带锁存功能的译码器芯片CD4511,CD4511的功能表如表2.3.1所示。

根据CD4511功能表,数码管应选择共阴极数码管。逻辑控制电路给译码显示模块输入锁存译码信号,即CD4511芯片的 和 始终保持着接高电平,给芯片的LE端输入译码显示信号。当译码显示信号为高电平时,译码显示模块锁存在上一个LE=0时的状态,显示在高电平来临之前的状态,当译码显示信号为低电平时,译码显示模块就会实时刷新显示状态。译码显示模块电路图如图2.3.2所示。

闸门电路需根据闸门信号来控制被测信号是否能够输入到计数模块。当闸门信号为高电平时,被测信号能够正常地通过闸门电路输入到计数模块,而当闸门信号为低电平时,被测信号被闸门阻碍,无法通过闸门电路。

根据闸门电路的设计要求,可以采用二输入与非门来实现闸门信号对被测信号是否输入到计数模块的控制。如表2.4.1为四2输入与非门74LS00的功能表。若闸门信号输入到与非门的A端,被测信号输入到与非门的B端,根据其功能表可知,当闸门信号为高电平时,闸门电路的输出信号与被测信号反相,当闸门信号为低电平时,闸门电路的输出信号一直保持高电平,阻碍被测信号输入计数模块。闸门电路的电路图如图2.4.2所示。

向闸门电路输入闸门信号和被测信号,使用模拟示波器观察输出信号与两个输入信号的波形图,如图2.4.3所示。

如图所示,第一个信号为闸门电路输出信号,第二个为被测信号,第三个为闸门信号。当闸门信号为高电平时,被测信号能够正常地通过闸门电路输出到计数模块,当闸门电路为低电平时,闸门电路输出保持为高电平,导致被测信号无法传输到计数模块,满足设计要求。

根据设计方案,逻辑电路需要根据输入的时基信号,通过逻辑电路来产生控制计数模块的清零信号和控制译码显示模块的锁存信号,以此来实现数字频率计的自动测量和刷新功能。

译码显示模块需要通过逻辑控制电路产生一个译码信号来实现对译码显示模块的锁存数据和刷新数据的功能。译码信号是在计数模块测量完成之后,在清零信号有效之前进行锁存当前测量结果的数据,根据CD4511的功能表, 锁存信号是高电平有效,即在高电平时译码器对高电平来临之前的输入信号进行锁存并保持,在低电平时锁存失效,即根据输入信号的变化实时刷新输出信号。在逻辑控制电路内,为了让其基于时基信号产生锁存信号,采用了555构成的不可重复触发的单稳态触发器。

单稳态触发器的特点是电路有一个稳定状态和一个暂稳状态。在触发信号作用下,电路将由稳态翻转到暂稳态,但是暂稳态是一个不能长久保持的状态,由于电路中RC延时环节的作用,经过一段时间后,电路会自动返回到稳态,并在输出端获得一个脉冲宽度为 的矩形波。在单稳态触发器中,输出的脉冲宽度 ,就是暂稳态的维持时间,其长短取决于电路中电阻R和电容C的参数值。

由555构成的单稳态触发器电路及工作波形如图2.5.2所示。图中R,C为外接定时元件,输人的触发信号 接在555的低电平触发端(2脚)。稳态时,输出 为低电平,即无触发器信号( 为高电平)时,电路处于稳定状态且输出低电平。在 的负脉冲作用下,低电平触发端得到低于 ,输出 为高电平,放电三级管T截止,电路进入了暂稳态,定时开始。在暂稳态期间,电源→R→C→地,实现对电容的充电,充电时间常数T=RC, 按指数规律上升。当电容两端电压 上升到 后,6端为高电平,输出 变为低电平,放电三极管T导通,定时电容C充电结束,即暂稳态结束。电路恢复到稳态 为低电 平的状态。当第二个触发脉冲到来时,又重复上述过程。

根据上述555单稳态触发器电路原理, 从零电平上升到 的时间就是输出电压 的脉宽 ,其计算公式如公式5所示。

逻辑控制电路的原理图如图2.5.3所示,实现对输入的时基信号进行变换,转化为清零信号和锁存信号。

向逻辑控制电路输入时基信号,使用示波器测量其输入信号和输出的清零信号及锁存信号的波形图,如图2.5.4所示。锁存信号在时基信号的下降沿触发,一直持续到时基信号下一次下降沿之前才转化为低电平,清零信号与时基信号相比较发现清零信号在产生于时 基信号的上升沿,且比较短暂,仿真结果满足设计方案。

方波发生器的电路是以555多谐振荡器为模板,通过控制555多谐振荡器的电阻大小和电容大小来改变输出的矩形波的频率。具体的555多谐振荡器电路原理参见节2.2.1。根据设计要求,矩形波发生器的电路原理图如图2.6.1所示。

使用频率计测量矩形波发生器的输出频率,其最大频率与最小频率如图2.6.2所示。

在设计逻辑控制电路时,原本采取的设计方案是用单稳态触发器通过对时基信号的触发产生一个很窄的高电平脉冲信号作为清零信号,再对清零信号通过一个单稳态触发器产生一个很窄的低电平脉冲信号作为锁存信号。这个设计方案是基于所使用单稳态触发器为脉冲触发时,才可能使得单稳态触发器的暂稳态时间低于触发信号的脉冲宽度。但是所使用的单稳态触发电路是由555定时器芯片为核心搭建的,而根据555定时器芯片的功能表,如表3.1.1所示,555定时器搭建的单稳态触发电路为电平触发的单稳态电路,故修改设计方案,具体方案参考节2.5.1。

在制作频率计时,考虑到电路较为复杂,如果在洞洞板上搭建电路则在电路连接上会受限制,会使用大量的跳线或者杜邦线去连接电路,电路的稳定性和可靠性比较低。故采用设计PCB制作电路板的方式去实现电路。

但是在设计PCB时由于经验不足,在布线时将两个不同网络的线路和焊盘放的过近,导致所制作出来的电路板在有的地方发生了短路的现象,花费了大量的时间去排查和解决短路问题。在放置数码管与CD4511之间的限流电阻时,由于疏忽导致电阻的阻值不等,使得数码管亮度不均匀。

通过本次数字频率计课程设计,加强了我在数字电路方面的认识。在设计频率计的电路时,通过查找资料加深了对时序电路和逻辑电路的了解,同时也学会了如何去通过查阅芯片的数据手册来分析它的功能和建立时间、保持时间等一些参数,以此来选取符合设计功能的芯片。在电路的时序逻辑设计上,通过本次设计让我体会到了数字电路中的时序对于整个系统是否正常能够工作起着决定性作用。在时基电路和逻辑控制电路的设计中所运用的555定时器芯片搭建的不同功能的电路,让我对与单稳态电路和无稳态电路有直接的体会。在仿真电路,学会了使用Protues这一款电子电路仿真软件,并且通过虚拟示波器和逻辑分析仪去观察和分析电路的时序逻辑。

在制作实物时,使用了EDA电路设计软件来设计PCB和制作电路板来完成实物制作,在制作的过程中逐渐熟悉了软件的时候和画PCB的技巧。同时也发现了并非电路仿真成功电路就一定不存在问题。由于在实际电路中,各类元件的参数上的误差和焊接上的缺陷对电路都会造成影响。而且在制作电路时一定要认真检查,如果一处出现失误,会导致整个电路失去作用甚至烧坏电路。所以在制作实物时要足够的细心去排查电路故障产生的原因并且去修正它。

在短短几天的课程设计中,不仅加深了我对数字电路基础知识的掌握程度,而且还让我经历了一个电路从无到有的设计和制作过程,加深了对专业知识的理解,让我对专业知识的学习有了更大的兴趣和动力。

3. 数字频率计

我有。不过我上年可是花了三个月做的。有详细的论文和vhdl程序。心血吖。加点分我给你[email protected]

4. 简易数字频率计的设计

频率测量的方法常用的有测频法和测周法两种。

测频法的基本思想是让计数器在闸门信号的控制下计数1秒时间,计数结果是1秒内被测信号的周期数,即被测信号的频率。若被测信号不是矩形脉冲,则应先变换成同频率的矩形脉冲。测频法的原理框图如图所示。

图中,秒脉冲作为闸门信号,当其为高电平时,计数器计数;低电平时,计数器停止计数。显然,在同样的闸门信号作用下,被测信号的频率越高,测量误差越小。当被测频率一定时,闸门信号高电平的时间越长,测量误差越小。但是闸门信号周期越长,测量的响应时间也越长。

2、当被测信号频率较低时,为保证测量精度,常采用测周法。即先测出被测信号的周期,再换算成频率。测周法的实质是把被测信号作为闸门信号。

在它的高电平的时间内,用一个标准频率的信号源作为计数器的时钟脉冲。若计数结果为N,标准信号频率为f1,则被测信号的周期为:T = T1·N。被测信号的频率为:f = 1/T1·N = f1/N。

利用测周法所产生的最大绝对误差,显然也等于±1个标准信号周期。如果被测信号周期的真值为T真= T1·N,则T测= T1·(N±1)σmax= (f测-f真)/ f真= T真/T测 – 1=±1/(N±1)由上式可知,对于一定的被测信号,标准信号的频率越高,则N的值越大,因而相对误差越小。

3、低频段的测量,鉴于上述困难,对于低频信号,为了达到规定的精度,要采取一些比较特殊的方法。例如,可考虑将被测信号倍频后再用测频法测量。

或将闸门信号展宽。由于倍频电路比较复杂,所以一般采用后一种方法,实际上闸门信号展宽与被测信号倍频在效果上是相同的。

闸门信号展宽比较容易做到,例如采用分频电路就可以实现。若闸门信号高电平时间从1秒展宽到10秒,则相对误差可以按比例下降,但响应时间也增大相同的比例。

4、显示方式:共用右边四个数码管,左三个显示数据,最右端一个显示单位,为0时单位为Hz,为1时单位为Khz

5、代码:

//#include<c8051F330.h>

#include<ZLG7289.h>

#include<init.h>

#define uint unsigned int

uint a,b,c,d;

unsigned long x;

unsigned long count;

unsigned char flag=0;

void Timer0_Init()interrupt 1

{

TH0=(65535-10000)/256;

TL0=(65535-10000)%256;

if(++count==40)

{

count=0;

TR1=0;

x=TH1*256+TL1;

TH1=0;

TL1=0;

TR1=1;

flag=1;

}

}

void show(void)

{if(x>=10&&x<100)

{

a=0;

b=x*10%100;

c=x/10;

d=x%10;

ZLG7289_Download(1,7,0,a);

ZLG7289_Download(1,6,0,b);

ZLG7289_Download(1,5,1,d);

ZLG7289_Download(1,4,0,c);

}

else if(x>=100&&x<1000)

{

a=0;

b=x/100;

c=x%100/10;

d=x%10;

ZLG7289_Download(1,7,0,a);

ZLG7289_Download(1,6,1,d);

ZLG7289_Download(1,5,0,c);

ZLG7289_Download(1,4,0,b);

}

else if(x>=1000&&x<10000)

{

a=x/1000;

b=x%1000/100;

c=x%100/10;

d=1;

ZLG7289_Download(1,7,0,d);

ZLG7289_Download(1,6,0,c);

ZLG7289_Download(1,5,0,b);

ZLG7289_Download(1,4,1,a);

}

}

main(void)

{

system_init();

systemclk_init();

port_init();

ZLG7289_Init(40);

ZLG7289_Reset();

timer_init();

while(1)

{

if(flag==1)

{

show();

flag = 0;

}

}}

#include <C8051F330.h>

#include <port.h>

void system_init()

{

PCA0MD&=~0x40;

}

void systemclk_init()

{

OSCICL=OSCICL+42; //设置内部振荡器为24MHZ

OSCICN|=0x01; //内部振荡器4分频

}

void port_init()

{

P0SKIP=0x00; //跳过P0.0做INT0.P0.1做INT1(P0.6,P0.7模拟输出不跳)

P1SKIP=0x00; //跳过P1.2,P1.3,P1.4

XBR0=0x00; //交叉开关使能UART0

XBR1=0x60; //打开交叉开关

//IT01CF=0x10; //INT0配置在P0.0,INT1配置在P0.1

P0MDIN=0xFF; //数字输入

P1MDIN=0xFF;

P0MDOUT=0xFF; //推挽

P1MDOUT=0xFF;

}

void timer_init()

{

TMOD=0X51;

TH0=(65535-2500)/256;

TL0=(65535-2500)%256;

EA=1;

ET0=1;

TR1=1;

TR0=1;

}

#ifndef __port_H_

#define __port_H_

void system_init(void);

void systemclk_init(void);

void port_init(void);

void timer_init(void);

#endif

5. 跪求:《数字频率计的设计》 原理,方框图,电路图!

摘 要:文中运用VHDL语言,采用Top To Down的方法,实现8位数字频率计,并利用Isp Expert集成开发环境进行编辑、综合、波形仿真,并下载到CPLD器件中,经实际电路测试,该系统系统性能可靠。
关键词:EDA;VHDL;数字频率计;波形仿真;CPLD�
1引言
VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言。相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。将使整个系统大大简化。提高整体的性能和可靠性。
本文用VHDL在CPLD器件上实现一种8 b数字频率计测频系统,能够用十进制数码显示被测信号的频率,不仅能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。
2数字频率计的基本设计原理
数字频率计的原理框图如图1所示。他主要由5个模块组成,分别是:脉冲发生器电路、测频控制信号发生器电路、计数模块电路、锁存器、译码驱动电路。�

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

图2中TESTCTL为测频控制信号发生器。TESTCTL的计数使能信号TSTEN能产生一个1 s宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制:当TSTEN高电平时允许计数、低电平时停止计数。
REG32B为锁存器。在信号Load的上升沿时,立即对模块的输入口的数据锁存到REG32B的内部,并由REG32B的输出端输出,然后,七段译码器可以译码输出。在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。
CNT10为十进制计数器。有一时钟使能输入端ENA,用于锁定计数值。当高电平时允许计数,低电平时禁止计数。图2中将8个十进制计数器CNT10级联起来实现8 b十进制计数功能。
SEVYM为七段译码显示驱动电路,可以将频率计数的结果译成能在数码管上显示相对应的阿拉伯数字,便于读取测量的结果。
为了实现系统功能,测频控制信号发生器TESTCTL、计数器CNT10、锁存器REG32B存在一个工作时序的问题,设计时需要综合考虑。
图3给出了系统的工作时序。图3中CLK是由图1中脉冲发生器产生的频率为1 Hz的标准时钟信号,当测频控制信号发生器TESTCTL的TSTEN端为高电平时允许计数、低电平时停止计数,在停止计数期间,测频控制信号发生器TESTCTL的Load端产生一个上升沿,将计数器在前1 s的计数值锁存进32 b锁存器REG32B中,并由8个7段译码器将计数结果译出稳定显示。锁存信号之后经过半个CLK周期,测频控制信号发生器TESTCTL的CLR�_CNT端产生一个上升沿,对计数器进行清零。为下1 s的计数操作做准备。
为了产生这个时序图,首先有一个D触发器构成二分频器,在每次时钟CLK的上升沿到来使其值翻转。D触发器的输出高电平正好是1 s,因此可以作为测频控制信号发生器TESTCTL的TSTEN端,用来控制计数。而Load信号正好是TSTEN端信号的翻转。在计数结束后半个CLK周期,CLK与TSTEN都为低电平,这时CLR�_CNT产生一个上升沿作为清零信号。�

3.2各模块的VHDL源程序
采用VHDL描述数字频率计的电路时,根据图2所示的数字频率计系统顶层电路图,按照自顶向下的设计思路,编写各个模块的VHDL源程序,最后再对各个模块进行组合,编写顶层描述的VHDL源程序,由于篇幅所限,本文仅介绍数字频率计顶层描述的源程序,各个模块的VHDL源程序编写较为简单,可以根据各自的功能,相应地写出。
8位数字频率计的顶层描述VHDL源程序为:

4系统的功能仿真
Lattice公司推出的Isp Expert的数字系统设计软件,是一套完整的EDA软件,能够对所设计的数字电子系统进行时序仿真和功能仿真。
采用Lattice公司推出的Isp Expert EDA软件,对所编写数字频率计VHDL源程序进行编译、逻辑综合,自动地把VHDL描述转变为门级电路。然后进行波形仿真,编写的仿真测试向量文件如下(为仿真简单起见,测试一个66 Hz的周期信号):

仿真后得到的波形图如图4所示,从仿真波形上看测量的结果是准确的。还可以进一步修改测试向量文件,进行波形仿真。最后通过编程电缆,将所设计的内容下载到CPLD器件中,进行实物仿真。�

5结语
本文介绍了使用VHDL语言设计数字频率计的方法,并下载到CPLD中组成实际电路,这样可以简化硬件的开发和制造过程,而且使硬件体积大大缩小,并提高了系统的可靠性。同时在基本电路模块基础上,不必修改硬件电路,通过修改VHDL源程序,增加一些新功能,满足不同用户的需要,实现数字系统硬件的软件化。

6. 单片机课程设计数字频率计

数码管台古老了,你用这个吧,看着还稍微有点可以,代码和电路都给你了,没有做不出来的理由,有问题加我QQ11422376745

#include "d:c51 eg51.h"

#include "d:c51intrins.h"

sbit LCM_RS=P3^0;

sbit LCM_RW=P3^1;

sbit LCM_EN=P3^7;

#define BUSY 0x80 //常量定义

#define DATAPORT P1

#define uchar unsigned char

#define uint unsigned int

#define L 50

uchar str0[16],str1[16],count;

uint speed;

unsigned long time;

void ddelay(uint);

void lcd_wait(void);

void display();

void initLCM();

void WriteCommandLCM(uchar WCLCM,uchar BusyC);

void STR();

void account();

/*********延时K*1ms,12.000mhz**********/

void int0_isr(void) interrupt 0 /*遥控使用外部中断0,接P3.2口*/

{

unsigned int temp;

time=count;

TR0=0;

temp=TH0;

temp=((temp << 8) | TL0);

TH0=0x3c;

TL0=0xaf;

count=0;

TR0=1;

time=time*50000+temp;

}

void time0_isr(void) interrupt 1 /*遥控使用定时计数器1 */

{

TH0 =0x3c;

TL0 =0xaf;

count++;

}

void main(void)

{

TMOD=0x01; /*TMOD T0选用方式1(16位定时) */

IP|=0x01; /*INT0 中断优先*/

TCON|=0x11; /*TCON EX0下降沿触发,启动T0*/

IE|=0x83;

TH0=0x3c;

TL0=0xaf;

initLCM();

WriteCommandLCM(0x01,1); //清显示屏

for(;;)

{

account();

display();

}

}

void account()

{

unsigned long a;

if (time!=0)

{

a=L*360000000/time;

}

speed=a;

}

void STR()

{

str0[0]='S';

str0[1]='p';

str0[2]='e';

str0[3]='e';

str0[4]='d';

str0[5]=' ';

str0[6]=(speed%100000)/10000+0x30;

str0[7]=(speed%10000)/1000+0x30;

str0[8]=(speed%1000)/100+0x30;

str0[9]='.';

str0[10]=(speed%100)/10+0x30;

str0[11]=speed%10+0x30;

str0[12]='k';

str0[13]='m';

str0[14]='/';

str0[15]='h';

}

void ddelay(uint k)

{

uint i,j;

for(i=0;i<k;i++)

{

for(j=0;j<60;j++)

{;}

}

}

/**********写指令到LCD子函数************/

void WriteCommandLCM(uchar WCLCM,uchar BusyC)

{

if(BusyC)lcd_wait();

DATAPORT=WCLCM;

LCM_RS=0; /* 选中指令寄存器*/

LCM_RW=0; // 写模式

LCM_EN=1;

_nop_();

_nop_();

_nop_();

LCM_EN=0;

}

/**********写数据到LCD子函数************/

void WriteDataLCM(uchar WDLCM)

{

lcd_wait( ); //检测忙信号

DATAPORT=WDLCM;

LCM_RS=1; /* 选中数据寄存器 */

LCM_RW=0; // 写模式

LCM_EN=1;

_nop_();

_nop_();

_nop_();

LCM_EN=0;

}

/***********lcd内部等待函数*************/

void lcd_wait(void)

{

DATAPORT=0xff; //读LCD前若单片机输出低电平,而读出LCD为高电平,则冲突,Proteus仿真会有显示逻辑黄色

LCM_EN=1;

LCM_RS=0;

LCM_RW=1;

_nop_();

_nop_();

_nop_();

while(DATAPORT&BUSY)

{ LCM_EN=0;

_nop_();

_nop_();

LCM_EN=1;

_nop_();

_nop_();

}

LCM_EN=0;

}

/**********LCD初始化子函数***********/

void initLCM( )

{

DATAPORT=0;

ddelay(15);

WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号

ddelay(5);

WriteCommandLCM(0x38,0);

ddelay(5);

WriteCommandLCM(0x38,0);

ddelay(5);

WriteCommandLCM(0x38,1); //8bit数据传送,2行显示,5*7字型,检测忙信号

WriteCommandLCM(0x08,1); //关闭显示,检测忙信号

WriteCommandLCM(0x01,1); //清屏,检测忙信号

WriteCommandLCM(0x06,1); //显示光标右移设置,检测忙信号

WriteCommandLCM(0x0c,1); //显示屏打开,光标不显示,不闪烁,检测忙信号

}

/****显示指定坐标的一个字符子函数****/

void DisplayOneChar(uchar X,uchar Y,uchar DData)

{

Y&=1;

X&=15;

if(Y)X|=0x40; //若y为1(显示第二行),地址码+0X40

X|=0x80; //指令码为地址码+0X80

WriteCommandLCM(X,0);

WriteDataLCM(DData);

}

/*******显示指定坐标的一串字符子函数*****/

void DisplayListChar(uchar X,uchar Y,uchar *DData)

{

uchar ListLength=0;

Y&=0x01;

X&=0x0f;

while(X<16)

{

DisplayOneChar(X,Y,DData[ListLength]);

ListLength++;

X++;

}

}

void display()

{

STR();

DisplayListChar(0,0,str0);

DisplayListChar(0,1,str1);

}

7. 电子测量与仪器的实验报告怎么写

英盛观察:
一. 实训目的(1) 熟悉常用电子仪器的功能及使用方法。(2) 掌握常用电子仪器的工作原理。(3) 掌握常用电子仪器附加功能的使用。(4) 熟练使用常用电子仪器进行数据测量。(5) 掌握常用电子元器件的测量方法,掌握电子元器件的焊接技巧和装配工艺;学会 使用万用表、示波器、毫伏表、频率计、 信号发生器等电子测量仪器。掌握查找电子设备故障的一般方法。培养学生实际动手操作能力;为学生以后参加工作打下良好的基础。

二.基本要求一、课程性质和任务

陕航航空电子设备维修专业的主干专业课程。其任务是使学生掌握从事航空电子设备维修工作所必需的电子基本工艺和基本技能,初步形成解决实际问题的能力,为学习其他专业知识和职业技能打下基础。

二、课程教学目标

(一) 知识教学目标

1. 了解电工电子仪表、仪器的基本结构及正确使用与维护;2. 掌握常用电子元器件的正确识别与检测方法;3. 理解常用电子电路和简单电子整机电路的分析、检测与常见故障排除方法;4. 掌握电子电路安装的工艺知识。

(二) 能力培养目标

1. 能正确使用常用电工电子仪表、仪器;2. 能正确阅读分析电路原理图和设备方框图,并能根据原理图绘制简单印刷电路;3. 初步学会借助工具书、设备铭牌、产品说明书及产品目录等资料,查阅电子元器件及产品有关数据、功能和使用方法;4. 能按电路图要求,正确安装、调试单元电子电路、简单整机电路;5. 处理电子设备的典型故障。

(三) 思想教育目标

1. 具有热爱科学、实事求是的学风和创新意识、创新精神;2. 加强爱岗敬业意识和职业道德意识。

三、教学内容和要求

基 础 模 块

(一) 常用电子仪器、仪表的使用与维护1. 了解常用电子仪器、仪表的结构;2. 理解常用电子仪器、仪表的基本功能;3. 掌握常用电子仪器、仪表的使用方法和注意事项。

(二) 常用电子元器件的识别与检测

1. 理解常用电子元器件的型号和主要参数;2. 理解常用电子元器件的识别和分类方法;3. 掌握用万用表检测常用电子元器件的方法。

三.实训内容

1.各种交流表电压的测量 1. 实训目的

1﹚掌握模拟是电压表的使用方法和几种典型电压表波形的观测和分析方法。

2)掌握模拟电压表、数字电压表的使用方法。

3)掌握直流稳压电源的输出指示准确度和纹波系数的测量方法。

2. 实训仪器

yb2173交流毫伏表一台;mag-203d音频信号发生器一台;yb4320示波器一台;fc-1000数字频率计一台。

3. 交流电压表整概要

1)一个交流电压的大小,可以用峰值up,平均值 u,有效值u,以及波形因数kf,波峰因数kp等表征,若被测电压的瞬时值为u(t),则

全波平均值 有效值 波形因数 波峰因数

2)电压表的检波特性有峰值型,均值型,有效值型等多种形式。一般说来,具有不同检波特性的电压表都是以正弦电压的有效值来定度的,但是,除了有效电压表之外,电压表的示值本身并不直接代表任意波形被测电压的有效值。

3)根据理据论分析,不同波形的电压加至不同检波特性的电压表示,可根据电压表的读数确定电压的up,Ū,u,一般可根据表1-1的关系换算。

图1-2

2.将各测量数据填入表1-3中

调节交流毫伏表的旋钮,使之正确测量各种波形电压,并记录交流毫伏表电压示值,将各种测量数据填入表1-4中

1.2直流稳压电源的输出指示准确度的测量

1.按1-5图所示连接电路图1-5

2.用数字电压表分别测量直流稳压电源的输出,将读数分别记入表1-6.

1.按如图1-7所示连接测量电路

图1-7

2.在交流毫伏表适当的档位上,分别记下交流毫伏表的读数u2,填入表1-8中

2.1 示波器的应用

1. 实训目的

1﹚掌握示波器、交流毫伏表、音频信号发生器的基本应用。

2﹚掌握示波器观察信号波形和测量直流电压幅度、周期的方法。

2. 实训内容

﹙1﹚ 示波器的校准

﹙2﹚ 利用示波器1khz,0.5vp-p的方波校准信号作为示波器的输入信号,调出图2-1所示正常波形。

﹙3﹚ 将扫描基线移动的格数、垂直偏转因数和稳定电压原指示电压值填入表2-2中。

图2-1

表2-2直流电压测量

已调信号低、中放的增益可以做的较大,工作较稳定,通频带特性也可做的(5)梯形法测量调幅波的调幅系数

1)采用音频信号发生器输出1000hz的正弦信号加至示波器的ch1(x)端;as1053rf信号发生器的输出的已调信号加至示波器的ch2(y)端。

2)按下“x-y”,示波器处于x-y工作方式。

3)适当调节音频信号发生器,调节示波器的x,y位移及v/div开关,使屏幕上显示出圆柱形或梯形。

4)若调制信号与与x扫描信号同频同相,即以音频正弦信号同时作为高频信号发生器的外调制信号,高频信号发生器采用外调制方式进行调节,可显示较稳定的梯形。适当调节外调制调制度旋钮,观察波形的变化。

4 实训报告要求

整理好测量数据,填好表2-4、2-5。

。在实习期间,我们学习了初步的锡焊以及印制电路板的设计,元件测试,刚开始,锡焊,一个既熟悉又陌生 的概念,从开始的兴奋到后来的痛苦,一遍遍的焊接,看焊点,反反复复,基本上掌握了要点。如果说焊接是体力劳动,那么印制电路设计就是脑力劳动,远比体力 劳动恐怖,最后在无数次的改动中结束。可 以说,两周的电工实习,学到了不少东西,动手能力得到了提高,更重要的是有了一种精益求精的追求,获益匪浅,而且理解了一个道理,什么都是一门学问!

通过实际的测量实训,让我学到了很多实实在在的东西,比如对实验仪器的错误!未找到索引项。操作更加熟练,懂得了如何运用该知识结合实际来完成对收音机的检修,同时也提高了我们的思维能力和实际操作能力。

另外,这次电子产品设备维修实训还让我更进一步的认识了关于对lv软件的操作和使用方法,使我学会了应用该软件来绘制一些电子电路,为以后更好的走上工作岗位奠定了坚实的基础。

在制作实训报告的过程中,我们感觉自己的知识还是太有限了,还要继续学习,因为它对我们以后的学习和工作太有帮助了,因为它给人一种“电脑在手,使用不愁”的感觉。课程虽然学完了,但我们对于这门课的学习才刚刚起步,真心希望我们能够在这方面能有更深的造诣!

经验教训:

1、实验仪器对实验数据的误差有很大的影响;

2、小组成员的合作很重要,实习小组的气氛很大程度上影响实验的进度。

8. 基于FPGA的频率计设计 毕业论文。。请高手帮忙,有重谢。。

这是大规模数字集成电路在系统可编程领域的经典课程设计。

数字频率计是近代电子技术领域的重要测量工具之一,同时也是其他许多领域广泛应用的测量仪器。数字频率计是在规定的基准时间内把测量的脉冲数记录下来,换算成频率并以数字形式显示出来。数字频率计用于测量信号(方波,正弦波或其他周期信号)的频率,并用十进制数字显示,它具有精度高,测量速度快,读数直观,使用方便等优点。
一个用VHDL语言实现的实例如下:
-- Project Name: 恒精度频率计
-- Target Devices: FPGA or CPLD
-- Revision 0.01 - File Created
-- Comments: clk--系统工作时钟,2MHz
-------------reset--系统复位信号,高电平有效
-------------Fx--为待测信号
-------------FreqNx--为待测信号的计数值
-------------FreqNs--为标准信号的计数值
-------------Freq--为待测信号的频率
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

----------------------------------------------------------
entity Cymometer is
generic(clk_freq : integer := 2000000);--系统工作时钟频率
Port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
Fx : in STD_LOGIC; ----待测信号
FreqNs : out natural;
FreqNx : out natural);
--Freq : out natural);
end Cymometer;
----------------------------------------------------------
architecture Behavioral of Cymometer is
----------------------------------------
signal start : STD_LOGIC;--此信号为高电平时计数器开始计数
signal CTRL : STD_LOGIC;--CTRL信号为待测信号和门控信号产生的计数器启动信号
signal CNTx : natural;--待测信号计数器
signal CNTs : natural;--标准信号计数器
----------------------------------------
begin
--***************************************--
--产生一个门控信号,高电平有效
GateCtrl : process(clk)
---------------------------
variable CNT0 : integer range 0 to 2_097_152;--门控信号计数器
---------------------------
begin
if rising_edge(clk) then
if reset='1' then
CNT0 := 0;
else
CNT0 := CNT0 + 1;
end if;
---------
if reset='1' then
start <= '0';
elsif CNT0 < (clk_freq*3/4) then
start <= '1';
else
start <= '0';
end if;
end if;
end process GateCtrl;
--***************************************--
--产生CTRL信号,由待测信号和门控信号产生的计数器启动信号
CtrlGen : process(Fx)
begin
if rising_edge(Fx) then
if reset='1' then
CTRL <= '0';
else
CTRL <= start;
end if;
end if;
end process CtrlGen;
--***************************************--
--用两个计数器分别对标准信号clk和待测信号signal计数
----------------------------------
--计数标准信号,CTRL高电平期间有效
CountS : process(clk)
begin
if rising_edge(clk) then
if reset='1' then
CNTs <= 0;
elsif CTRL='1' then
CNTs <= CNTs + 1;
else
CNTs <= 0;
end if;
end if;
end process CountS;
----------------------------------
--计数待测信号,CTRL高电平期间有效
CountX : process(Fx)
begin
if rising_edge(Fx) then
if reset='1' then
CNTx <= 0;
elsif CTRL='1' then
CNTx <= CNTx + 1;
else
CNTx <= 0;
end if;
end if;
end process CountX;
--***************************************--
--CTRL下降沿将技术结果和测量值输出
CountOut : process(CTRL)
begin
if falling_edge(CTRL) then
if reset='1' then
FreqNs <= 0;
FreqNx <= 0;
-- Freq <= 0;
else
FreqNs <= CNTs;
FreqNx <= CNTx;
-- Freq <= (clk_freq / CNTs * CNTx);
end if;
end if;
end process CountOut;
end Behavioral;

下面是为上面的模块编写的测试平台,在Modelsim下仿真通过,因为数据量较大,建议不要使用Altera及ISE仿真。
--------------------------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;

ENTITY tb IS
END tb;

ARCHITECTURE behavior OF tb IS

-- Component Declaration for the Unit Under Test (UUT)

COMPONENT Cymometer
PORT(
clk : IN std_logic;
reset : IN std_logic;
Fx : IN std_logic;
FreqNs : OUT natural;
FreqNx : OUT natural;
Freq : OUT natural
);
END COMPONENT;

--Inputs
signal clk : std_logic := '0';
signal reset : std_logic := '1';
signal Fx : std_logic := '0';

--Outputs
signal FreqNs : natural;
signal FreqNx : natural;
-- signal Freq : natural;

-- Clock period definitions
constant clk_period : time := 500ns;

BEGIN

-- Instantiate the Unit Under Test (UUT)
uut: Cymometer PORT MAP (
clk => clk,
reset => reset,
Fx => Fx,
FreqNs => FreqNs,
FreqNx => FreqNx,
-- Freq => Freq
);

-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;

--产生待测信号

Fx_process : process
begin
Fx <= '0';
wait for 2*clk_period;
Fx <= '1';
wait for 2*clk_period;
end process;

-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100ms.
wait for clk_period*10;
reset <= '0';

-- insert stimulus here

wait;
end process;

END;

参考原理M/T测频法。

9. 数字频率计设计

这个是提高,咱两的题目一模一样

阅读全文

与电子装置设计数字频率计报告相关的资料

热点内容
电信设备租赁费的税率是多少 浏览:159
机器的哪些部位容易造成机械伤害 浏览:489
蘑菇发酵隧道设备多少钱 浏览:612
北京高压平板膜片测试设备哪里有 浏览:427
皇冠仪表盘如何调 浏览:808
发动机曲轴主轴承润滑方式为什么 浏览:795
楼道暖气管子阀门坏了归谁管 浏览:422
现代车仪表灯有多少种 浏览:628
什么是机械感 浏览:329
艾力绅车的仪表盘怎么显示油耗 浏览:879
五菱轮胎轴承坏了换一个多少钱 浏览:270
实验装置怎么画简易图 浏览:914
燃油注油泵阀门故障什么意思 浏览:788
为什么驱动轴上要安装轴承 浏览:750
50空气阀门开关图片大全 浏览:296
冷水机组制冷用的液态叫什么 浏览:582
小米插件工具箱 浏览:985
蒸馏实验简易装置图 浏览:389
高空消防设施器材有哪些 浏览:677
阀门关闭力矩什么时候最大 浏览:734