静态数码管显示

学习芯片: EP4CE6F17C8
本次学习使用的为共阴极数码管,即用低电平点亮数码管,同样可知,共阳极数码管的阳极连在一起,即用高电平点亮数码管。

八段数码管示意图:
在这里插入图片描述
在这里插入图片描述
a,b,c,d,e,f,g,dg表示八段数码管时,a为最低位,dp为最高位
八段数码管用8位二进制表示,由于本次实验使用共阴极数码管,所以0表示亮,1表示灭,即数码管显示数字0我们可以用8'b1100_0000表示,数字F使用8'b1000_0111表示,同理可知,共阴极数码管和共阳极数码管互为对方的按位取反。

任务描述:
六个数码管同时间隔0.5s显示0-f。要求:使用一个顶层模块,调用计时器模块和数码管静态显示模块。在这里插入图片描述
模块原理图:
在这里插入图片描述
代码设计:

/*
2023.7.13
计时0.5s,计满输出高电平
*/module time_count(input       wire        clk         ,input       wire        rst_n       ,output      reg         flag);parameter MAX_NUM = 26'd24_999_999;//0.5sreg [24: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
endendmodule 
/*
2023.7.13
数码管显示
*/module seg_led_static(input       wire        clk         ,input       wire        rst_n       ,input       wire        flag        ,//计满0.5s后,输入的高电平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'b111111;endelse beginsel <= 6'b000000;//打开全部数码管end
endalways @(posedge clk or negedge rst_n) beginif(!rst_n) beginnum <= 4'h0;endelse if(flag) beginnum <= num + 1'h1;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;endcase end     
endendmodule
/*
2023.7.13
静态数码管显示,间隔0.5s输出0——F.
*/module top_seg_led_static(input       wire        clk         ,input       wire        rst_n       ,output      wire [5:0]  sel         ,output      wire [7:0]  seg
);parameter MAX_NUM = 26'd24_999_999;
wire flag_reg;time_count #(.MAX_NUM (MAX_NUM)) u_time_count(.clk    (clk),.rst_n  (rst_n),.flag   (flag_reg));seg_led_static u_seg_led_static(.   clk         (clk),.   rst_n       (rst_n),.   flag        (flag_reg),.   sel         (sel),.   seg         (seg));endmodule

测试文件:

`timescale 1ns/1ns
module top_seg_led_static_tb();reg        clk;reg        rst_n;wire [5:0]  sel;//位选信号wire [7:0]  seg;//段选信号parameter MAX_NUM = 9;//切换一次状态的周期数量parameter CYCLE = 20;//周期always #(CYCLE/2) clk = ~clk;initial beginclk = 1'b0;rst_n = 1'b0;//开始复位#(CYCLE);rst_n = 1'b1;//结束复位#((MAX_NUM + 1)*CYCLE*16);$stop;endtop_seg_led_static #(.MAX_NUM (MAX_NUM)) u_top_seg_led_static(.clk(clk),.rst_n(rst_n),.sel(sel),.seg(seg));endmodule

我们通过modelsim仿真结果如下:
在这里插入图片描述
运行结果:
在这里插入图片描述

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

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

相关文章

7、sentinel使用和源码分析

一、分布式系统遇到的问题 1、服务雪崩效应 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了问题&#xff0c;调用这个服务就会出现线程阻塞的情况&#xff0c;此时若有大量的请求涌入&#xff0c;就会出现多条线程阻塞等待&#x…

力扣 135. 分发糖果

题目来源&#xff1a;https://leetcode.cn/problems/candy/description/ C题解&#xff08;来源代码随想录&#xff09;&#xff1a; 先从左往右比较&#xff0c;右边孩子评分比左边高就多发1颗糖&#xff0c;否则就只发1颗&#xff1b;再从右往左比较&#xff0c;左边孩子评分…

MySQL——day4

单表查询练习 -- 1. 查询出部门编号为30的所有员工 mysql> select * from emp where deptno30; -- 2. 所有销售员的姓名、编号和部门编号。 mysql> select ename,empno,deptno from emp where job销售员; -- 3. 找出奖金高于工资的员工。 mysql> select * from em…

机械臂的雅克比矩阵推导

1. 线速度和角速度的递推通式推导 p i p i − 1 R i − 1 r i − 1 , i i − 1 \mathbf{p}_{i}\mathbf{p}_{i-1}\mathbf{R}_{i-1} \mathbf{r}_{i-1, i}^{i-1} pi​pi−1​Ri−1​ri−1,ii−1​ p i − 1 \mathbf{p}_{i-1} pi−1​是 { i − 1 } \{i-1\} {i−1}坐标系的原点的…

记一次ruoyi中使用Quartz实现定时任务

一、首先了解一下Quartz Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目&#xff0c;它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个&#xff0c;百个&#xff0c;甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标…

PostgreSQL学习总结(13)—— PostgreSQL 目录结构与配置文件 postgresql.conf 详解

环境搭建完成后&#xff0c;从环境变量里看它涉及的目录 export PGHOME/usr/local/pgsql/ export PGUSERpostgres export PGPORT5432 export PGDATA/app/pgsql/data export PGLOG/app/pgsql/log/postgres.log export PATH$PGHOME/bin:$PATH:$HOME/bin export LD_LIBRARY_PATH$…

UE4/5AI制作基础AI跳跃(适合新手)

目录 制作 添加逻辑 添加导航链接代理 结果 在上一章中&#xff0c;我们讲解了简单的AI跟随玩家&#xff0c;制作了一个基础的ai。 UE4/5AI制作基础AI&#xff08;适合新手入门&#xff0c;运用黑板&#xff0c;行为树&#xff0c;ai控制器&#xff0c;角色类&#xff0c;任…

C++ 程序设计:四大模式(工厂+装饰+策略+观察者)

1.前言 "工厂装饰策略观察者"是常见且常用的设计模式之一&#xff0c;但并不是指称"四大模式"的官方术语。 "四大模式"通常是指指令式面向对象编程中的四个基本概念&#xff1a;封装、继承、多态和抽象。这四个概念是面向对象编程的基石。 2.工…

Ubuntu 命令行编辑文件后如何保存退出

在 Ubuntu 命令行中编辑文件后&#xff0c;可以使用以下步骤保存并退出&#xff1a; 按下键盘上的 Ctrl 键和 X 键组合&#xff0c;以退出编辑模式。如果文件已更改&#xff0c;你将看到提示&#xff0c;询问是否保存更改。按下 Y 键来确认保存更改&#xff0c;或按下 N 键取消…

4、深入理解ribbon

一、负载均衡的两种方式 服务器端负载均衡 传统的方式前端发送请求会到我们的的nginx上去&#xff0c;nginx作为反向代理&#xff0c;然后路由给后端的服务器&#xff0c;由于负载均衡算法是nginx提供的&#xff0c;而nginx是部署到服务器端的&#xff0c;所以这种方式又被称为…

linux之Ubuntu系列(-)常见指令 重定向

Ubuntu 中文 版本 注意点 通过修改语言改成英文 在终端录入&#xff1a;export LANGen_US 在终端录入&#xff1a;xdg-user-dirs-gtk-update 单用户和多用户 命令格式 command [-选项] [参数] –查看命令的帮助 命令 --help man 命令 |操作键| 功能| |空格键|-显示手册的下…

合并修改缺陷分支的commit到master分支

合并修改缺陷分支的commit到master分支 当我们在修改缺陷的时候&#xff0c;我们会开辟一个分支&#xff0c;专门用来修改缺陷例如hotfix 当我们在hotfix上commit的代码&#xff0c;想要合并到master分支&#xff0c;这时我们要怎么处理呢 我们使用 git cherry-pick&#xff1…

OSS对象存储后端实现+Vue实现图片上传【基于若依管理系统开发】

文章目录 基本介绍术语介绍图片上传方式介绍普通上传用户直传应用服务器签名后直传 OSS对象存储后端实现maven配置文件配置类ServiceController 图片上传前端图片上传组件api页面使用组件组件效果 基本介绍 术语介绍 Bucket&#xff08;存储空间&#xff09;&#xff1a;用于…

【论文】基于GANs的图像文字擦除 ——2010.EraseNet: End-to-End Text Removal in the Wild(已开源)

pytorch官方代码&#xff1a;https://github.com/lcy0604/EraseNet 论文&#xff1a;2010.EraseNet: End-to-End Text Removal in the Wild 网盘提取码&#xff1a;0719 一、图片文字去除效果 图10 SCUT-EnsText 真实数据集的去除 第一列原图带文字、第二列为去除后的标签&a…

爆肝整理,Postman接口测试-全局变量/接口关联/加密/解密(超细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 全局变量和环境变…

[华为OD] 污染水域(多源BFS)

救命&#xff0c;因为实在找不到工作。。。 所以已经开始准备华为OD的笔试题了。。。 但是内心深处不是很想去OD呜呜呜 文章目录 BFS与多源BFS污染水域leetcode 1162:&#xff1a;地图分析leetcode 542&#xff1a;01矩阵leetcode 1020&#xff1a;飞地的数量 BFS与多源BFS BF…

AJAX:宏任务与微任务

异步任务划分为了 宏任务&#xff1a;由浏览器环境执行的异步代码 微任务&#xff1a;由 JS 引擎环境执行的异步代码 宏任务和微任务具体划分&#xff1a; 左边表格是宏任务&#xff0c;右边是微任务 事件循环模型 /*** 目标&#xff1a;阅读并回答打印的执行顺序 */ console…

Spark编程-键值对RDD(K,V)创建及常用操作

简述 SparkRDD中可以包含任何类型的对象&#xff0c;在实际应用中&#xff0c;“键值对”是一种比较常见的RDD元素类型&#xff0c;分组和聚合操作中经常会用到&#xff0c;尤其是groupByKey和reduceByKey。 Spark操作中经常会用到“键值对RDD”&#xff08;Pair RDD&a…

CSS样式

1.高度和宽度 .c1{height:300px;width:500px;}注意事项&#xff1a; 宽度支持百分比&#xff0c;高度不支持。行内标签&#xff1a;默认无效会计标签&#xff1a;默认有效&#xff08;霸道&#xff0c;右侧区域空白&#xff0c;也不给你用&#xff09; 2.块级和行内标签 块…

【Django学习】(十四)自定义action_router

之前我们的视图类可以继承GenericViewSet或者ModelViewSet&#xff0c;我们不用再自定义通用的action方法&#xff0c;但是有时候我们需要自定义action&#xff0c;我们该如何设计呢&#xff1f; 自定义action 1、手写视图逻辑 1.1、先在视图集里自定义action方法&#xff0…