版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、通信線路EDA課程項(xiàng)目 -關(guān)于VHDL語言模擬地鐵售票控制系統(tǒng)設(shè)計(jì) 項(xiàng)目組負(fù)責(zé)人:胡弘正 通信0903(200985250321)項(xiàng) 目組成員:劉上校 通信0903(200985250317) 鄒 娟 通信0901(200985250103)完 成 日 期 :遙遙無期一、 設(shè)計(jì)要求:功能描述:用于模仿地鐵售票的自動(dòng)售票,完成地鐵售票的核心控制功能。功能要求:售票機(jī)有兩個(gè)進(jìn)幣孔,一個(gè)是輸入硬幣,一個(gè)是輸入紙幣,硬幣的識(shí)別范圍是5角和1 元的硬幣,紙幣的識(shí)別范圍是1 元、2 元,5 元,10 元。乘客可以連續(xù)多次投入錢幣。乘客可以選擇的種類為2 元和4 元,乘客一次只能選擇一個(gè)出站口。購(gòu)買車票時(shí),
2、乘客先選擇出站名,然后選擇所需的票數(shù),再進(jìn)行投幣,投入的錢幣達(dá)到所需金額時(shí),售票機(jī)自動(dòng)出票,并找出余額,本次交易結(jié)束,等待下一次的交易。在投幣期間,乘客可以按取消鍵取消本次操作,錢幣自動(dòng)退出。功能描述:用于模仿地鐵售票的自動(dòng)售票,完成地鐵售票的核心控制功能。功能要求:售票機(jī)有兩個(gè)進(jìn)幣孔,一個(gè)是輸入硬幣,一個(gè)是輸入紙幣,硬幣的識(shí)別范圍是5角和1 元的硬幣,紙幣的識(shí)別范圍是1 元、2 元,5 元,10 元。乘客可以連續(xù)多次投入錢幣。乘客可以選擇的種類為2 元和4 元,乘客一次只能選擇一個(gè)出站口。購(gòu)買車票時(shí),乘客先選擇出站名,然后選擇所需的票數(shù),再進(jìn)行投幣,投入的錢幣達(dá)到所需金額時(shí),售票機(jī)自動(dòng)出票,
3、并找出余額,本次交易結(jié)束,等待下一次的交易。在投幣期間,乘客可以按取消鍵取消本次操作,錢幣自動(dòng)退出。二 課題分析1 買車票時(shí),乘客按“開始選擇”按鈕,接著選擇出站口接著 選擇購(gòu)票數(shù)量(根據(jù)提示,一次購(gòu)票數(shù)限制在3張以內(nèi));然后按“開始投幣”按鈕,投入錢幣;當(dāng)投入的錢幣達(dá)到所需金額時(shí),售票機(jī)自動(dòng)出票,并找出余額??紤]到控制整個(gè)售票機(jī)的物理體積,余額將全部采用5角硬幣的形式找出。2 選擇出站口或投幣過程中,乘客都可以按“取消”按鈕取消該次交易。選擇出站口的過程中,若按“取消”,則售票機(jī)直接回到初始狀態(tài);投幣過程中,若按“取消”,則售票機(jī)將乘客已經(jīng)投入的錢幣全部退出,再回到初始狀態(tài)。3 客一次只能選
4、擇一個(gè)出站口,根據(jù)乘坐的站數(shù)確定票價(jià)。假設(shè)乘客購(gòu)票所在站到終點(diǎn)站共有15站。若乘坐1-8站,則票價(jià)為2元張;若乘坐9-16站,則票價(jià)為4元張。16個(gè)站用長(zhǎng)度位4的二進(jìn)制向量編碼表示,即0001表示乘坐1站,0010表示乘坐2站,依次類推,1111表示乘坐15站(到終點(diǎn)站)。4 票機(jī)有2個(gè)進(jìn)幣端口。硬幣口可識(shí)別5角和1元2種硬幣,擬用長(zhǎng)度為2的一比特?zé)嵛唬╫ne-hot)編碼方式表示,即01表示5角,10表示1元。紙幣口類似,用長(zhǎng)度為4的一比特?zé)嵛痪幋a方式表示。乘客可以連續(xù)多次投入錢幣,并且可以以任意順序投入硬幣和紙幣。5 票機(jī)設(shè)有錢幣“暫存桿”,其有3個(gè)狀態(tài):退幣狀態(tài)、等待狀態(tài)、進(jìn)幣狀態(tài),分別
5、用00、01、10表示。退幣狀態(tài)下,“暫存桿”將乘客投入的錢幣推出;等待狀態(tài)下,投入的錢幣被“暫存桿”擋住暫存;進(jìn)幣狀態(tài)下,“暫存桿”將乘客投入的錢幣推入售票機(jī)內(nèi)部。三、系統(tǒng)流程圖:初始狀態(tài)按“開始選擇”選擇出站口按“開始投幣”投入錢幣錢幣足夠找零口找零出票口出票按“取消”按“取消”退回錢幣錢幣入庫(kù)選擇購(gòu)票數(shù)四系統(tǒng)狀態(tài)圖五、程序源代碼及注釋library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity subway isport(clk:in std_logic;-系統(tǒng)時(shí)鐘select_start:
6、in std_logic;-“開始選擇”按鈕insert_start:in std_logic;-“開始投幣”按鈕coin:in std_logic_vector(1 downto 0);-硬幣入口note:in std_logic_vector(3 downto 0);-紙幣入口cancel:in std_logic;-“取消”按鈕ticket_stop:in std_logic_vector(3 downto 0);-出站口編號(hào)ticket_account:in std_logic_vector(1 downto 0);-購(gòu)票張數(shù)money_gate:out std_logic_vecto
7、r(1 downto 0);-錢幣“暫存桿”ticket_out:out std_logic_vector(4 downto 0);-購(gòu)買的車票ticket_gate:out std_logic;-出票口change_gate:out std_logic-找零口);end subway;architecture behave of subway istype state_type is (initialize_state,select_state,insert_state,ticket_state,change_state);-狀態(tài)變量申明signal state:state_type;-狀態(tài)
8、信號(hào)申明beginprocess(clk)variable type_temp:std_logic;-記錄是否已選擇出站口的變量variable account_temp:std_logic;-記錄是否已選擇購(gòu)票張數(shù)的變量variable temp_type:std_logic_vector(4 downto 0);-記錄票種的中間變量variable temp_account:std_logic_vector(4 downto 0); -記錄票數(shù)的中間變量variable price:std_logic_vector(7 downto 0);-記錄單張票價(jià)的變量variable number
9、:std_logic_vector(1 downto 0);-記錄票數(shù)的變量variable total_price:std_logic_vector(7 downto 0);-記錄總票價(jià)的變量variable total_insert:std_logic_vector(7 downto 0);- 記錄投入錢幣總額的變量variable change:std_logic_vector(7 downto 0);-記錄應(yīng)找零金額的變量variable sign:std_logic;-記錄系統(tǒng)是否已經(jīng)過初始化的變量variable temp:std_logic;-記錄投入錢幣金額達(dá)到總票價(jià)的變量be
10、ginif (clkevent and clk=1) then-時(shí)鐘信號(hào)上升沿觸發(fā)case state iswhen initialize_state=-初始狀態(tài)if(sign=0)then-表示系統(tǒng)未經(jīng)過初始化 money_gate=00;-錢幣“暫存桿”退出錢幣ticket_out=00000;-購(gòu)票記錄清零ticket_gate=0;-出票口關(guān)閉change_gate=0;-找零口關(guān)閉temp_type:=00000;-票種記錄清零temp_account:=00000;-票數(shù)記錄清零type_temp:=0;account_temp:=0;price:=00000000;-單張票價(jià)記錄
11、清零number:=00;-購(gòu)票張數(shù)記錄清零total_price:=00000000;-票價(jià)總額記錄清零total_insert:=00000000;-投入錢幣總額記錄清零change:=00000000;-應(yīng)找零金額記錄清零sign:=1;-記錄已完成系統(tǒng)初始化temp:=0;-投入達(dá)到總票價(jià)記錄清零else-表示系統(tǒng)已經(jīng)過初始化money_gate=01;-錢幣“暫存桿”歸為等待狀態(tài)if (select_start=1) then-按下“開始選擇”按鈕sign:=0;state-選擇狀態(tài)if(type_temp=0)then-表示尚未選擇出站口if(ticket_stop=0001)an
12、d(ticket_stop=1001)and(ticket_stop-選擇3張票temp_account:=00100;-表示3張票number:=11;-購(gòu)票張數(shù)為3total_price:=price+price+price; -計(jì)算總票價(jià)account_temp:=1; -記錄已選擇購(gòu)票張數(shù) when 10=-選擇2張票temp_account:=00010;number:=10;total_price:=price+price;account_temp:=1; when 01=-選擇1張票temp_account:=00001;number:=01;total_price:=price
13、;account_temp:=1; when others=null; end case;end if;if(type_temp=1)and(account_temp=1)then-表示已選擇出站口且已選擇購(gòu)票張數(shù)if(insert_start=1) then-按下“開始投幣”按鈕state=insert_state;-系統(tǒng)進(jìn)入投幣狀態(tài)end if;end if; if(cancel=1) then-按下“取消”按鈕state-投幣狀態(tài) case note is-紙幣識(shí)別 when 0001=-1元紙幣total_insert:=total_insert+00001010;-重新計(jì)算投幣總額
14、when 0010=total_insert:=total_insert+00010100;-2元紙幣 when 0100=total_insert:=total_insert+00110010;-5元紙幣 when 1000=total_insert:=total_insert+01100100;-10元紙幣 when others=null;end case;case coin is-硬幣識(shí)別when 01=total_insert:=total_insert+00000101;-5角硬幣when 10=total_insert:=total_insert+00001010;-1元硬幣wh
15、en others=null; end case;if(cancel=1) then-按下“取消”按鈕state=initialize_state;-回到初始狀態(tài)end if;if(temp=1)then-判斷投入錢幣金額達(dá)到總票價(jià)money_gate=10;-錢幣“暫存桿”將錢幣推入售票機(jī)內(nèi),表示接受投幣state=total_price)then-判斷投入總金額是否已達(dá)到票價(jià)總額temp:=1; -記錄投入錢幣金額達(dá)到總票價(jià)end if;when ticket_state=-出票狀態(tài)-計(jì)算應(yīng)找零金額if(number=11)thenchange:=total_insert-price-pr
16、ice-price;elsif(number=10)thenchange:=total_insert-price-price;elsif(number=01)thenchange:=total_insert-price;end if;ticket_out=temp_type+temp_account; -計(jì)算輸出車票ticket_gate00000000)then-判斷是否還有找零state=change_state;-系統(tǒng)進(jìn)入找零狀態(tài)elsestate-找零狀態(tài)-找零口打開時(shí),可控制每個(gè)時(shí)鐘上升沿推出一個(gè)5角的硬幣if(change00000000)thenchange_gate=1;-找零
17、口打開change:=change-00000101;-計(jì)算剩余應(yīng)找零金額elsechange_gate=0;-找零口關(guān)閉state=total_price)。(6)系統(tǒng)進(jìn)入出票狀態(tài)(ticket_state):系統(tǒng)準(zhǔn)備好4元的票3張(10100),出票口打開(ticket_gate=1)出票。(7)系統(tǒng)進(jìn)入找零狀態(tài)(change_state):找零口打開(change_gate=1)找零,每個(gè)時(shí)鐘上升沿時(shí)出一個(gè)5角硬幣,變量change實(shí)時(shí)顯示剩余應(yīng)找零金額。(8)找零完畢,找零口關(guān)閉;出票口關(guān)閉。系統(tǒng)回到初始狀態(tài)。此段仿真主要驗(yàn)證了連續(xù)投入單種介質(zhì)錢幣購(gòu)票且找零的功能正常。系統(tǒng)全部恢復(fù)初始
18、狀態(tài)的時(shí)間在4.56us左右(如圖)。4(1)乘客在約4.75us時(shí)按下“開始選擇”按鈕,系統(tǒng)進(jìn)入選擇狀態(tài)。 (2)乘客選擇出站口為第12站,系統(tǒng)得出票價(jià)為4元;選擇購(gòu)買2張,系統(tǒng)得出票數(shù)為2張。進(jìn)而得出總票價(jià)為8元。 (3)乘客按下“開始投幣”按鈕,系統(tǒng)進(jìn)入投幣狀態(tài)。 (4)乘客依次投入5角硬幣、5角硬幣、5元紙幣、5角硬幣、1元硬幣、2元紙幣,系統(tǒng)實(shí)時(shí)計(jì)算投入的總金額。 (5)系統(tǒng)判斷投入的總金額已經(jīng)達(dá)到票價(jià)總額。(6)系統(tǒng)進(jìn)入出票狀態(tài):系統(tǒng)準(zhǔn)備好4元的票2張,出票口打開出票。(7)系統(tǒng)進(jìn)入找零狀態(tài):找零口打開找零,每個(gè)時(shí)鐘上升沿時(shí)出一個(gè)5角硬幣,變量change實(shí)時(shí)顯示剩余應(yīng)找零金額。(8)找零完畢,找零口關(guān)閉;出票口關(guān)閉。系統(tǒng)回到初始狀態(tài)。此段仿真主要驗(yàn)證了連續(xù)混合投入硬幣和紙幣購(gòu)票且找零的功能正常。系統(tǒng)全部恢復(fù)初始狀態(tài)的時(shí)間在7.36us左右(限于版面,未在下圖中標(biāo)出,向右移動(dòng)水平進(jìn)度條可定位)。5(1)乘客在約7.55
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 口播類錄音技巧培訓(xùn)課件
- 2026年寶雞三和職業(yè)學(xué)院招聘?jìng)淇碱}庫(kù)(3人)及一套參考答案詳解
- 口才班培訓(xùn)課件
- 保育員三級(jí)考試試題試卷(含答案)
- 2025年工業(yè)機(jī)器人題庫(kù)及答案
- 信宜市消防員考試題庫(kù)2025
- 2026云南臨滄市永德縣勐底農(nóng)場(chǎng)衛(wèi)生院高校見習(xí)生招聘2人備考題庫(kù)及答案詳解參考
- 2025湖北武漢大型建筑工程公司招聘5人備考題庫(kù)完整答案詳解
- 2026學(xué)年上海市閔行區(qū)浦航實(shí)驗(yàn)中學(xué)教師招聘?jìng)淇碱}庫(kù)及答案詳解(新)
- 2026年淮北市特種設(shè)備監(jiān)督檢驗(yàn)中心公開招聘專業(yè)技術(shù)人員4名備考題庫(kù)及參考答案詳解一套
- 紹興金牡印染有限公司年產(chǎn)12500噸針織布、6800萬米梭織布高檔印染面料升級(jí)技改項(xiàng)目環(huán)境影響報(bào)告
- 成人呼吸支持治療器械相關(guān)壓力性損傷的預(yù)防
- DHA乳狀液制備工藝優(yōu)化及氧化穩(wěn)定性的研究
- 2023年江蘇省五年制專轉(zhuǎn)本英語統(tǒng)考真題(試卷+答案)
- 三星-SHS-P718-指紋鎖使用說明書
- 岳麓書社版高中歷史必修三3.13《挑戰(zhàn)教皇的權(quán)威》課件(共28張PPT)
- GC/T 1201-2022國(guó)家物資儲(chǔ)備通用術(shù)語
- 污水管網(wǎng)監(jiān)理規(guī)劃
- GB/T 6730.65-2009鐵礦石全鐵含量的測(cè)定三氯化鈦還原重鉻酸鉀滴定法(常規(guī)方法)
- GB/T 35273-2020信息安全技術(shù)個(gè)人信息安全規(guī)范
- 《看圖猜成語》課件
評(píng)論
0/150
提交評(píng)論