📄 seg7_leddrv.vhd
字号:
--/*****************************************************************************
-- * 源文件: seg7_leddrv.vhd
-- * 模块: 七段数码管驱动
-- * 版权:
-- * Copyright(C) 北京联华众科科技有限公司
-- * www.lianhua-zhongke.com.cn
-- * 版本: Version 1.0
-- *
-- * 功能说明:
-- * 将输入的4位BCD数据转换为七段数码管的显示数据,同时根据当前输
-- * 入dp确定是否显示小数点,小数点位是数码管显示数据的最高位。
-- * 参数说明:
-- * 输出
-- * seg7led_bits - 七段数码管的显示数据,最高位显示dp,最低位为a
-- *
-- * 输入
-- * data - 准备显示的4位BCD数据
-- * dp - 小数点位
-- * reset - 复位信号,低电平有效
-- *
-- * 参数
-- *
-- * 变更记录:
-- * 2006.01.28, 新建
-- *
-- *****************************************************************************/
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
ENTITY seg7_leddrv IS
PORT
(
seg7led_bits : BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);
data : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
dp : IN STD_LOGIC;
reset : IN STD_LOGIC
);
END seg7_leddrv;
ARCHITECTURE seg7_leddrv_architecture OF seg7_leddrv IS
BEGIN
PROCESS(data, dp, reset)
BEGIN
IF (reset = '0') THEN
seg7led_bits <= "11111111";
ELSE
CASE data IS
WHEN "0000" => seg7led_bits <= "11000000";--显示0
WHEN "0001" => seg7led_bits <= "11111001";--显示1
WHEN "0010" => seg7led_bits <= "10100100";--显示2
WHEN "0011" => seg7led_bits <= "10110000";--显示3
WHEN "0100" => seg7led_bits <= "10011001";--显示4
WHEN "0101" => seg7led_bits <= "10010010";--显示5
WHEN "0110" => seg7led_bits <= "10000010";--显示6
WHEN "0111" => seg7led_bits <= "11111000";--显示7
WHEN "1000" => seg7led_bits <= "10000000";--显示8
WHEN "1001" => seg7led_bits <= "10010000";--显示9
WHEN "1010" => seg7led_bits <= "10001000";--显示A
WHEN "1011" => seg7led_bits <= "10000011";--显示B
WHEN "1100" => seg7led_bits <= "11000110";--显示C
WHEN "1101" => seg7led_bits <= "10100001";--显示D
WHEN "1110" => seg7led_bits <= "10000110";--显示E
WHEN "1111" => seg7led_bits <= "10001110";--显示F
WHEN OTHERS => seg7led_bits <= "11111111";--全灭
END CASE;
seg7led_bits(7) <= dp;
END IF;
END PROCESS;
END seg7_leddrv_architecture;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -