出租車自動(dòng)計(jì)費(fèi)器_第1頁
出租車自動(dòng)計(jì)費(fèi)器_第2頁
出租車自動(dòng)計(jì)費(fèi)器_第3頁
出租車自動(dòng)計(jì)費(fèi)器_第4頁
出租車自動(dòng)計(jì)費(fèi)器_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

出租車自動(dòng)計(jì)費(fèi)器出租車自動(dòng)計(jì)費(fèi)器出租車自動(dòng)計(jì)費(fèi)器天津工業(yè)大學(xué)EDA課程設(shè)計(jì)課程EDA課程設(shè)計(jì)題目出租車自動(dòng)計(jì)費(fèi)器學(xué)院電子與信息工程學(xué)院專業(yè)班級(jí)學(xué)生姓名學(xué)生學(xué)號(hào)指導(dǎo)教師2012年6月22日題目出租車自動(dòng)計(jì)費(fèi)器大綱本系統(tǒng)是基于FPGA的模擬出租車計(jì)費(fèi)系統(tǒng),是在實(shí)驗(yàn)室實(shí)驗(yàn)箱EP1C6P240C8芯片及其外面電路的基礎(chǔ)上完成程序的下載仿真。本系統(tǒng)模擬了出租車計(jì)費(fèi)系統(tǒng)的過程,其中出租車的狀態(tài)分為等待、行駛,系統(tǒng)可以完成起步價(jià)計(jì)費(fèi),等待、行駛狀態(tài)計(jì)費(fèi)。要點(diǎn)字:出租車計(jì)費(fèi)系統(tǒng)起步價(jià)等待行駛一、設(shè)計(jì)目的1.掌握出租車計(jì)費(fèi)的工作原理2.進(jìn)一步熟悉用VHDL語言編寫出租車計(jì)費(fèi)程序二、開發(fā)軟件:QuartusII三、設(shè)計(jì)任務(wù)1、設(shè)計(jì)一個(gè)出租車自動(dòng)計(jì)費(fèi)器,擁有行車?yán)锍逃?jì)費(fèi)、等待時(shí)間計(jì)費(fèi)、及起價(jià)三部分,用三位數(shù)碼管顯示總金額,最大值為99.9元;2、行車?yán)锍虇蝺r(jià)1.7元/公里,等待時(shí)間單價(jià)1.7元/5分鐘,起價(jià)8元(3公里起價(jià))。3、行車?yán)锍痰挠?jì)費(fèi)電路將汽車行駛的里程數(shù)變換成與之成正比的脈沖數(shù),爾后由計(jì)數(shù)譯碼電路變換成收費(fèi)金額,實(shí)驗(yàn)中以一個(gè)脈沖模擬汽車前進(jìn)十米,則每100個(gè)脈沖表示1公里,爾后用乘法器將里程數(shù)乘以每公里單價(jià)的比率系數(shù),從而計(jì)算出詳盡花銷。4、用數(shù)碼管顯示行駛公里數(shù),三個(gè)數(shù)碼管顯示行駛里程。提示:1、等待時(shí)間計(jì)費(fèi)需將等待時(shí)間變換成脈沖個(gè)數(shù),用每個(gè)脈沖表示的金額與脈沖數(shù)相乘即得計(jì)費(fèi)數(shù),脈沖周期為1秒,比方60個(gè)脈沖表示1分鐘,而5分鐘收費(fèi)1.7元。2、用2個(gè)LED顯示等待時(shí)間。3、用加法器將幾項(xiàng)收費(fèi)相加,P=P1+P2+P34、P1為起價(jià),P2為行車?yán)锍逃?jì)費(fèi),P3為等待時(shí)間計(jì)費(fèi),用四個(gè)數(shù)碼管表示總的計(jì)費(fèi)結(jié)果。四、系統(tǒng)設(shè)計(jì)原理及過程1、基根源理本次設(shè)計(jì)第一在QuartusⅡ環(huán)境中對出租車自動(dòng)計(jì)費(fèi)器的各個(gè)部分利用VHDL這一硬件描述語言予以設(shè)計(jì),生成模塊。而整個(gè)設(shè)計(jì)的核心部分就在里程、計(jì)時(shí)、計(jì)費(fèi)辦理模塊。里程、計(jì)時(shí)模塊完成行駛距離和等待時(shí)間的辦理以及起步距離此后和等待時(shí)間的計(jì)費(fèi)脈沖的產(chǎn)生。計(jì)費(fèi)辦理模塊完成起步價(jià)計(jì)費(fèi)、在計(jì)費(fèi)脈沖來臨之際累加計(jì)費(fèi)的功能。隨后運(yùn)用QuartusⅡ中的仿真功能對其予以仿真,從仿真的結(jié)果中解析程序的正確性。待所有模塊的功能正確此后,運(yùn)用原理圖搭建電路并進(jìn)行整體仿真直至達(dá)到最初的設(shè)計(jì)要求,最后再在實(shí)驗(yàn)箱上綜合下載檢驗(yàn)設(shè)計(jì)的正確與否。2、系統(tǒng)框圖依照設(shè)計(jì)要求,電路擁有計(jì)時(shí)、計(jì)程、計(jì)費(fèi)功能,用數(shù)碼管顯示行駛公里數(shù)、等待時(shí)間、收費(fèi)金額,行車?yán)锍毯偷却龝r(shí)間的辦理電路將汽車行駛的里程數(shù)、變換成與之成正比的計(jì)費(fèi)脈沖,爾后由計(jì)費(fèi)電路變換成收費(fèi)金額,實(shí)驗(yàn)中以一個(gè)脈沖模擬汽車前進(jìn)十米,則每100個(gè)脈沖表示1公里,3公里今后每公里產(chǎn)生一個(gè)計(jì)費(fèi)脈沖,一個(gè)1HZ的脈沖用來表示等待時(shí)間,60個(gè)脈沖代表1分鐘,5分鐘即個(gè)脈沖產(chǎn)生一個(gè)等待計(jì)費(fèi)脈沖,爾后用計(jì)費(fèi)電路對計(jì)費(fèi)脈沖進(jìn)行計(jì)費(fèi)。實(shí)驗(yàn)箱中只有一個(gè)48MHZ的時(shí)鐘,所以需要分頻此后再送給其他模塊,最后將等待時(shí)間、行駛里程、計(jì)費(fèi)金額經(jīng)過譯碼電路送到數(shù)碼管顯示。其設(shè)計(jì)框圖如圖1所示:分八進(jìn)制數(shù)據(jù)選擇器譯碼頻計(jì)數(shù)器顯48MHZ時(shí)鐘分行駛、等示計(jì)費(fèi)頻待辦理電路電路圖1整系通通框圖3、電路及模塊解析系統(tǒng)整體設(shè)計(jì)電路如圖2:pulsespCNT8clkFoutCLKOUTY[2..0]pulseclkFoutinst6instCLKINPUTOUTPUTB[7..0]VCCinst4pulse10OR2OUTPUTled7s[7..0]clkFoutinst8inst5JIFEICLK0B1CLK1B2STARTINPUTSTARTKM0[3..0]VCCWRINPUTWRKM1[3..0]VCCRSTKM2[3..0]RSTINPUTMIN1[3..0]VCCMIN0[3..0]inst2

