静态数码管——FPGA

文章目录

  • 前言
  • 一、数码管
    • 1、数码管简介
    • 2、共阴极数码管or共阳极数码管
    • 3、共阴极与共阳极的真值表
  • 二、系统设计
    • 1、模块框图
    • 2、RTL视图
  • 三、源码
    • 1、seg_led_static模块
    • 2、time_count模块
    • 3、top_seg_led_static(顶层文件)
  • 四、效果
  • 五、总结
  • 六、参考资料


前言

环境:
1、Quartus18.0
2、vscode
3、板子型号:EP4CE6F17C8
要求:
六位数码管全选,每间隔0.5s轮流显示0~F。
静态与动态数码管:
静态数码管
在静态显示中,只考虑段选信号。在不同的时刻,各个位选信号保持不变,并根据真值表,选择要显示的数字或者字母。
动态数码管
在动态显示中,需要将位选信号考虑进来。在不同的时刻,各个位的位选信号随时改变,并根据真值表,选择显示不同的数字或者字母。


一、数码管

数码管是一种现代常用的数码显示器件,具有发光显示清晰、响应速度快、功耗低、体积小、寿命长、易于控制等诸多优点,在数显仪器仪表、数字控制设备等方面得到广泛应用。

1、数码管简介

数码管也称半导体数码管,它是将若干发光二极管按一定图形排列并封装在一起的一种数码显示器件。常见的数码管如下图所示为八段数码管:

  • 常见的数码管:
    在这里插入图片描述
  • 其它:

除了常用的八段数码管之外,较常见的还有“±1”数字管、“N”形管、“米”字管以及工业科研领域使用的 14 段管、16 段管、24 段管等。

在这里插入图片描述

不管是什么形式的数码管,其显示原理都是点亮内部的发光二极管来发光。

2、共阴极数码管or共阳极数码管

共阴极:公共端为阴极,加阳极数码管点亮。即当真值为1时,数码管点亮;真值为0时,数码管不亮。
共阳极:公共端为阳极,加阴极数码管点亮。即当真值为0时,数码管点亮;真值为1时,数码管不亮。
所以在使用到数码管时,我们需要去判断板子的数码管是共阴极还是共阳极。

在这里插入图片描述

3、共阴极与共阳极的真值表

共阴极真值表:
在这里插入图片描述
共阳极真值表:
在这里插入图片描述

二、系统设计

1、模块框图

在这里插入图片描述

2、RTL视图

在这里插入图片描述

三、源码

1、seg_led_static模块

module seg_led_static(input               clk,input               rst_n,input               flag,output reg [5:0]    sel,output reg [7:0]    seg
);reg [3:0] num;//保存要显示的数字always @(posedge clk or negedge rst_n)beginif(!rst_n)beginsel <= 6'b111_111;endelse beginsel <= 6'b000_000;end
endalways @(posedge clk or negedge rst_n)beginif(!rst_n)beginnum <= 4'h0;endelse if(flag)beginnum <= num + 1;endelse beginnum <= num;end
endalways @(posedge clk or negedge rst_n)beginif(!rst_n)beginseg <= 8'b0;endelse begincase (num)4'h0:    seg <= 8'b1100_0000;//匹配到后参考共阳极真值表4'h1:    seg <= 8'b1111_1001;4'h2:    seg <= 8'b1010_0100;4'h3:    seg <= 8'b1011_0000;4'h4:    seg <= 8'b1001_1001;4'h5:    seg <= 8'b1001_0010;4'h6:    seg <= 8'b1000_0010;4'h7:    seg <= 8'b1111_1000;4'h8:    seg <= 8'b1000_0000;4'h9:    seg <= 8'b1001_0000;4'ha:    seg <= 8'b1000_1000;4'hb:    seg <= 8'b1000_0011;4'hc:    seg <= 8'b1100_0110;4'hd:    seg <= 8'b1010_0001;4'he:    seg <= 8'b1000_0110;4'hf:     seg <= 8'b1000_1110;default : seg <= 8'b1100_0000;endcaseend
end
endmodule

2、time_count模块

module time_count (input   clk,input   rst_n,output  reg  flag
);parameter  MAX_NUM = 26'd24_999_999;reg [25:0] cnt;always @(posedge clk or negedge rst_n) beginif(!rst_n)begincnt <= 26'd0;flag <= 1'b0;endelse if(cnt == MAX_NUM)begincnt <= 26'd0;flag <= 1'b1;endelse begincnt <= cnt + 1'd1;flag <= 1'b0;end
end
endmodule

