名称:自动售货机设计VHDL代码Quartus DE2-115开发板
软件:Quartus
语言:VHDL
代码功能:
1、假定可出售1元和1.5元两种商品
2、投币只能投入五角和1元硬币
3、可找零
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
整体仿真图
按键边沿检测模块
售货控制模块
显示模块
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; --顶层模块 ENTITY auto_sell IS PORT ( clk_in : 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_5_n : IN STD_LOGIC;--投币0.5元 coin_10_n : IN STD_LOGIC;--投币1.0元 buy_succeed : OUT STD_LOGIC;--购买成功 HEX0 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管段选 HEX1 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选 ); END auto_sell; ARCHITECTURE bahave 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_5_p : IN STD_LOGIC;--投币0.5元 coin_10_p : IN STD_LOGIC;--投币1.0元 buy_succeed : OUT STD_LOGIC; select_num : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); input_money : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); refound_money : OUT STD_LOGIC_VECTOR(4 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(4 DOWNTO 0); refound_money : IN STD_LOGIC_VECTOR(4 DOWNTO 0);--找零 HEX0 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管段选 HEX1 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选 ); END component; SIGNAL select_num : STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL input_money : STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL refound_money : STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL confirm_p : STD_LOGIC; SIGNAL select_p : STD_LOGIC; SIGNAL concel_p : STD_LOGIC; SIGNAL coin_5_p : STD_LOGIC; SIGNAL coin_10_p : STD_LOGIC; BEGIN --按键下降沿检测模块 i1_key_jitter : key_jitter PORT MAP ( clkin => clk_in, key_in => select_key_n, key_negedge => select_p ); --按键下降沿检测模块 i2_key_jitter : key_jitter PORT MAP ( clkin => clk_in, key_in => confirm_key_n, key_negedge => confirm_p );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1179
阅读全文
721