📄 自动售货机.txt
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY saler IS
PORT (rest,m1,m5,m10,t6,t8:IN STD_LOGIC;
s6,s8:OUT STD_LOGIC;
OUTA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
OUTB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END saler;
ARCHITECTURE BEHAV OF saler IS
SIGNAL d:STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
PROCESS(REST,d)
BEGIN IF Rest='1' THEN S6<='0';S8<='0';OUTA<="0000";
ELSE
d(4)<=M1;d(3)<=M5;d(2)<=M10;d(1)<=T6;d(0)<=T8;
CASE D IS
WHEN "00100"=>S6<='0';S8<='0';OUTA<="0001";OUTB<="0000"; --投币1元
WHEN "00101"=>S6<='0';S8<='1';OUTA<="0000";OUTB<="0010";
WHEN "00110"=>S6<='1';S8<='0';OUTA<="0000";OUTB<="0100";
WHEN "01000"=>S6<='0';S8<='0';OUTA<="0000";OUTB<="0101"; --投币5角
WHEN "01001"=>S6<='0';S8<='0';OUTA<="0000";OUTB<="0101";
WHEN "01010"=>S6<='0';S8<='0';OUTA<="0000";OUTB<="0101";
WHEN "01100"=>S6<='0';S8<='0';OUTA<="0001";OUTB<="0101"; --投币1元5角
WHEN "01101"=>S6<='0';S8<='1';OUTA<="0000";OUTB<="0111";
WHEN "01110"=>S6<='1';S8<='0';OUTA<="0000";OUTB<="1001";
WHEN "10000"=>S6<='0';S8<='0';OUTA<="0000";OUTB<="0001"; --投币1角
WHEN "10001"=>S6<='0';S8<='0';OUTA<="0000";OUTB<="0001";
WHEN "10010"=>S6<='0';S8<='0';OUTA<="0000";OUTB<="0001";
WHEN "10100"=>S6<='0';S8<='0';OUTA<="0001";OUTB<="0001"; --投币1元1角
WHEN "10101"=>S6<='0';S8<='1';OUTA<="0000";OUTB<="0011";
WHEN "10110"=>S6<='1';S8<='0';OUTA<="0000";OUTB<="0101";
WHEN "11000"=>S6<='0';S8<='0';OUTA<="0000";OUTB<="0110"; --投币6角
WHEN "11001"=>S6<='0';S8<='0';OUTA<="0000";OUTB<="0110";
WHEN "11010"=>S6<='1';S8<='0';OUTA<="0000";OUTB<="0000";
WHEN "11100"=>S6<='0';S8<='0';OUTA<="0001";OUTB<="0110"; --投币1元6角
WHEN "11101"=>S6<='0';S8<='1';OUTA<="0000";OUTB<="1000";
WHEN "11110"=>S6<='1';S8<='0';OUTA<="0001";OUTB<="0000";
WHEN OTHERS =>S6<='0';S8<='0';OUTA<="0000";OUTB<="0000"; --其他情况
END CASE;
END IF;
END PROCESS;
END BEHAV;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -