基于VHDL的出租車計(jì)費(fèi)器設(shè)計(jì)畢業(yè)論文_第1頁(yè)
基于VHDL的出租車計(jì)費(fèi)器設(shè)計(jì)畢業(yè)論文_第2頁(yè)
基于VHDL的出租車計(jì)費(fèi)器設(shè)計(jì)畢業(yè)論文_第3頁(yè)
基于VHDL的出租車計(jì)費(fèi)器設(shè)計(jì)畢業(yè)論文_第4頁(yè)
基于VHDL的出租車計(jì)費(fèi)器設(shè)計(jì)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于vhdl的出租車計(jì)費(fèi)器設(shè)計(jì)摘 要近年來(lái),隨著人們生活水平的提高,出租車已經(jīng)成為人們出行必不可少的交通工具之一。而出租車計(jì)費(fèi)器是出租車上的一個(gè)重要儀器,它是乘客與司機(jī)雙方的公平交易準(zhǔn)則。在出租車的需求量不斷加大的情況下,對(duì)出租車計(jì)費(fèi)器系統(tǒng)的穩(wěn)定性,靈活性的要求增加,具有良好性能的計(jì)費(fèi)器對(duì)于司機(jī)和乘客都是很有必要的。本文設(shè)計(jì)了一個(gè)基于vhdl的出租車計(jì)費(fèi)器系統(tǒng),該系統(tǒng)分為計(jì)費(fèi)和顯示兩大模塊。計(jì)費(fèi)模塊是實(shí)現(xiàn)系統(tǒng)功能的核心,根據(jù)輸入信號(hào),將里程、計(jì)費(fèi)和等候時(shí)間以bcd碼形式顯示出來(lái),顯示模塊將其譯碼輪流掃描顯示。本設(shè)計(jì)首先在quartus軟件中,用vhdl語(yǔ)言對(duì)各個(gè)模塊進(jìn)行設(shè)計(jì),其次畫出頂層原理圖

2、,然后對(duì)頂層文件進(jìn)行仿真測(cè)試,最后將仿真成功的設(shè)計(jì)文件下載到eda實(shí)驗(yàn)箱進(jìn)行驗(yàn)證。驗(yàn)證結(jié)果具有計(jì)時(shí)、計(jì)里程、計(jì)費(fèi)等功能。關(guān)鍵詞:出租車計(jì)費(fèi)器;vhdl;quartus ;設(shè)計(jì)design of taximeter based on vhdlabstractwith the development of peoples living standard, taxi has become an important transportation in recent years. and taxi meter is an important instrument in taxi, it is the f

3、air trade standards in both passengers and drivers. in the situation that the demand of taxi is increasing continuously and the requirements of taxi meter systems stability and flexibility are increase, the taxi meter which have a good performance is very necessary for drivers and passengers. this p

4、aper designs a taxi meter based on vhdl, the taxi meter system is divided into two modules: charge control and display control. the charge control module is the core to realize the function of the system, according to the input signal, display the mileage, charge and waiting time by bcd code. the di

5、splay module will be scan and display decoding alternately. firstly, using vhdl language compile the various parts in quartus software, and draw the top diagram. then the simulation test. finally, the success of simulation program will be downloaded into the eda experiment box. the validation result

6、 comply with the design requirements, there are many functions, as record the time, mileage and charge.key woords: taximeter; vhdl; quartus ; design 目 錄中文摘要英文摘要1 引言11.1 設(shè)計(jì)背景11.2 vhdl簡(jiǎn)介11.3 quartus簡(jiǎn)介32 出租車計(jì)費(fèi)器的設(shè)計(jì)32.1 系統(tǒng)設(shè)計(jì)要求32.2 設(shè)計(jì)思路42.3 出租車計(jì)費(fèi)器系統(tǒng)工作流程圖43 出租車計(jì)費(fèi)器的實(shí)現(xiàn)53.1 出租車計(jì)費(fèi)器的頂層原理圖53.2 系統(tǒng)各功能模塊的實(shí)現(xiàn)53.2.1 模

7、塊taxi:charge_control63.2.2 模塊display:display_control64 出租車計(jì)費(fèi)器系統(tǒng)仿真及分析74.1 頂層實(shí)體的仿真波形74.2 計(jì)費(fèi)模塊的仿真波形84.3 顯示模塊的仿真波形94.4 管腳鎖定94.5 顯示結(jié)果的幾種情況105 總結(jié)11參考文獻(xiàn)12致 謝13附 錄141 引言1.1 設(shè)計(jì)背景出租車行業(yè)在我國(guó)八十年代初開始興起,因?yàn)槠浞奖憧旖莸奶攸c(diǎn)受到人們的歡迎。尤其是近幾年里,人們物質(zhì)生活水平得到提高以及生活節(jié)奏加快了,很多城市的出租車行業(yè)迅速發(fā)展,出租車已經(jīng)成為人們出行的普遍選擇之一。而出租車計(jì)費(fèi)器是出租車內(nèi)重要的儀器之一,它能夠規(guī)范出租車市場(chǎng),

8、減小乘客與司機(jī)之間發(fā)生糾紛的可能性。要想加強(qiáng)出租車行業(yè)的管理,提高服務(wù)的質(zhì)量就必須要有一種功能齊全,準(zhǔn)確計(jì)量,簡(jiǎn)單又易用的出租車計(jì)費(fèi)器。因?yàn)槌鲎廛囉?jì)費(fèi)器計(jì)數(shù)是連續(xù)累加的,所以它可以顯示出任一時(shí)刻乘客應(yīng)付的費(fèi)用。我國(guó)最初所使用的計(jì)費(fèi)器只有一種功能,即計(jì)量。我國(guó)第一家生產(chǎn)計(jì)費(fèi)器的是重慶起重機(jī)廠,早期的計(jì)費(fèi)器就是個(gè)里程表,因?yàn)樗鼈兌际怯玫臋C(jī)械齒輪結(jié)構(gòu),只能實(shí)現(xiàn)最簡(jiǎn)單的計(jì)程功能。如今我國(guó)有上百家企業(yè)生產(chǎn)出租車計(jì)費(fèi)器,這些企業(yè)主要分布在北京,上海,廣州和沈陽(yáng)等地。隨著時(shí)代的發(fā)展,第一代計(jì)費(fèi)器已經(jīng)不能滿足人們的需求,科學(xué)技術(shù)的發(fā)展使第二代計(jì)費(fèi)器應(yīng)運(yùn)而生。它實(shí)現(xiàn)了半機(jī)械半電子化的設(shè)計(jì),采用的是手搖計(jì)算機(jī)與機(jī)

9、械結(jié)構(gòu)相結(jié)合的方式,它不僅能實(shí)現(xiàn)計(jì)程的功能,同時(shí)還能完成計(jì)價(jià)的工作,給計(jì)費(fèi)器的使用者帶來(lái)了方便。而大規(guī)模集成電路的發(fā)展又給計(jì)費(fèi)器帶來(lái)了新的變化,產(chǎn)生了第三代計(jì)費(fèi)器,即全電子化的計(jì)費(fèi)器。它的功能變得更多,同時(shí)也在不斷完善的過(guò)程之中。在改進(jìn)和完善的過(guò)程中,產(chǎn)生了很多實(shí)用的附加功能,給人們帶來(lái)了更多的方便。例如:(1)led顯示功能。在計(jì)費(fèi)器中添加數(shù)碼管,讓計(jì)費(fèi)器多屏顯示的功能得以實(shí)現(xiàn);(2)永久時(shí)鐘功能。將日歷時(shí)鐘芯片運(yùn)用到計(jì)費(fèi)器當(dāng)中,即使是在非營(yíng)運(yùn)的狀態(tài)下,計(jì)費(fèi)器上的時(shí)鐘也可以永久顯示;(3)存儲(chǔ)功能。計(jì)費(fèi)器可長(zhǎng)時(shí)間存儲(chǔ)多項(xiàng)營(yíng)運(yùn)數(shù)據(jù),以便于需要的時(shí)候查詢1。1.2 vhdl簡(jiǎn)介硬件描述語(yǔ)言已經(jīng)有

10、幾十年的發(fā)展歷史,并且在系統(tǒng)的仿真、驗(yàn)證和設(shè)計(jì)、綜合等方面得到成功的應(yīng)用。目前常用的硬件描述語(yǔ)言有vhdl、 verilog hdl 、abel等234。vhdl則起源于20世紀(jì)70年代末和80年代初,美國(guó)國(guó)防部提出的vhsic計(jì)劃,目標(biāo)是為下一代集成電路的生產(chǎn)、實(shí)踐階段性的工藝極限和完成10萬(wàn)門級(jí)以上的電路設(shè)計(jì)而建立一種新的描述方法5。vhdl的英文全稱為very-high-speed integrated circuit hardware description language,是ieee標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,并且已經(jīng)成為系統(tǒng)描述的國(guó)際公認(rèn)標(biāo)準(zhǔn),得到眾多eda公司的支持。vhdl具有很多

