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

📄 score_show.vhd

📁 游戏代码
💻 VHD
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

ENTITY score_show IS
	PORT(clk:			IN STD_LOGIC;
		 score1,score2: IN integer range 0 to 11;
		 total1,total2: IN integer range 0 to 4;
		           cat:OUT STD_LOGIC_VECTOR(5 downto 0);--数码管选通
				 digit:OUT STD_LOGIC_VECTOR(6 downto 0));-- 数码管显示
END ENTITY;

ARCHITECTURE main OF score_show IS
SIGNAL count:integer range 0 to 5;
SIGNAL d1,d2,d3,d4,d5,d6:STD_LOGIC_VECTOR(6 downto 0);
BEGIN
	PROCESS(score1,score2)
	BEGIN			--以下为分数译码进程
		CASE score1 IS
		when 0=> d1 <= "0000000"; d2 <= "1111110";
		when 1=> d1 <= "0000000"; d2 <= "0110000";
		when 2=> d1 <= "0000000"; d2 <= "1101101";
		when 3=> d1 <= "0000000"; d2 <= "1111001";
		when 4=> d1 <= "0000000"; d2 <= "0110011";
		when 5=> d1 <= "0000000"; d2 <= "1011011";
		when 6=> d1 <= "0000000"; d2 <= "1011111";
		when 7=> d1 <= "0000000"; d2 <= "1110000";
		when 8=> d1 <= "0000000"; d2 <= "1111111";
		when 9=> d1 <= "0000000"; d2 <= "1111011";
		when 10=>d1 <= "0110000"; d2 <= "1111110";
		when 11=>d1 <= "0110000"; d2 <= "0110000";
		END CASE;
		CASE score2 IS
		when 0=> d3 <= "0000000"; d4 <= "1111110";
		when 1=> d3 <= "0000000"; d4 <= "0110000";
		when 2=> d3 <= "0000000"; d4 <= "1101101";
		when 3=> d3 <= "0000000"; d4 <= "1111001";
		when 4=> d3 <= "0000000"; d4 <= "0110011";
		when 5=> d3 <= "0000000"; d4 <= "1011011";
		when 6=> d3 <= "0000000"; d4 <= "1011111";
		when 7=> d3 <= "0000000"; d4 <= "1110000";
		when 8=> d3 <= "0000000"; d4 <= "1111111";
		when 9=> d3 <= "0000000"; d4 <= "1111011";
		when 10=>d3 <= "0110000"; d4 <= "1111110";
		when 11=>d3 <= "0110000"; d4 <= "0110000";
		END CASE;
	END PROCESS;
	
	PROCESS(total1,total2)	
	BEGIN
		CASE total1 IS
			when 0=> d5 <= "1111110";
			when 1=> d5 <= "0110000";
			when 2=> d5 <= "1101101";
			when 3=> d5 <= "1111001";
			when 4=> d5 <= "0110011";
		END CASE;
		CASE total2 IS
			when 0=> d6 <= "1111110";
			when 1=> d6 <= "0110000";
			when 2=> d6 <= "1101101";
			when 3=> d6 <= "1111001";
			when 4=> d6 <= "0110011";
		END CASE;
	END PROCESS;
	
	PROCESS(clk)
	BEGIN
	if(rising_edge(clk)) then		 -- 扫描数码管
		if(count=6) then count <= 0;
		else
			CASE count IS
			when 0=> cat <= "011111";digit <= d1;-- 先扫描显示比分
			when 1=> cat <= "101111";digit <= d2;
			when 2=> cat <= "111101";digit <= d3;
			when 3=> cat <= "111110";digit <= d4;
			when 4=> cat <= "110111";digit <= d5;-- 再扫描显示总比分
			when 5=> cat <= "111011";digit <= d6;
			END CASE;
			count <= count + 1;
		end if;
	end if;
	END PROCESS;
END ARCHITECTURE;
			  
		

⌨️ 快捷键说明

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