成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

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

自動售貨機basys2開發(fā)板VHDL可改單價找零販賣機自助機

10小時前
207
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1-2311062209123F.doc

共1個文件

名稱:自動售貨機basys2開發(fā)板VHDL可改單價販賣機自助機(代碼在文末下載)

軟件:ISE

語言:VHDL

代碼功能:

自動售貨機

1、具有3元、6元、7元、9元的商品,通過按鍵選擇商品。

2、可以投幣1元、2元、5元、10元。

3、購買成功后有led燈提示,且具有找零功能。

4、具有取消按鍵,可以取消購買,退回已投金額。

本代碼商品單價及投幣金額可以自行修改,相關代碼如下

--商品選擇(1~3)
???PROCESS?(clk,?reset_n)
???BEGIN
??????IF?(reset_n?=?'0')?THEN
?????????need_money_buf?<=?"0000";
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????IF?(state?=?"001")?THEN
????????????IF?(select_p?=?'1')?THEN--商品有3.6.7.9元的
???IF?(need_money_buf?=?"0000")?THEN
need_money_buf?<=?"0011";--商品3元的
???????????????ELSIF(need_money_buf?=?"0011")?THEN
??????????????????need_money_buf?<=?"0110";--商品6元的
???????????????ELSIF(need_money_buf?=?"0110")?THEN
need_money_buf?<=?"0111";--商品7元的
???????????????ELSIF(need_money_buf?=?"0111")?THEN
need_money_buf?<=?"1001";--商品9元的
???????????????ELSIF(need_money_buf?=?"1001")?THEN
need_money_buf?<=?"0011";--商品3元的
???????????????END?IF;
????????????ELSE
???????????????need_money_buf?<=?need_money_buf;
????????????END?IF;
?????????ELSIF?(state?=?"100")?THEN
????????????need_money_buf?<=?"0000";
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
--投幣累計
???PROCESS?(clk,?reset_n)
???BEGIN
??????IF?(reset_n?=?'0')?THEN
?????????input_money_buf?<=?"0000";
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????IF?(state?=?"010")?THEN
????????????IF?(coin_1_p?=?'1')?THEN
???????????????input_money_buf?<=?input_money_buf?+?"0001";--投幣1元
????????????ELSIF?(coin_5_p?=?'1')?THEN
???????????????input_money_buf?<=?input_money_buf?+?"0101";--投幣5元
????????????ELSIF?(coin_2_p?=?'1')?THEN
???????????????input_money_buf?<=?input_money_buf?+?"0010";--投幣2元
????????????ELSIF?(coin_10_p?=?'1')?THEN
???????????????input_money_buf?<=?input_money_buf?+?"1010";--投幣10元
????????????ELSE
???????????????input_money_buf?<=?input_money_buf;
????????????END?IF;
?????????ELSIF?(state?=?"100")?THEN
????????????input_money_buf?<=?"0000";
?????????END?IF;
??????END?IF;
???END?PROCESS;

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

本代碼已在Basys2開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

basys2.png

演示視頻:

設計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. Testbench

5. 仿真圖

整體仿真圖

按鍵下降沿輸出模塊仿真

售貨機控制模塊仿真,下圖select_p按下三次,最終選擇了7元商品(select_num=7),再按下確認鍵(confirm_p=1)后開始投幣,先后投幣了1,2,5元,共8元(input_money=8),找零金額為refound_money=1。

數(shù)碼管顯示模塊仿真

7段數(shù)碼管對照編碼