11、的優(yōu)點(diǎn)使它能夠被大多數(shù)人認(rèn)可,被廣泛應(yīng)用在邏輯電路的設(shè)計(jì)方面,并且成為了標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,其優(yōu)點(diǎn)如下:(1)功能強(qiáng)大和設(shè)計(jì)靈活。一個(gè)簡(jiǎn)潔的使用vhdl語(yǔ)言編寫的程序就可以描述一個(gè)復(fù)雜的邏輯電路,因?yàn)関hdl擁有強(qiáng)大的語(yǔ)言結(jié)構(gòu)6。vhdl多層次的設(shè)計(jì)描述功能可以有效地控制設(shè)計(jì)的實(shí)現(xiàn),支持設(shè)計(jì)庫(kù)和可重復(fù)使用的元件生成,還支持多種設(shè)計(jì)方式,如層次化設(shè)計(jì)、模塊化設(shè)計(jì)和同步、異步和隨機(jī)電路設(shè)計(jì)。(2)與具體器件無(wú)關(guān)。用vhdl設(shè)計(jì)硬件電路時(shí)不用先確定設(shè)計(jì)要用到哪種器件,也不用特別熟悉器件的內(nèi)部結(jié)構(gòu),這樣可以使設(shè)計(jì)人員專注于進(jìn)行系統(tǒng)設(shè)計(jì)。設(shè)計(jì)完成后,可以根據(jù)消耗的資源選擇合適的器件,而不造成資源的浪費(fèi)

12、。(3)很強(qiáng)的移植能力。vhdl由很多不同的工具支持,同一個(gè)設(shè)計(jì)的程序可以在包括綜合工具、仿真工具、系統(tǒng)平臺(tái)等工具中使用。(4)強(qiáng)大的硬件描述能力。vhdl可以描述系統(tǒng)級(jí)電路和門級(jí)電路,而且描述方式多樣,可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以用其混合描述方式。同時(shí),vhdl可以準(zhǔn)確地建立硬件電路模型,因?yàn)樗С謶T性延遲和傳輸延遲。vhdl的數(shù)據(jù)類型很豐富,支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,當(dāng)標(biāo)準(zhǔn)定義的數(shù)據(jù)類型不能滿足用戶的需求時(shí),用戶可以自己定義的所需要的數(shù)據(jù)類型,增加了設(shè)計(jì)的自由度。(5)語(yǔ)法規(guī)范,易于共享。當(dāng)把用vhdl編寫的代碼文件看作是程序時(shí),它可以作為設(shè)計(jì)人員之間的交流內(nèi)容;當(dāng)把

13、它看作是文檔時(shí),可以作為簽約雙方的合同文本。vhdl易于共享的特點(diǎn),使得大規(guī)模的協(xié)作開發(fā)容易實(shí)現(xiàn)。同時(shí),這些特點(diǎn)也促進(jìn)了vhdl的發(fā)展和完善。綜上所述,vhdl有很多其他的硬件描述語(yǔ)言所不具備的優(yōu)點(diǎn)。但是,vhdl仍然存在一些缺點(diǎn),主要是3個(gè)方面。(1)要求設(shè)計(jì)者對(duì)硬件電路知識(shí)甚至是芯片結(jié)構(gòu)方面的知識(shí)了解較多。應(yīng)該擺脫一般的高級(jí)語(yǔ)言程序設(shè)計(jì)思路,因?yàn)樵陔娐肥澜缋锏氖录芏嗍遣⑿邪l(fā)生的,并且硬件電路系統(tǒng)內(nèi)部的模塊可以是互相獨(dú)立的,也可以是互為因果的,所以,在用vhdl設(shè)計(jì)硬件電路時(shí)應(yīng)擺脫一般的高級(jí)語(yǔ)言程序設(shè)計(jì)思路。在設(shè)計(jì)電路時(shí),應(yīng)先構(gòu)思電路,然后才能描述。(2)不能進(jìn)行太抽象的系統(tǒng)描述。因?yàn)閑d

14、a工具無(wú)法綜合抽象性太強(qiáng)的系統(tǒng),故用vhdl描述系統(tǒng)電路時(shí)不能太抽象。目前的vhdl很難綜合實(shí)際的硬件電路,只能適用于系統(tǒng)建模。(3)不能描述模擬電路。對(duì)于模擬電路而言,vhdl并不是一種理想的硬件描述語(yǔ)言。但可以預(yù)見,未來(lái)硬件描述語(yǔ)言的發(fā)展方向是模擬電路和數(shù)?;旌想娐返拿枋龇绞健?.3 quartus簡(jiǎn)介quartus ii 是altera公司的綜合性pld開發(fā)軟件,可以采用多種輸入方式,如vhdl、verilog hdl、ahdl(altera hardware description language)及電路圖等。它支持一些比較成熟的模塊,如lpm/megafunction宏功能模塊庫(kù)等

