数码管显示日期(FPGA)

该博客介绍了如何使用FPGA驱动数码管显示当前日期,包括数码管内部原理、硬件设计、系统设计以及代码实现。重点讲解了1KHZ分频、位选和段选模块的设计,以确保数码管稳定显示日期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:以下是本篇文章正文内容,下面案例可供参考


一、实验要求

  1.驱动6个数码管显示当天日期(230327)

二、实验原理

1.数码管内部原理图

  数码管内部电路如图 1所示,从该图可以看出,一位数码管的引脚是10个,其中7个引脚对应连接到组成数码管中间“8”字型的led,Dp引脚连接到数码管的小数点显示led(dp)。最后还有两个公共端,生产商为了封装统一,单个数码管都封装成10个引脚,其中8和3两个公共端引脚(图中为com)是连接在一起的。公共端又可分为共阳极共阴极,图 1(b)为共阴极内部原理图,图 1(c)为共阳极内部原理图。

图 1  数码管内部原理图

图 1 数码管内部原理图

  对共阴极数码管来说,其8个发光二极管的阴极在数码管内部全部连接在一起,所以称“共阴”,而阳极独立。对共阳极数码管来说,其8个发光二极管的阳极在数码管内部全部连接在一起,所以称“共阳”,而阴极独立。以共阳极数码管为例,当我们想让数码管显示数字“8”,可以给a、b、c…g七个引脚送低电平,数码管就显示“8”,显示数字“1”,就给b、c引脚低电平,其余引脚(除公共端)给高电平,数码管就显示“1”。

2.硬件原理图

  我们的开拓者FPGA开发板上有6位共阳数码管,其原理图如图 2 所示。在这里我们需要注意的是,为了增加FPGA输出信号的驱动能力,我们使用PNP型三极管驱动数码管的位选段,所以给三极管基极提供低电平时,位选信号为高电平

图 2 硬件原理图

图 2 硬件原理图

4.系统设计

  需要一个静态数码管显示模块在数码管上显示数据,其次需要一个计时模块每当计时到0.5ms(1KHZ)时改变数码管显示的数值。由此画出系统的功能框图如下所示:

图 4 系统的功能框图

图 3 系统的功能框图

  程序中各模块端口及信号连接如图 5 所示

图 5 模块端口及信号连接

图 4 模块端口及信号连接

二、代码

1.顶层模块如下所示:

module seven_tube(
	input						sys_clk,					//系统时钟:50MHZ
	input						sys_rst_n,				//系统复位:低电平有效
	
	output		[5:0]		sel,						//数码管位选信号
	output		[7:0]		seg						//数码管段选信号
);	

	wire						clk_1khz;				//定义中间连线信号


	freq freq_dut(
		.sys_clk			(sys_clk),				
		.sys_rst_n			(sys_rst_n),			
		
		.clk_1khz			(clk_1khz)		
	);
	
	seg_ctrl seg_ctrl_dut(
		.clk_1khz			(clk_1khz),			
		.sys_rst_n			(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值