部分代碼展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???
?--頂層模塊
ENTITY?auto_sell?IS
???PORT?(
??????clk_50M????????:?IN?STD_LOGIC;--50M時鐘
??????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);--數(shù)碼管位選
??????seg_select?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--數(shù)碼管段選
???);
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)
???);
END?component;
???SIGNAL?select_num????????:?STD_LOGIC_VECTOR(3?DOWNTO?0);
???SIGNAL?input_money???????:?STD_LOGIC_VECTOR(3?DOWNTO?0);
???SIGNAL?refound_money?????:?STD_LOGIC_VECTOR(3?DOWNTO?0);
???
???SIGNAL?confirm_p?????????:?STD_LOGIC;
???SIGNAL?select_p??????????:?STD_LOGIC;
???SIGNAL?concel_p??????????:?STD_LOGIC;
???
???SIGNAL?coin_1_p??????????:?STD_LOGIC;
???SIGNAL?coin_2_p??????????:?STD_LOGIC;
???SIGNAL?coin_5_p??????????:?STD_LOGIC;
SIGNAL?coin_10_p??????????:?STD_LOGIC;
???
???--?Declare?intermediate?signals?for?referenced?outputs
???SIGNAL?buy_succeed_buf?:?STD_LOGIC;
???SIGNAL?bit_select_buf??:?STD_LOGIC_VECTOR(3?DOWNTO?0);
???SIGNAL?seg_select_buf??:?STD_LOGIC_VECTOR(7?DOWNTO?0);
BEGIN
???--?Drive?referenced?outputs
???buy_succeed?<=?buy_succeed_buf;
???bit_select?<=?bit_select_buf;
???seg_select?<=?seg_select_buf;
--調(diào)用按鍵消抖模塊???
???i1_key_jitter?:?key_jitter
??????PORT?MAP?(
?????????clkin????????=>?clk_50M,
?????????key_in???????=>?select_key_n,
?????????key_negedge??=>?select_p
??????);
???
???
--調(diào)用按鍵消抖模塊???
???i2_key_jitter?:?key_jitter
??????PORT?MAP?(
?????????clkin????????=>?clk_50M,
?????????key_in???????=>?confirm_key_n,
?????????key_negedge??=>?confirm_p
??????);
???
???
--調(diào)用按鍵消抖模塊???
???i3_key_jitter?:?key_jitter
??????PORT?MAP?(
?????????clkin????????=>?clk_50M,
?????????key_in???????=>?cancel_key_n,
?????????key_negedge??=>?concel_p
??????);
???
???
--調(diào)用按鍵消抖模塊???
???i4_key_jitter?:?key_jitter
??????PORT?MAP?(
?????????clkin????????=>?clk_50M,
?????????key_in???????=>?coin_1_n,
?????????key_negedge??=>?coin_1_p
??????);
???
???
--調(diào)用按鍵消抖模塊???
???i5_key_jitter?:?key_jitter
??????PORT?MAP?(
?????????clkin????????=>?clk_50M,
?????????key_in???????=>?coin_2_n,
?????????key_negedge??=>?coin_2_p
??????);
???
???
--調(diào)用按鍵消抖模塊???
???i6_key_jitter?:?key_jitter
??????PORT?MAP?(
?????????clkin????????=>?clk_50M,
?????????key_in???????=>?coin_5_n,
?????????key_negedge??=>?coin_5_p
??????);
--調(diào)用按鍵消抖模塊???
???i7_key_jitter?:?key_jitter
??????PORT?MAP?(
?????????clkin????????=>?clk_50M,
?????????key_in???????=>?coin_10_n,
?????????key_negedge??=>?coin_10_p
??????);
???
?--調(diào)用售貨控制模塊??
???i_sell_ctrl?:?sell_ctrl
??????PORT?MAP?(
?????????clk????????????=>?clk_50M,
?????????reset_n????????=>?reset_n,
?????????
?????????confirm_p??????=>?confirm_p,
?????????select_p???????=>?select_p,
?????????concel_p???????=>?concel_p,
?????????
?????????coin_1_p???????=>?coin_1_p,
?????????coin_2_p???????=>?coin_2_p,
?????????coin_5_p???????=>?coin_5_p,
coin_10_p??????=>?coin_10_p,
?????????
?????????buy_succeed????=>?buy_succeed_buf,
?????????select_num?????=>?select_num,
?????????input_money????=>?input_money,
?????????refound_money??=>?refound_money
??????);
???
???
?--調(diào)用顯示模塊??
???i_display?:?display
??????PORT?MAP?(
?????????clk????????????=>?clk_50M,
?????????
?????????select_num?????=>?select_num,
?????????input_money????=>?input_money,
?????????refound_money??=>?refound_money,
?????????
?????????bit_select?????=>?bit_select_buf,
?????????seg_select?????=>?seg_select_buf
??????);
???
END?trans;

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

  • 1-2311062209123F.doc
    下載

相關推薦

枣强县| 通河县| 萝北县| 怀柔区| 方正县| 年辖:市辖区| 五莲县| 陵川县| 邵阳市| 高台县| 神池县| 哈尔滨市| 台南市| 灵台县| 桂阳县| 寻乌县| 红河县| 鄂伦春自治旗| 沅陵县| 灵宝市| 阿巴嘎旗| 赤城县| 古田县| 延长县| 霸州市| 福贡县| 周口市| 盐山县| 胶州市| 万安县| 栾城县| 连平县| 中山市| 贺兰县| 民和| 内黄县| 师宗县| 临澧县| 疏附县| 永清县| 东乌珠穆沁旗|