📄 counterofmodulus10withled.txt
字号:
十进制计数器动态LED数码管显示(Verilog HDL)
四个LED动态扫描的数码管,分时轮流工作,虽然每次只有一个LED显示,但是由于
人的视觉暂留现象使得我们仍会感觉所有的LED都在同时显示。
芯片用的是XILINX xc95108
F=12M
module dled(seg,sl,clock);
output [7:0] seg;
output [3:0] sl;
input clock;
reg[7:0]seg_reg;
reg[3:0]sl_reg;
reg[3:0]disp_dat;
reg[39:0]count;
//count[37:34] //qian wei
//count[33:30] //bai wei
//count[29:26] //shi wei
//count[25:22] //ge wei
always@(posedge clock)
begin
count=count+1;
if(count[25:22]>4'h9) //ge wei
begin
count[25:22]=0;
count[29:26]=count[29:26]+1;
end
if(count[29:26]>4'h9) //shi wei
begin
count[29:26]=0;
count[33:30]=count[33:30]+1;
end
if(count[33:30]>4'h9) //bai wei
begin
count[33:30]=0;
count[37:34]=count[37:34]+1;
end
if(count[37:34]>4'h9) //qian wei
count[37:34]=0;
end
always@(count[14:13]) //LED的刷新频率
begin
case(count[14:13])
// 计数器的快慢
2'h0: disp_dat = count[37:34]; //qian wei
2'h1: disp_dat = count[33:30]; //bai wei
2'h2: disp_dat = count[29:26]; //shi wei
2'h3: disp_dat = count[25:22]; //ge wei
endcase
case(count[14:13])
2'h0:sl_reg=4'b1110; //qian wei
2'h1:sl_reg=4'b1101; //bai wei
2'h2:sl_reg=4'b1011; //shi wei
2'h3:sl_reg=4'b0111; //ge wei
endcase
end
always@(disp_dat)
begin
case(disp_dat)
4'h0:seg_reg=8'hc0; //display 0
4'h1:seg_reg=8'hf9; //display 1
4'h2:seg_reg=8'ha4; //display 2
4'h3:seg_reg=8'hb0; //display 3
4'h4:seg_reg=8'h99; //display 4
4'h5:seg_reg=8'h92; //display 5
4'h6:seg_reg=8'h82; //display 6
4'h7:seg_reg=8'hf8; //display 7
4'h8:seg_reg=8'h80; //display 8
4'h9:seg_reg=8'h90; //display 9
4'ha:seg_reg=8'h88; //display a
4'hb:seg_reg=8'h83; //display b
4'hc:seg_reg=8'hc6; //display c
4'hd:seg_reg=8'ha1; //display d
4'he:seg_reg=8'h86; //display e
4'hf:seg_reg=8'h8e; //display f
endcase
end
assign seg=seg_reg;
assign sl=sl_reg;
endmodule
--
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -