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

📄 display.vhd

📁 自己写的代码 能用 关于写I2C方面的 应该还不错的
💻 VHD
字号:
------------------------------------------------------------------------------------ Company: -- Engineer: -- -- Create Date:    16:38:01 03/08/2007 -- Design Name: -- Module Name:    display - Behavioral -- Project Name: -- Target Devices: -- Tool versions: -- Description: ---- Dependencies: ---- Revision: -- Revision 0.01 - File Created-- Additional Comments: ------------------------------------------------------------------------------------library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating---- any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity display is
	port(clk:in std_logic;		  
		  data:in std_logic_vector(15 downto 0);
		  seg:out std_logic_vector(6 downto 0);
		  sel:out std_logic_vector(3 downto 0));end display;architecture Behavioral of display is
signal clkDiv : std_logic_vector (12 downto 0);
signal sclk:std_logic_vector(1 downto 0);
signal MUXOUT:std_logic_vector(3 downto 0);begin

--Divide the master clock down to a lower frequency--
CLKDivider: Process (CLK)
begin
	if (CLK = '1' and CLK'Event) then 
		clkDiv <= clkDiv +1; 
	end if;	
end Process;

	sclk <= clkDiv(11 downto 10);

--Multiplexer
	MUXOUT <=data(15 downto 12) when sclk = "00" else
	data(11 downto 8) when sclk = "01" else
	data(7  downto 4) when sclk = "10" else
	data(3  downto 0) when sclk = "11";				  

--Seven Segment Decoder--
	seg <="1000000" when MUXOUT = "0000" else
			"1111001" when MUXOUT = "0001" else
			"0100100" when MUXOUT = "0010" else
			"0110000" when MUXOUT = "0011" else
			"0011001" when MUXOUT = "0100" else
			"0010010" when MUXOUT = "0101" else
			"0000010" when MUXOUT = "0110" else
			"1111000" when MUXOUT = "0111" else
			"0000000" when MUXOUT = "1000" else
			"0010000" when MUXOUT = "1001" else
			"0001000" when MUXOUT = "1010" else
			"0000011" when MUXOUT = "1011" else
			"1000110" when MUXOUT = "1100" else
			"0100001" when MUXOUT = "1101" else
			"0000110" when MUXOUT = "1110" else
			"0001110" when MUXOUT = "1111" else
			"1111111";

--Anode Driver
	sel<="0111" when sclk = "00"  else
	     "1011" when sclk = "01"  else
	     "1101" when sclk = "10"  else
	     "1110" when sclk = "11"  else
	     "1111";end Behavioral;

⌨️ 快捷键说明

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