2021-04-21 动态数码管依次显示0的VHDL程序

该博客介绍了使用Quartus II 9.0和EPF10K20T144-4板载进行VHDL编程,实现动态数码管依次显示数字0的过程。通过设置时钟、控制信号和段位,利用三个进程来控制数码管的开关、计数和段码显示。实验中还强调了创建工程、配置引脚和驱动程序安装的注意事项,并提供了代码实现和烧录步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动态数码管依次显示0的VHDL程序

前言
本次实验所用软件为Quartus||9.0,所用板载为EPF10K20T144-4

注意事项
(1)创建VHDL工程时选择板载系列一定要按照板载芯片上的系列选中。
(2)目前使用的Quartus || 9.0不支持输入汉字的功能,只支持显示汉字的功能,所以想要在上面显示汉字,得先在记事本中写好自己要写的汉字内容,然后再复制粘贴到Quartus || 9.0上的文件中。
(3)安装驱动程序前一定要记得禁止驱动程序签名。
(4)配置完引脚以后一定要记得要再编译一次。

实验题目
1、实现8段数码管依次显示0的VHDL程序。

代码实现
1、实现思路如下,设置一个名为s的8位的STD_LOGIC_VECTOR用来控制8个数码管的电路开关(注:0为开,1为关),一个名为q的7位的STD_LOGIC_VECTOR,用来接动态数码管的AG引脚,然后再设置一个名为clk的时钟,用来控制数码管的依次显示。(注:代码如下)

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity Digital_tube_1 is
port(
clk:in std_logic;--------------------------------时钟信号
s:out std_logic_vector(7 downto 0);--------------数码管
q:out std_logic_vector(6 downto 0));-------------段位
end Digital_tube_1;

architecture one of Digital_tube_1 is
signal clk1:std_logic;---------------分频

signal cnt1:integer range 0 to 7;---------------计数


signal count1:integer range 0 to 7;
begin
process(clk)
begin
if clk'event and clk = '1' then
if count1 = 7 then
clk1 <= '1';-------------------------------------1K
count1 <= 0;
else
count1 <= count1+1;
clk1 <= '0';
end if;
end if;
end process;
process(clk1)-------主要是让计算两个数码管的数值
begin
if clk1'event and clk1 = '1' then
if cnt1 = 7 then cnt1 <= 0;
else
cnt1 <= cnt1+1;
end if;
end if;
end process;
process(cnt1)------------------只是显示在某种状态下的段位显示,不参与计算
begin
case cnt1 is
when 0 => q <= "1111110";s <="01111111";------------cnt是1时,q显示0,依次选通s
when 1 => q <= "1111110";s <="10111111";
when 2 => q <= "1111110";s <="11011111";
when 3 => q <= "1111110";s <="11101111";
when 4 => q <= "1111110";s <="11110111";
when 5 => q <= "1111110";s <="11111011";
when 6 => q <= "1111110";s <="11111101";
when 7 => q <= "1111110";s <="11111110";
when others => null;
end case;
end process;
end one;

2、拓展发挥:想要使数码管显示别的字符改动q即可,要想使数码管导通改动s即可。(注:按如下引脚图改变数码管A到G引脚的高低电平即可显示不同的数字)

烧入板载实现

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值