?? duanxuan.vhd
字號(hào):
--在程序change-bcd中以將各二進(jìn)制數(shù)轉(zhuǎn)換為bcd碼
--因此,此程序輸入為bcd碼
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY duanxuan IS
PORT(
wei8,strpri,fare,sec,min:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
unipri:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
start:IN STD_LOGIC;
seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
);
END duanxuan;
ARCHITECTURE execute OF duanxuan IS
SIGNAL num: STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL seg_temp: STD_LOGIC_VECTOR(6 DOWNTO 0);
BEGIN
PROCESS(start,wei8,strpri,fare)
BEGIN
IF start='1'THEN
CASE wei8 IS --順序a,b,c,d,e,f,g
WHEN "10000000" => num<="1010"; --E
WHEN "01000000" => num<="1011"; --p
WHEN "00100000" => num<="1100"; --t
WHEN "00010000" => num<="1101"; --y
WHEN "00000010" => num<="1110"; --'-'
WHEN "00001000" => num<=strpri(7 DOWNTO 4);
WHEN "00000100" => num<=strpri(3 DOWNTO 0);
WHEN "00000001" => num<="00"&unipri;
WHEN OTHERS=>num<="1111";
END CASE;
ELSE
CASE wei8 IS --順序a,b,c,d,e,f,g
WHEN "10000000" =>num<=fare(7 DOWNTO 4); --車費(fèi),十位
WHEN "01000000" =>num<=fare(3 DOWNTO 0); --車費(fèi),個(gè)位
WHEN "00100000" =>num<="1110"; --'-'
WHEN "00010000" =>num<=min(7 DOWNTO 4);
WHEN "00001000" =>num<=min(3 DOWNTO 0);
WHEN "00000100" =>num<="1110"; --'-'
WHEN "00000010" =>num<=sec(7 DOWNTO 4);
WHEN "00000001" =>num<=sec(3 DOWNTO 0);
WHEN OTHERS=>num<="1111";
END CASE;
END IF;
END PROCESS;
PROCESS(num)
BEGIN
CASE num IS
WHEN"0000"=>seg_temp<="1111110" ; --0
WHEN"0001"=>seg_temp<="0110000" ; --1
WHEN"0010"=>seg_temp<="1101101" ; --2
WHEN"0011"=>seg_temp<="1111001" ; --3
WHEN"0100"=>seg_temp<="0110011" ; --4
WHEN"0101"=>seg_temp<="1011011" ; --5
WHEN"0110"=>seg_temp<="1011111" ; --6
WHEN"0111"=>seg_temp<="1110010" ; --7
WHEN"1000"=>seg_temp<="1111111" ; --8
WHEN"1001"=>seg_temp<="1111011" ; --9
WHEN"1010"=>seg_temp<="1001111" ; --E
WHEN"1011"=>seg_temp<="1100111" ; --p
WHEN"1100"=>seg_temp<="0001111" ; --t
WHEN"1101"=>seg_temp<="0111011" ; --y
WHEN"1110"=>seg_temp<="0000001" ; --'-'
WHEN OTHERS=>seg_temp<="0000000";
END CASE;
END PROCESS;
seg<=seg_temp;
END execute;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -