7段数码管动态扫描c语言,七段数码管的动态扫描显示.doc

七段数码管的动态扫描显示

实验四 七段数码管的动态扫描显示

动态扫描显示与视觉暂留

设计计数时钟

设计一个分频器,对50MHz分频输出到计数器,让计数器以较慢的速度递增。

module int_div(clk,div_out);

input clk;

output reg div_out;

reg [31:0] clk_div;

parameter CLK_FREQ = 'D50_000_000;//系统时钟50MHz

parameter DCLK_FREQ = 'D10;//输出频率10/2Hz

always@(posedge clk)

begin

if(clk_div < (CLK_FREQ/DCLK_FREQ))

clk_div <= clk_div + 1;

else

begin

clk_div <= 0;

div_out <= ~div_out;

end

end

endmodule

2.调用宏功能模块设计计数器

见讲义。(自己设计BCD码计数器)

3.数码管扫描显示程序设计(不含小数点)

module segmain(clk,reset_n,datain,seg_data, seg_com);

input clk;

input reset_n;

input [15:0] datain;

output [7:0] seg_data;

output [3:0] seg_com;

reg [3:0] seg_com;

reg [7:0] seg_data;

reg [3:0] bcd_led;

reg [26:0] count;

always@(posedge clk)

begin

if (!reset_n)count <= 0;

elsecount <= count + 1;

end

always@(count[26:25] or datain)

begin

case(count[26:25])

2'b00:

begin

bcd_led = datain[3:0];

seg_com = 4'b1110;//

end

2'b01:

begin

bcd_led = datain[7:4];

seg_com = 4'b1101;//

end

2'b10:

begin

bcd_led = datain[11:8];

seg_com = 4'b1011;//

end

2'b11:

begin

bcd_led = datain[15:12];

seg_com = 4'b0111;//

end

endcase

end

always@(seg_com or bcd_led)

begin

case(bcd_led)

4'h0:seg_data = 8'hc0;//0

4'h1:seg_data = 8'hf9;//1

4'h2:seg_data = 8'ha4;//2

4'h3:seg_data = 8'hb0;//3

4'h4:seg_data = 8'h99;//4

4'h5:seg_data = 8'h92;//5

4'h6:seg_data = 8'h82;//6

4'h7:seg_data = 8'hf8;//7

4'h8:seg_data = 8'h80;//8

4'h9:seg_data = 8'h90;//9

4'ha:seg_data = 8'h88;//a

4'hb:seg_data = 8'h83;//b

4'hc:seg_data = 8'hc6;//c

4'hd:seg_data = 8'ha1;//d

4'he:seg_data = 8'h86;//e

4'hf:seg_data = 8'h8e;//f

default:seg_data = 8'h80;//0

endcase

end

endmodule

4.设置芯片和管脚。设置芯片型号、配置芯片型号等内容。

参照以下文件配置芯片管脚,并运行该tcl 脚本。

#Setup.tcl ------ Setup pin setting for EP3C25-V5 main board

set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED"

set_global_assignment -name ENABLE_INIT_DONE_OUTPUT OFF

set_locatio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值