3、top_seg_led_static(顶层文件)

module top_seg_led_static(input   clk,input   rst_n,output   [5:0]  sel,output   [7:0]  seg
);parameter MAX_NUM = 26'd24_999_999;
wire flag_reg;time_count #(.MAX_NUM (MAX_NUM)) time_count_inst(.clk    (clk),.rst_n  (rst_n),.flag   (flag_reg)
);seg_led_static seg_led_static_inst(.clk    (clk),.rst_n  (rst_n),.flag   (flag_reg),.sel    (sel),.seg    (seg)
);
endmodule

四、效果

静态数码管


五、总结

文章介绍了基本的数码管,以及共阴、共阳极的真值表,数码管在FPGA的学习过程中是一个基础模块,需要我们掌握。

六、参考资料

1、数码管静态显示
2、原子官方

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/3902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字化时代,智能文件工具让办公升级

无论是在办公室还是在学校&#xff0c;文件管理是我们日常工作中不可或缺的一环。传统的文件整理方式可能需要花费大量的时间和精力&#xff0c;而且常常容易出现混乱和遗漏。然而&#xff0c;随着科技的不断进步&#xff0c;我们现在有幸生活在一个数字化时代&#xff0c;因此…

Netty粘包与拆包

文章首发地址 TCP是一个“流”协议。所谓流&#xff0c;就是没有界限的一长串二进制数据。拆包和粘包&#xff1a;TCP作为传输层协议&#xff0c;并不了解上层业务数据的具体含义&#xff0c;它会根据TCP缓冲区的实际情况进行数据包的划分&#xff0c;所以在业务上认为是一个完…

如何正确有效的学习java前端(合集)

大量阅读 我是一个劲头十足的读者。所以&#xff0c;我的第一个关于学习JavaScript的技巧就是关于阅读&#xff0c;这绝不是巧合。书籍和其他的资源(如文章)可以在很大程度上帮助你学习JavaScript。通过实践学习&#xff0c;书籍是我学习新学科最喜欢的方式。在学习JavaScript的…

测试用例(2)

项目管理工具 主要用tapd&#xff0c;jira少用 acp 敏捷项目管理证书 task:故事&#xff0c;一个故事有开始也有结束&#xff0c;那么在项目管理里面&#xff0c;会把每个任务按照一个task来看&#xff0c;那么这个task也可以叫story&#xff0c;具体指的就是任务有开始有结…

ChatGPT火热之下的冷思考

作为一款基于人工智能的自然语言处理(NLP)​​聊天机器人​​程序&#xff0c;ChatGPT通过大量来自互联网的文本进行训练&#xff0c;并使用深度学习和机器学习算法来理解用户的问题并提供准确的回答。并且&#xff0c;ChatGPT还内置了情感分析、关键字提取和实体识别等功能&am…

Beyond Compare 代码比较工具

一、下载 官网下载地址&#xff1a; https://www.scootersoftware.com/download.php 选择 Windows 系统&#xff0c;简体中文版本&#xff0c;点击下载。 下载完成 二、安装 步骤1&#xff1a;双击安装包 步骤2&#xff1a;进入安装向导&#xff0c;点击下一步 步骤3&a…

Linux的scp命令使用详解

scp 是 Linux 中用来复制文件的命令。它是基于 SSH 协议的&#xff0c;可以在本地主机和远程主机之间复制文件。命令的语法是&#xff1a;scp [options] [source_file] [destination]。 常用的[options]选项包括-r&#xff08;递归复制目录&#xff09;和-P&#xff08;指定连…

Ubuntu 20 开机免密root登录

首先如果没有设置root密码&#xff0c;先设置一下root用户的密码&#xff1a;sudo passwd root 一条命令打开所有需要修改的文档&#xff1a; sub /root/.profile /etc/pam.d/gdm-autologin /etc/pam.d/gdm-password /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf /etc/…

在LLM的支持下使游戏NPC具有记忆化的方法

问题 使用GPT这样的LLM去处理游戏中的NPC和玩家的对话是个很好的点子&#xff0c;那么如何处理记忆化的问题呢。 因为LLM的输入tokens是有限制的&#xff0c;所以伴随着问题的记忆context是有窗口大小限制的&#xff0c;将所有的记忆输入LLM并不现实。 所以这里看到了stanfo…

