现代数字系统实验(7)

2019-03-04 12:52

27 28

实验3:七段数码管显示 1.显示简单字符

七段数码管显示电路如下图所示:

图中包含一个七段解码器模块,c2~c0是解码器的3个输入,当输入值不同时,输出不同的字符。如表中所示,当输入值为100~111时,输出空格,即数码管全暗。七段数码管的不同段位用数字0~6表示,注意七段数码管是共阳极的,即各管段输入低电平时,数码管亮;否则数码管暗。

具体实验步骤如下:

第1步:新建一个Quartus项目。 第2步:新建一个VHDL文件,实现上述七段解码器。具体代码如下: library ieee;

use ieee.std_logic_1164.all; entity char_7seg is

29

port(

c:in std_logic_vector(2 downto 0); hex:out std_logic_vector(6 downto 0)); end char_7seg;

architecture behave_char_7seg of char_7seg is begin

with c(2 downto 0) select

hex<= \ \ \ \ \ end behave_char_7seg;

保存VHDL文件,并命名为char_7seg.vhd。

第3步:语法检查,通过后,进行引脚分配,分配表如下:

信DE2上的号 器件 C[2SW2~S..0] W0 hexHEX0[6.[6..0] .0]

第4步:编译项目,完成后下载到FPGA中,并验证其功能。

30

2.显示0~9数字

在完成简单字符显示电路之后,设计一个用于显示0~9数字的七段数码管电路。电路图如下图所示,c3~c0是七段数码器的输入,当输入0000~1001时,则输出0~9,如表中所示;当输入1010~1111时,输出空格。

对上述代码进行相应的修改,并将文件另存为num_7seg.vhd。 接着将num_7seg.vhd设定为项目的顶层设计文件,再进行语法检查和引脚分配。

引脚分配表如下表所示,具体的FPGA引脚可通过查找附录表获取。分配完后重新编译项目文件,并下载验证。

信DE2上的号 器件 C[3SW3~S..0] W0 hexHEX0[6.[6..0] .0]

31

3.循环显示4个字符

循环显示4个字符的电路图如下: 电路的工作原理是,输入端U、V、W和X的输入值分别是000、001、010和011,通过s1和s0选择四个输入端其中一个作为七段解码器的输入值,从而显示H、L、E和O任一字符。

这个实验的实现方法有两个,一个是采用图形编辑的方法实现,与实验1中三态与门的实现方法类似。不过事先需要将实验2中的mux_4to1_3bit.vhd添加到本项目中,并为其创建一个符号;同时,为char_7seg.vhd创建一个符号。另一个方法是采用VHDL文本输入,但也需要事先将实验2中的mux_4to1_3bit.vhd添加到本项目中。

方法一:

图形文件的最终效果图如下图所示。图中的inst1和inst分别是mux_4to1_3bit.vhd和char_7seg.vhd所生成的符号。

32

值得注意的是,s[1..0]与输入引脚SW[1..0]连接,其他输入端类似,而hex[6..0]与输出引脚HEX0[6..0]连接。这里的输入和输出引脚全部采用DE2的引脚名称(注意区分大小写),目的是可以省去手动分配引脚的工作。

第1步:首先将图形文件另存为char_4to1_7seg.bdf,并将该文件设定为项目的顶层设计文件,再进行语法检查。

第2步:检查通过后,打开引脚规划(Pin Planner)窗口,命令是Assignments->Pins。

第3步:选择Assignments->Import Assignments..命令,导入DE2_pin_assignments.csv文件,该文件是DE2板上所有引脚的分配。导入之后,可以发现所有输入和输出引脚已经自动完成引脚分配,原因是我们把引脚的名称设定为DE2默认的引脚名称。

第4步:编译下载。 方法二:

通过VHDL代码实现,这里需要用到元件的概念。整个文件的代码如下:

library ieee;

use ieee.std_logic_1164.all;


现代数字系统实验(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015 年江西省“三支一扶”选拔招募考试

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: