ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:198KB ,
资源ID:1038259      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-1038259.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易数字频率计设计报告.doc)为本站会员(星星)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

简易数字频率计设计报告.doc

1、一系统设计方案根据系统设计要求,需要实现一个4位十进制数字频率计,其原理框图如图1所示。主要由脉冲发生器电路、测频控制信号发生器电路、待测信号计数模块电路、锁存器、七段译码驱动电路及扫描显示电路等模块组成。测频控制信号发生电路标准时钟CLK脉冲发生器扫描控制LOCKENCLR待测信号F_IN锁存与译码显示驱动电路数码显示待测信号计数电路图1 数字频率计组成原理框图由于是4位十进制数字频率计,所以计数器CNT10需用4个,7段显示译码器也需用4个。频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。为此,测频控制信号发生器 F_IN_CNT应设置一个控制信号时钟CLK,一个计数使能信号输出端EN

2、、一个与EN输出信号反 向的锁存输出信号LOCK和清零输出信号CLR。若CLK的输入频率为1HZ,则输出信号端EN输出一个脉宽恰好为1秒的周期信号,可以 作为闸门信号用。由它对频率计的每一个计数器的使能端进行同步控制。当EN高电平时允许计数,低电平时停止计数,并保持所计的数。在停止计数期间,锁存信号LOCK的上跳沿将计数器在前1秒钟的计数值锁存进4位锁存器LOCK,由7段译码器译出并稳定显示。设置锁存器的好处是:显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,清零信号CLR对计数器进行清零,为下1秒钟的计数操作作准备。二. 单元电路设计:1时基产生与测频时序控制电路模块时基产

3、生与测频时序控制电路主要产生计数允许信号EN、清零信号CLR和锁存信号LOCK。时基产生电路: 图2 时基产生模块顶层图其VHDL程序清单如下:-CLK_SX_CTRLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CLK_SX_CTRL ISPORT(CLK: IN STD_LOGIC; LOCK: OUT STD_LOGIC; EN: OUT STD_LOGIC; CLR: OUT STD_LOGIC);END;ARCHITECTURE ART OF CLK_SX_CTRL IS

