电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

vhdl数码管动态扫描程序设计(四种设计方案)

2021-11-24 07:49分类:电子元器件 阅读:

 

文中为各位产生四种不一样的vhdl数码显示管动态性扫描仪编程设计。

vhdl数码显示管动态性扫描仪一:循环系统翻转

完成的作用

循环系统翻转,自始至终照亮6个数码显示管,左出右进。情况为:012345-123450-234501-345012-450123-501234-012345

完成编码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL

ENTITY LED2 IS

PORT(CLK:IN STD_LOGIC;

SG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); BT:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)); END LED2;

ARCHITECTURE ACE OF LED2 IS component div_2K

port(clk_in:instd_logic; clk_out:outstd_logic);

end component;

SIGNAL CNT6:INTEGER RANGE 0 TO 5;

SIGNAL A:INTEGER RANGE 0 TO 5;

SIGNAL COUNT:INTEGER RANGE 0 TO 4999 := 0;

SIGNAl FLAG:INTEGER RANGE 0 TO 6 := 0;

SIGNAl FLAG_A:INTEGER RANGE 0 TO 5;

SIGNAL clk_tmp:STD_LOGIC;

BEGIN

u1:div_2k port map(clk_in=>CLK,clk_out=>clk_tmp);

P1:process(CNT6)

BEGIN

CASE CNT6 IS --3线至6线数据选择器

WHEN 0 => BT <= “011111” A <= 0 --A为位码

WHEN 1 => BT<= “101111” A <= 1

WHEN 2 => BT<= “110111” A <= 2

WHEN 3 => BT<= “111011” A <= 3

WHEN 4 => BT<= “111101” A <= 4

WHEN 5 => BT<= “111110” A <= 5

WHEN OTHERS => NULL;

END CASE

END PROCESS P1;

P2:process(clk_tmp)

BEGIN

IF clk_tmp‘EVENT AND clk_tmp= ’1‘ THEN --完成模6电子计数器 if CNT6= 5 then CNT6<= 0; else

CNT6<=CNT6 1; end if;

IF (FLAG = 6) THEN --设定标示 FLAG <= 0;

END IF;

IF COUNT =4999 THEN

--等同于另一个数字时钟

COUNT <= 0; --记数周期时间为5000

FLAG <=FLAG 1; --当记满5000时左挪动一位 ELSE

COUNT <=COUNT 1; --不满意5000再次记数 END IF; END IF;

END PROCESS P2;

P3:process(A,FLAG,FLAG_A)

BEGIN

FLAG_A<=(( A FLAG )mod 6) --应用求余运算完成挪动

CASE FLAG_A IS --完成数码显示管的展示作用

WHEN 0=> SG <= “1111110”;

WHEN 1=> SG <= “0110000”;

WHEN 2=> SG <= “1101101”;

WHEN 3=> SG <= “1111001”;

WHEN 4=> SG <=“0110011”;

WHEN 5=> SG <= “1011011”;

WHEN OTHERS =>NULL

END CASE

END PROCESS P3;

END ACE;

编码剖析:

为完成挪动,重要修改为增加一个电子计数器,技术性周期时间远远地超过扫描仪周期时间,那样,在一个大的记数周期时间内,针对要展现的6位数码开展动态性扫描仪(和试验每日任务1中同样),表明出6种挪动情况中的一种;在下一个大的期限内,运用FLAG标示,并应用求余运算将表明位的数码挪动,例如,大的记数周期时间为0时,FLAG为0,表明“012345”六位数码,大的周期时间为1时,FALG为1,这时诸位求余(即FLAG_A求余)相匹配的数码为123450,表明的数码也就为“123450”。依此类推,完成循环系统挪动。

上一篇:静电容量小于1PF的玻璃放电管选型指南

下一篇:单向可控硅和双向可控硅的测量与模块测试

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部