15、,設(shè)計(jì)者可以直接調(diào)用這些模塊,從而使設(shè)計(jì)的復(fù)雜性降低了,設(shè)計(jì)的速度也加快了。quartus ii 內(nèi)帶有綜合器和仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整pld設(shè)計(jì)流程,減少了設(shè)計(jì)者的工作量。quartus ii 是一種綜合性的開發(fā)平臺(tái),在quartus ii 中可以進(jìn)行系統(tǒng)級(jí)設(shè)計(jì)嵌入式的軟件開發(fā)和可編程邏輯的設(shè)計(jì)。quartus ii 越來(lái)越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎,是因?yàn)?quartus ii 擁有強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,可以在多種平臺(tái)上使用,如xp、linux以及unix等,具有完善的用戶圖形界面設(shè)計(jì)方式,運(yùn)行速度快,功能集中,易學(xué)易用等特點(diǎn)78。2 出租車計(jì)費(fèi)器的設(shè)計(jì)2.1 系

16、統(tǒng)設(shè)計(jì)要求系統(tǒng)設(shè)計(jì)要求為:(1)起步價(jià)為8.00元,起步公里為3公里;(2)超過(guò)3公里,每公里按1.00元收費(fèi);(3)單程行駛里程超過(guò)20公里,每公里租價(jià)加收50%;(4)等候時(shí)間累計(jì)1分鐘,則每分鐘折算1公里里程價(jià)。要求顯示里程、計(jì)費(fèi)及等候時(shí)間。乘客上車后,按下啟動(dòng)鍵,開始計(jì)費(fèi),除非同一乘客往返乘車,否則按下單程鍵,這樣當(dāng)行駛里程超過(guò)20公里時(shí),每公里收費(fèi)1.5元。2.2 設(shè)計(jì)思路根據(jù)系統(tǒng)的功能要求,分為2個(gè)模塊來(lái)實(shí)現(xiàn),分別是計(jì)費(fèi)模塊,顯示模塊。計(jì)費(fèi)模塊是實(shí)現(xiàn)系統(tǒng)功能的核心,里面有分為分頻、計(jì)時(shí)、公里計(jì)數(shù)、計(jì)費(fèi)等部分。分頻部分是把外部提供的300hz進(jìn)行分頻得到系統(tǒng)工作需要的工作脈沖,計(jì)費(fèi)部

17、分包括兩個(gè)內(nèi)容,一個(gè)是正常行駛的里程數(shù)所產(chǎn)生的費(fèi)用,另一個(gè)是車行中途暫停的時(shí)間所產(chǎn)生的費(fèi)用。然后將里程、計(jì)費(fèi)和等候時(shí)間以bcd碼形式顯示出來(lái),顯示模塊將其譯碼輪流掃描顯示。2.3 出租車計(jì)費(fèi)器系統(tǒng)工作流程圖對(duì)出租車計(jì)費(fèi)器系統(tǒng)的功能要求進(jìn)行分析,得到如下工作流程圖:圖1 工作流程圖出租車載客后,啟動(dòng)計(jì)費(fèi)器,整個(gè)系統(tǒng)開始工作,進(jìn)入初始化狀態(tài),即計(jì)程從0開始,計(jì)費(fèi)從8開始。再根據(jù)stop信號(hào)判斷行駛還是暫停。若是行駛狀態(tài),計(jì)費(fèi)器開始進(jìn)行里程計(jì)數(shù),當(dāng)里程超過(guò)3公里時(shí),計(jì)費(fèi)器開始累加,按1.00元每公里計(jì)算,計(jì)程器則繼續(xù),否則計(jì)費(fèi)器不變。當(dāng)里程超過(guò)20公里,按1.50每公里進(jìn)行累加。若是暫停狀態(tài),計(jì)費(fèi)器

