数码管显示电路设计VHDL代码Quartus仿真

名称:数码管显示电路设计VHDL代码Quartus仿真(文末获取)

软件:Quartus

语言:VHDL

代码功能:

一、课题目的

1.实现十六进制计数显示。

2.实现常见英语字母显示。

二、课题原理

用数码管除了可以显示0~9的阿拉伯数字外,还可以显示一些英语字母。

数码管由7段显示输出,利用7个位的组合输出,就可以形成相关的英语字母的对应显示(注意:不是所有字母都能显示!)。下表显示常见的字母与7段显示关系。

       段

字母

A

b

c

d

e

f

g

A

1

1

1

0

1

1

1

B

0

0

1

1

1

1

1

C

1

0

0

1

1

1

0

D

0

1

1

1

1

0

1

E

1

0

0

1

1

1

1

F

1

0

0

0

1

1

1

H

0

1

1

0

1

1

1

P

1

1

0

0

1

1

1

L

0

0

0

1

1

1

0

                        常见的字母与7段显示关系

三、课题内容

1.查找资料,理解设计原理。

2.用VHDL语言 编写一个简单的0~9和字母显示电路(数码管类别不限)。

3.在QuartusⅡ上完成设计输入、全程编译和功能仿真。

四、设计提示

1.字母轮换显示电路可以采用状态图的方式设计,对于每一个时钟脉冲,将改变一种态。

1. 工程文件

2. 程序文件

3. 程序编译

4. 状态图

5. 仿真图

仿真图说明,以上图中显示B为例,仿真图显示值为1111100,也就是

hex[6]=1,-----对应g

hex[5]=1,-----对应f

hex[4]=1,-----对应e

hex[3]=1,-----对应d

hex[2]=1,-----对应c

hex[1]=0,-----对应b

hex[0]=0,-----对应a

查询下表可知显示的是b,故仿真正确。

部分代码展示:

library IEEE;
use IEEE.std_logic_1164.all;
--数码管译码模块
entity segment is
port (
CLK: in std_logic;--时钟
    RST: in std_logic;--复位
    hex: out std_logic_vector(6 downto 0)); --数码管信号,gfedcba,g为最高位,a为最低位
end segment;
architecture behav of segment is
TYPE states IS (st_0,st_1,st_2,st_3,st_4,st_5,st_6,st_7,st_8,st_9,st_A,st_B,st_C,st_D,st_E,st_F,st_H,st_P,st_L);--定义各个状态
signal PST:states;
begin
process(CLK,RST)
begin
IF(RST='1')then
PST<=st_0;--复位到st_0
ELSIF rising_edge (CLK) then
case PST IS--对于每一个时钟脉冲,改变一种状态
when st_0=> PST<=st_1;--依次按顺序变化
when st_1=> PST<=st_2;
when st_2=> PST<=st_3;
when st_3=> PST<=st_4;
when st_4=> PST<=st_5;
when st_5=> PST<=st_6;
when st_6=> PST<=st_7;
when st_7=> PST<=st_8;
when st_8=> PST<=st_9;
when st_9=> PST<=st_A;
when st_A=> PST<=st_B;
when st_B=> PST<=st_C;
when st_C=> PST<=st_D;
when st_D=> PST<=st_E;
when st_E=> PST<=st_F;
when st_F=> PST<=st_H;
when st_H=> PST<=st_P;
when st_P=> PST<=st_L;
when st_L=> PST<=st_0;--回到初始状态
when others => PST<=st_0;
end case;
end if;

源代码

点击下方的公众号卡片获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值