基于CPLD的数字频率计.doc
《基于CPLD的数字频率计.doc》由会员分享,可在线阅读,更多相关《基于CPLD的数字频率计.doc(22页珍藏版)》请在沃文网上搜索。
1、目录第1章 设计总体思路,基本原理和框图11.1 设计总体思路21.2 基本原理21.3 总体框图2第2章 单元电路设计32.1 分频模块设计32.2 片选信号模块32.3 计数器模块42.4 锁存器模块42.5 译码信号模块52.6 片选模块52.7 译码模块6第3章 设计仿真图63.1 分频电路仿真63.2 片选信号仿真63.3 计数器模块的仿真73.4 锁存器模块仿真73.5 译码信号模块仿真83.6 片选模块仿真83.7 译码器模块仿真93.8 总电路图的仿真93.9 软件调试与硬件调试10第4章 编程下载124.1 分频模块的程序124.2 片选信号模块的程序124.3 计数器模块的
2、程序134.4 锁存器模块的程序154.5 译码信号模块的程序164.6 片选模块的程序164.7 译码器模块的程序174.8 顶层模块的程序18第5章 总结与体会20附录21参考文献22第1章 设计总体思路,基本原理和框图1.1 设计总体思路数字频率计是数字电路中的一个典型应用,这里我们采用ALTERA公司的EP1C3T144C8作为控制核心,利用VHDL语言进行编程,硬件下载烧制实现。将所有集成器件集成到一块芯片上,体积大大减小的同时还大大提高了稳定性,可实现大规模和超大规模的集成电路,测频测量精度高,测量频率范围大,而且编程灵活,调试方便。1.2 基本原理频率计的基本原理是利用一个稳定度
3、高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1 s。闸门时间可以根据需要取值,大于或小于1 s都可以。测得的频率时间间隔与闸门时间的取值成正比,在这里取的闸门时间为1s。其实频率就是1s中之内测得的周期个数,这里我们可以以时钟信号的频率作为基准来分频,即时钟信号是多大的频率我们就进行多少分频,这样被测信号就是1s钟读出来的周期个数,也就是可以进行直接读数。数字频率计的关键组成部分包括分频器,计数器、锁存器、片选电路,译码驱动电路和显示电路.1.3 总体框图清零信号待测信号计数器锁存器译码信号时钟信号分频器片选信号译码器显示器片选第2章 单
4、元电路设计 2.1 分频模块设计 在分频模块中,我们选择的是10分频。分频器在总电路中有两个作用。由总图框图中不难看出分频器有两个输出,一个给计数器,一个给锁存器。时钟信号经过分频电路形成了10分频后的门信号。另一个给锁存器作锁存信号,当信号为低电平时就锁存计数器中的数。模块图如下: 图2.1 分频模块2.2 片选信号模块 片选信号在整个模块中有两个作用,其中一个输出是给译码器用于选择四位数据哪个数据输出。另一个输出是给片选,用于选中哪个LED灯点亮。这里我们有8个LED灯,片选信号给出给出信号再经过片选选择哪个高电平,哪个灯就点亮,反之不亮。片选信号的模块图如下:图2.2 片选信号模块2.3
5、 计数器模块计数器模块主要负责的是计数,当被测信号来一个上升沿,计数器就加一,当个位数满了就向十位进一,以此类推。计数器的输出送给锁存器锁存,当clr为低电平时计数器就清零。当door信号为高电平时才开始计数。计数器模块图如下:图2.3 计数模块2.4 锁存器模块 锁存器主要是将计数器送过来的数据锁存起来再送给显示器进行显示,锁存器的主要作用是防止送过来的信号直接送给显示器出现的闪烁现象,当来一个下降沿锁存器就将数据锁存。锁存模块图如下: 图2.4 锁存器模块2.5 译码信号模块 该模块主要的对锁存器送过来的数据进行选择分个输给译码器译码,再进行显示。这样再结合片选信号送过来的脉冲就可以实现共
6、用8段显示管的LED灯显示不同的数字。译码信号的模块如下: 图2.5 译码信号模块2.6 片选模块 该模块主要的送过来的片选信号进行处理,处理后的输出就是选择哪个数码管点亮,由8位2进制数组成,哪位为1,哪个数码管就点亮,否则不点亮。片选模块图如下: 图2.6 片选模块2.7 译码模块 译码模块主要是将送过来的译码信号进行译码,译码信号由4位二进制数组成,译码输出由7位二进制数组成(用来点亮LED灯的7段数码管分别显示0-9的数字)。译码模块图如下: 图2.7 译码模块第3章 设计仿真图 3.1 分频电路仿真打开quartus II后,建立工程文件,然后输入程序,保存后编译。编译无错误既可以生
7、成电路图。其仿真图如下: 图3.1 分频仿真图3.2 片选信号仿真 设置End time为50ms时钟周期为15us,其仿真图如下:图3.2 片选信号仿真图 3.3 计数器模块的仿真 设置clr为1,door为1,end time为50ms,sig周期为1us其仿真图如下: 图3.3 计数器仿真图 3.4 锁存器模块仿真设置输入,就可以输出,输出和输入一样,只是有点延时,其仿真图如下: 图3.4 锁存器仿真图3.5 译码信号模块仿真 其仿真电路图如下: 图3.5 译码信号仿真图3.6 片选模块仿真 设置输入从0-7,则输人为0时输出第一个为1,输入为1输出第二个为1,以此类推,其仿真图如下:图
8、3.6 片选仿真图 3.7 译码器模块仿真其仿真图如下:图3.7 译码器仿真图 3.8 总电路图的仿真 总电路调用其他7个模块,设置clk周期为15us,被测信号sig周期为1us,其仿真图如下:图3.8 总电路图的仿真 图3.8为总的电路图,图中alm为进位输出,clk为时钟信号,设为15us。Clr为清零信号,点电平清零,高电平计数。Q为显示输出端。Sel为片选,sig为被测信号,设为1us。图中显示结果为 0111111 1101101 0000110 为150.本电路为10分频。结果应为15*10=150,所以测量结果正确。3.9 软件调试与硬件调试 (1)软件调试 仿真时,打开软件Q
9、uartus II,建立工程文件,然后输入程序。保存后,编译,无误后及可以仿真了。进入仿真界面后,先点击edit菜单,设置 end time ,一般设为50ms,由于软件的缘故,end time不要设的太小,否则延时会很大出现错乱.时钟,被测信号分别设置为15us和1us。对总电路图仿真的时候也出现了一个问题,一开始我们怎么也仿真不出来,后来上网一查才知道总图仿真的end time设小了,而且时钟周期和被测信号的周期也设小了。改正后,仿真顺利的出来了。(2) 硬件调试 硬件调试就是将软件编译好了没有错误之后,进行引脚锁定,再进行接线,其中我也出现了一个小的失误,怎么也不能将程序下载到芯片中,然
10、后请教老师之后才知道是芯片选错了,更正后,点击pin planner锁定引脚,接好线之后就点击programmer下载程序到芯片。在点击start运行后就看到了实验的结果。与理论的稍微有一点点的偏差,考虑时延的影响,结果算是正确的。引脚锁定图如下:图3.9 引脚锁定图第4章 编程下载4.1 分频模块的程序library ieee;use ieee.std_logic_1164.all;entity fen isport(clk:in std_logic; q:out std_logic);end fen;architecture fen_arc of fen isbeginprocess(cl
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CPLD 数字频率计