4、 SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF(CLKEVENT AND CLK=1)THEN IF Q=1111THEN Q=0000;ELSEQ=Q+1;END IF; END IF;EN=NOT Q(3);LOCK=Q(3)AND NOT(Q(2)AND Q(1);CLR=Q(3)AND Q(2)AND NOT(Q(1);END PROCESS;END ART;测频时序控制电路:为实现系统功能,控制电路模块需输出三个信号:一是控制计数器允许对被测信号计数的信号EN;二是将前一秒计数器的计数值存入锁存的锁存信

5、号LOCK;三是为下一个周期计数做准备的计数器清零信号CLR。上述三个信号产生的顺序是:先提供计数信号,这种信号使计数器在1s提供锁存信号,这种信号对计数值进行锁存;最后是发出清零信号,这种信号可对计数器清零。计数器清零结束后又可重新计数,计数进入第二个周期。不难看出,控制电路模块实际上就是一个控制器,它需要一个周期为1s 的信号作为产生并控制控制器输出的时基信号CLK0。控制电路模块中控制器及端口如图3 所示:图3 测频时序控制模块顶层图其VHDL程序清单如下:-F_IN_CNT.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD

6、_LOGIC_UNSIGNED.ALL;ENTITY F_IN_CNT ISPORT(CLK:IN STD_LOGIC; EN:IN STD_LOGIC; CLR:IN STD_LOGIC;QA,QB,QC,QD:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0 );END F_IN_CNT;ARCHITECTURE ART OF F_IN_CNT ISCOMPONENT CNT10PORT(CLK,EN,CLR:IN STD_LOGIC; COUNT10:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;SIGNAL S2

7、:STD_LOGIC;SIGNAL S3:STD_LOGIC;SIGNAL S4:STD_LOGIC;BEGINS2=NOT QA(3);S3=NOT QB(3);S4=NOT QC(3);U1:CNT10 PORT MAP(CLK,EN,CLR,QA);U2:CNT10 PORT MAP(S2,EN,CLR,QB);U3:CNT10 PORT MAP(S3,EN,CLR,QC);U4:CNT10 PORT MAP(S4,EN,CLR,QD);END ART;2. 待测信号脉冲计数电路模块待测信号脉冲信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由4个十进制加法计数器组成,其中EN为计数

8、选通控制信号,CLR为计数器清零信号。在计数器清零信号CLR清零后,当计数选通控制信号EN有效时,开始对待测信号进行计数。如果计数选通控制信号EN的宽度为1s,那么计数结果就为待测信号的频率;如果计数选通控制信号EN的宽度为100ms,那么待测信号的频率等于计数结果的10倍。该模块将对输入信号进行十进制计数。它虽然由多个十进制计数器组成,但采用CPLD 后,设计时只要先制作一个单个的十进制计数器,然后再将多个结构相同的单个十进制计数器在CPLD 内部进行连接就可组合成为一个完整的计数电路模块。为实现系统功能,十进制计数器需要设置三个输入端:即被测信号输入端CLK、计数器状态清零端CLR 和计数

9、器工作使能端EN。需要设置四个输出端,即COUNT0、COUNT1、COUNT2 和COUNT3 ,并由这四个输出端输出四位BCD码来表示十进制数。需要说明,上述十进制计数器都是满10进1 ,且进位时计数器清零并重新计数。计数电路模块中的单个计数器符号及端口功能如图4 所示:图4 待测信号脉冲计数模块顶层图其VHDL程序清单如下:-CNT10.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK,EN,CLR: IN STD_LOGIC; COUNT

10、10 :BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END CNT10;ARCHITECTURE ONE OF CNT10 ISBEGINPROCESS(CLK,CLR,EN)BEGINIF CLR=1 THEN COUNT10=0000;ELSIF(CLKEVENT AND CLK=1)THEN IF(EN=1)THENIF COUNT10=1001THEN COUNT10=0000;ELSE COUNT10=COUNT10+1;END IF;END IF; END IF;END PROCESS;END ONE;3. 锁存与译码显示控制电路模块锁存与译码显示控制电

11、路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。其功能是对四位BCD码进行锁存并且转换成为对应的4组七段码,用于驱动数码管。锁存电路模块该模块可使系统显示电路的工作稳定而可靠,避免计数电路模块清零时引起显示闪烁的现象。锁存电路模块是由多个锁存器组成。每个锁存器都是用来锁存与其单独相连的计数器的输出数据。由于每个锁存器锁存的都是4 位2 进代码表示的十进制数,其功能完全相同,因此只需要设计制作一个锁存器就可连接组合成一个锁存电路模块。为实现系统功能,锁存器需设置四个数据输入端:即QA、QB、QC 和QD ,并由它们输入计数器的计数值

12、。需设置一个使锁存器工作的使能端L0CK。还需设置四个锁存数据的输出端:即LEDA 、LEDB 、LEDC和LEDD 。锁存电路模块中单个锁存器的符号及端口功能如图5 所示。图5 4位锁存模块顶层图其VHDL程序清单如下:-LOCK.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LOCK ISPORT(LOCK:IN STD_LOGIC; QA,QB,QC,QD:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LEDA,LEDB,LEDC,LEDD:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END;

13、ARCHITECTURE ART OF LOCK ISSIGNAL L0,L1,L2,L3:STD_LOGIC_VECTOR(3 DOWNTO 0);COMPONENT SEG7PORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;BEGINPROCESS(LOCK) BEGIN IF(LOCKEVENT AND LOCK=1)THEN L0=QA; L1=QB; L2=QC; L3 dout dout dout dout dout dout dout dout

14、 dout dout doutBT=0001;aBT=0010;aBT=0100;aBT=1000;anull;END CASE;END PROCESS P1;P2: PROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THEN CNT4SGSGSGSGNULL;END CASE;END PROCESS P3;END ONE;三. 各模块设计仿真:1. 时基产生与测频时序控制电路仿真 图8 时基产生与测频时序控制电路仿真2. 十进制加法计数器仿真图9 十进制加法计数器电路仿真3. 待测信号脉冲计数器仿真图10 待测信号脉冲计数器电路仿真4. 译码显示电路仿真图11 译

15、码显示电路仿真5. 锁存与译码显示控制电路仿真 图12 锁存与译码显示控制电路仿真6. 扫描电路仿真图13 扫描显示电路仿真7. 简易数字频率计整个系统仿真图14 简易数字频率计系统仿真四简易数字频率计顶层原理图图15 简易数字频率计顶层原理图五. 编程下载:以上程序经综合仿真后,结果基本符合设计要求。整个频率计设计完成后,其外引脚图如图16所示。原来需要十几块芯片组成的频率计,现在只用一块芯片即可实现。下载适配后,只在输入端接上标准时钟频率和待测频率,相应的输出端接上LED7段显示数码管,即可显示频率。硬件电路简捷,体积小,所有电路都在一块芯片里,因此性能稳定。 图16 数字频率计CPLD外

16、管脚图六. 设计心得体会:第一次真正的感觉到自己是学电信专业的,第一次真正体会到自己要搞完一个大型的程序还是不容易的事。提前几天开始拿到本次程序设计题的时候确实有点儿兴奋,心想着尽量要独立快速而又高质量的完成这个设计。可是,当天就发现我对这个基于CPLD的嵌入式系统一点头绪都没有,因为到现在快毕业了对嵌入式真正含义还不是很透彻。随后就是一个劲的去图书馆查阅相关资料,看书上有没有关于数字频率计设计的内容。可是书上的东西好像并没有帮到我什么忙,使我更感到无从下手。就这样一直拖到了不能再拖的时候了,刚开始的豪言壮语也都没有了。一阵慌乱后,终于定下心来了终于找到了一个比较类似的VHDL程序的简易数字频

17、率计设计。这也使得我今天的程序颇有类同的感觉。刚开始看到那设计的时候一下子就被很多行的VHDL语言给吓着了,当时真想放弃,最后还是硬着头皮看了下去。开始真是很多看不懂,很多传递符号都是以前没有看到过的。好在前几天看过书,对硬件描述语言还有一点的印象,查过书后都能搞清楚。对我来说是新东西的还有寄存器的设计等,最后通过查找书本大概的把这个系统看懂了。看了几遍课题设计要求和书上给的源程序后对如何写这一方面的程序有了一定的了解,于是就尝试着自己开始作起了这个系统的总体框图。毕竟是第一次写这么大的关于硬件描述的程序,所以虽然看稍微懂了类似的模块程序,可是到自己的时候还是觉得不能上手,一直是要翻书看和借鉴

18、里的内容。最后,还是模仿着那系统完成了我这次课程设计的第一步构图啊!虽然不知道有多少内容是自己的,可我还是花了时间和精力去认真完成的。做这部分的时候简直要命眼看就第一个设计周快要结束了,才开始马马虎虎的忙碌。主要是平时上课的知识积累不够,掌握得不熟练,到编写程序时,表达起来就很吃力。甚至有时候都不知道自己在编什么,看不懂真的很痛苦!没办法,只得结合下具体情况尝试了,结果可能不太好。时间过得比较快,很快到了对整个系统作调试的时候了,编译、下载、连线、运行,一步一步的很小心。最后测试成功,只不过在显示问题上没有做得很好,如果在显示部分加上扫描模块就比较成功了。不过自己也还算收获很大,毕竟已经尽力了

19、。通过本次课程设计,感慨很多啊平时训练太少、课外衍生也做得不够。对于编程类的习题做得不多是导致此次设计不成功的根本原因。在以后的学习工作中应该加强基础知识的牢固掌握,争取比现在做得更好!另外,还要感谢陈老师的悉心指导,通过他的进一步讲解才会更深入的懂得此次任务的思路和很多需要修改的地方。七参考文献:1. 康华光主编 电子技术基础(数字部分),高等教育出版社2. 阎石主编 电子技术基础(数字部分),清华大学出版社3. 陈大钦主编 电子技术基础实验,高等教育出版社4. 彭介华主编 电子技术课程设计指导,高等教育出版社5. 张 原编著 可编程逻辑器件设计及应用,机械工业出版社6. 荀殿栋,徐志军编著 数字电路设计实用手册,电子工业出版社7. MAX+PLUS入门8. 刘洪喜,陆颖编著 VHDL电路设计实用教程 清华大学出版社 9. 章彬宏 周正林编著 EDA应用技术 北京理工大学出版社10. 陈云洽 保延翔编著 CPLD应用技术与数字系统设计 电子工业出版社19

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922