搜索
bottom↓
回复: 2

请教一个FPGA实现数码管动态扫描的问题

[复制链接]

出0入0汤圆

发表于 2016-11-26 21:40:42 | 显示全部楼层 |阅读模式
本帖最后由 hehao9051 于 2016-11-26 21:46 编辑

本人接触FPGA,在板子上调试时发现如下代码中的一个问题,希望哪位大哥帮忙看看,问题在24-25行。还想请教一个问题,加入写一个数码管显示的模块,然后通过调用这个模块来显示温度,那么温度数据通过什么方式传递给模块呢?
  1. module LedCtrl(output reg[7:0] seg, output reg[3:0] dig, input clock);
  2.         reg[3:0] disp_dat;        //显示数据寄存器
  3.         reg[3:0] disp_dat1;
  4.         reg[3:0] disp_dat2;
  5.         reg[3:0] disp_dat3;
  6.         reg[3:0] disp_dat4;
  7.         reg[36:0] count; //定义计数寄存器

  8.         reg[1:0] com_state;

  9.         /*对时钟进行计数,用于数码管显示*/
  10.         always @ (posedge clock ) begin
  11.                 count = count + 1'b1;
  12.         end

  13.         always @ (count[24]) begin
  14.                 disp_dat1 = {count[28:25]};
  15.                 disp_dat2 = disp_dat1 + 1'b1;
  16.                 disp_dat3 = disp_dat2 + 1'b1;
  17.                 disp_dat4 = disp_dat3 + 1'b1;
  18.         end

  19.         /*计时对点亮数码管进行切换*/
  20.         always @ (count[17]) begin
  21.                 //com_state = {count[19:18]}; // 使用这句4位数码管可以全部点亮
  22.                 com_state = com_state + 1'b1; // 使用这句只能点亮第三个数码管??????
  23.         end

  24.         /*对数码管进行扫描*/
  25.         always @ (com_state or disp_dat1) begin
  26.                 case (com_state)
  27.                         2'd0 :
  28.                                 begin
  29.                                         dig = 4'b1110;
  30.                                         disp_dat = disp_dat4;
  31.                                 end
  32.                         2'd1 :
  33.                                 begin
  34.                                         dig = 4'b1101;
  35.                                         disp_dat = disp_dat3;
  36.                                 end
  37.                         2'd2 :
  38.                                 begin
  39.                                         dig = 4'b1011;
  40.                                         disp_dat = disp_dat2;
  41.                                 end
  42.                         2'd3 :
  43.                                 begin
  44.                                         dig = 4'b0111;
  45.                                         disp_dat = disp_dat1;
  46.                                 end
  47.                 endcase

  48.                 case (disp_dat)
  49.                         4'h0 : seg = 8'hc0; //显示"0"
  50.                         4'h1 : seg = 8'hf9; //显示"1"
  51.                         4'h2 : seg = 8'ha4; //显示"2"
  52.                         4'h3 : seg = 8'hb0; //显示"3"
  53.                         4'h4 : seg = 8'h99; //显示"4"
  54.                         4'h5 : seg = 8'h92; //显示"5"
  55.                         4'h6 : seg = 8'h82; //显示"6"
  56.                         4'h7 : seg = 8'hf8; //显示"7"
  57.                         4'h8 : seg = 8'h80; //显示"8"
  58.                         4'h9 : seg = 8'h90; //显示"9"
  59.                         4'ha : seg = 8'h88; //显示"a"
  60.                         4'hb : seg = 8'h83; //显示"b"
  61.                         4'hc : seg = 8'hc6; //显示"c"
  62.                         4'hd : seg = 8'ha1; //显示"d"
  63.                         4'he : seg = 8'h86; //显示"e"
  64.                         4'hf : seg = 8'h8e; //显示"f"
  65.                 endcase
  66.         end
  67. endmodule
复制代码

出0入0汤圆

 楼主| 发表于 2016-11-27 08:45:28 来自手机 | 显示全部楼层
哪位帮忙解答下?谢谢

出0入0汤圆

发表于 2017-2-10 09:03:28 | 显示全部楼层
你把主时钟分频比如原来2MHz,分频成200Hz,用这个200Hz信号计数你上面的刷4位数码管。    时间1:第1位数据,段码。 时间2:第2位数据,段码。 时间3:第3位数据,段码。 时间4:第4位数据,段码。  循环
最好用同步设计。  

最好用同步设计。
这个阻塞=, 非阻塞<=   赋值你好忙呀搞清楚。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 09:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表