数码管的静态显示(二)

1.原理

要按照上图的顺序传递位选和段选的数据。

因为q0是最高位,共阳极数码管结构是dp....a,所以应该先传入低位a,而a在上图中的8段2进制编码中是seg[7],所以段选信号的顺序是seg[0],...seg[7]。

因为输出信号是两个时钟,所以要进行分频,因为不能太高。因为是4分频,所以计数的最大值是3。

(FPGA使用的晶振太高了, 74hc595 在50MHz的频率下没法正常工作, 所以选一个较为低一点的时钟频率作为触发)

为了让时钟信号能正确采集到数据,所以时钟信号的上升沿应该对准数据的稳定状态,也就是数据的中间。

2.代码

2.1 hc595_ctrl.v

module hc595_ctrl(input wire			sys_clk		,input wire			sys_rst_n		,input wire [5:0]	sel			,input wire [7:0]	seg			,output reg 			ds			,output reg 			shcp		,output reg 			stcp		,output wire 		oe		
);wire [13:0] data;
reg [1:0] cnt;
reg [3:0] cnt_bit;assign oe=1'b0;
assign data={seg[0],seg[1],seg[2],seg[3],seg[4],seg[5],seg[6],seg[7],sel[5],sel[4],sel[3],sel[2],sel[1],sel[0]};always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)cnt<=2'd0;else if(cnt==2'd3)cnt<=2'd0;elsecnt<=cnt+1'b1;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)cnt_bit<=4'd0;else if((cnt==2'd3)&&(cnt_bit==4'd13))cnt_bit<=4'd0;else if(cnt==2'd3)cnt_bit<=cnt_bit+1'b1;elsecnt_bit<=cnt_bit;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)ds<=1'd0;else if(cnt==2'd0)ds<=data[cnt_bit];elseds<=ds;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)shcp<=1'b0;else if(cnt==2'd2)shcp<=1'b1;else if(cnt==2'd0)shcp<=1'b0;elseshcp<=shcp;always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n==1'b0)stcp<=1'b0;else if((cnt==2'b0)&&(cnt_bit<=4'b0))stcp<=1'b1;else if((cnt==2'd2)&&(cnt_bit==4'b0))stcp<=1'b0;elsestcp<=stcp;endmodule

2.2 seg_595_static.v

module seg_595_static
(input wire 		sys_clk			,input wire 		sys_rst_n		,output reg 		ds				,output reg 		shcp			,output reg		stcp			,output reg 		oe		
);wire [5:0]sel;
wire [7:0]seg;seg_static #(.CNT_MAX  (25'd24)
)
seg_static_inst(.sys_clk	(sys_clk)		,.sys_rst_n	(sys_rst_n)	,.sel		(sel)		,.seg		(seg)		
);hc595_ctrl hc595_ctrl_inst(.sys_clk	(sys_clk	)	,.sys_rst_n	(sys_rst_n	),.sel		(sel		)	,.seg		(seg		)	,.ds			(ds			),.shcp		(shcp		),.stcp		(stcp		),.oe		    (oe		   )
);endmodule

2.3 tb_seg_595_ctrl.v

`timescale 1ns/1ns
module tb_seg_595_ctrl();reg sys_clk;
reg sys_rst_n;wire ds	  ;
wire shcp  ;
wire stcp  ;
wire oe	  ;
initialbeginsys_clk=1'b1;sys_rst_n<=1'b0;#20sys_rst_n<=1'b1;endalways#10 sys_clk=~sys_clk;seg_595_static seg_595_static_inst
(.sys_clk	(sys_clk	)		,.sys_rst_n	(sys_rst_n)	,.ds			(ds			)	,.shcp		(shcp		)	,.stcp		(stcp		)	,.oe		    (oe		  )
);endmodule

2.4 tb_seg_595_static.v

`timescale 1ns/1ns
module tb_seg_595_static();reg sys_clk;
reg sys_rst_n;initialbeginsys_clk=1'b1;sys_rst_n<=1'b0;#20sys_rst_n<=1'b1;endalways#10 sys_clk=~sys_clk;seg_static #(.CNT_MAX  (25'd24)
)
seg_static_inst(.sys_clk	(sys_clk)		,.sys_rst_n	(sys_rst_n)	,.sel		(sel)		,.seg		(seg)		
);endmodule

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

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

