欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    FPGA学习系列:18. 数码管的设计.doc

    • 资源ID:3251722       资源大小:23KB        全文页数:5页
    • 资源格式: DOC        下载积分:2
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要2
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FPGA学习系列:18. 数码管的设计.doc

    FPGA学习系列:18. 数码管的设计设计背景:    数码管是一种半导体发光器件,其基本单元是发光二极管。数码管在我们的许多设计中都又用到,数码管的显示原理简单和显示效果清晰在我们的工业中的到了广泛的应用。    数码管的应用很广泛,涉及众多领域,我们就拿数显仪表这个领域来讲,数显仪表是数字式显示仪表的简称,显示器常用的有LED、LCD为显示元件。 设计原理:         本次的设计是设计一个数码管的显示模,其设计原理图如下:        数码管显示分为的动态和静态显示,为了让人眼可以看清数码管的显示,我们一般驱动数码管的频率为1K - 10K 之间。    顾名思义,七段数码管就是使用七段点亮的线段来拼成常见的数字和某些字母,这种显示方式我们在数字电路中非常容易见到。再加上右下角显示的小数点,实际上一个显示单元包括了8根信号线。根据电路设计的不同,这些信号线可能高有效也可能低有效。我们通过FPGA控制这些线段的亮灭,达到显示效果。    对于多个数码管的显示模块,将每一个都连接到FPGA的管脚会耗用大量FPGA的管脚资源。因此我们同样引入一种类似矩阵键盘的扫描方式。任何时刻我们只使用8根信号点亮一个数码管,但是8个数码管是随着时钟步调交替点亮的,只要时钟的速度够快,我们观察到数码管就好像几个同时点亮一样。    我们的开发板使用的动态显示来循环扫描显示。其原理图如下所示:        如图所示,我们的开发板使用的是六位共阳极数码管,六个PNP型三极管分别作为六组数码管电源的输入开关,也就是我们常说的位选信号,PNP三极管为低电平导通,所以我们的位选信号低有效。在这里,为了节约FPGA的IO资源,我们把六个位选信号连接到了三八译码器74HC138D。    从我们的板子硬件原理图上我们可以看清,我们的数码管是红阳极,就是是给一个低电平就是点亮数码管的一个段,那么8段全部给8b0000000那么数码管显示的就是8这个数字了,我们用的是循环显示,是通过sel引脚来选择哪一个数码管亮,也就是说我们的sel的三位为3b000的时候也就是选择第一个数码亮,3b001第二个数码管亮依次类推。 设计架构图:    设计代码:顶层模块0 module seg_x(clk,rst_n,sel,seg7); /顶层端口1  input clk;     /输入2  input rst_n;3  output  2:0 sel;  /输出4  output 7:0 seg7;5 6  wire 23:0 num;7 8  num_in num_in(   /例化输入模块9    .clk(clk),10   .rst_n(rst_n),11   .num(num)12   );1314 seg seg(   /例化数码管模块15   .clk(clk),16   .rst_n(rst_n),17   .sel(sel),18   .seg7(seg7),19   .data_in(num)20   );21 endmodule  设计模块0  module seg(clk,rst_n,sel,seg7,data_in); /端口定义1  2   input clk;3   input rst_n;4   input 23:0 data_in;   /输入6个灯的数据5  6   output reg 2:0 sel;  7   output reg 7:0 seg7;8  9   parameter s0 = 3b000;10  parameter s1 = 3b001;11  parameter s2 = 3b010;12  parameter s3 = 3b011;13  parameter s4 = 3b100;14  parameter s5 = 3b101;15 16  define T1ms  50_000   /定义1k的计数值17  /define T1ms  518  reg 15:0 count;19  wire flag;20  always  (posedge clk or negedge rst_n)21   if(!rst_n)22    begin23     count  测试模块0 timescale 1ns/1ps    /时间精度1 2 module seg_tb;3  reg clk;   /端口定义4  reg rst_n;5 6 7  wire 2:0 sel;8  wire 7:0 seg7;9 10 initial begin11   clk = 1b1;12   rst_n = 1b0;1314   #100.1 rst_n = 1b1;1516   #200000 17    $stop;1819  end20 always #10 clk = clk;   /模拟时钟2122 seg_x seg_x_dut(  /例化顶层模块23   .clk(clk),24   .rst_n(rst_n),25   .sel(sel),26   .seg7(seg7)27   );28 endmodule  仿真图:        在仿真中我们可以看到我们的设计是正确的,第一个灯亮的是f9,也就是也就是对应数码管显示的是1,a4就是2,和我们的输入是正确的。

    注意事项

    本文(FPGA学习系列:18. 数码管的设计.doc)为本站会员(白大夫)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开