提問者:duyuxuanhao2013-12-04 00:00
系統能自動銷售貨物,自動完成對貨物信息的存儲、進程控制、硬幣處理、余額計算和顯示等功能。 自動售貨機可以管理4種貨物,每種的數量和單價在初始化時輸入,在存儲器中存儲;用戶可以用硬幣進行購物,利用按鍵進行選擇;售貨時能夠根據用戶投入的硬幣,判斷錢幣是否夠,錢
自動售貨機VHDL程序 (1)自動售貨機VHDL程序如下: --文件名:pl_auto1.vhd。 --功能:貨物信息存儲,進程控制,硬幣處理,余額計算,顯示等功能。 --說明:顯示的錢數coin的以5角為單位。 library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity PL_auto1 is port ( clk:in std_logic; --系統時鐘 set,get,sel,finish: in std_logic; --設定、買、選擇、完成信號 coin0,coin1: in std_logic; --5角硬幣、1元硬幣 price,quantity :in std_logic_vector(3 downto 0); --價格、數量數據 item0 , act:out std_logic_vector(3 downto 0); --顯示、開關信號 y0,y1 :out std_logic_vector(6 downto 0); --錢數、商品數量顯示數據 act10,act5 :out std_logic); --1元硬幣、5角硬幣 end PL_auto1; architecture behav of PL_auto1 is type ram_type is array(3 downto 0)of std_logic_vector(7 downto 0); signal ram :ram_type; --定義RAM signal item: std_logic_vector(1 downto 0); --商品種類 signal coin: std_logic_vector(3 downto 0); --幣數計數器 signal pri,qua:std_logic_vector(3 downto 0); --商品單價、數量 signal clk1: std_logic; --控制系統的時鐘信號 begin com:process(set,clk1) variable quan:std_logic_vector(3 downto 0); begin if set='1' then ram(conv_integer(item))<=price & quantity;act<="0000"; --把商品的單價、數量置入到RAM elsif clk1'event and clk1='1' then act5<='0'; act10<='0'; if coin0='1' then if coin<"1001"then coin<=coin+1; --投入5角硬幣,coin自加1 else coin<="0000"; end if; elsif coin1='1' then if coin<"1001"then coin<=coin+2; --投入1元硬幣,coin自加2 else coin<="0000"; end if; elsif sel='1' then item<=item+1; --對商品進行循環選擇 elsif get='1' then --對商品進行購買 if qua>"0000" and coin>=pri then coin<=coin-pri;quan:=quan-1; ram(conv_integer(item))<=pri & quan; if item="00" then act<="1000"; --購買時,自動售貨機對4種商品的操作 elsif item="01" then act<="0100"; elsif item="10" then act<="0010"; elsif item="11" then act<="0001"; end if; end if; elsif finish='1' then --結束交易,退幣(找幣) if coin>"0001" then act10<='1';coin<=coin-2; --此IF語句完成找幣操作 elsif coin>"0000" then act5<='1'; coin<=coin-1; else act5<='0'; act10<='0'; end if; elsif get='0' then act<="0000"; for i in 4 to 7 loop pri(i-4)<=ram (conv_integer(item))(i); --商品單價的讀取 end loop; for i in 0 to 3 loop quan(i):=ram(conv_integer(item))(i); --商品數量的讀取 end loop; end if; end if; qua<=quan; end process com; m32:process(clk) --此進程完成對32Mhz的脈沖分頻 variable q: std_logic_vector( 24 downto 0); begin if clk'event and clk='1' then q:=q+1; end if; if q="111111111111111111111111" then clk1<='1'; else clk1<='0'; end if; end process m32; code0:process(item) --商品指示燈譯碼 begin case item is when "00"=>item0<="0111"; when "01"=>item0<="1011"; when "10"=>item0<="1101"; when others=>item0<="1110"; end case; end process; code1: process (coin) --錢數的BCD到七段碼的譯碼 begin case coin is when "0000"=>y0<="0000001"; when "0001"=>y0<="1001111"; when "0010"=>y0<="0010010"; when "0011"=>y0<="0000110"; when "0100"=>y0<="1001100"; when "0101"=>y0<="0100100"; when "0110"=>y0<="0100000"; when "0111"=>y0<="0001111"; when "1000"=>y0<="0000000"; when "1001"=>y0<="0000100"; when others=>y0<="1111111"; end case; end process; code2: process (qua) --單價的BCD到七段碼的譯碼 begin case qua is when "0000"=>y1<="0000001"; when "0001"=>y1<="1001111"; when "0010"=>y1<="0010010"; when "0011"=>y1<="0000110"; when "0100"=>y1<="1001100"; when "0101"=>y1<="0100100"; when "0110"=>y1<="0100000"; when "0111"=>y1<="0001111"; when "1000"=>y1<="0000000"; when "1001"=>y1<="0000100"; when others=>y1<="1111111"; end case; end process; end behav;
回答者:syugf2016-12-04 00:00
我看見過省人民醫院有,每層都有。別的地方就沒有注意過了。
提問者:d4494682702013-10-22
1、在高校周邊安裝售套機。發現在高校周邊安裝的售套機售賣安全套的數量遠遠大于其他公共場所。董元超表示,學校附近基本上是學生頻繁活動的場所,民工和其他市民相對較少,這充分說明學生發生性行為的現象較為普遍,對安全套的需求量較
提問者:pf040674802013-04-22
制造、加工、組裝自動售貨機;自產產品的租賃、技術服務;銷售自產產品。(法律、法規規定需要專項審批的,取得審批前,不得開展經營活動)
提問者:rongzgdzdx2013-06-20
在最后大決戰那場,sam保護火種源去樓頂的過程中,摔了一跤,火種源能量泄露,導致自動販賣機,汽車等變形,大約在2:02:00左右
提問者:izhi67852014-01-14
觸摸操作,輕點一下屏幕就行。 先選好乘車日期、上車站、到站,然后屏幕會顯示出來可以選擇的車次, 你看一下時間,比如想坐9點車,點一下,選擇買幾張票(1等座+1張或2等座+1張), 確認購票,屏幕會提示你刷二代身份證,拿出
提問者:coai5172013-01-07
客運站自助售票機同時具有售票、取票功能,屏幕采用觸摸屏,直接在屏幕上點選所需按鈕完成操作。 屏幕下方是操作臺,操作臺左側為密碼鍵盤,右側為插卡口,密碼鍵盤只用于輸入銀行卡密碼,銀行卡插入時,正面朝上,卡號位于左側。
提問者:ruohongzhao2016-01-15