18、開始進(jìn)行等候時(shí)間計(jì)數(shù),當(dāng)?shù)群驎r(shí)間累計(jì)1分鐘,則每分鐘折算1公里里程價(jià)。最后將等候時(shí)間、里程、計(jì)費(fèi)都顯示出來(lái)。3 出租車計(jì)費(fèi)器的實(shí)現(xiàn)3.1 出租車計(jì)費(fèi)器的頂層原理圖圖2 頂層原理圖原理圖中輸入部分分別是clk:系統(tǒng)時(shí)鐘信號(hào);mile:公里脈沖信號(hào);single:?jiǎn)纬替I;start:計(jì)費(fèi)器啟動(dòng)信號(hào);stop:等待信號(hào)。輸出部分為七段譯碼show和位選碼sel,show顯示出來(lái)的是等候時(shí)間、里程和計(jì)費(fèi)。描述系統(tǒng)頂層實(shí)體的vhdl程序見附錄。3.2 系統(tǒng)各功能模塊的實(shí)現(xiàn)3.2.1 模塊taxi:charge_control圖3 計(jì)費(fèi)模塊設(shè)計(jì)計(jì)費(fèi)模塊的難點(diǎn)在于小數(shù)計(jì)算,由計(jì)費(fèi)規(guī)則知,單程行駛里程超過(guò)20

19、公里,每公里租價(jià)加收50%,即每公里租價(jià)1.5元。20公里是臨界值,在此以后,計(jì)費(fèi)以1.5元累加,需要對(duì)計(jì)數(shù)進(jìn)行討論,因?yàn)閭€(gè)位為8或9都可能導(dǎo)致進(jìn)位。等候時(shí)間累計(jì)1分鐘,則每分鐘折算1公里里程價(jià),所以,等候和行駛都可使計(jì)費(fèi)增加。為此,設(shè)計(jì)2個(gè)時(shí)鐘脈沖,公里脈沖和等候脈沖,根據(jù)汽車行駛還是等候選擇計(jì)費(fèi)脈沖。描述計(jì)費(fèi)模塊的vhdl程序見附錄。3.2.2 模塊display:display_control圖4 顯示模塊顯示模塊用來(lái)將計(jì)費(fèi)模塊輸出譯碼,然后輪流掃描數(shù)碼管。如圖5,出租車計(jì)費(fèi)器共有8個(gè)數(shù)碼管,帶一個(gè)使能端,高電平有效。圖5 七段數(shù)碼管與向量元素對(duì)應(yīng)表1 七段數(shù)碼管段位碼十進(jìn)制數(shù)字段位碼0

20、00111111100000110201011011301100111401100110501101101601111101700100111801111111901101111滅00000000描述顯示模塊的vhdl程序見附錄。4 出租車計(jì)費(fèi)器系統(tǒng)仿真及分析4.1 頂層實(shí)體的仿真波形圖6 系統(tǒng)頂層實(shí)體仿真波形圖之一圖7 系統(tǒng)頂層實(shí)體仿真波形圖之二由圖7可知001(表示c1)對(duì)應(yīng)11101111(表示9.),100(表示k0)對(duì)應(yīng)01100110(表示4),其余均對(duì)應(yīng)00111111(表示0),即顯示為行駛4公里,費(fèi)用為9.0元。4.2 計(jì)費(fèi)模塊的仿真波形圖8(a)圖8(b)圖8(c)圖8均為

21、計(jì)費(fèi)模塊的仿真波形圖,由圖8(a)可看出汽車是單程行駛,圖8(b)可看出汽車在中途暫停了一段時(shí)間,在圖8(c)中可直觀地看出汽車行駛了75公里,等候時(shí)間為4分鐘,應(yīng)付的費(fèi)用為113.5元。4.3 顯示模塊的仿真波形圖9 顯示模塊仿真波形圖將計(jì)費(fèi)模塊輸出譯碼,然后輪流掃描數(shù)碼管,顯示各個(gè)數(shù)據(jù),等候時(shí)間4分鐘,里程75公里,計(jì)費(fèi)113.5元。4.4 管腳鎖定在驗(yàn)證出租車計(jì)費(fèi)器系統(tǒng)的功能之前,需要清楚實(shí)驗(yàn)箱與各個(gè)信號(hào)之間的對(duì)應(yīng)關(guān)系,參照資料得出本設(shè)計(jì)中各引腳的對(duì)應(yīng)情況如下:圖10 管腳鎖定管腳鎖定后將頂層文件下載到eda實(shí)驗(yàn)箱芯片中,驗(yàn)證計(jì)費(fèi)器的功能。4.5 顯示結(jié)果的幾種情況圖11 驗(yàn)證結(jié)果1圖1

