• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Quartus自動(dòng)售貨機(jī)VHDL代碼

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2-231226104A0R9.doc

共1個(gè)文件

名稱:Quartus自動(dòng)售貨機(jī)VHDL代碼

軟件:Quartus

語言:VHDL

代碼功能:

自動(dòng)售貨機(jī),三種幣值、兩種商品,注意定義和設(shè)計(jì)的合理性。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

演示視頻:

設(shè)計(jì)文檔:

1. 代碼文件

2. 程序

3. 編譯

4. Testbench

5. 仿真圖

整體仿真圖

分頻模塊

按鍵檢測(cè)模塊

狀態(tài)機(jī)控制模塊

從仿真圖中可以分析得到,購買5元商品,投入10元,找零5元;從控制模塊的仿真中可以分析得到,購買10元商品,先投入5元,再投入10元,一共投入15元,找零5元;從仿真結(jié)果中可以看出設(shè)計(jì)的符合要求。

紅燈閃爍模塊

售賣led控制模塊

部分代碼展示:

library?IEEE;
use?IEEE.STD_LOGIC_1164.ALL;
--頂層模塊
entity?auto_sell?is
????port
(
clk?:in??std_logic;--clk
rst_n?:in??std_logic;--rst
key_in_0?:in??std_logic;--5元商品
key_in_1?:in??std_logic;--10元商品
key_in_2?:in??std_logic;--投幣5元
key_in_3?:in??std_logic;--投幣10元
key_in_4?:in??std_logic;--投幣20元
key_in_5?:in??std_logic;--商品推出
led_red????:out?std_logic;--紅燈閃爍
led_5Y?????:out?std_logic;--售賣5元指示燈
led_10Y?????:out?std_logic;--售賣10元指示燈
led_charge?????:out?std_logic_vector(1?downto?0)--5元找零信號(hào),10元找零信號(hào)
);
end?auto_sell;
architecture?Behavioral?of?auto_sell?is
--分頻模塊
component?fengpin?is
port
(
clk?:in??std_logic;--clk?50MHz
rst?:in??std_logic;--rst低有效
clk_1KHz??:out?std_logic;?--1KHz信號(hào)輸出
clk_1Hz??:out?std_logic?--1Hz信號(hào)輸出
);
end?component;
--按鍵檢測(cè)模塊
component?key_detect?is
port
(
clk_1KHz???:in??std_logic;--clk_1KHz
key_in?????:in??std_logic_vector(5?downto?0);--按鍵信號(hào)輸入
key_buf?:out?std_logic_vector(5?downto?0);?--按鍵值輸出
key_n??:out?std_logic_vector(5?downto?0)?--按鍵標(biāo)志信號(hào)輸出
);
end?component;
--狀態(tài)機(jī)控制模塊
component?state_ctrl?is
????port
(
clk_1KHz???:in??std_logic;--clk_1KHz
rst_n???:in??std_logic;--rst低有效
key_n??:in??std_logic_vector(5?downto?0);--key_n(0)5元商品,key_n(1)10元商品,key_n(2)5元,key_n(3)10元,key_n(4)20元,key_n(5)檢測(cè)商品推出
key_buf?:in??std_logic_vector(5?downto?0);--按鍵值信號(hào)輸入
????state_o?:out?std_logic_vector(2?downto?0);--狀態(tài)輸出
led_charge?????:out?std_logic_vector(1?downto?0)--5元找零信號(hào),10元找零信號(hào)
);
end?component;
--紅燈閃爍控制模塊
component?red_led_ctrl?is
????port
(
clk_1KHz???:in??std_logic;--clk_1KHz
rst_n???:in??std_logic;--rst低有效
key_buf?:in??std_logic_vector(5?downto?0);--按鍵值信號(hào)輸入
????state_o?:in?std_logic_vector(2?downto?0);--狀態(tài)輸出
clk_1Hz???:in??std_logic;--1Hz時(shí)鐘輸入
led_red????:out?std_logic--紅燈閃爍
);
end?component;
--售賣led控制
component?sell_led?is
????port
(
clk_1KHz???:in??std_logic;--clk_1KHz
rst_n???:in??std_logic;--rst低有效
key_n??:in??std_logic_vector(5?downto?0);--key_n(0)5元商品,key_n(1)10元商品,key_n(2)5元,key_n(3)10元,key_n(4)20元,key_n(5)檢測(cè)商品推出
????state_o?:in?std_logic_vector(2?downto?0);--狀態(tài)輸入
led_5Y?????:out?std_logic;--售賣5元指示燈
led_10Y?????:out?std_logic--售賣10元指示燈
);
end?component;
????
????signal?clk_1Hz:std_logic;
signal?clk_1KHz:std_logic;
signal?key_in:?std_logic_vector(5?downto?0);
????signal?key_n:?std_logic_vector(5?downto?0);
signal?key_buf:?std_logic_vector(5?downto?0);
signal?state_o?:?std_logic_vector(2?downto?0);--狀態(tài)輸出
begin
--輸入按鍵拼接為6bit
key_in<=key_in_5?&?key_in_4?&?key_in_3?&?key_in_2?&?key_in_1?&?key_in_0;
--分頻模塊
U_fengpin:?fengpin
port?map
(
clk?=>?clk,--clk?50MHz
rst?=>?rst_n,--rst低有效
clk_1KHz??=>?clk_1KHz,?--1KHz信號(hào)輸出
clk_1Hz?=>?clk_1Hz?--1Hz信號(hào)輸出
);
--按鍵檢測(cè)模塊
U_key_detect:key_detect
port?map
(
clk_1KHz??=>?clk_1KHz,?--1KHz信號(hào)輸出
key_in????=>key_in,--按鍵信號(hào)輸入
key_buf?=>key_buf,?--按鍵值輸出
key_n??=>key_n--按鍵標(biāo)志信號(hào)輸出
);
--狀態(tài)機(jī)控制模塊
U_state_ctrl:state_ctrl
????port?map
(
clk_1KHz??=>?clk_1KHz,?--1KHz信號(hào)輸出
rst_n???=>?rst_n,?--rst低有效
key_n??=>key_n,--key_n(0)5元商品,key_n(1)10元商品,key_n(2)5元,key_n(3)10元,key_n(4)20元,key_n(5)檢測(cè)商品推出
key_buf?=>key_buf,?--按鍵值信號(hào)輸入
state_o??=>?state_o,--狀態(tài)輸出
led_charge?=>?led_charge--5元找零信號(hào),10元找零信號(hào)
);
--紅燈閃爍控制模塊
U_red_led_ctrl:?red_led_ctrl
????port?map
(
clk_1KHz???=>?clk_1KHz,?--1KHz信號(hào)
rst_n???=>?rst_n,?--rst低有效
key_buf?=>key_buf,?--按鍵值信號(hào)輸入
????state_o??=>?state_o,--狀態(tài)
clk_1Hz?=>?clk_1Hz,?--1Hz信號(hào)輸出
led_red?=>led_red--紅燈閃爍
);
--售賣led控制
U_sell_led:?sell_led
????port?map
(
clk_1KHz??=>?clk_1KHz,?--1KHz信號(hào)
rst_n???=>?rst_n,?--rst低有效
key_n??=>key_n,--key_n(0)5元商品,key_n(1)10元商品,key_n(2)5元,key_n(3)10元,key_n(4)20元,key_n(5)檢測(cè)商品推出
????state_o??=>?state_o,--狀態(tài)
led_5Y???=>led_5Y,--售賣5元指示燈
led_10Y??=>led_10Y--售賣10元指示燈
);
end?Behavioral;

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=416

  • 2-231226104A0R9.doc
    下載

相關(guān)推薦