Zookeeper

作为分布式中间件&#xff0c;zookeeper有以下几个重要功能 服务注册服务监听 &#xff1a;观察者模式&#xff0c;有服务上线或下线可以感知&#xff0c;并进行响应回调处理服务拉取配置中心CP特性数据存储方式为标准的文件结构 安装zk需要java环境&#xff0c;可参考 linux…

面试中关于自动化测试的认识

目录 一、什么是自动化测试&#xff0c;自动化测试的优势是什么&#xff1f; 二、什么样的项目比较适合做自动化测试&#xff0c;什么样的不适合做自动化测试&#xff1f; 三、在制定自动化测试计划的时候一般要考虑哪些点&#xff1f; 四、编写自动化脚本时的一些规范&…

怎么给pdf文件加密?pdf文档如何加密

在数字化时代&#xff0c;保护个人和机密信息的重要性越来越受到关注。PDF&#xff08;Portable Document Format&#xff09;是一种广泛使用的文件格式&#xff0c;用于共享和存储各种类型的文档。然而&#xff0c;由于其易于编辑和复制的特性&#xff0c;保护PDF文件中的敏感…

xss跨站脚本攻击总结

XSS(跨站脚本攻击) 跨站脚本攻击&#xff08;Cross Site Scripting&#xff09;&#xff0c;为了不和层叠样式表&#xff08;Cascading Style Sheets &#xff09;CSS的缩写混淆&#xff0c;故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码&#xff0c;当…

css基本样式的使用

1、高度和宽度 .c1{height: 300px;width: 500px; }注意事项&#xff1a; 宽度&#xff0c;支持百分比行内标签&#xff0c;默认无效块级标签&#xff0c;默认有效&#xff08;即使右侧空白&#xff0c;也不给你占用&#xff09; 块级和行内标签 css样式 标签&#xff1a; di…

我在VScode学Java(Java方法method)

​ 我的个人博客主页&#xff1a;如果’真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习---->可以参考我的这篇博客&#xff1a;《我在VScode学Java》 关于Java数组学习、JVM中的堆和栈—>可以参考我的这篇文章我在VScode学Java(Java一维数组、二维数组、JVM中的堆…

Android JNI线程的同步 (十三)

🔥 Android Studio 版本 🔥 🔥 了解线程同步的两个变量 🔥 pthread_mutex_t 互斥锁 线程的互斥: 目前存在两个线程 , 线程A和线程B, 只允许只有一个资源对临界资源进程操作 (大概意思就是 : A线程 进入操作临界资源的时候 , 那么 B线程 就要进行等待 . 等到 A线程…

Spark(22):SparkStreaming之DStream创建

目录 0. 相关文章链接 1. RDD队列 1.1. 用法及说明 1.2. 案例实操 2. 自定义数据源 2.1. 用法和说明 2.2. 案例实操 3. Kafka数据源 3.1. 版本选型 3.2. Kafka 0-8 Receiver 模式&#xff08;当前3.x版本不适用&#xff09; 3.3. Kafka 0-8 Direct 模式&#xff08;…

离线安装docker

目录 1、下载docker 安装包 2、上传docker 到服务器目录/opt/ 3、解压docker-19.03.9.tgz 4、解压的docker文件夹全部移动至/usr/bin目录 5、将docker注册为系统服务 6、重启生效 6.1、重新加载配置文件 6.2、启动Docker服务 6.3、查看启动状态 6.4、 设置docker为开…

CS 144 Lab Two -- TCPReceiver

CS 144 Lab Two -- TCPReceiver TCPReceiver 简述索引转换TCPReceiver 实现 测试 对应课程视频: 【计算机网络】 斯坦福大学CS144课程 Lab Two 对应的PDF: Lab Checkpoint 2: the TCP receiver TCPReceiver 简述 在 Lab2&#xff0c;我们将实现一个 TCPReceiver&#xff0c;用…

如何在Ubuntu上安装OpenneBula

OpenNebula是一个开源云计算平台&#xff0c;允许我们在完全虚拟化云中组合和管理VMware和KVM虚拟机 第1步&#xff1a;安装MariaDB数据库服务器 OpenNebula还需要一个数据库服务器来存储其内容。 安装MariaDB&#xff1a; 1 2 sudo apt update sudo apt install mariadb-s…