目录

工程的基本原理:

1.动态显示

2.数码管结构

3.译码表

​ 4.结构图:

代码实现:

源代码:

tb文件 :

仿真波形图:


工程的基本原理:

1.动态显示

8位数码管在每(20/8)ms左右的间隔情况之下循环亮灭,同时在每个数码管单独显示每一位相对应的数字或者字母,因为循环亮灭的时间很短,这里利用人的视觉暂留效应,使得有8位数码管同时显示的错觉。更加通俗的说,类似于我们平时用的灯管,灯管两端接上50HZ交流电后,灯管以(1/50)s的周期循环亮灭,但实际上人眼所观察到的确是灯管一直在亮。

2.数码管结构

 如上图15.18所示,左边图(a)为单个数码管,其中共分为(a-h)8端,其中h段也就是图中的dp段,代表小数点。

右图(b)则分别显示共阴极(低电平有效)和共阳极的两类数码管。

以一位数码管显示数字‘1’为例,如果为共阳极数码管那么hgfedcba对应11111001,

若为共阴极数码管那么hgfedcba对应00000110.

3.译码表

如下图15.1,为8段的数码管显示所对应的16进制译码表

 4.结构图:

首先,利用分频器得到频率为50MHZ的方波,通过得到的方波信号来控制3位的计数器。得到的3位输出num作为三八译码器的输入从而来控制输出sel端,即代表哪一个数码管来亮。同时,输入了32位的数据disp_data,再通过上述的三位计数器控制,借助多路数据选择器来输出disp_tmp,从而选择所要显示的内容,以seg为输出。

代码实现:

源代码:

module dongtaishumaguan(input clk,input rst_n,input [31:0] data,output reg [7:0] sel,//位选output reg [7:0] seg//段选);reg [14:0] div_cnt;always@(posedge clk or negedge rst_n)beginif(!rst_n)div_cnt<= 0;else if(div_cnt>=24999)div_cnt<= 0;elsediv_cnt<= div_cnt+1'b1;end reg clk_1;always@(posedge clk or negedge rst_n)beginif(!rst_n)clk_1<= 0;else if(div_cnt==24999)clk_1<= ~clk_1;endreg [2:0] cnt;always@(posedge clk_1 or negedge rst_n)beginif(!rst_n)cnt<= 0;elsecnt<= cnt+1'b1;endalways@(*)begincase(cnt)0:sel = 8'b0000_0001;1:sel = 8'b0000_0010;2:sel = 8'b0000_0100;3:sel = 8'b0000_1000;4:sel = 8'b0001_0000;5:sel = 8'b0010_0000;6:sel = 8'b0100_0000;7:sel = 8'b1000_0000;endcaseendreg [3:0] data_1;always@(*)begincase(cnt)0:data_1 = data[31:28];1:data_1 = data[27:24];2:data_1 = data[23:20];3:data_1 = data[19:16];4:data_1 = data[15:12];5:data_1 = data[11:8];6:data_1 = data[7:4];7:data_1 = data[3:0];endcaseendalways@(*)begincase(data_1)0:seg = 8'hc0;1:seg = 8'hf9;2:seg = 8'ha4;3:seg = 8'hb0;4:seg = 8'h99;5:seg = 8'h92;6:seg = 8'h82;7:seg = 8'hf8;8:seg = 8'h80;9:seg = 8'h90;4'ha:seg = 8'h88;4'hb:seg = 8'h83;4'hc:seg = 8'hc6;4'hd:seg = 8'ha1;4'he:seg = 8'h86;4'hf:seg = 8'h8e;endcaseend
endmodule

tb文件 :

module tb_dongtaishumaguan;// Inputsreg clk;reg rst_n;reg [31:0] data;// Outputswire [7:0] sel;wire [7:0] seg;// Instantiate the Unit Under Test (UUT)dongtaishumaguan uut (.clk(clk), .rst_n(rst_n), .data(data), .sel(sel), .seg(seg));
always #10 clk=~clk;initial begin// Initialize Inputs clk = 1;rst_n = 0;data = 0;//32'h0000_0000; // Wait 100 ns for global reset to finish#201;rst_n = 1;#2000;data = 32'h87654321;#20000000;data = 32'habcdef12;// Add stimulus hereendendmodule

仿真波形图: 

这里我们可以右键输出或者输入信号,点击Radix可以去选择各种进制的显示,为了方便查错,这里对seg信号我们选择16进制显示 ,发现恰好与上面的译码表一一对应。

动态数码管显示Verilog相关推荐

  1. 51单片机入门——动态数码管显示详解

    51单片机:动态数码管显示 - 模块图 - 显示原理 – 消抖 静态数码管技术 + 人眼视觉停留 显示原理类似于以前的 胶片机放影视,也就是只要我切换的速度足够快你就看不出来其实我是一次次显示的(滑稽 ...

  2. 单片机原理与应用技术(三)———动态数码管显示汇编语言

    一.数码管基础知识 1.数码管结构 一般数码管通常由八段LED灯组成,又分成共阳数码管和共阴数码管(如下图所示).共阴极数码管即为LED阴极连接在一起为公共阴极,共阳极数码光即为LED阳极连接在一起为 ...

  3. 51单片机静态动态数码管显示

    51单片机静态动态数码管显示 通过此实训了解动态数码管的显示原理,掌握编码方法.共阴极和其阴极数码管的不同之处及常用设计方法. 实训设备 这里使用的377锁存器模块控制的数码管下面就是电路图 显示内容 ...

  4. 51单片机_动态数码管显示

    动态数码管显示(延时函数) 编程原理 利用延迟函数,每秒钟数码管加1显示,一直加到250.延时函数精度不高,最好使用定时器中断. 数码管动态显示原理 动态数码管显示有段选和位选.段选是单个数码管显示的 ...

  5. Proteus:单片机动态数码管显示“HELLO”模拟

    题目概述: 单片机动态数码管显示"HELLO". 编程: #include <reg51.h> #define uchar unsigned char #define ...

  6. 单片机C51(STC89C52RC)实现静态、动态数码管显示

    目录 1.138译码器原理 2.数码管显示原理 3.静态数码管显示 4.动态数码管显示 5.总结 1.138译码器原理 C B A Y Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 0 0 0 0 ...

  7. 51单片机动态数码管显示自己学号

    实验题目:使用51单片机实现动态数码管显示自己8位学号,例如20220018 在此原理图又分两种连接方式: 第一种是8位数码管接38译码器来减少端口使用. 第二种是,没有端口要求接好就可以那就是,把位 ...

  8. 单片机入门——动态数码管显示

    前言 在实际应用中通常都需要显示多位数值,如果采用静态数码管显示就不够好,因此就需要采用另外一种显示方式,即数码管动态显示.开发板上板载2 个四位一体的共阴数码管,接下来我们就来介绍下如何使用51 单 ...

  9. 51单片机 动态数码管显示

    本章博客写的内容主要围绕动态数码管显示,动态数码管显示与静态数码管显示比较稍有变化,主要在添加延时函数这点上 1.首先将上一章节使用子函数方法的代码复制过来 将Nixie( , )移到下方while循 ...

最新文章

  1. 单目+惯性 VIO SLAM 对比
  2. Java之定时任务详解
  3. Linux内核引导简析
  4. linux(centOS7,mini),python环境的搭建
  5. Docker镜像源更改
  6. JavaSE、JavaEE、JavaME
  7. Ubuntu 11.10ibus万能五笔
  8. 腾讯云云服务器Centos系统安装MySQL数据库详细教程
  9. 奖学金设计mysql_数据库设计-奖学金评定系统.doc
  10. 英语绕口令大全 练习你的口语
  11. 计算机专业群名有内涵,有内涵高大上的群名
  12. 五阶魔方公式java_五阶魔方降阶法公式是什么?
  13. Adobe无法安装错误代码127
  14. Linux蓝牙系统(3) Linux 命令
  15. biti_rainy的博客
  16. 5个Python小游戏+源码,本来要帮我侄孙戒手游瘾的,结果我和他玩疯了
  17. spring-依赖注入(DI)
  18. SSM基于微信小程序的外卖点餐系统 毕业设计-附源码2711704
  19. 文件上传(保存本地)和将文件转为base64
  20. iocomp iPlot使用说明10 Tables表格

热门文章

  1. 文件一直处于修改状态 git checkout 无法还原的问题解决方法
  2. 菜尼奥排错之keras TypeError: _init_subclassed_network() got an unexpected keyword argument ‘input‘
  3. 桑坦德银行使用以太坊区块链赎回2000万美元债券
  4. 学会这5个方法,全网任意免费复制,告别付费复制
  5. (三)搭建容器云管理平台笔记—安装前准备工作
  6. Vant 框架 官网中文 api 地址
  7. fMRI独立成分分析方法(ICA)工具GIFT
  8. 超薄本在未连接网线怎么查看本地mac地址
  9. ubuntu20.04 apt-get换国内源 阿里源 163源 清华源 中科大源
  10. 解决apache启动错误:Could not reliably determine the server's fully qualified domain name