出租車計費系統(tǒng) EDA課程設(shè)計報告

上傳人:dus****log 文檔編號:128927619 上傳時間:2022-08-02 格式:DOC 頁數(shù):13 大?。?78KB
收藏 版權(quán)申訴 舉報 下載
出租車計費系統(tǒng) EDA課程設(shè)計報告_第1頁
第1頁 / 共13頁
出租車計費系統(tǒng) EDA課程設(shè)計報告_第2頁
第2頁 / 共13頁
出租車計費系統(tǒng) EDA課程設(shè)計報告_第3頁
第3頁 / 共13頁

下載文檔到電腦,查找使用更方便

8 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《出租車計費系統(tǒng) EDA課程設(shè)計報告》由會員分享,可在線閱讀,更多相關(guān)《出租車計費系統(tǒng) EDA課程設(shè)計報告(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、EDA課程設(shè)計實驗報告 題 目:出租車計費系統(tǒng) 姓 名:張超峰 學(xué) 號:2008550531 班 級:2008級電子信息工程二班 指導(dǎo)老師:姚志強 完成日期:2011年4月8日 一、課程設(shè)計目的 1、綜合運用EDA技術(shù),獨立完成一個課題的設(shè)計,考察運用所學(xué)知識,解決實際問題的能力; 2、結(jié)合理論知識,考察閱讀參考資料、文獻、手冊的能力; 3、進一步熟悉EDA技術(shù)的開發(fā)流程,掌握文件編輯、編譯、仿真、下載驗證等環(huán)節(jié)的實現(xiàn)方法和應(yīng)用技巧; 二、課程設(shè)計要求 1、 計費部分 a、 起步價設(shè)置為6元; b、 設(shè)置等待計時計費,當(dāng)車速小于某值時,系

2、統(tǒng)自動進入等待計時,并在一定條件下進行等待計費,計費單價為1.3元/分鐘; c、 設(shè)置超路程計費。當(dāng)行駛距離超過3km后,系統(tǒng)進入超公里數(shù)計費,單價按1.0元/km計費; d、 計費公式為s=6+1.3*等待時間+1.0*(行駛距離-3km)。 2、 顯示部分 a、 公里計數(shù),記錄汽車行駛距離; b、 等待計時,記錄等待時間; c、 計費顯示,實時顯示系統(tǒng)總費用。 三、設(shè)計思路 (一)、基本原理 根據(jù)設(shè)計要求,系統(tǒng)的輸入信號有:系統(tǒng)時鐘信號CLK,計價開始信號START,車速控制信號MA。系統(tǒng)的輸出信號有:總費用數(shù)CHA0-CHA3,行駛距離(數(shù))KM0-KM1和等待時間MI

3、N0-MIN1等。通過系統(tǒng)對車速的檢測進入相應(yīng)的計費系統(tǒng)。 (二)、設(shè)計框圖 時鐘信號 計費信號 速度控制信號 分頻器 控 制 部 分 計時 計費 速度產(chǎn)生 顯 示 計程 (三)實現(xiàn)方法 1、系統(tǒng)時鐘clk+計費啟動信號start+等待計時信號stop+外部里程脈沖fin實現(xiàn)。 1>系統(tǒng)實現(xiàn)原理:當(dāng)外部里程脈沖累計k1&k0=<3時,系統(tǒng)計費始終為起步價,當(dāng)里程超過3km時,系統(tǒng)進入超公里計費,按相應(yīng)單價計費;當(dāng)外部輸入等待計時信號后,系統(tǒng)進入等待計時計費,費用單價可改變。 2>程序分析 LIBRARY IEE

4、E; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY zcftaxi IS PORT( CLK: IN STD_LOGIC; --系統(tǒng)時鐘 START: IN STD_LOGIC; --計費開始信號 STOP: IN STD_LOGIC; --中途等待停止信號

5、 FIN: IN STD_LOGIC; --1KM脈沖信號 RST: IN STD_LOGIC; CHA3,CHA2,CHA1,CHA0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --計費輸出信號 KM1,KM0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --行駛公里數(shù) MEN1,MEN0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --等待時間輸出 END ENTIT

6、Y zcftaxi ; ARCHITECTURE BEHAVE OF zcftaxi IS SIGNAL X_1: INTEGER RANGE 0 TO 49; --數(shù)碼管掃苗顯示脈沖 SIGNAL W: INTEGER RANGE 0 TO 59; --等待計數(shù)分鐘走動產(chǎn)生信號 SIGNAL C3,C2,C1,C0: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL K1,K0: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL M1:

7、 STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL M0: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL TEMP0,TEMP1: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL F_1: STD_LOGIC; SIGNAL EN0,EN1: STD_LOGIC; BEGIN FEIPIN:PROCESS(CLK,START) BEGIN IF CLK'EVENT AND CLK='1' THEN IF START='0' THEN

8、 F_1 <='0'; X_1 <=0; ELSE IF X_1=49 THEN X_1<=0; F_1<='1'; ELSE X_1<=X_1+1; F_1<='0'; END IF; END IF; END IF; END PROCESS; PROCESS(FIN) --公里脈沖計數(shù) BEGIN

9、 IF FIN'EVENT AND FIN='1' THEN IF START='0' THEN K1<="0000"; K0<="0000"; ELSIF STOP='0' THEN IF K0="1001" THEN K0<="0000"; IF K1="1001" THEN K1<="0000"; ELSE K1<=K1+1; END IF; ELSE K0<=K0+1; END IF;

10、END IF; END IF; END PROCESS; PROCESS(clk) --等待時間顯示 BEGIN IF clk'EVENT AND clk='1' THEN IF START='0' THEN W<=0; M1<="000"; M0<="0000"; ELSIF STOP='1' THEN IF W=49 THEN W<=0; IF M0="1001"

11、THEN M0<="0000"; IF M1="101" THEN M1<="000"; ELSE M1<=M1+1; END IF; ELSE M0<=M0+1; END IF; ELSE W<=W+1; END IF; END IF; END IF; END PROCESS; PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN IF

12、 START='0' THEN EN0<='0'; EN1<='0'; ELSIF STOP='0' THEN EN1<='0'; IF K1&K0>"00000011" THEN EN0<='1'; --超公里數(shù)計費使能信號產(chǎn)生 ELSE EN0<='0'; END IF; ELSIF STOP='1' THEN EN0<='0'; IF M1&M0>"0000010" THEN EN

13、1<='1'; --超等待時間使能信號產(chǎn)生 ELSE EN1<='0'; END IF; END IF; END IF; END PROCESS; PROCESS(CLK,START) VARIABLE C13,C15 : INTEGER; BEGIN IF START='0' THEN C3<="0000"; C2<="0000"; C1<="0101"; C0<="0000"; C13:=0; C15:=0; TEMP0<="0000"; TEMP1

14、<="0000"; ELSIF CLK'EVENT AND CLK='1' THEN IF(EN0='1')THEN IF(C13<13)THEN C13:=C13+1; --13分頻超公里數(shù)計費 IF(C13=1)THEN TEMP0<=K0; END IF; IF C0="1001" THEN C0<="0000"; IF C1="1001" THEN C1<="0000"; IF C2="1001" THE

15、N C2<="0000"; IF C3="1001" THEN C3<="0000"; ELSE C3<=C3+1; END IF; ELSE C2<=C2+1; END IF; ELSE C1<=C1+1; END IF; ELSE C0<=C0+1; END IF; ELSIF(K0/=TEMP0)THEN C13:=0;

16、 END IF; ELSIF(EN1='1')THEN IF(C15<15)THEN C15:=C15+1; --15分頻超公里數(shù)計費 IF(C15=1)THEN TEMP1<=M0; END IF; IF C0="1001" THEN C0<="0000"; IF C1="1001" THEN C1<="0000"; IF C2="1001" THEN C2<="0000"; I

17、F C3="1001" THEN C3<="0000"; ELSE C3<=C3+1; END IF; ELSE C2<=C2+1; END IF; ELSE C1<=C1+1; END IF; ELSE C0<=C0+1; END IF; ELSIF(M0/=TEMP1)THEN C15:=0; END IF; END IF; END

18、IF; END PROCESS; PROCESS(F_1) --信號顯示輸出部分 BEGIN IF F_1'EVENT AND F_1='1'THEN IF START='0' OR RST='1' THEN MEN1<="0000";MEN0<="0000"; KM1<="0000"; KM0<="0000"; CHA3<="0000";CHA2<="0000"; CHA1<="0000";CHA0 <=

19、"0000"; ELSE MEN1<='0'&M1;MEN0<=M0; KM1<=K1; KM0<=K0; CHA3<=C3;CHA2<=C2; CHA1<=C1;CHA0<=C0; END IF; END IF; END PROCESS; END BEHAVE; 3>時序圖分析 從上述時序圖可以看出,當(dāng)k1&k0=<3km時,cha=5;當(dāng)路程超過3km時,系統(tǒng)自動進入超公里計費。當(dāng)stop為高電平時,系統(tǒng)計入等待計時計費。 2、

20、系統(tǒng)時鐘clk+計費啟動信號start +外部里程脈沖fin實現(xiàn)。 1> 系統(tǒng)實現(xiàn)原理:當(dāng)外部里程脈沖累計k1&k0=<3時,系統(tǒng)計費始終為起步價,當(dāng)里程 超過3km時,系統(tǒng)進入超公里計費,按相應(yīng)單價計費;當(dāng)系統(tǒng)通過速度檢測測得速度小于某值后,系統(tǒng)進入等待計時計費,費用單價可改變。 2> 程序分析 速度監(jiān)控部分:(其他參考方法一) PROCESS(CLK) VARIABLE tim,sudu : INTEGER; BEGIN IF CLK'EVENT AND CLK='1' THEN tim:=tim+1; sudu:=(k1&k0

21、)*1024/tim; IF sudu<10 then EN0<='0'; EN1<='1';--超等待時間使能信號產(chǎn)生 STOP<='1'; ELSE EN0<='1';--超公里數(shù)計費使能信號產(chǎn)生 EN1<='0'; STOP<='0'; END IF; END IF; END PROCESS; 3、 系統(tǒng)時鐘clk+計費啟動信號start +外部速度檔位設(shè)置實現(xiàn)。 1>系統(tǒng)實現(xiàn)原理:當(dāng)外部里程脈沖累計k1&k0=<3時,系統(tǒng)

22、計費始終為起步價,當(dāng)里程 超過3km時,系統(tǒng)進入超公里計費,按相應(yīng)單價計費;當(dāng)系統(tǒng)通過速度檢測測得速度小于某值后,系統(tǒng)進入等待計時計費,費用單價可改變。本思路的最大亮點是速度可選可測。 2>程序分析 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY zcftaxi IS PORT( CLK: IN STD_LOGIC; --

23、系統(tǒng)時鐘 START: IN STD_LOGIC; --計費開始信號 MA: IN STD_LOGIC_VECTOR(2 DOWNTO 0); --檔位控制信號 CHA3,CHA2,CHA1,CHA0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --計費輸出信號 KM1,KM0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --行駛公里數(shù) MEN1,MEN0: OUT S

24、TD_LOGIC_VECTOR(3 DOWNTO 0)); --等待時間輸出 END ENTITY zcftaxi ; ARCHITECTURE BEHAVE OF zcftaxi IS SIGNAL X_1: INTEGER RANGE 0 TO 2; --數(shù)碼管掃苗顯示脈沖 SIGNAL W: INTEGER RANGE 0 TO 15; --等待計數(shù)分鐘分頻信號 SIGNAL Q0,Q: INTEGER RANGE 0 TO 69; --速度分頻 S

25、IGNAL FIN: STD_LOGIC; --速度產(chǎn)生信號 SIGNAL STOP: STD_LOGIC; --中途等待信號 SIGNAL EN: STD_LOGIC; --超公里數(shù)計費使能信號 SIGNAL GFP: INTEGER RANGE 0 TO 50; --超公里數(shù)計費分頻信號 SIGNAL C3,C2,C1,C0: STD_LOGIC_VECTOR(3 DOWNTO 0

26、); SIGNAL K1,K0: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL M1: STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL M0: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL TEMP0,TEMP1: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL F_1: STD_LOGIC; BEGIN FEIPIN:PROCESS(CLK,START) BEGIN IF CLK'EVENT AND CLK=

27、'1' THEN IF START='0' THEN F_1 <='0'; X_1 <=0; ELSE IF X_1=2 THEN X_1<=0; F_1<='1'; ELSE X_1<=X_1+1; F_1<='0'; END IF; END IF; END IF; END PROCESS; PROCESS(CLK,START) BEGIN IF CLK'EVENT AND CLK='1' THEN CASE MA IS

28、 --速度選擇 WHEN "000" => Q0<=29; --V1=1/120KM/M WHEN "001" => Q0<=39; --V2=1/160KM/M WHEN "010" => Q0<=49; --V3=1/200KM/M WHEN "011" => Q0<=59; --V4=1/240KM/M WH

29、EN "100" => Q0<=69; --V5=1/280KM/M WHEN OTHERS=>NULL; END CASE; IF Q0>39 THEN STOP<='1'; ELSE STOP<='0'; END IF; IF START='0' THEN Q0<=0; FIN<='0'; ELSE IF Q=Q0 THEN Q<=0; FIN<='1'; ELSE Q<=Q+1;

30、 FIN<='0'; END IF; END IF; END IF; END PROCESS; PROCESS(FIN) --公里脈沖計數(shù) BEGIN IF FIN'EVENT AND FIN='1' THEN IF START='0' THEN K1<="0000"; K0<="0000"; ELSIF K0="1001" THEN K0<="0000"; IF K1

31、="1001" THEN K1<="0000"; ELSE K1<=K1+1; END IF; ELSE K0<=K0+1; END IF; END IF; END PROCESS; PROCESS(clk) --等待時間顯示 BEGIN IF clk'EVENT AND clk='1' THEN IF START='0' THEN W<=0; M1<="000";

32、 M0<="0000"; ELSIF STOP='1' THEN IF W=15 THEN W<=0; IF M0="1001" THEN M0<="0000"; IF M1="101" THEN M1<="000"; ELSE M1<=M1+1; END IF; ELSE M0<=M0+1; END IF; ELSE W<=W+1; END IF;

33、 END IF; END IF; END PROCESS; PROCESS(CLK,START) BEGIN IF CLK'EVENT AND CLK='1' THEN IF START='0' THEN EN<='0'; ELSIF STOP='0' THEN IF K1&K0>"00000011" THEN EN<='1'; --超公里數(shù)計費使能信號產(chǎn)生 ELSE EN<='0'; END IF;

34、 END IF; END IF; END PROCESS; PROCESS(CLK,START) VARIABLE C10,C13 : INTEGER; BEGIN IF START='0' THEN C3<="0000"; C2<="0000"; C1<="0110"; C0<="0000"; --起步價 C10:=0; C13:=0; TEMP0<="0000"; TEMP1<="0000"; ELSIF CLK'EVENT AND CLK='1' THEN IF(EN='1')THEN

35、 IF GFP>(Q0/10-1) THEN GFP<=0; IF(C10<10)THEN C10:=C10+1; --10分頻超公里數(shù)計費 IF(C10=1)THEN TEMP0<=K0; END IF; IF C0="1001" THEN C0<="0000"; IF C1="1001" THEN C1<="0000"; IF C2="1001" THEN C2<="0000";

36、 IF C3="1001" THEN C3<="0000"; ELSE C3<=C3+1; END IF; ELSE C2<=C2+1; END IF; ELSE C1<=C1+1; END IF; ELSE C0<=C0+1; END IF; ELSIF(K0/=TEMP0)THEN C10:=0; END IF; ELSE GFP<=GF

37、P+1; END IF; ELSIF(STOP='1' AND K1&K0>"00000011") THEN IF(C13<13)THEN C13:=C13+1; --13分頻超時計費 IF(C13=1)THEN TEMP1<=M0; END IF; IF C0="1001" THEN C0<="0000"; IF C1="1001" THEN C1<="0000"; IF C2="1001" T

38、HEN C2<="0000"; IF C3="1001" THEN C3<="0000"; ELSE C3<=C3+1; END IF; ELSE C2<=C2+1; END IF; ELSE C1<=C1+1; END IF; ELSE C0<=C0+1; END IF; ELSIF(M0/=TEMP1)THEN C13:=0;

39、 END IF; END IF; END IF; END PROCESS; PROCESS(F_1) --信號顯示輸出部分 BEGIN IF F_1'EVENT AND F_1='1'THEN IF START='0'THEN MEN1<="0000";MEN0<="0000"; KM1<="0000"; KM0<="0000"; CHA3<="0000";CHA2<="0000";

40、 CHA1<="0000";CHA0 <="0000"; ELSE MEN1<='0'&M1;MEN0<=M0; KM1<=K1; KM0<=K0; CHA3<=C3;CHA2<=C2; CHA1<=C1;CHA0<=C0; END IF; END IF; END PROCESS; END BEHAVE; 3>時序圖分析 從上時序圖可看出,當(dāng)系統(tǒng)選擇速度為V1時,速度較大,當(dāng)行駛距離大于3km時,系 統(tǒng)進入超公里數(shù)計費,本次仿真采用起步價6元

41、,超公里計費單價為1.0元/km。如當(dāng)k1&k0=7km時,系統(tǒng)總計費為:6+4*1=10元。 從上時序圖可看出,當(dāng)系統(tǒng)選擇速度為V5時,速度較大,當(dāng)行駛距離大于3km時,系 統(tǒng)進入等待計費,本次仿真采用起步價6元,等待計費單價為1.3元/分鐘。如當(dāng)k1&k0>3km,men1&men0>12分時,等待時間顯示加一,計費輸出顯示加1.3元,如等待計時時間顯示為15分鐘的下一分鐘系統(tǒng)總計費顯示為:6+(16-12+1)*1.3=12.5元。 四、三種思路的優(yōu)缺點比較 可以看到思路一、二采用的是外部里程脈沖輸入的方法,與實際相比較差距過大;而 方法一當(dāng)進行等待時間計費時,需人工開

42、啟使能信號,比較麻煩并且也不實用。但思路一相對而言思路比較清晰,容易理解與實現(xiàn)。 思路二主要是為了省略等待計時外部使能信號,通過系統(tǒng)對輸入里程脈沖的頻率考究換算成車子行駛的速度。通過對速度值的比較,設(shè)置系統(tǒng)等待計時計費的條件,從而實現(xiàn)系統(tǒng)自動進行等待計時計費。 思路三是比較完整,比較先進的構(gòu)思,與實際結(jié)合緊密,也是本次實驗的最終結(jié)果。 設(shè)計主要有以下幾個亮點:1、減少了外部信號的輸入,省略了等待計時計費使能信號輸入,省略了外部里程脈沖信號輸入;2、實現(xiàn)了系統(tǒng)自動進行里程計數(shù);3、實現(xiàn)了系統(tǒng)對車速的自動檢測和可選,并能分析進行超公里計費和等待計費的轉(zhuǎn)換。 五、 實驗心得體會 本次試

43、驗共花去我一周的時間,感受頗深。在這次實驗中,我收獲很多。 首先是態(tài)度方面的認識。實驗需要事實考證,我們要秉著誠實,認真的態(tài)度,并且要有細心和耐心。實驗過程中不免會出現(xiàn)很多的問題,特別是EDA這門課程已學(xué)了很久,知識點很多都陌生了,需要踏實的復(fù)習(xí)。實驗過程中細節(jié)不能放過,對實驗結(jié)果和時序仿真圖分析時,要特別認真,有時可能會有0.1元的誤差,如果你忽視了,那實驗后面的誤差將會逐漸增大。 其次是方法。對于本次EDA實驗,我個人認識最深的是軟件分析具有很大的作用。我們到實驗室做的最多的是進行下載和結(jié)果觀測。但是在之前的源代碼編寫和時序仿真卻不能總跑到km之外的實驗室去。所以個人電腦利用軟件進行開發(fā)是很重要的。本次實驗我查錯的主要方法還是通過時序圖。 再次是實驗思路和產(chǎn)品開發(fā)構(gòu)思。本次實驗我一共用了三種方法對其進行實現(xiàn),第一種修改不是很多,但結(jié)果也不是很好。實現(xiàn)的結(jié)果與實際相差過大。而其后兩種是逐步提高的過程,從減少外部信號輸入和系統(tǒng)自動化的原則出發(fā),對思路一進行修正,最后得到結(jié)果。所以,在實驗過程中,我們應(yīng)當(dāng)要有創(chuàng)新意識,同時要注重作品的實際利用價值。 13

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!