自动售货机设计VHDL代码Quartus仿真

名称:自动售货机设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

自动售货机

1、可以选择商品,商品有3元,6元,7元,9元的

2、可以投币1元、2元、5元、10元

3、成功购买有相应指示信号

4、数码管显示价钱、投币、找零金额


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

自动售货机设计.doc

1. 自动售货机功能描述

售货机出售商品有3.6.7.9元的,可以接收投币1元、2元、5元、10元。通过商品选择按键选择商品,按下确认键后开始投币,若投币金额大于商品价格则出货和找零。投币过程中若按下取消键则取消购买,退回所投币金额。



2. 工程文件


3. 程序文件


4. 程序编译


5. RTL图


6. Testbench


7. 仿真图

整体仿真图

按键下降沿检测模块仿真


售货机控制模块仿真

下图select_p按下三次,最终选择了7元商品(select_num=7),再按下确认键(confirm_p=1)后开始投币,先后投币了1,2,5元,共8元(input_money=8),找零金额为refound_money=1。




数码管显示模块仿真



7段数码管对照编码


部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
ENTITY auto_sell IS
   PORT (
      clk_50M        : IN STD_LOGIC;--时钟
      reset_n        : IN STD_LOGIC;--复位
      
      select_key_n   : IN STD_LOGIC;--商品选择按键
      confirm_key_n  : IN STD_LOGIC;--确认按键
      cancel_key_n   : IN STD_LOGIC;--取消按键
      coin_1_n       : IN STD_LOGIC;--投币1元
      coin_2_n       : IN STD_LOGIC;--投币2元
      coin_5_n       : IN STD_LOGIC;--投币5元
coin_10_n       : IN STD_LOGIC;--投币10元
      
      buy_succeed    : OUT STD_LOGIC;--购买成功
      bit_select     : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--数码管位选
      seg_select     : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选
   );
END auto_sell;
ARCHITECTURE trans OF auto_sell IS
--售货控制模块
component sell_ctrl IS
   PORT (
      clk            : IN STD_LOGIC;
      reset_n        : IN STD_LOGIC;
      
      confirm_p      : IN STD_LOGIC;
      select_p       : IN STD_LOGIC;
      concel_p       : IN STD_LOGIC;
      
      coin_1_p       : IN STD_LOGIC;
      coin_2_p       : IN STD_LOGIC;
      coin_5_p       : IN STD_LOGIC;
coin_10_p       : IN STD_LOGIC;--投币10元
      
      buy_succeed    : OUT STD_LOGIC;
      select_num     : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
      input_money    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
      refound_money  : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
   );
END component;
--按键下降沿检测模块
component key_jitter IS
   PORT (
      clkin        : IN STD_LOGIC;
      key_in       : IN STD_LOGIC;
      key_negedge  : OUT STD_LOGIC
   );
END component;
--显示模块
component display IS
   PORT (
      clk            : IN STD_LOGIC;
      
      select_num     : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
      input_money    : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
      refound_money  : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
      
      bit_select     : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
      seg_select     : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
   );

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 自动售货机设计VHDL代码Quartus仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员