自动售货机设计VHDL语言--EDA课程设计
现控制功能,源程序如下:
LIBRARY IEEE;
USE ;
ENTITY shj_ctrl IS
PORT(A,B:IN STD_LOGIC;
clk:IN STD_LOGIC;
Z,Y:OUT STD_LOGIC);
END shj_ctrl
ARCHITECTURE beha OF shi_ctrl IS
TYPE states IS(S0,S1,S2);
SIGNAL state:states;
SIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
X<=A&B;
PROCESS(x,state)
BEGIN
IF rising_edge(clk) THEN
CASE state IS
WHEN S0=>Z<='0';Y<='0';
IF(X="01")THEN
state<=s1;
ELSIF(X="10")THEN
state<=s2;
ELSE
state<=s0;
END IF;
WHEN S1=>Z<='0';Y<='0';
IF(X="01")THEN
state<=s2;
ELSIF(X="10")THEN
state<=S0;
Z<='1';Y<='0';
ELSE
state<=s1;
END IF;
WHEN S2=>Z<='0';Y<='0';
IF(X="01")THEN
state<=S0;
Z<='1';Y<='0';
ELSIF(X="10")THEN
state<=s0;
Z<='1';Y<='1';
ELSE
state<=s2;
END IF;
END CASE;
END IF;
END PROCESS;
END beha;
上面程序中,A、B分别为一元硬币和五角硬币驱动信号,Z为矿泉水输出信号,Y为找钱输出信号。
library ieee;
use ;
use ;
use ;
entity PL_auto1 is
port ( clk:in std_logic;
--系统时钟
set,get,sel,finish: in std_logic;
--设定、买、选择、完成信号
coin0,coin1: in std_logic;
--5角硬币、1元硬币
price,quantity
:in std_logic_vector(3 downto 0);
--价格、数量数据
item0 , act ut std_logic_vector(3 downto 0);
--显示、开关信号
y0,y1 ut std_logic_vector(6 downto 0);
--钱数、商品数量显示数据
act10,act5
ut std_logic);
--1元硬币、5角硬币
end PL_auto1;
architecture behav of PL_auto1 is
type
ram_
自动售货机源代码 来自淘豆网m.daumloan.com转载请标明出处.