自動售飲料機_第1頁
自動售飲料機_第2頁
自動售飲料機_第3頁
自動售飲料機_第4頁
自動售飲料機_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

河北科技大學課程設計報告學生姓名: 學號: 專業班級: 課程名稱:EDA技術課程設計 學年學期:2013—2014學年第1學期扌旨導教師: 2013年12月

課程設計成績評定表學生姓名學號成績專業班級起止時間2013.11.25——2013.12.8設計題目自動售飲料機指導教師評語指導教師:年月日目錄TOC\o"1-5"\h\z一、 課程設計目的 4\o"CurrentDocument"二、 課程設計原理 4三、 課程設計內容 5\o"CurrentDocument"四、 課程設計結果 9\o"CurrentDocument"五、 心得體會 10課程設計目的通過這次課程設計對自己以前學過的知識加以鞏固,再次熟悉EDA設計軟件QuartusII的使用方法,掌握EDA的設計流程,更加熟練進行綜合、仿真、調試、分配管腳、下載等操作,并再次基礎上學會如何設計一個工程,與實際生活結合起來,既鍛煉自己的動手能力,又鍛煉了自己的思維能力,為以后進行工程的實際問題的研究打下設計基礎。二?課程設計原理該自動售飲料機設有一個投幣孔,通過傳感器來識別兩種硬幣,給出兩個不同的信號。在此用half_dollar和one_dollar分別表示投入0.5元和1.0元硬幣后電路接收到的兩個信號;三個飲料選擇按鍵choose01表示選擇價格為1.5元的飲料,choose10表示選擇價格為2.0元的飲料,choosell表示選擇價格為2.5元的飲料;rest表示復位按鍵;有2個輸出口分別為飲料出口dispense和找零出口outl;用s0表示初始狀態,sl表示投入0.5元硬幣時的狀態,s2表示投入1.0元硬幣時的狀態,S3表示投入1.5元硬幣時的狀態,s4表示投入2.0元時的狀態;clk表示時鐘信號;機器最多接受的錢幣為3.0元。當投入的錢幣到達1.5元或高于1.5元時機器處于出售飲料的狀態。當到達1.5元時如果選擇購買1.5元的飲料(choose01測系統給出一個飲料,即dispense為高電平一次。如果投入的錢幣到達2.0元并且選擇購買1.5元的飲料則系統顯示給出一個飲料并找出1枚0.5元的硬幣,即dispense為高電平一次out1為高電平一次。如果選擇購買2.0元的飲料(choose10),則系統顯示給出一個2.0元的飲料,即飲料輸出信號dispense為高電平一次。依次類推。1?程序設計⑶⑷VHDL(VeryHighSpeedHardwareDescriptionLanguage高速硬件描述語言)是硬件描述語言中應用最廣泛的一種。是由美國國防部于1983年創建,由IEEE進一步發展并在1987年定為“IEEE1076/1987標準版本”由于VHDL支持硬件設計、綜合、仿真和測試,在電子設計領域得到廣泛的應用和普及。IEEE又于1993年重新對VHDL進行修訂,形成了新的標準,即IEEESTD1067-1993。VHDL具有一系列的優點:①VHDL具有很強的硬件描述能力,能夠從多個層次對數字系統進行建模,從高層次的行為描述到低層次的RTL描述以及門結構描述都能實現,尤其是系統級的描述能力是其他硬件描述語言無法比擬的。②良好的通用性,用VHDL設計的電路不受硬件電路元件的支配,與開發軟件平臺無關,具有很強的通用性。③支持多種設計方法,可以采用自頂向下、自底向上和混合方法三種形式,尤其是自頂向下的設計方法是VHDL獨有的。④便于更新。⑤結構易讀、易懂。所以這次程序的編寫采用VHDL來完成。根據上述對自動售飲料機邏輯狀態的分析,編寫程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitystmch1isport(clk,rst,half_dollar,one_dollar:instd_logic;choose:instd_logic_vector(1downto0);out1,dispense:outstd_logic);endstmch1;architecturebehaveofstmch1istypestate_valuesis(s2,s0,s1,s3,s4);signalstate,next_state:state_values;beginprocess(clk,rst)beginifrst='1'thenstate<=s0;elsif(clk'eventandclk=T)thenstate<=next_state;endif;endprocess;process(state,half_dollar,one_dollar,choose)beginoutl<='O';dispensev='O';next_state<=s0;casestateiswhens0=>訐(half_dollar=T)thennext_state<=s1;elsif(one_dollar=T)thennext_state<=s2;elsenext_state<=s0;endif;whens1=>訐(half_dollar=T)thennext_state<=s2;elsif(one_dollar=T)thennext_state<=s3;elsenext_state<=s1;endif;whens2=>訐(half_dollar=T)thenif(choose="01")thendispensev=T;elsenext_state<=s3;endif;elsif(one_dollar='1')thenif(choose="10")thendispensev=T;elsenext_state<=s4;endif;elsenext_state<=s2;endif;whens3=>訐(choose="01")thendispensev=T;elsif(choose="10")then訐(half_dollar='1')thendispensev=T;elsif(one_dollar='1')thendispense<=Toutl<=Telsenext_statev=s3;endif;elsif(choose="11")then訐(half_dollar='1')thennext_state<=s4;elsif(one_dollar='1')thendispensev=T;elsenext_statev=s3;endif;elsenext_state<=s3;endif;whens4=>if(choose="01")thendispensev=T;out1v=T;elsif(choose="10")thendispensev=T;elsif(choose="11")then訐(half_dollar=T)thendispensev=T;elsif(one_dollar=T)thenoutl<=T;dispensev=T;endif;elsenext_state<=s4;endif;endcase;endprocess;endbehave;4?時序仿真4.1創建VHDL源文件⑸先打開MAX+PlusII,進入項目管理界面后,打開“File”f“New”,會彈出一個“NEW”的對話框,選擇建立源文件類型。因為本設計采用VHDL語言來實現,所以選擇“TextEditorFile”選項,按“OK”鍵,進入文本編輯窗口。在文本編輯窗口中,輸入上面的源文件。再以stmch1.vhd存盤。存盤后點擊“File”一"Project”下選擇“SetProjecttoCurrentFile”使得標題的名稱變成當前的工程名。4.2選擇合適的器件設置完工程名后,下一步就是選擇合適的器件編譯。選擇“Assign”一"Device”,打開如下圖所示的窗口,在DeviceFamily對話框中選擇FLEX10K,然后選擇EPF10K10LC84-4器件。4.3編譯程序在語言的設計當中,往往會出現一些錯誤,編譯時會出現一些錯誤提示。有時盡管只有一、二個小錯,但會出現大量的錯誤信息。所以在編譯時應在編輯窗口中找到第一次出錯的提示,并用鼠標拖黑,然后單擊上面的“Locate”錯誤定位鍵,就可以在出現的文本編譯窗口中閃動的光標附近找到錯誤所在。糾正后再編譯,直至排除錯誤。4.4仿真波形選中“MAX+PLUSII”一“WaveformEditor”并單擊,彈出波形編輯窗口。選中'Node”一“EnterNodeFormSNF”,彈出一個對話框。在對話框中單擊“List”按鈕,選中所有信號,然后,單擊“=>”按鈕,所選信號出現在右邊的“SelectedNodes&Groups”窗口中。如圖4.3所示。選擇“Option”一“GridSize”,可以設定時間軸網格的大小。選中“MAX+PlusII”一“Simulator”,并單擊左鍵,彈出一個對話框,可以設置起始和結束的時間。單擊“Start”按鈕進行仿真,仿真完成后,單擊“OpenSCF”按鈕,就可以打開波形編輯器,觀察、分析仿真結果。四?課程設計結果仿真波形分析根據投幣信息和購買類型的不同組合,會產生很多種輸出波形。在此僅以幾種典型情況為例,給出其仿真波形。如下圖4.5為當選擇購買1.5元的飲料并投入兩枚1.0元的硬幣時的波形。由圖可以看到當投入2.0元時,dispense(飲料機的飲料輸出端)給出高電平一次,也就是系統給出一個價值1.5元的飲料和outl(找零的輸出端)為高電平一次,即給出0.5元的硬幣一枚。站衛匝 H*]伽E阪 |Bilerval: ]如下圖4.6所示為當選擇飲料2,即價格為2.0元的飲料時,投入兩枚1.0元的硬幣時所出現的波形。因為價格和所投入的錢幣相同,所以找零為零,只給出一個價格為2.0元的飲料,如圖4.7所示為當選擇飲料3時,并投入3枚1.0元的硬幣時的波形圖。在這時機器應該給出1個價格為2.5元的飲料的同時給出一枚0.5元的硬幣。在圖中我們看到當投入3枚一元的硬幣后的第一個上升沿到來后,dispense和out1同時出現高電平一次,即給出一個價格為2.5元的飲料并找出0.5元,這與所設想的一樣,說明所編寫的程序是正確的。Q2n?i*l*lTn詢X.Bnt「.如s;-O^ns恤mp^Value.20.0ns 4DDns SO.OhsBO.Qis IDa.Ons 12Q0oflB_do

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論