22、1表示汽車行駛21公里,應(yīng)付費(fèi)26.5元,符合設(shè)計(jì)要求。圖12 驗(yàn)證結(jié)果2圖12表示汽車行駛25公里,在行駛20公里之后的一段時(shí)間內(nèi)停留4分鐘,應(yīng)付費(fèi)38.5元,符合設(shè)計(jì)要求。5 總結(jié)本設(shè)計(jì)采用vhdl硬件描述語(yǔ)言,通過(guò)quartus開發(fā)平臺(tái)設(shè)計(jì)了出租車計(jì)費(fèi)器系統(tǒng),經(jīng)過(guò)編譯仿真基本無(wú)誤,在此次設(shè)計(jì)中我主要做了以下工作:1對(duì)所選題目進(jìn)行仔細(xì)的審閱,理順?biāo)悸?,了解熟悉設(shè)計(jì)的基本思路,掌握整個(gè)設(shè)計(jì)工作的框架;2學(xué)習(xí)設(shè)計(jì)所需要用到的quartus軟件,做到熟練掌握軟件的各種仿真功能;3學(xué)習(xí)vhdl硬件描述語(yǔ)言,做到能讀懂vhdl程序,并能夠編寫本設(shè)計(jì)所需要的程序;4用軟件對(duì)程序進(jìn)行編譯和仿真,觀察波形

23、,符合設(shè)計(jì)的要求后,準(zhǔn)備硬件下載工作;5在實(shí)驗(yàn)室把程序下載到實(shí)驗(yàn)板上,經(jīng)過(guò)數(shù)碼管顯示結(jié)果符合設(shè)計(jì)要求,完成整個(gè)設(shè)計(jì)工作部分的實(shí)驗(yàn)環(huán)節(jié)。出租車計(jì)費(fèi)器系統(tǒng)的設(shè)計(jì)已經(jīng)全部完成,能夠按照預(yù)期的效果顯示等候時(shí)間、里程和車費(fèi)數(shù)目。車行駛或暫停按其各自的計(jì)費(fèi)規(guī)則進(jìn)行計(jì)費(fèi),車費(fèi)總數(shù)為兩項(xiàng)之和,若停止則車費(fèi)清零,等待下一次計(jì)費(fèi)的開始9。在出租車計(jì)費(fèi)器系統(tǒng)的兩個(gè)模塊計(jì)費(fèi)模塊、顯示模塊中,計(jì)費(fèi)模塊是實(shí)現(xiàn)系統(tǒng)功能的核心,里面又分為分頻、計(jì)時(shí)、公里計(jì)數(shù)、計(jì)費(fèi)等部分;顯示模塊將顯示等候時(shí)間,里程和費(fèi)用。各模塊成功編譯運(yùn)行后,再將它們組合到一起,完成完整的出租車系統(tǒng)的設(shè)計(jì)10。通過(guò)這次的論文設(shè)計(jì),我對(duì)vhdl編程語(yǔ)言有了更

24、深層次的了解,對(duì)quartus軟件的應(yīng)用更加的熟練,加強(qiáng)了我的動(dòng)手能力,使我在理論學(xué)習(xí)和編程練習(xí)方面都有了較大的收獲。參考文獻(xiàn)1 李蓉.基于vhdl語(yǔ)言的出租車自動(dòng)計(jì)費(fèi)器的設(shè)計(jì)j.科技風(fēng),2008,24:42-462 侯伯亨,顧新.vhdl硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(修訂版)m.西安:西安電子科技大學(xué)出版社,2005:3-93 孟慶海,張洲.vhdl基礎(chǔ)及經(jīng)典實(shí)例開發(fā)m.西安:西安交通大學(xué)出版社,2008,4:1-54 王行,李衍.eda技術(shù)入門與提高m.西安:西安電子科技大學(xué)出版社,2005:17-325 周彩寶等.vhdl語(yǔ)言及其應(yīng)用j.計(jì)算機(jī)工程,1998,10:17-206 孫冰等

25、.vhdl在計(jì)算機(jī)組成原理實(shí)驗(yàn)中的應(yīng)用研究j.價(jià)值工程,2011,30(27):56-597 黃正瑾等編著.cpld系統(tǒng)設(shè)計(jì)技術(shù)入門與應(yīng)用m.北京:電子工業(yè)出版社,2002:13-238 劉愛榮等編著. eda技術(shù)與cpld/fpga開發(fā)應(yīng)用簡(jiǎn)明教程m. 北京:清華大學(xué)出版社,2007:45-569 席礪莼等.基于vhdl語(yǔ)言的出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì)j.現(xiàn)代電子技術(shù),2003,3:57-6110 高健等.基于verilog hdl出租車計(jì)費(fèi)系統(tǒng)的研制j.實(shí)驗(yàn)室研究與探索, 2004,10:34-37致 謝在這次畢業(yè)設(shè)計(jì)的設(shè)計(jì)過(guò)程中,得到了很多人的幫助。首先要感謝我的指導(dǎo)老師陳初俠老師,在課程設(shè)計(jì)上

