您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 基于EDA的四位数码显示频率计
华东交通大学课程设计报告-1-基于EDA的数字频率计的设计【摘要】在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。本文阐述了用VHDL语言设计了一个简单的数字频率计的过程。【关键词】EDA;VHDL;数字频率计;波形仿真;1.1设计要求借助于FPGA/CPLD的开发技术,设计一个4位十进制数字显示的数字式频率计,具体要求如下:(1)4位十进制数字显示的数字式频率计的测量范围为1k~9999KHZ,测量单位为KHZ;(2)要求量程能够自动转换,即几十KHZ显示小数点后两位,而几百KHZ则显示小数点后一位;(3)当输入信号小于1KHZ时,输出全0,当输入大于9999KHZ时,输出显示全H。1.2方案论证采用FPGA/CPLD芯片作为控制核心单元,完成各功能模块。首先将被测信号与控制信号加在FPGA/CPLD芯片上,通过在芯片内部进行各逻辑操作,完成分频、计数及扫描显示等功能操作,最后通过数码管显示结果。其原理框架图如下图1-2所示。被测信号防抖电路数码显示FPGA/CPLD华东交通大学课程设计报告-2-图1-2以FPGA/CPLD为核心的数字频率计第二章频率计的原理及测量方法数字频率计是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。所谓频率,就是周期性信号在单位时间(1s)里变化的次数。若在一定时间间隔T内测得的这个周期性信号的重复变化次数N,则其频率可表示为f=N/T;只要知道了N和T就可以求得频率。若设置闸门信号的时间为1S,则被测频率就是NHz。M法是在给定的闸门时间内测量被测信号的脉冲个数,进行换算得出被测信号的频率。当频率计正常工作时,频率为0.5Hz的闸门信号作为计数器的时钟信号,而被测信号则作为计数器的时钟输入。当闸门信号为高电平是允许计数;而为低电平时,计数器停止计数,则所计的数值即为被测信号的频率。本频率计设计测量频率的方法就是利用M法,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数的结果,用锁存器锁存起来,最后用显示译码器,把锁存的结果用LED数码显示管显示出来。根据数字频率计的基本原理,本文设计方案的基本思想是分为五个模块来实现其功能,即整个数字频率计系统分为分频模块、防抖模块、计数模块、译码模块和锁存模块,再加一个顶层模块,并且分别用VHDL对其进行编程,实现了闸门控制信号电路、防抖电路、计数电路、锁存电路、显示电路等。各控制信号分频模块计数模块锁存模块动态扫描华东交通大学课程设计报告-3-图2-1频率计测量频率的原理图3.1时钟分频模块本设计为满足EDA开发板的要求,故采用32KHz的时钟作为输入时钟,对其进行分频,得到3个子时钟,即200Hz的片选信号(动态扫描时钟)、25Hz的防抖电路时钟和0.5Hz的闸门信号。其实体模块如图3-1-1。图3-1-1ENDTIME设置为8s加32KHz的输入信号,其仿真波形如图3-1-2.脉冲形成模块计数模块译码显示模块控制模块量程自动切换模块分频模块锁存信号清零使能被测信号基准信号32KHz200Hz片选信号25Hz防抖时钟0.5Hz闸门信号200Hz25Hz华东交通大学课程设计报告-4-图3-1-23.2防抖电路模块在实际电路中按键会产生毛刺抖动,并且输出的信号并不稳定,故为保证电路不受毛刺的影响,并产生有效的信号,可加一个防抖电路来消除其影响。其实体模块如图3-2-1所示。图3-2-1此模块只有在cp2上升沿来时,若key为高电平,则imp输出一个cp2周期的有效稳定高电平;其它imp都输出低电平。其仿真波形如图3-2-2.32KHz0.5Hz按键按下为高华东交通大学课程设计报告-5-图3-2-23.3计数模块此模块可在闸门信号内对被测信号进行计数,及4位BCD显示结果的输出,并自动进行量程的转换。其实体模块如图3-3-1.图3-3-1此模块的仿真波形如图3-3-2.25Hz时钟输入输出一个宽度为cp2周期的高电平开关信号1有效闸门信号被测信号复位信号1有效输入1KHz时的输出输入9999KHz时的输出4位BCD显示结果输出及小数点的输出标志0.5Hz125KHz输入enable为1,reset为0华东交通大学课程设计报告-6-图3-3-23.4锁存模块此模块是将计数部分的输出结果进行缓冲锁存,保证结果的正确输出显示。即在计数部分cp3为低电平(停止计数)时,将输出的结果进入锁存部分,通过锁存器将结果给译码显示器。其实体模块如图3-4-1.图3-4-1此模块的仿真波形如图3-4-2.可见,在cp3下降沿时,锁存器将输入锁存,直接给输出;reset为1时,可清零。4位BCD输出结果及小数点标志位输出计数模块输出锁存结果华东交通大学课程设计报告-7-图3-4-23.5译码显示模块此模块是对显示部分的4位7段数码管进行动态扫描与译码显示,如此可直观地反映被测信号的频率。其实体模块如图3-5-1.图3-5-1此模块的仿真波形如图3-5-2。锁存器输出数码管段码数码管位选扫描时钟信号小数点标志位4位BCD输出华东交通大学课程设计报告-8-图3-5-2第四章系统设计与仿真在各个子模块设计好之后,还需要一个顶层文件将它们联系起来,构成一个完整的系统,如此才能具备测频的功能。整个系统的原理图如图4-1所示。图4-1由于此设计的频率计量程为1KHz~~9999KHz,故需对各个范围的值都进行仿真,其仿真波形如下:加小数点8段段码输出4为位选信号32KHz500Hz华东交通大学课程设计报告-9-图4-2被测信号为500Hz时的仿真波形注:被测信号为500Hz时,仿真结果显示为'00111111''00111111''00111111''00111111',即“0000”。图4-3被测信号为1250Hz时的仿真波形注:被测信号为1250Hz时,仿真结果显示为'10000110''01011011''01101101''00111111',即“1.250”。图4-4被测信号为50KHz时的仿真波形注:被测信号为50KHz时,其仿真结果显示为'01101101''10111111''00111111''00111111',即“50.00”。图4-4被测信号为125KHz时的仿真波形注:被测信号为125KHz时,其仿真结果显示为'00000110''01011011''11101101''00111111',华东交通大学课程设计报告-10-即“125.0”。图4-5被测信号为1250KHz时的仿真波形注:被测信号为1250KHz时,其仿真结果显示为'00000110''01011011''01101101''00111111',即“1250”。图4-5被测信号为1250KHz时的仿真波形注:被测信号为12MHz时,其仿真结果显示为'01110110''01110110''01110110''01110110',即“HHHH”。数码管数值译码对应表:数值dpgfedcba00/1011111110/1000011020/1101101130/1100111140/11100110华东交通大学课程设计报告-11-50/1110110160/1111110170/1000011180/1111111190/11101111H0/11110110第五章硬件实验及结果5.1硬件实验方案将程序烧入芯片中,在EDA实验开发板上进行实验。其引脚锁定如下:注:cp32m绑定32KHzEnable1绑定DK2Reset1绑定DK3华东交通大学课程设计报告-12-Input1绑定CLK1的2KHzSel1[0]绑定LI0Sel1[1]绑定LI1Sel1[2]绑定LI2Show1[0]绑定A8Show1[1]绑定B8Show1[2]绑定C8Show1[3]绑定D8Show1[4]绑定E8Show1[5]绑定F8Show1[6]绑定G8Show1[7]绑定DP8将管脚按以上绑定好,就可以在实验板上调试了。5.2实验结果将程序下载到实验板中,在enable未打开(即为‘0’)时,可以看到数码管并没有数值显示(即均为0);在置enable1为‘1’时,可以看到显示结果为“2.XXX”(数值不固定,有变化);此时置reset1为‘1’,可看到显示结果清零;将input1接为2Hz,显示为“0000”;将input1接为Y1(即为12MHz),显示为“HHHH”。由于实验板上没有几千KHz、几百KHZ和几十KHz,但根据仿真结果可知,设计是没有问题的。从仿真和实验结果可以看出本设计能够对满足设计要求量程内的信号频率进行测量。第六章心得体会通过本次的课程设计,让我再次深入了EDA的世界,使我对这一门学科有了更高层次的了解。在开始设计前一定要将课本上的知识吃透,因为这是做实验的基础,否则,设计的难度就很大,会浪费很多时间。而且还要对设计的相关内容积极查阅资料,对设计内容要亲力亲为,务必将每个步骤,每个细节弄清楚,华东交通大学课程设计报告-13-弄明白。在做好这些前奏工作后就要自己去设计了,将学到的理论知识运用到实际操作中去。通过这为期两周的课程设计,我受益匪浅,不但巩固了理论知识,还进一步掌握了实际操作发法。增强了自己研究问题和创新意识的能力。在课设中可以用充实和繁忙来形容了,每天都奔波在寝室与实验室之间。之所以充实是在课堂上学到的东西都有了用武之地。有些更是自己在图书馆查找资料,网上搜索,同学讨论,老师讲解中学习了解到的。巩固和提升了自己的知识水平。这两周也可以用沮丧和欢喜来形容,当面临一个个难题是,绞尽脑汁也束手无策时,心里真的好难受,感觉好失败。但最终将它们解决时,那又是多么欢喜。在这期间,我还明白了,只有脚踏实地、认真严谨、实事求是才能够在每一步中得到真正的收获。这也是我在这次课设中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助。读万卷书,行万里路。我要学习与实践相结合,而且我本来就是学电子的,只有在实践中去巩固和理解学到的知识,才能真正地掌握它,才能在以后的工作中发挥作用。参考文献【1】EDA技术实用教程科学出版社潘松黄继业【2】数字电路EDA入门------VHDL程序实例集北京邮电大学出版社张亦华【3】VHDL应用与开发实践科学出版社甘历【4】CPLD/FPGA应用开发技术与工程实践人民邮电出版社【5】FPGA系统设计与实践电子工业出版社黄智伟华东交通大学课程设计报告-14-附录:程序代码:-----顶层模块-----Libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;entitytotalisport(cp32m:instd_logic;--32KHz时钟信号enable1:instd_logic;--开关信号input1:instd_logic;--输入被测信号reset1:instd_logic;--复位信号sel1:outstd_logic_vector(2downto0);--输入片选信号show1:outstd_logic_vector(7downto0));--输出七位数码管显示endtotal;architecturecontentoftotalissignalcp_1,cp_2,cp_3:std_logic;signalreset_1:std_logic;signaloverflow_1,low_1:std_logic;signalplay0
本文标题:基于EDA的四位数码显示频率计
链接地址:https://www.777doc.com/doc-2569390 .html