相关文章

Spring boot 集成netty实现websocket通信

一、netty介绍 Netty 是一个基于NIO的客户、服务器端的编程框架&#xff0c;使用Netty 可以确保你快速和简单的开发出一个网络应用&#xff0c;例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程&#xff0c;例如&#xff1a;基于TCP和U…

如何从 Mac 电脑外部硬盘恢复删除的数据文件

本文向您介绍一些恢复 Mac 外置硬盘数据的快速简便的方法。 Mac 的内部存储空间通常不足以存储所有数据。因此&#xff0c;许多用户通过外部驱动器扩展存储或创建数据备份。然而&#xff0c;与几乎所有其他设备一样&#xff0c;从外部硬盘驱动器丢失有价值的数据并不罕见。由于…

STM32第七节:GPIO输入——按键检测(包含带参宏)

目录 前言 STM32第七节&#xff1a;GPIO输入——按键检测&#xff08;包含带参宏&#xff09; 带参宏 代码替换展示 定义带参宏 GPIO输入——按键检测 硬件部分 端口输入数据寄存器&#xff08;GPIOx_IDR&#xff09; 编写程序 配置以及编写bsp_key文件 main函数编程…

一文扫荡,12个可视化图表js库,收藏备用。

一、什么是可视化图表 可视化图表是通过图形化的方式将数据可视化展示出来的一种方式。它能够将复杂的数据以直观、易懂的形式呈现给用户&#xff0c;帮助用户更好地理解和分析数据。 可视化图表可以包括各种类型的图表&#xff0c;如线形图、柱状图、饼图、散点图、雷达图等。…

如何使用vue定义组件之——父组件调用子组件数据

首先&#xff0c;准备父子容器&#xff1a; <div class"container"><my-father></my-father><my-father></my-father><my-father></my-father><!-- 此处无法调用子组件&#xff0c;子组件必须依赖于父组件进行展示 --&…

【数据结构】双向链表及LRU缓存的实现

目录 前言 1. 在原有的自定义链表类 Linked 的基础上&#xff0c;添加新的 “节点添加”方法 addNode(Node node) 测试用例 测试结果 2. 在自定义链表类的基础上&#xff0c;使用双重循环“强力” 判断两个节点是否发生相交 测试用例 测试结果 3. 在自定义链表类的基础上…

Github 2024-03-14 Go开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-14统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目9非开发语言项目1TypeScript项目1Ollama: 本地大型语言模型设置与运行 创建周期:248 天开发语言:Go协议类型:MIT LicenseStar数量:42…

【JVM】什么是运行时数据区?

什么是运行时数据区&#xff1f; 运行时数据区指的是JVM所管理的内存区域&#xff0c;其中分成两大类&#xff1a; 线程共享 – 方法区、堆 方法区&#xff1a;存放每一个加载的类的元信息、运行时常量池、字符串常量池。 堆&#xff1a;存放创建出来的对象。 线程不共享 – …

OpenResty使用Lua大全(三)OpenResty使用Json模块解析json

文章目录 系列文章索引一、使用Json模块1、引入cjson模块2、table转json字符串3、json字符串转table4、异常处理&#xff08;1&#xff09;异常复现&#xff08;2&#xff09;使用pcall命令&#xff08;3&#xff09;cjson.safe 模块 5、空table返回object还是array 系列文章索…

Python算法(列表排序)

一。冒泡排序&#xff1a; 列表每两个相邻的数&#xff0c;如果前面比后面大&#xff0c;则交换这两个数 一趟排序完成后&#xff0c;则无序区减少一个数&#xff0c;有序区增加一个数 时间复杂度&#xff1a;O(n*n) 优化后&#xff1a;已经排序好后立马停止&#xff0c;加快…

第十五届蓝桥杯(Web 应用开发)模拟赛 3 期-大学组(被题目描述坑惨了)

目录 1.创意广告牌 2.原子化css 3.神秘咒语 4.朋友圈 5.美食蛋白揭秘 6.营业状态变更 7.小说阅读器 8.冰岛人 9.这是一个”浏览器“ 10.趣味加密解密 总结 1.创意广告牌 这个题目不多说了&#xff0c;只要知道这些css应该都能写出来&#xff0c;不会的平时多查查文…

今天我们来学习一下关于MySQL数据库

目录 前言: 1.MySQL定义&#xff1a; 1.1基础概念&#xff1a; 1.1.1数据库&#xff08;Database&#xff09;&#xff1a; 1.1.2表&#xff08;Table&#xff09;&#xff1a; 1.1.3记录&#xff08;Record&#xff09;与字段&#xff08;Field&#xff09;&#xff1a; …

提升运营效率,探索运营中台架构的力量

随着数字化转型的加速推进&#xff0c;企业需要更高效地管理和运营各项业务&#xff0c;而运营中台架构作为一种新型的业务架构设计理念&#xff0c;正在逐渐受到关注和应用。本篇博客将深入探讨运营中台架构的概念、优势和实践&#xff0c;帮助企业了解如何通过构建运营中台实…

【智能硬件、大模型、LLM 智能音箱】MBO:基于树莓派、ChatGPT 的桌面机器人

MAKER:David Packman/译:趣无尽(转载请注明出处) 这是国外 Maker David Packman 制作的基于树莓派机器人 MBO,该机器人的外观设计灵感来自动漫 Adventure Time 中的机器人 MBO。它具有强大的交互功能,可实现脱机唤醒词检测、调用 ChatGPT 3.5 进行聊天、机器视觉对图像进…

Excel 性能:提高计算性能

计算速度的重要性 计算速度慢会影响生产力并增加用户错误。随着响应时间的延长&#xff0c;用户的工作效率和专注于任务的能力会下降。 Excel 有两种主要的计算模式&#xff0c;可让您控制何时进行计算&#xff1a; 自动计算- 当您进行更改时&#xff0c;公式会自动重新计算。…

自适应窗口图片轮播HTML代码

自适应窗口图片轮播HTML代码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 代码下载地址 自适应窗口图片轮播HTML代码

王庆:当下股市过于悲观,A股、港股基本完成补跌和普跌过程,逆向布局时机已到

核心观点&#xff1a; 1、房地产对中国经济增长拖累最严重的时期正在过去...密切关注真正拐点的出现。 2、当前资本市场从价格表现上来讲&#xff0c;表现的远远超过了基本面所决定的悲观程度。 由于当前资本市场过于悲观&#xff0c;那么反过来就是孕育着机会。 3、我们判…

Oracle 主从切换脚本

一、 切换前预检查 1. dg_precheck_main_v1.4.sh #!/bin/bash#********************************************************************************** # Author: Hehuyi_In # Date: 2022年06月16日 # FileName: dg_precheck_main_v1.4.sh # # For sys user, execute the sc…

Linux中udp服务端,客户端的开发

UDP通信相关函数&#xff1a; ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); 函数说明&#xff1a;接收信息 参数说明&#xff1a;sockfd:套接字buf:要接收的缓冲区len:缓冲区…

React Hooks 那些事儿

翻了波之前写的文章还有笔记&#xff0c;发现关于前端的文章并不多&#xff08;好歹也划水做过点前端开发&#xff09;。巧了&#xff0c;最近没什么好话题可写&#xff0c;做下 React Hooks 学习笔记吧。 Effect Hook 不得不说 Hook 的出现降低了我们在 React 中处理副作用&…