下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、頁眉1/ 9出租車計(jì)費(fèi)器出租車的出現(xiàn)給人們的生活帶來了極大的便利,日漸成為城市交通工具中重要的成員之一。本實(shí)驗(yàn)以日常所見的出租車計(jì)費(fèi)器為設(shè)計(jì)目標(biāo),實(shí)現(xiàn)其計(jì)程、計(jì)時(shí)、預(yù)置、計(jì) 費(fèi)等功能。一、系統(tǒng)設(shè)計(jì)要求設(shè)計(jì)一個(gè)滿足日常生活所需功能的出租車計(jì)費(fèi)器。該計(jì)費(fèi)器能實(shí)現(xiàn)計(jì)費(fèi)功能。車起步開始計(jì)費(fèi),首先顯示起步價(jià),起步費(fèi)為3.00 兀,車在行駛 3KM 以內(nèi),只收起步價(jià)。車行駛超過 3KM 之后,沒 KM2 元,車費(fèi)依次累加。 當(dāng)總費(fèi)用達(dá)到或超過 40 元時(shí),每 KM 收費(fèi) 4 元。當(dāng)遇到紅燈或客戶需要停車等待時(shí), 則按時(shí)間計(jì)費(fèi),計(jì)費(fèi)單價(jià)為每 20s 收費(fèi) 1 元。實(shí)現(xiàn)計(jì)費(fèi)器預(yù)置功能,能夠預(yù)置起步費(fèi)、每公里收
2、費(fèi)、車行加費(fèi)里程、計(jì)時(shí)收費(fèi)等。可以模擬汽車行駛、停止、暫停等狀態(tài),并根據(jù)不同狀態(tài)進(jìn)行計(jì)費(fèi)。以十進(jìn)制顯示出租車行駛路程與車費(fèi)。二、系統(tǒng)設(shè)計(jì)方案分析系統(tǒng)設(shè)計(jì)要求不難得知,整個(gè)出租車計(jì)費(fèi)系統(tǒng)按功能主要分為速度模塊、計(jì)程 模塊、計(jì)時(shí)模塊和計(jì)費(fèi)模塊。速度模塊:通過對(duì)速度信號(hào) sp 的判斷,決定變量 kin side 的值。kin side 即是進(jìn)行 100m所需要的時(shí)鐘周期數(shù),然后每行進(jìn) 100m,則產(chǎn)生一個(gè)脈沖 clkout。計(jì)程模塊:由于一個(gè) clkout 信號(hào)代表行進(jìn) 100m,故通過對(duì) clkout 計(jì)數(shù),可以獲得 共行進(jìn)的距離 kmcount。計(jì)時(shí)模塊:在汽車啟動(dòng)后,當(dāng)遇到顧客等人或紅燈時(shí),出
3、租車采用計(jì)時(shí)收費(fèi)的方式。 通過對(duì)速度信號(hào) sp 的判斷決定是否開始記錄時(shí)間。當(dāng) sp=0 時(shí),開始記錄時(shí)間。當(dāng)時(shí)間 達(dá)到足夠長時(shí)則產(chǎn)生 timecount 脈沖,并重新計(jì)時(shí)。一個(gè) timecount 脈沖相當(dāng)于等待的時(shí) 間達(dá)到了時(shí)間計(jì)費(fèi)的長度。這里選擇系統(tǒng)時(shí)鐘頻率為 500HZ,20s 即計(jì)數(shù)值為 1000。計(jì)費(fèi)模塊由兩個(gè)進(jìn)程組成。其中,一個(gè)進(jìn)程根據(jù)條件對(duì)enable 和 price 賦值:當(dāng)記錄的距離達(dá)到 3 公里后 enable 變?yōu)?1,開始進(jìn)行每公里收費(fèi),當(dāng)總費(fèi)用大于40 元,則單價(jià) price 由原來的 2 元每公里變?yōu)?4 元每公里;第二個(gè)進(jìn)程在每個(gè)時(shí)鐘周期判斷 timecount
4、和 clkout 的值。當(dāng)其為 1 時(shí),則在總費(fèi)用上加上相應(yīng)的費(fèi)用。三、VHDL 編程速度模塊的 VHDL 代碼如下:Library IEEE;USE IEEE.STD_LOGIC_1164.ALL;頁眉2/ 9USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY speed ISPORT ( clk : IN STD_LOGIC;reset : IN STD_LOGIC;start: IN STD_LOGIC;stop: IN STD_LOGIC;sp: IN STD_LOGIC_VECTOR(2 DOWNTO 0); clkout: OUT STD_LOGIC;);
5、END speed;ARCHITECTURE rtl OF speed ISBEGINPROCESS (clk, reset, stop, start, sp) TYPE state_type IS (s0,s1);VARIABLE s_state: state_type;VARIABLE cnt: integer range 0 to 28;VARIABLE kinside: integer range 0 to 30; BEGINCASE sp ISWHEN“000”=kinside :=0;WHEN“001”=kinside :=28;WHEN“010”=kinside :=24;WHE
6、N“011”=kinside :=20;WHEN“100”=kinside :=16;WHEN“101”=kinside :=12;WHEN“110”=kinside :=8;WHEN“111”=kinside :=4;END CASE;IF reset=1THENs_state:=s0;ELSIF (rising_edge(clk) then CASE s_state isWHEN s0=cn t:=0;clkoutClkout=IF (stop=)THENs_state=s0;ELSIF sp=”000” then s_state:=s1;ELSIF cn t=k in side the
7、ncnt:=0; clkout= ;s_state:=s1;ELSE cn t:=c nt+1;s_state:=s1;END IF;END CASE;END IF;END PROCESS;END rtl;計(jì)程模塊的 VHDL 代碼如下:Library IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY kilometers ISPORT ( clkout, reset : IN STD_LOGIC;kmcnt1,kmc nt2,kmcnt3: OUT STD_LOGIC_VECTOR(3 DOWNTO
8、 0) );END kilometers;ARCHITECTURE rtl OF kilometers ISBEGINPROCESS (clkout, reset)VARIABLE km_reg: STD_L0GIC_VECT0R(11 DOWNTO 0);BEGINIF reset=1THENkm_reg:=”000000000000;ELSIF (risi ng_edge(clkout) the nIF km_reg(3 DOWNTO 0)= ”001” THEN km_reg := km_reg頁眉4/ 9+”0111”;ELSE km_reg(3 DOWNTO 0)= km_reg(3
9、 DOWNTO 0)+ ”0001”;END IF;IF km_reg(7 DOWNTO 4)= ”1010” THENkm_reg := km_reg +”01100000;END IF;END IF;kmc nt1=km_reg(3 DOWNTO 0);kmc nt2=km_reg(7 DOWNTO 4);kmc nt3 waittime:=0; timecountIF (sp=”000”) THEN t_state:=t2;ELSE waittime:=0; t_state:=t1; END IF;WHEN t2= waittime:= waittime +1; timecount=0;
10、 IF waittime =1000THEN waittime:=0; timecount=1;ELSIF stop=1then t_state:=t0; ELSIF sp=”000”then t_state:=t2;ELSE timecount=0;t_state:=t1;END IF;END CASE;END IF;END PROCESS;END rtl;計(jì)費(fèi)模塊的 VHDL 代碼如下:Library IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY kmmo ney ISPORT ( clk,
11、reset, timecou nt, clkout: IN STD_LOGIC;kmcnt2, kmc nt3, cou nt1, cou nt2, cou nt3: OUT STD_LOGIC_VECTOR(3DOWNTO 0);END kmmon ey;ARCHITECTURE rtl OF kmmoney ISSIGNAL cash: STD_LOGIC_VECTOR(11 DOWNTO 0);SIGNAL price: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL en able: STD_LOGIC;頁眉6/ 9BEGIN kmmo ney 1: PROCE
12、SS (cash,kmcnt2)BEGINIF reset=1THEN cashv=OOOOOOOOOO11”;ELSIF (risi ng_edge(clk) the nIF timecou nt=1THENreg2:”001” THENreg2(7 DOWNTO 0) := reg2( 7 DOWNTO 0)+ ”00000111”;IF reg2(7 DOWNTO 4) ”001” THENcashv=reg2+”O(jiān)OOO11OOOO0;ELSE cashv=reg2+0001”;END IF;ELSIF (clkout= a nd (en able=1 THENIF clkout_c
13、nt=9 THENclkout_c nt:=O;reg2:=cash;IF 0000”®2(3 DOWNTO 0)+price(3 DOWNTO 0)”00001001”THEN reg2(7 DOWNTO 0):=reg2(7 DOWNTO 0)+ ”00000110”+price;IF reg2(7 DOWNTO 4) ”001” THEN cash=reg2+”O(jiān)OOOO11OOOO0;ELSEcash=reg2;END IF;ELSEcash=reg2+price;END IF;ELSEclkout_cnt:=clkout_c nt+1;END IF;END IF;END
14、 IF;END PROCESS;coun t1=cash(3 DOWNTO 0);cou nt2=cash(7 DOWNTO 4);coun t3=cash(11 DOWNTO 8);頁眉7/ 9END rtl;頂層模塊的 VHDL 代碼如下:Library IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY top ISPORT ( clk, reset, start, stop: IN STD_LOGIC;sp: IN STD_LOGIC_VECTOR(2 DOWNTO 0);kmcnt1,kmcnt2,kmcnt3,count1,count2,count3:
15、OUT STD_LOGIC_VECTOR(3DOWNTO 0);END top;ARCHITECTURE rtl OF top ISComponent speed isPORT ( clk : IN STD_LOGIC;reset : IN STD_LOGIC;start: IN STD_LOGIC;stop: IN STD_LOGIC;sp: IN STD_LOGIC_VECTOR(2 DOWNTO 0);clkout: OUT STD_LOGIC;);End Component speed;Component times isPORT ( clk : IN STD_LOGIC;reset
16、: IN STD_LOGIC;start: IN STD_LOGIC;stop: IN STD_LOGIC;sp: IN STD_LOGIC_VECTOR(2 DOWNTO 0);timecount: OUT STD_LOGIC;);End Component times;Component kilometers isPORT ( clkout, reset : IN STD_LOGIC;頁眉8/ 9kmcnt1,kmcnt2,kmcnt3: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);End Component kilometers;Component kmmoney
17、isPORT ( clk, reset, timecount, clkout: IN STD_LOGIC;kmcnt2, kmcnt3, count1, count2, count3: OUT STD_LOGIC_VECTOR(3 DOWNTO0);End Component kmmoney;Signal clktmp: STD_LOGIC;Signal timetmp: STD_LOGIC;Signal kmtmp2: STD_LOGIC_VECTOR(3 DOWNTO 0);Signal kmtmp3: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU1: speed port map(clk, reset, start, stop,sp,clktmp);U2: times port
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育基建招投標(biāo)合同操作規(guī)程
- 交通運(yùn)輸設(shè)備操作員聘用合同
- 橋梁混凝土路面施工合同
- 臨時(shí)采購經(jīng)理招聘協(xié)議
- 游戲劇情編劇招聘協(xié)議
- 眼鏡城導(dǎo)購員聘用合同
- 住宅小區(qū)電工施工合同樣本
- 軟件開發(fā)鋼材租賃協(xié)議
- 倉儲(chǔ)物流用地租賃合同協(xié)議書
- 關(guān)于學(xué)生會(huì)宣傳部工作計(jì)劃范文五篇
- 2024美團(tuán)外賣服務(wù)合同范本
- 2023~2024學(xué)年第一學(xué)期高一期中考試數(shù)學(xué)試題含答案
- 2023年全國中學(xué)生英語能力競賽初三年級(jí)組試題及答案
- 一種基于STM32的智能門鎖系統(tǒng)的設(shè)計(jì)-畢業(yè)論文
- 部編版道德與法治九年級(jí)上冊(cè) 8.2 共圓中國夢(mèng) 教學(xué)設(shè)計(jì)
- 河洛擇日法[技巧]
- P91材質(zhì)焊接及熱處理工程作業(yè)指導(dǎo)書(完整版)
- 醫(yī)療器械質(zhì)量保證及售后服務(wù)承諾書模板
- 英語四級(jí)單詞表4500.xls
- (最新整理)紫外可見分光光度計(jì)期間核查規(guī)程
- 阿莫的生病日ppt課件
評(píng)論
0/150
提交評(píng)論