26、給予我的指導(dǎo),提供給我的支持和幫助,讓我能把系統(tǒng)做得更加完善。在完成畢業(yè)論文的過(guò)程中,我學(xué)到了許多新的知識(shí),也鞏固了一些已經(jīng)學(xué)過(guò)的知識(shí),彌補(bǔ)了以前的不足之處,鍛煉了我的動(dòng)手能力,使我的設(shè)計(jì)能力得到提高。其次,我要感謝幫助過(guò)我的同學(xué)們,他們也為我解決了不少難題,同時(shí)也感謝學(xué)院為我提供了良好的做畢業(yè)設(shè)計(jì)的環(huán)境。最后,要感謝各位老師抽出時(shí)間對(duì)本文進(jìn)行評(píng)閱。附 錄頂層實(shí)體的vhdl編程:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity

27、taximeter isport(clk : in std_logic;-輸入300hz時(shí)鐘 start : in std_logic;-計(jì)費(fèi)器啟動(dòng) stop : in std_logic;-等待信號(hào) mile : in std_logic;-公里脈沖信號(hào) single : in std_logic;-單程鍵 sel : out std_logic_vector(2 downto 0);-位選 show : out std_logic_vector(7 downto 0);-7段數(shù)碼管譯碼輸出end taximeter;architecture structural of taximeter

28、is component taxi port(clk : in std_logic; start : in std_logic; stop : in std_logic; mile : in std_logic; single : in std_logic; char0 : out std_logic_vector(3 downto 0);-計(jì)費(fèi)輸出小數(shù)點(diǎn)位 char1 : out std_logic_vector(3 downto 0);-計(jì)費(fèi)輸出個(gè)位 char2 : out std_logic_vector(3 downto 0);-計(jì)費(fèi)輸出十位 char3 : out std_logic

29、_vector(3 downto 0);-計(jì)費(fèi)輸出百位 min0 : out std_logic_vector(3 downto 0);-等待時(shí)間輸出個(gè)位 min1 : out std_logic_vector(3 downto 0);-等待時(shí)間輸出十位 km0 : out std_logic_vector(3 downto 0);-行駛公里輸出個(gè)位 km1 : out std_logic_vector(3 downto 0);-行駛公里輸出十位 end component; component display port(clk : in std_logic; char0 : in std_l

30、ogic_vector(3 downto 0); char1 : in std_logic_vector(3 downto 0); char2 : in std_logic_vector(3 downto 0); char3 : in std_logic_vector(3 downto 0); min0 : in std_logic_vector(3 downto 0); min1 : in std_logic_vector(3 downto 0); km0 : in std_logic_vector(3 downto 0); km1 : in std_logic_vector(3 downt

31、o 0); sel : out std_logic_vector(2 downto 0); show : out std_logic_vector(7 downto 0); end component; signal char0 : std_logic_vector(3 downto 0); signal char1 : std_logic_vector(3 downto 0);signal char2 : std_logic_vector(3 downto 0);signal char3 : std_logic_vector(3 downto 0);signal min0 : std_log

32、ic_vector(3 downto 0);signal min1 : std_logic_vector(3 downto 0);signal km0 : std_logic_vector(3 downto 0);signal km1 : std_logic_vector(3 downto 0);begin charge_control:taxi port map(clk = clk, start = start, stop = stop, mile = mile, single = single, char0 = char0, char1 = char1, char2 = char2, ch

33、ar3 = char3, min0 = min0, min1 = min1, km0 = km0, km1 = km1);display_control:displayport map(clk = clk, char0 = char0, char1 = char1, char2 = char2, char3 = char3, min0 = min0, min1 = min1, km0 = km0, km1 = km1, sel = sel, show = show);end structural;計(jì)費(fèi)模塊的vhdl編程:library ieee;use ieee.std_logic_1164.

34、all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity taxi isport(clk : in std_logic;-輸入300hz時(shí)鐘 start : in std_logic;-計(jì)費(fèi)器啟動(dòng) stop : in std_logic;-等待信號(hào) mile : in std_logic;-公里脈沖信號(hào) single : in std_logic;-單程鍵 char0 : out std_logic_vector(3 downto 0);-計(jì)費(fèi)輸出小數(shù)點(diǎn)位 char1 : out std_logic_vect

35、or(3 downto 0);-計(jì)費(fèi)輸出個(gè)位 char2 : out std_logic_vector(3 downto 0);-計(jì)費(fèi)輸出十位 char3 : out std_logic_vector(3 downto 0);-計(jì)費(fèi)輸出百位 min0 : out std_logic_vector(3 downto 0);-等待時(shí)間輸出 min1 : out std_logic_vector(3 downto 0);-等待時(shí)間輸出 km0 : out std_logic_vector(3 downto 0);-行駛公里輸出 km1 : out std_logic_vector(3 downto

36、0);-行駛公里輸出end taxi;architecture behave of taxi isconstant n : integer := 30;signal f_mile1 : std_logic;-延遲時(shí)間signal f_mile2 : std_logic;-延遲時(shí)間signal f_mile_r : std_logic;-延遲時(shí)間signal start_r : std_logic;-延遲時(shí)間signal clk1hz : std_logic;-分頻所得1hz時(shí)鐘signal q : integer range 0 to n-1;-分頻器signal sec : integer

37、range 0 to 59;signal c3,c2,c1,c0 : std_logic_vector(3 downto 0);-計(jì)費(fèi)寄存器signal k0 : std_logic_vector(3 downto 0);-公里寄存器signal k1 : std_logic_vector(3 downto 0);-公里寄存器signal m1 : std_logic_vector(3 downto 0);-等待時(shí)間寄存器signal m0 : std_logic_vector(3 downto 0);-等待時(shí)間寄存器signal en0 : std_logic;-路程大于3公里,使能有效si

38、gnal en1 : std_logic;-單程且大于20公里,使能有效signal f_wait : std_logic;-等待時(shí)間,1脈沖/分鐘signal f : std_logic;-計(jì)費(fèi)時(shí)鐘begin-輸出顯示min0 = m0;min1 = m1;km0 = k0;km1 = k1;char0 = c0;char1 = c1;char2 = c2;char3 = c3;-分頻進(jìn)程-u1:process(clk)beginif rising_edge(clk) thenif q=299 thenq=0;elseq=q+1;end if;end if;end process;clk1h

39、z = 0 when qinteger(n/2) else 1;-等待計(jì)時(shí)進(jìn)程-u2:process(clk1hz,start)beginif start=0 thenf_wait=0;elsif rising_edge(clk1hz) thenif stop=1 thenif sec=59 then sec=0; f_wait=1; if m0=1001 then m0=0000;if m1=0101 then m1=0000; else m1=m1+1; end if;else m0=m0+1;end if;else f_wait=0; sec=sec+1;end if;else f_wa

40、it=0;end if;end if;end process;-延遲信號(hào),檢測(cè)上升沿-u3:process(clk1hz)begin if rising_edge(clk1hz) then f_mile2 = f_mile1; f_mile1 = mile; start_r = start; end if;end process;f_mile_r= f_mile1 and not(f_mile2);-選擇不同的計(jì)費(fèi)時(shí)鐘-f= f_wait when stop=1 else f_mile_r when en0=1 else0;-公里計(jì)數(shù)進(jìn)程-u4:process(start,f_mile_r)b

41、egin if start=0 then k0=0000; k1=0000; en0=0;en1=0;elsif rising_edge(f_mile_r) thenif k0=1001 thenk0=0000;if k1=1001 then k1=0000;else k1=k1+1;end if;elsek0=k0+1;end if; -大于3公里,使能有效if k0=0011 then en0=1;end if; -單程且大于20公里,使能有效if k1=0001 and k0=1001 and single=1 then en1=1;end if;end if;end process;-

42、計(jì)費(fèi)進(jìn)程-u5:process(start,f,start_r)beginif start=1 and start_r=0 thenc0=0000;c1=1000;c2=0000;c3=0000;elsif rising_edge(f) then if en1=0 then-小于20公里時(shí),每公里1元 if c1=1001 then c1=0000; if c2=1001 then 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-超過(guò)2

43、0公里,每公里1.5元if(c0=0101 and c1=1000) or c1=1001 then-等于xx9.5時(shí),累加得xx1.0 if c1=1001 and c0=0101 then c0=0000; c1=0001;-等于xx9.0,累加得xx0.5 elsif c1=1001 and c0=0000 then c0=0101; c1=0000;-等于xx8.5時(shí),累加得xx0.0 elsif c1=1000 and c0=0101 then c0=0000; c1=0000;end if;if c2=1001 thenc2=0000;if c3=1001 then c3=0000;else c3=c3+1;e

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論