Verilog实现4位数码管动态显示(FPGA)
本文提供了在Basys2开发板上实现4位数码管动态显示的代码,并在ISE13.4_1上调试通过,下载到开发板后可实现将8个SW输入的两位十六进制数对应的8421BCD码,显示在数码管上。
首先,是以十六进制数显示。比如,在8个开关SW上输入2FH,四个数码管从左到右显示0215。
以下为代码:
module x7seg_1(input wire [3:0] high_data, input wire [3:0] low_data, input wire clk, output reg [6:0] led, output reg [3:0] en ); reg [3:0] data; reg [16:0] times; initial times = 0; always @ (posedge clk) begin if(times == 80000) times = 17'b0;else times = times + 17'b1;endalways @ (posedge clk) begin if(times<=20000)beginen=4'b1110;if(low_data>4'b1001)data=low_data-4'b1010;else data=low_data;endelse if((times>20000)&(times<=40000))beginen=4'b1101;if(low_data>4'b1001)data=4'b0001;else data=4'b0000;endelse if((times>40000)&(times<=60000))beginen=4'b1011;if(high_data>4'b1001)data=high_data-4'b1010;else data=high_data;endelsebeginen=4'b0111;if(high_data>4'b1001)data=4'b0001;else data=4'b0000;endendalways@(*)begincase(data) 4'b0000: led= 7'b1000000; //0 4'b0001: led = 7'b1111001; //1 4'b0010: led = 7'b0100100; //2 4'b0011: led = 7'b0110000; //3 4'b0100: led = 7'b0011001; //4 4'b0101: led = 7'b0010010; //5 4'b0110: led = 7'b0000010; //6 4'b0111: led = 7'b1111000; //7 4'b1000: led = 7'b0000000; //8 4'b1001: led = 7'b0010000; //9 default: led = 7'b0001000; //A endcase end
endmodule
约束文件如下:
NET"low_data[0]"LOC=P11;
NET"low_data[1]"LOC=L3;
NET"low_data[2]"LOC=K3;
NET"low_data[3]"LOC=B4;
NET"high_data[0]"LOC=G3;
NET"high_data[1]"LOC=F3;
NET"high_data[2]"LOC=E2;
NET"high_data[3]"LOC=N3;
NET"led[0]"LOC=L14;
NET"led[1]"LOC=H12;
NET"led[2]"LOC=N14;
NET"led[3]"LOC=N11;
NET"led[4]"LOC=P12;
NET"led[5]"LOC=L13;
NET"led[6]"LOC=M12;
NET"en[0]"LOC=F12;
NET"en[1]"LOC=J12;
NET"en[2]"LOC=M13;
NET"en[3]"LOC=K14;
NET"clk"LOC=B8;
其次,将8个SW输入的两位十六进制数对应的十进制数显示在数码管上。比如,输入7FH,四个数码管从左到右依次显示127。
在将二进制数转换为十进制数时,我采用的是”左移加三“的方式,下载后测试正常工作。
代码下载请移步:点击打开链接
Verilog实现4位数码管动态显示(FPGA)相关推荐
- c语言数码管的动态显示时间,8位数码管动态显示时间,可调节,调节的数闪烁显示...
原标题:8位数码管动态显示时间,可调节,调节的数闪烁显示 // 时间,可调节, //调节时间时,调节的数闪烁显示: //比较两种闪烁的方法: #include #define uint unsigne ...
- 单片机c语言数码管显示子程序,单片机C语言之两位数码管动态显示
<单片机C语言之两位数码管动态显示>由会员分享,可在线阅读,更多相关<单片机C语言之两位数码管动态显示(1页珍藏版)>请在人人文库网上搜索. 1.include #define ...
- 单片机动态从00到99C语言,用51单片机控制 2位数码管动态显示 00 ~ 99
;用51单片机控制 2位数码管动态显示 00 ~ 99. ;从 00 开始显示,显示数字每隔一段时间加 1,一直到 99,然后回到 00. ;从 00 到 10 每隔 100ms 加 1: ;从 10 ...
- arduino控制一位数码管、控制二位数码管动态显示(用不到中断程序)
目的: 1.利用arduino控制一位共阳极数码管显示 2.利用arduino控制二位共阳极数码管显示 前言: 前段时间,在网上看到了一个视频,是关于二位数码管动态显示的视频,感觉很新奇,就想把它做出 ...
- 单片机数码管从00到99C语言_用51单片机控制 2位数码管动态显示 00 ~ 99。
;用51单片机控制 2位数码管动态显示 00 ~ 99. ;从 00 开始显示,显示数字每隔一段时间加 1,一直到 99,然后回到 00. ;从 00 到 10 每隔 100ms 加 1: ;从 10 ...
- arduino用时钟中断方式的4位数码管动态显示
一般我们在arduino开发板上显示数字,通常采用多位数码管进行显示,而多位数码管实际是采用"动态扫描显示"的方法进行显示,即依次显示第1位数码管.第2位数码管.第3位数码管.第4 ...
- 基于51单片机实现4位数码管动态显示
单片机入门学习记录(一) 硬件配置: 主控:STC89C52单片机 显示器件:四位一体数码管 操作器件:点动式独立按键SB1.SB2.SB3.SB4 *选配器件:蜂鸣器 功能要求: 1)开机自检:四位 ...
- 8位数码管动态显示8个字符以上1字符的程序,例如0-F。
一:显示0-7: 程序说明: 程序先定义两个表格,一个表格按顺序存放0-F的段码,另一个表格按地位到高位的顺序存放8位数码管的各位位码 上代码!!!! #include "reg52.h&q ...
- 开发板实战篇3 6位数码管动态显示
总结: 模块例化思想: 例化2个定时器模块 + 数码管驱动 根据自己思路编写代码,调试仿真代码,同时熟悉环境.加深细节理解 刚开始写得很乱,代码完全就是用modelsim仿真调试出来的 注意: 一. ...
最新文章
- PICRUSt:预测宏基因组功能—16S扩增子分析锦上添花
- 第十二周项目三-数组类运算的实现
- 堆、栈、方法区、直接内存
- Java版世界时钟示例
- matplotlib简介-高质量图形输出
- 容器宿主机数据库_解决Docker容器内访问宿主机MySQL数据库服务器的问题
- truncate python是删除文件内容吗_在Python中操作文件之truncate()方法的使用教程
- node mysql await_javascript – node.js async / await与MySQL一起使...
- Maven项目报错invalid LOC header (bad signature)
- 第五十篇、OC中常用的第三插件
- 博弈论学习笔记(六)纳什均衡之约会游戏与古诺模型
- 冰点文库下载安装及使用教程
- android手机进入动画,安卓用户必读,如何进入手机开发者模式,以及你必用的功能!...
- 52_LSTM及简介,RNN单元的内部结构,LSTM单元的内部结构,原理,遗忘门,输入门,输出门,LSTM变体GRU,LSTM变体FC-LSTM,Pytorch LSTM API介绍,案例(学习笔记)
- 什么是谷歌趋势(Google Trends)
- linux上使用drive从google drive 下载文件和文件夹
- nginx 通过域名代理tcp端口
- 毕业旅行 | 伦敦5日游行程推荐
- 前后端报文传输加密方案
- 回调函数,监听函数 关系 个人学习理解
热门文章
- 解忧杂货铺(五续集):用了无法离开的网站资源
- UE4 手把手教你做插件(1) 从代码引用插件
- 对于物联网卡各种套餐我们应该如何选择?
- 柯西-施瓦茨不等式(Cauchy-Schwarz Inequality)的四种形式
- 未明学院:财会专业的职业发展道路——企业VS事务所全面解析
- dotnet OpenXML 测量单位的角度和弧度值
- linux使用Cloudreve搭建个人私有云
- 在Ubuntu20.04使用微信和企业微信
- 什么是奇校验(Odd Parity),什么是偶校验(Even Parity)?
- 神经网络辐射场NeRF、实时NeRF Baking、有向距离场SDF、占用网络Occupancy、NeRF 自动驾驶