JINMAX81decl7sBP0[3..0]P0[3..0]D[3..0]a[3..0]led7s[7..0]STARTP1[3..0]P1[3..0]B[7..0]POINTRSTP2[3..0]P2[3..0]POINTinst7K0[3..0]inst1K1[3..0]K2[3..0]M0[3..0]M1[3..0]S[2..0]inst3圖2出租車自動(dòng)計(jì)費(fèi)器頂層電路原理圖1)行駛里程、等待時(shí)間辦理模塊本模塊是系統(tǒng)的核心模塊之一,可以對外面的行駛距離脈沖、等待時(shí)間脈沖進(jìn)行計(jì)數(shù)。因?yàn)樾旭偩嚯x每脈沖代表10米,所以計(jì)滿100個(gè)數(shù)就輸出一個(gè)行駛距離計(jì)費(fèi)脈沖,因?yàn)?公里之內(nèi)屬于起步價(jià),所以前3公里內(nèi)不輸出行駛距離計(jì)費(fèi)脈沖,因?yàn)橛?位數(shù)碼管來顯示行駛距離,其中兩位整數(shù),一位小數(shù),所以行駛距離最小分辨率為0.1公里,行駛距離脈沖每計(jì)10個(gè)數(shù),行駛距離輸出加0.1,行駛距離最大值為99.9公里。等待時(shí)間脈沖頻率為1HZ,所以一個(gè)脈沖代表1秒,60個(gè)等待脈沖是1分鐘,輸出等待時(shí)間加1,等待時(shí)間5分鐘計(jì)一次費(fèi),所以同等待時(shí)間脈沖計(jì)數(shù),計(jì)滿300個(gè)數(shù)就輸出一個(gè)等待計(jì)費(fèi)脈沖。等待時(shí)間最大值為99分鐘。將行駛距離、等待時(shí)間送到數(shù)據(jù)選擇器,計(jì)費(fèi)脈沖送到計(jì)費(fèi)模塊完成距離、時(shí)間的顯示以及計(jì)費(fèi)功能。2)計(jì)費(fèi)模塊計(jì)費(fèi)模塊也是本系統(tǒng)的核心,完成起步價(jià)計(jì)費(fèi),等待時(shí)間,行駛計(jì)費(fèi)功能。計(jì)費(fèi)器啟動(dòng),顯示起步價(jià)8元,此后每來一個(gè)行駛距離計(jì)費(fèi)脈沖也許等待時(shí)間計(jì)費(fèi)脈沖,計(jì)費(fèi)金額自動(dòng)加1.7元。計(jì)費(fèi)顯示用3位數(shù)碼管,所以計(jì)費(fèi)最大值為99.9元。將計(jì)費(fèi)輸出送到數(shù)據(jù)選擇器,最后送到譯碼電路顯示。3)分頻模塊因?yàn)閷?shí)驗(yàn)箱上只有一個(gè)48MHZ的時(shí)鐘,所以我們要經(jīng)過分頻電路獲取我們所需要的頻率,本系統(tǒng)中用到了三個(gè)分頻,1HZ分頻用來作為等待時(shí)間脈沖,10HZ分頻作為行駛距離脈沖,每個(gè)脈沖代表行駛10米。還有一個(gè)分頻是作為數(shù)碼管動(dòng)向顯示的掃頻脈沖,由此頻率生成一個(gè)八進(jìn)制計(jì)數(shù)器,作為數(shù)據(jù)選擇器的選擇信號(hào),將各個(gè)數(shù)據(jù)位輪流送到數(shù)碼管,利用人眼的視覺暫留實(shí)現(xiàn)動(dòng)向顯示。4)八進(jìn)制計(jì)數(shù)器模塊八進(jìn)制計(jì)數(shù)器模塊完成八進(jìn)制計(jì)數(shù),從000計(jì)到111后,回到000重新計(jì)數(shù),并將此數(shù)據(jù)送到數(shù)據(jù)選擇器作為選擇信號(hào)。5)八選一數(shù)據(jù)選擇器模塊本模塊主若是完成數(shù)碼管的動(dòng)向掃描,將八位數(shù)據(jù)在選擇信號(hào)的作用下依次送到譯碼電路,完成動(dòng)向顯示。本模塊的主要特點(diǎn)是有一個(gè)小數(shù)點(diǎn)標(biāo)志位輸出以及段選信號(hào)。6)譯碼模塊本模塊主要完成數(shù)據(jù)的譯碼,在段選信號(hào),小數(shù)點(diǎn)標(biāo)志位的共同作用下完成數(shù)據(jù)在八位數(shù)碼管上的動(dòng)向顯示。五、系統(tǒng)調(diào)試及下載完成個(gè)模塊的設(shè)計(jì)此后,將各個(gè)模塊封裝成元件,建立一個(gè)原理圖文件,將各個(gè)模塊連接起來,即完成了整個(gè)系統(tǒng)的頂層設(shè)計(jì),頂層設(shè)計(jì)框圖如上圖圖2所示。下面對系統(tǒng)的核心模塊進(jìn)行仿真。1、里程、等待時(shí)間辦理模塊里程、行駛距離計(jì)費(fèi)脈沖仿真圖由圖可以看出每10個(gè)脈沖里程數(shù)加0.1,三公里今后每公里有一個(gè)計(jì)費(fèi)脈沖B1。等待時(shí)間,等待計(jì)費(fèi)脈沖仿真圖由圖可以看出每60個(gè)脈沖,等待時(shí)間加1。等待時(shí)間每5分鐘產(chǎn)生一個(gè)計(jì)費(fèi)脈沖。2、計(jì)費(fèi)模塊計(jì)費(fèi)模塊仿真圖由圖可以看出在計(jì)費(fèi)脈沖來臨以前,計(jì)費(fèi)金額向來是起步價(jià)8元,此后每來一個(gè)計(jì)費(fèi)脈沖,計(jì)費(fèi)金額加1.7元。其他模塊較簡單,這里就不一一仿真了,設(shè)計(jì)好頂層原理圖此后,就可以配置引腳了,在配置引腳以前,先選擇芯片EP1C6P240C8,爾后配置好START、WR、RST按鍵,數(shù)碼管位選、段選引腳就可以下載了。六、結(jié)論下載完此后,我們可以看到,八位數(shù)碼管的右三位顯示起步價(jià)08.0,中間三個(gè)數(shù)碼管在以0.1為步進(jìn)步行加法顯示行駛里程,當(dāng)行駛里程高出3公里此后,每公里計(jì)費(fèi)金額加1.7元,當(dāng)我們按下K2鍵,每分鐘左邊兩個(gè)數(shù)碼管加1,其顯示的等待時(shí)間,當(dāng)?shù)却龝r(shí)間到5分鐘時(shí),計(jì)費(fèi)金額加1.7元,由此我們可以判斷,系統(tǒng)設(shè)計(jì)吻合要求。實(shí)驗(yàn)感想:附:實(shí)驗(yàn)程序1.1HZ分頻libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypulseisport(clk:instd_logic;D:instd_logic_vector(7DOWNTO0);Fout:outstd_logic);end;architectureoneofpulseissignalfull:std_logic;beginp_reg:process(clk)variablecnt8:integerrange24000000downto0;beginifclk'eventandclk='1'thenifcnt8=24000000thencnt8:=0;full<='1';elsecnt8:=cnt8+1;full<='0';endif;endif;endprocessp_reg;p_div:process(full)variablecnt2:std_logic;beginiffull'eventandfull='1'thencnt2:=notcnt2;Ifcnt2='1'thenfout<='1';elsefout<='0';endif;endif;endprocessp_div;end;2、10HZ分頻libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypulse10isport(clk:instd_logic;D:instd_logic_vector(7DOWNTO0);Fout:outstd_logic);end;architectureoneofpulse10issignalfull:std_logic;beginp_reg:process(clk)variablecnt8:integerrange2400000downto0;beginifclk'eventandclk='1'thenifcnt8=2400000thencnt8:=0;full<='1';elsecnt8:=cnt8+1;full<='0';endif;endif;endprocessp_reg;p_div:process(full)variablecnt2:std_logic;beginiffull'eventandfull='1'thencnt2:=notcnt2;Ifcnt2='1'thenfout<='1';elsefout<='0';endif;endif;endprocessp_div;end;3、掃頻分頻libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypulsespisport(clk:instd_logic;D:instd_logic_vector(7DOWNTO0);Fout:outstd_logic);end;architectureoneofpulsespissignalfull:std_logic;beginp_reg:process(clk)variablecnt8:integerrange24000downto0;beginifclk'eventandclk='1'thenifcnt8=24000thencnt8:=0;full<='1';elsecnt8:=cnt8+1;full<='0';endif;endif;endprocessp_reg;p_div:process(full)variablecnt2:std_logic;beginiffull'eventandfull='1'thencnt2:=notcnt2;Ifcnt2='1'thenfout<='1';elsefout<='0';endif;endif;endprocessp_div;end;4、里程、等待時(shí)間辦理模塊LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYJIFEIISPORT(CLK0,CLK1:INSTD_LOGIC;START:INSTD_LOGIC;WR:INSTD_LOGIC;RST:INSTD_LOGIC;B1,B2:OUTSTD_LOGIC;KM0,KM1,KM2:OUTSTD_LOGIC_VECTOR(3DOWNTO0);MIN1,MIN0:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDJIFEI;ARCHITECTUREBEHAVEOFJIFEIISBEGINRUN:PROCESS(CLK0,START,WR,RST)VARIABLER1:INTEGERRANGE0TO9;VARIABLER2:INTEGERRANGE0TO99;VARIABLEK:STD_LOGIC_VECTOR(7DOWNTO0);VARIABLEK2,K1,K0:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='0'THENK0:="0000";K1:="0000";K2:="0000";R1:=0;R2:=0;ELSIFCLK0'EVENTANDCLK0='1'THENIFSTART='1'ANDWR='1'THENIFR1=9THENR1:=0;IFK0="1001"THENK0:="0000";IFK1="1001"THENK1:="0000";IFK2="1001"THENK2:="0000";ELSEK2:=K2+1;ENDIF;ELSEK1:=K1+1;ENDIF;ELSEK0:=K0+1;ENDIF;ELSER1:=R1+1;ENDIF;K:=K2&K1;IFK>"00000001"THENIFR2<99THENR2:=R2+1;B1<='0';ELSER2:=0;B1<='1';ENDIF;ENDIF;ENDIF;ENDIF;KM0<=K0;KM1<=K1;KM2<=K2;ENDPROCESS;W:PROCESS(CLK1,START,WR,RST)VARIABLEW1:INTEGERRANGE0TO59;VARIABLEW2:INTEGERRANGE0TO299;VARIABLEM1:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEM0:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='0'THENM0:="0000";M1:="0000";W1:=0;W2:=0;ELSIFCLK1'EVENTANDCLK1='1'THENIFSTART='1'ANDWR='0'THENIFW1=59THENW1:=0;IFM0="1001"THENM0:="0000";IFM1="1001"THENM1:="0000";ELSEM1:=M1+1;ENDIF;ELSEM0:=M0+1;ENDIF;ELSEW1:=W1+1;ENDIF;IFW2<299THENW2:=W2+1;B2<='0';ELSEW2:=0;B2<='1';ENDIF;ENDIF;ENDIF;MIN0<=M0;MIN1<=M1;ENDPROCESS;ENDARCHITECTURE;5、計(jì)費(fèi)模塊LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYJINISPORT(B:INSTD_LOGIC;START:INSTD_LOGIC;RST:INSTD_LOGIC;P0,P1,P2:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDJIN;ARCHITECTUREBEHAVEOFJINISBEGINP:PROCESS(B,START,RST)VARIABLEC2,C1,C0:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='0'THENC0:="0000";C1:="1000";C2:="0000";ELSIFSTART='1'THENIFB'EVENTANDB='1'THENIFC0>2THEN--加0.7元IFC1="1001"THENC1:="0000";IFC2="1001"THENC2:="0000";ELSEC2:=C2+1;ENDIF;ELSEC1:=C1+1;ENDIF;C0:=C0-3;ELSEC0:=C0+7;ENDIF;IFC1="1001"THENC1:="0000";IFC2="1001"THENC2:="0000";ELSEC2:=C2+1;ENDIF;ELSEC1:=C1+1;ENDIF;ENDIF;ENDIF;P0<=C0;P1<=C1;P2<=C2;ENDPROCESS;END;6、八進(jìn)制計(jì)數(shù)器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT8ISPORT(CLK:INSTD_LOGIC;OUTY:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDCNT8;ARCHITECTUREbehavOFCNT8ISBEGINPROCESS(CLK)VARIABLECQI:STD_LOGIC_VECTOR(2DOWNTO0);BEGINIFCLK'EVENTANDCLK='1'THENIFCQI<"111"THENCQI:=CQI+1;ELSECQI:="000";ENDIF;ENDIF;OUTY<=CQI;ENDPROCESS;ENDbehav;7、八選一數(shù)據(jù)選擇器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMAX81ISPORT(P0,P1,P2,K0,K1,K2,M0,M1:INSTD_LOGIC_VECTOR(3DOWNTO0);S:INSTD_LOGIC_VECTOR(2DOWNTO0);D:OUTSTD_LOGIC_VECTOR(3DOWNTO0);B:OUTSTD_LOGIC_VECTOR(7DOWNTO0);POINT:OUTSTD_LOGIC);ENDMAX81;ARCHITECTUREbody_mAx81OFmAx81ISBEGINprocess(P0,P1,P2,K0,K1,K2,M0,M1,S)begincaseSisWHEN"000"=>D<=P0;B<="11111110";POINT<='0';WHEN"001"=>D<=P1;B<="11111101";POINT<='1';WHEN"010"=>D<=P2;B<="11111011";POINT<='0';WHEN"011"=>D<=K0;B<="11110111";POINT<='0';WHEN"100"=>D<=K1;B<="11101111";POINT<='1';WHEN"101"=>D<=K2;B<="11011111";POINT<='0';WHEN"110"=>D<=M0;B<="10111111";POINT<='0';WHEN"111"=>D<=M1;B<="01111111";POINT<='0';WHENothers=>null;endcase;endprocess;ENDbody_MAX81;8、數(shù)碼管譯碼程序Libraryieee;use

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論