BCD 码—七段数码管显示译码器的综合仿真及下载

更新时间:2023-10-03 20:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

暑期FPGA培训实验报告

————BCD码—七段数码管显示译码器

一、实验设计

利用软件QuartusII,Modelsim及DE0开发板完成译码器的仿真及下载,其中使用VerilogHDL硬件描述语言完成其源代码。 译码器

将一位BCD码0—9用DE0开发板的数码管显示。

二、实验原理

发光二极管(LED)由特殊的半导体材料砷化镓、 磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。 分段式显示器(LED数码管)由7条线段围成8型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。只要按规律控制各发光段的亮、灭,就可以显示各种字形或符号。 图4 - 17(a)是共阴式LED数码管的原理图,图4-17(b)是其表示符号。使用时,公共阴极接地,7个阳极a~g由相应的BCD七段译码器来驱动(控制),如图4 - 17(c)所示。(摘自百度文库)

(图片来自百度)

BCD码—七段数码管显示译码器是将一位BCD码(输入用图中A,B,C,D)翻译为数码管上对应显示的十进制数字。例如:输入为4’b0000时,则显示为g号二极管灭,其他为亮,则可显示为数字0。其实BCD码—七段数码管显示译码器即为4-7线译码器,只是将它显示在数码管上而已。 其(数码管为共阴极)真值表如下图:

(图片来自百度)

*由于DE0开发板的数码管为共阳极则需要将上表的真值取反。

三、源代码及testbench

decode4_7.v

module decode4_7(decodeout,indec);

output[6:0] decodeout;

input[3:0] indec;

reg[6:0] decodeout;

always @(indec)

begin

case(indec) //用case语句进行译码

4'd0:decodeout=7'b0000001; //由于为共阳极数码管则真值如此

4'd1:decodeout=7'b1001111;

4'd2:decodeout=7'b0010010;

4'd3:decodeout=7'b0000110;

4'd4:decodeout=7'b1001100;

4'd5:decodeout=7'b0100100;

4'd6:decodeout=7'b0100000;

4'd7:decodeout=7'b0001111;

4'd8:decodeout=7'b0000000;

4'd9:decodeout=7'b0000100;

default: decodeout=7'bx;

endcase

end

Endmodule

decode4_7_testbench.v

module decode4_7_testbench; reg[3:0] indec;

wire[6:0] decodeout; la U0(decodeout,indec); initial begin indec=4'b0; #10 $stop; end always begin

#1 indec=indec+1'b1; end

endmodule

四、实验操作

1、打开QuartusII建立工程,配置实验板为

CycloneIII .EP3C16F484C6 ,设置第三方仿真软件为Modelsim-Altera。

2、建立新文件File->New->Verilog HDL File,输入源代码保存文件为

decode4_7.v

*红方框中须一样

3、重复2建立新文件,输入testbench代码,并保存为decode4_7_testbench.v

*红方框中须一样

4、打开Assignment->Setting接着如图流程:

点击Add->OK.

4、编译

5、仿真

5、下载,将引脚分配好,将DE0板利用USB线接在PC

上,操作如图:

输出引脚分配情况

分配好之后在再进行一次编译,接着点击programmer

操作结束

五、实验小结

在本次实验中,我个人感觉操作的规范化比较重要,如果操作不规范不仅使操作步骤繁琐,也有可能带来错误。其次是理解代码含义,了解BCD-七段数码管显示译码器的作用,清楚共阴极,共阳极的差别。我想本次实验掌握这些后应该可以比较顺利完成任务。

本文来源:https://www.bwwdw.com/article/17wd.html

Top