Verilog实现二位十进制数字的显示

本文介绍了如何使用Verilog语言设计一个模块,该模块能够显示两位十进制数字,从00到59。通过初始化一个存储器来存储不同数字对应的7段码,并将输入的4位数据映射到相应的7段LED显示器上,实现了数字的显示。最终,通过编译、设置引脚和烧录,成功展示了数字的显示效果。
摘要由CSDN通过智能技术生成

Verilog实现二位十进制数字的显示

一、简介

我们这里使用Verilog来实现二位十进制数字的显示。
在这里插入图片描述

二、代码

/*
这个是显示数字的模块,用了两个数码管来显示00-5960个数字
*/



module number(seg_data_1,seg_data_2,seg_led_1,seg_led_2);
	input [3:0] seg_data_1;						
	//数码管需要显示0~9十个数字,所以最少需要4位输入做译码
	input [3:0] seg_data_2;						
	//小脚丫上第二个数码管
	output [8:0] seg_led_1;						
	//在小脚丫上控制一个数码管需要9个信号 MSB~LSB=DIG、DP、G、F、E、D、C、B、A
	output [8:0] seg_led_2;						
	//在小脚丫上第二个数码管的控制信号  MSB~LSB=DIG、DP、G、F、E、D、C、B、A
	reg [8:0] seg [9:0];                                            
	//定义了一个reg型的数组变量,相当于一个10*9的存储器,存储器一共有10个数,每个数有9位宽
	
	initial                                                         
	//在过程块中只能给reg型变量赋值,Verilog中有两种过程块always和initial
		begin
			seg[0] = 9'h3f;                                           
			//对存储器中第一个数赋值9'b00_0011_1111,相当于共阴极接地,DP点变低不亮,7段显示数字  0
	      seg[1] = 9'h06;                                           
			//7段显示数字  1
	      seg[2] = 9'h5b;                                           
			//7段显示数字  2
	      seg[3] = 9'h4f;                                           
			//7段显示数字  3
	      seg[4] = 9'h66;                                           
			//7段显示数字  4
	      seg[5] = 9'h6d;                                           
			//7段显示数字  5
	      seg[6] = 9'h7d;                                           
			//7段显示数字  6
	      seg[7] = 9'h07;                                           
			//7段显示数字  7
	      seg[8] = 9'h7f;                                           
			//7段显示数字  8
	      seg[9] = 9'h6f;                                           
			//7段显示数字  9
       end
		 
	assign seg_led_1 = seg[seg_data_1];                         
   assign seg_led_2 = seg[seg_data_2];
endmodule

之后编译:
在这里插入图片描述
以及设置引脚:
在这里插入图片描述
然后进行烧录:
在这里插入图片描述

三、效果展示

我们使用视频来展示这个实验的效果:
https://www.bilibili.com/video/BV1p44y1Y7t9?spm_id_from=333.999.0.0

Verilog实现二位十进制数字的显示

最后谢谢大家的阅读与支持了啦。

首先,需要了解七段数码管显示原理。七段数码管由7个LED组成,分别代表数字0-9中的不同线段。因此,通过控制这些LED的亮灭状态,可以实现显示不同数字的功能。 接下来,需要将输入的十进制数字转换为对应的七段数码管控制信号。这可以通过查表实现,也可以使用数电电路实现,例如BCD-7段译码器。 最后,需要将七段数码管控制信号通过一些驱动电路传递到七段数码管上,使其显示出对应的数字。这可以通过使用一个多路复用器和适当的选通信号来实现。 下面是一个简单的Verilog HDL代码示例,将一个4位二进制数显示在2个七段数码管上: ```verilog module seven_seg_display( input [3:0] num, output reg [6:0] segA, output reg [6:0] segB ); // 4位BCD码到7段数码管译码器 always @ (num) begin case (num) 4'b0000: {segA, segB} = 7'b1000000; // 0 4'b0001: {segA, segB} = 7'b1111001; // 1 4'b0010: {segA, segB} = 7'b0100100; // 2 4'b0011: {segA, segB} = 7'b0110000; // 3 4'b0100: {segA, segB} = 7'b0011001; // 4 4'b0101: {segA, segB} = 7'b0010010; // 5 4'b0110: {segA, segB} = 7'b0000010; // 6 4'b0111: {segA, segB} = 7'b1111000; // 7 4'b1000: {segA, segB} = 7'b0000000; // 8 4'b1001: {segA, segB} = 7'b0010000; // 9 default: {segA, segB} = 7'b1111111; // 显示空白 endcase end endmodule ``` 在这个例子中,输入数字通过4个输入端口num传递,输出通过2个七段数码管segA和segB实现。由于每个七段数码管有7个LED,因此需要使用7位输出端口。译码器的逻辑实现使用了Verilog HDL的case语句,将4位BCD码转换为对应的七段数码管控制信号。在这个例子中,我们只显示数字0-9,其他数字显示为空白。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhh江月

您的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值