数码管
- 数码管显示部分的电路如图所示。我们使用的是一个四位带小数点的七段共阳数码管,当我们相应的输出脚为低电平时,该段位的LED点亮。位选位也是低电平选通。
模块实现
//数码管显示
module digitalTube(
input Clk,//时钟50M
input Rst_n,//重置
input En,//使能
input [15:0] data,//要显示的数据
output [3:0] sel,//数码管位选
output reg[7:0]seg//数码管段选
);
reg [14:0]divider_cnt;//分频计数器(25000-1)50M/25000/2=1000
reg clk_1K;//分频时钟
reg [3:0]data_tmp;//数据缓存
reg [3:0]sel_r;//数码管循环位选
// 分频计数器计数模块
always@(posedge Clk or posedge Rst_n)
if(Rst_n)
divider_cnt <= 15'd0;
else if(!En)
divider_cnt <= 15'd0;
else if(divider_cnt == 24999)
divider_cnt <= 15'd0;
else
divider_cnt <= divider_cnt