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

📄 led.vhd

📁 有關於EP2C的一些程序(EX:I2C,FLASH,IRDA,MUSIC,LED,LIGHT,SRAM,UART,PS2,SPI )
💻 VHD
字号:
---------------------------------------------------------------------------------------------------
--*************************************************************************************************
--  CreateDate  :  2007-08-18 
--  ModifData   :  2007-08-18 
--  Description :  LED Display 
--  Author      :  Explorer01 
--  Version     :  V1.0  
--*************************************************************************************************
---------------------------------------------------------------------------------------------------

-- VHDL library Declarations 
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;

---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-- The Entity Declarations 
ENTITY LED IS
	PORT 
	(
		RESET: 		IN STD_LOGIC; 
		ClockScan:	IN STD_LOGIC;
		CLK1Hz:		IN STD_LOGIC;
		
		-----------------------------------------------
		LEDValue : 	IN STD_LOGIC_VECTOR(3 DOWNTO 0);
		DigitValue: IN STD_LOGIC_VECTOR(2 DOWNTO 0);
		
		LightValue:	IN STD_LOGIC_VECTOR(7 DOWNTO 0);
		
		-----------------------------------------------
		-- LED 
		Segment:	OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
		Digit:		OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
		
		-- Light 
		Light:		OUT	std_logic_vector(7 DOWNTO 0)
	);
END LED;

---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-- The Architecture of Entity Declarations 
ARCHITECTURE Behavioral OF LED IS
	SIGNAL VALUE:	STD_LOGIC_VECTOR(3 DOWNTO 0);
	SIGNAL Refresh: STD_LOGIC_VECTOR(2 DOWNTO 0);
	
	TYPE RAM IS ARRAY( 0 TO 7 ) OF STD_LOGIC_VECTOR(3 DOWNTO 0);
	SIGNAL RAM_ARRAY : RAM; 
	CONSTANT RAM_INIT: RAM :=("0000","0000","0000","0000","0000","0000","0000","0000");
BEGIN
	
	-------------------------------------------------
	-- Encoder 
	-- HEX-to-seven-segment decoder 
	-- segment encoding 
	--      0 
	--     ---  
	--  5 |   | 1
	--     ---   <- 6
	--  4 |   | 2
	--     ---  
	--      3
	PROCESS( VALUE, CLK1Hz, Refresh )   
	BEGIN
		CASE VALUE IS
			when "0000"=>Segment(6 DOWNTO 0)<= "0111111";    --'0'
			when "0001"=>Segment(6 DOWNTO 0)<= "0000110";    --'1'
			when "0010"=>Segment(6 DOWNTO 0)<= "1011011";    --'2'
			when "0011"=>Segment(6 DOWNTO 0)<= "1001111";    --'3'
			when "0100"=>Segment(6 DOWNTO 0)<= "1100110";    --'4'
			when "0101"=>Segment(6 DOWNTO 0)<= "1101101";    --'5'
			when "0110"=>Segment(6 DOWNTO 0)<= "1111101";    --'6'
			when "0111"=>Segment(6 DOWNTO 0)<= "0000111";    --'7'
			when "1000"=>Segment(6 DOWNTO 0)<= "1111111";    --'8'
			when "1001"=>Segment(6 DOWNTO 0)<= "1101111";    --'9'
			when "1010"=>Segment(6 DOWNTO 0)<= "1110111";    --'A'
			when "1011"=>Segment(6 DOWNTO 0)<= "1111100";    --'b'
			when "1100"=>Segment(6 DOWNTO 0)<= "0111001";    --'C'
			when "1101"=>Segment(6 DOWNTO 0)<= "1011110";    --'d'
			when "1110"=>Segment(6 DOWNTO 0)<= "1111001";    --'E'
			when "1111"=>Segment(6 DOWNTO 0)<= "1110001";    --'F'
			when others=>Segment(6 DOWNTO 0)<= "XXXXXXX";    --' '
		END CASE;
		
		IF( Refresh=1 ) THEN Segment( 7 ) <= CLK1Hz; 
		ELSE 				 Segment( 7 ) <= '0'; 
		END IF; 
	END PROCESS;
	
	-------------------------------------------------
	-- Value Input 
	PROCESS( RESET, LEDValue, DigitValue )   
	BEGIN
		IF( RESET='0' ) THEN 
			RAM_ARRAY <= RAM_INIT; 
		ELSE 
			RAM_ARRAY( CONV_INTEGER(DigitValue) ) <= LEDValue; 
		END IF; 
	END PROCESS;
	
	-------------------------------------------------
	-- MUX 
	PROCESS( ClockScan, Refresh, RAM_ARRAY )   
	BEGIN
		IF( ClockScan'EVENT AND ClockScan = '1' )THEN 
			Refresh <= Refresh + 1; 
		END IF; 
		
		VALUE <= RAM_ARRAY( CONV_INTEGER(Refresh) ); 
		Digit <= Refresh; 
		
	END PROCESS;
	
	-------------------------------------------------
	-------------------------------------------------
	-- Light 
--	Light <= NOT LightValue; 
	Light <= LightValue; 
	
END Behavioral;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -