数码管的静态显示
实验目标
控制六位数码管让其以000000、111111、222222一直到FFFFFF循环显示。每个字符显示0.5s后变化。
程序设计
![在这里插入图片描述](https://img-blog.csdnimg.cn/3878374456b24f298218268b0e5c3707.png)
seg_static模块
静态数码管驱动模块,产生数码管位选和段选信号 ![在这里插入图片描述](https://img-blog.csdnimg.cn/350c86bc675c426490b43310480a204a.png)
波形图绘制
cnt_wait:0.5s计数器 add_flag:当cnt_wait计数到最大值时,拉高一个电平,用来控制数码管字符的跳转。 num:每个数码管显示的字符,当检测到跳转的add_flag信号为高时,让各个数码管显示的字符加1。当加到4’hF时让其归0重新相加以此循环 sel:数码管位选信号,六个数码管都使用,所以一直为“111_111” seg:数码管段选信号,根据num的值使用case选择即可
代码编写
module seg_static
#(
parameter CNT_MAX = 25'd24_999_999
)
(
input clk,reset,
output reg[5:0] sel,
output reg[7:0] seg
);
reg[24:0] cnt;
reg[3:0] data;
reg cnt_flag;
// 计数器cnt
always @(posedge clk or negedge reset)
if(reset == 1'b0)
cnt |