[EDA自动售货机课程设计.doc
文本预览下载声明
一目的二
D1_6~D1_8:找回的零钱 D1_1: 指示6角邮票
D1_2: 指示8角邮票 D1_4: 提示邮票送出
三、设计原理
有限状态机FSM及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。传统的状态机设计方法需进行繁琐的状态分配、绘制状态表、化简次态方程等,而利用VHDL可以避免这些繁琐的过程,直接利用状态转换图进行状态机的描述,所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELsE语句实现。money[0] S1 PIN_66 money[1] S2 PIN-67 money[2] S3 PIN_68 rst RESET PIN_240 commodity6 D1_1 PIN_215 commodity8 D1_2 PIN_217 give_change[0] D1_8 PIN_224 give_change[1] D1_7 PIN_225 give_change[2 D1_6 PIN_213 stamp S8 PIN_75 back S7 PIN_76 clk100hz Clock PIN_29 sell D1_4 PIN_207
五、使用说明
七、程序设计如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity vendor is
port(
reset :in std_logic; --系统内部给其他顾客重新操作的复位信号
clk :in std_logic; --由外接信号发生器提供的1024Hz系统时钟信号
ok_buy :in std_logic; --购买确认的按键信号
cancel_buy :in std_logic; --购买取消的按键信号
coin_1 :in std_logic;-- 投入壹角硬币的动作按键
coin_5 :in std_logic; --投入五角硬币的动作按键
coin_10 :in std_logic; --投入壹圆硬币的动作按键
select_liu_yp :in std_logic; --选择六角邮票的按键信号
select_ba_yp :in std_logic; --选择八角邮票的按键信号
led_liu_yp_ok :out std_logic; --灯亮显示还有六角邮票
led_ba_yp_ok :out std_logic; --灯亮显示还有八角邮票
led_liu_yp_sel :out std_logic; --灯亮显示六角邮票选择键被按
led_ba_yp_sel :out std_logic; --灯亮显示八角邮票选择键被按
led_buy :out std_logic; --灯亮显示按了购买确认键
led_cancel :out std_logic; --灯亮显示按了购买取消键
led_one :out std_logic;--1个LED,投入1个1角硬币亮一个LED
led_five :out std_logic;--3个LED,投入1个五角硬币亮一个LED
led_ten :out std_logic;--2个LED,投入1个壹圆硬币亮一个LED
DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
led_liu_yp_out :out std_logic;--灯亮显示六角邮票已出货
led_ba_yp_out :out std_logic --灯亮显示八角邮票已出货
);
end;
architecture arch of vendor is
signal ok :std_logic;--用来维持ok_buy的状态
signal cancel
显示全部