基于FPGA的数码管动态扫描显示(含代码)
数码管的显示有静态显示和动态扫描显示。一个数码管通常有8个段码,当要控制数码管的数量在两个及以上时,动态扫描无疑是一个最好的选择,可以大量节约IO资源。
静态显示很好理解,8个段码拼成了数字8.,当我们想要显示对应的数字时只需要对应的段码显示就可以了;那么,什么是动态扫描?动态扫描就是利用肉眼视觉暂留现象,通过快速切换数码管显示位码达到肉眼无法分辨闪烁的效果。
设计思路:
需要动态显示6位数码管,然后需要一个相对快的时钟去切换数码管的位码,我采用的是1Khz频率,系统时钟50Mhz,低电平复位。有的人喜欢给case语句的条件写一个时钟,让位码在这个时钟下进行切换,但是我并不喜欢这样,这样写如果时钟计数值不是数码管位数的整数倍时,数码管很容易出现有一个比较淡的重影,严重的话直接影响数码管的显示效果,我更习惯于用C语言的思路,或者说是状态机的想法进行位码的赋值。
FPGA Verilog 动态扫描部分代码如下:
`timescale 1ns / 1ps
module digital(input clk ,input rstn ,input [3:0] data1,input [3:0] data2,input [3:0] data3,input [3:0] data4,input [3:0] data5,input [3:0] data6, output reg [7:0] seg ,output reg [5:0] sel);//digital digital_u(
// .clk (clk ),
// .rstn (rstn ),
// .data1(data1),
// .data2(data2),
// .data3(data3),
// .data4(data4),
// .data5(data5),
// .data6(data6),
// .seg (seg ),
// .sel (sel )
//);reg [15:0]cn1;reg clk1k;always@(posedge clk or negedge rstn)beginif(!rstn)begincn1<=0;clk1k<=0;endelse if(cn1>=24999)beginclk1k<=!clk1k;cn1<=0;endelse cn1<=cn1+1;endreg [3:0] tub;reg [2:0] con;reg [5:0] sel_reg;always@(posedge clk1k or negedge rstn)beginif(!rstn)begintub <= 0;con <= 0;sel_reg <= 0;sel <= 6'b000000;endelse begincase(con)//浪费seg一个时钟0:begin tub<=data1;sel_reg<=6'b011111;con<=1;end1:begin tub<=data2;sel_reg<=6'b101111;con<=2;end2:begin tub<=data3;sel_reg<=6'b110111;con<=3;end3:begin tub<=data4;sel_reg<=6'b111011;con<=4;end4:begin tub<=data5;sel_reg<=6'b111101;con<=5;end5:begin tub<=data6;sel_reg<=6'b111110;con<=0;enddefault:con<=0;endcasesel <= sel_reg;//时钟对齐endendalways@(posedge clk1k or negedge rstn)if(!rstn)seg<=8'b1100_0000;else case(tub)0:seg<=8'b1100_0000;1:seg<=8'b1111_1001;2:seg<=8'b1010_0100;3:seg<=8'b1011_0000;4:seg<=8'b1001_1001;5:seg<=8'b1001_0010;6:seg<=8'b1000_0010;7:seg<=8'b1111_1000;8:seg<=8'b1000_0000;9:seg<=8'b1001_0000;// 10:seg<=8'b1000_1000;// 11:seg<=8'b1000_0011;// 12:seg<=8'b1100_0110;// 13:seg<=8'b1010_0001;// 14:seg<=8'b1000_0110;// 15:seg<=8'b1000_1110;default:seg<=8'b1100_0000;endcaseendmodule
基于FPGA的数码管动态扫描显示(含代码)相关推荐
- 实验三 基于FPGA的数码管动态扫描电路设计 quartus/数码管/电路模块设计
实验三 基于FPGA的数码管动态扫描电路设计 源文件的链接放在最后啦 实验目的: (1) 熟悉7段数码管显示译码电路的设计. (2) 掌握数码管显示原理及静态.动态扫描电路的设计. 实验任务: (1) ...
- 基于fpga的数码管动态扫描电路设计_【至简设计案例系列】基于FPGA的密码锁设计(altera版)...
秦红凯 明德扬FPGA科教 一.项目背景概述 随着生活质量的不断提高,加强家庭防盗安全变得非常重要,但传统机械锁的构造过于简单,很容易被打开,从而降低了安全性.数字密码锁因为它的保密性很高,安全系数也 ...
- 基于fpga的数码管动态扫描电路设计_FPGA是什么?里面有什么?能做什么?
本文由硬禾学堂创始人苏公雨首发于微信公众号电路设计技能. 今天在群里有工程师问我,怎么才叫学会了FPGA,怎么才叫学好了FPGA?我相信有很多朋友有类似的问题,因为在多数人的潜意识里,FPGA是非常高 ...
- 数字系统实验—第13周任务(3位数码管动态扫描显示实验含工程与优化)
数字系统实验--第13周任务 任务书 0.简介 1. 实验操作:1周 2. 完成并在线提交文档(100%) 日志(系统功能描述) 报告(目的 设计 实现 总结) 3. 三位数码管数据显示实验在线验收 ...
- c语言数码管流动显示一个数,51单片机数码管动态显示 - 数码管动态扫描显示01234567程序(三种方案)...
数码管动态扫描显示01234567程序二--51单片机动态显示共阳数码管01234567 原理图 c语言程序 程序如下: #include #define uint unsigned int #def ...
- 【Proteus仿真】8位数码管动态扫描显示变化数据
[Proteus仿真]8位数码管动态扫描显示变化数据 Proteus仿真 示例代码 /*-----------------------------------------------名称:8位数码管动 ...
- linux 动态扫描 数码管,数码管动态扫描显示01234567程序(三种方案) - 全文
数码管由于价格便宜,使用简单,在电器特别是家电领域(比如空调.热水器和冰箱等)得到了极为广泛的应用.在高校电子信息类专业单片机的教学过程中,数码管动态显示及实现方法是学生普遍反映较难掌握的内容.鉴于此 ...
- 【 FPGA 】控制数码管动态扫描显示的小实验
实验的功能很简单,就是让4个数码管每隔1s递增显示,使用动态扫描的方式来实现. 从这个功能的描述可以看出,我们首先要写一个计数器模块,来让计数值每隔1s增加1,暂时实现的是16进制的东西,从0到f,之 ...
- 四位共阳极数码管显示函数_初学者,求助!!设计一个4位LED数码管动态扫描显示电路,用...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; ...
最新文章
- 使用tomcat自带的连接池,报错
- leaflet的入门开发(一)
- CG CTF PWN When did you born?
- RabbitMQ管理(1)——多租户与权限
- ubuntu14.04 boost动态库找不到 libboost_system.so.1.58.0
- leetcode 554. 砖墙
- div模拟select/option解决兼容性问题及增加可拓展性
- java base64 显示不完整_如何解决CAD图纸显示不完整、图纸无效?一分钟教你,不允许错过...
- python生成器迭代器_python 生成器 迭代器
- iOS 在视图中调整按钮距离边框的位置
- 文字生成图片:输入描述语,人工智能自动帮你绘图!
- 使用Canvas绘制简单工程符号(续)
- Docker容器dockerfile简介
- 使用GLAD加载OpenGL的库
- 卷王指南,大学计算机专业,面临分专业,计科,软工,大数据,物联网,网络工程,该选什么?
- Ant Design Pro 企业级后台实战(73 个视频)
- 编译原理:算符优先分析实验
- 如何用ChatGPT高效完成工作
- 13.0高等数学五-幂级数的收敛域与和函数
- Winhex数据粘贴方法
热门文章
- STC15F104W无线收发模块,源程序注释很详细,PDF格式说明书,可以学习20个遥控器,3个按键一个学习按键还有按键开和按键关
- java selectionkey_Java SelectionKey.interestOps方法代碼示例
- 心理学:情商高的人必懂的三大沟通技巧
- 弹弹堂为什么我早上登陆显示加载服务器列表失败fail,弹弹堂登陆失败怎么办?...
- sublime4禁止检查更新
- #创新应用#打车小秘:随时打车毫无压力!
- LFI漏洞利用总结(文件包含)
- 基于java图书借阅管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
- 为什么数据集中的mask是彩色的?
- 高性能蓝光存储让你心中有‘数’,不浪费存储成本