⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seg7_leddrv.vhd

📁 数码管显示Vhdl实现
💻 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 + -