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

下載本文檔

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

文檔簡介

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

2、模塊進行設(shè)計, 其 次畫出頂層原理圖, 然后對頂層文件進行仿真測試,最后將仿真成功 的設(shè)計文件下載到 EDA實驗箱進行驗證。 驗證結(jié)果具有計時、計里程、 計費等功能 。 矚慫潤厲釤瘞睞櫪廡賴。關(guān)鍵詞: 出租車計費器; VHDL; Quartus ;設(shè)計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 im

3、portant instrument in taxi, it is the fair 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 neces

4、sary for drivers and passengers. This paper 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, char

5、ge and waiting time by BCD code. The display 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 ED

6、A experiment box. The validation result comply with the design requirements, there are many functions, as record the time, mileage and charge. 聞創(chuàng)溝燴鐺險愛氌譴凈。Key woords: taximeter; VHDL; Quartus ; design目錄中文摘要 . 殘騖樓諍錈瀨濟溆塹籟。英文摘要 .1 引言 釅1錒極額閉鎮(zhèn)檜豬訣錐。1.1 設(shè)計背景 彈1貿(mào)攝爾霽斃攬磚鹵廡。1.2 VHDL 簡介 謀1蕎摶篋飆鐸懟類蔣薔。1.3 Quartus簡介

7、 3廈礴懇蹣駢時盡繼價騷。2 出租車計費器的設(shè)計 煢3 楨廣鰳鯡選塊網(wǎng)羈淚。2.1 系統(tǒng)設(shè)計要求 鵝3婭盡損鵪慘歷蘢鴛賴。2.2 設(shè)計思路 籟4叢媽羥為贍僨蟶練淨。2.3 出租車計費器系統(tǒng)工作流程圖 4預(yù)頌圣鉉儐歲齦訝驊糴。3 出租車計費器的實現(xiàn) 滲6 釤嗆儼勻諤鱉調(diào)硯錦。3.1 出租車計費器的頂層原理圖 6鐃誅臥瀉噦圣騁貺頂廡。3.2 系統(tǒng)各功能模塊的實現(xiàn) 6擁締鳳襪備訊顎輪爛薔。3.2.1 模塊 taxi:charge_control 贓6 熱俁閫歲匱閶鄴鎵騷。3.2.2 模塊 display:display_control 7壇摶鄉(xiāng)囂懺蔞鍥鈴氈淚。4 出租車計費器系統(tǒng)仿真及分析 8蠟變黲

8、癟報倀鉉錨鈰贅。4.1 頂層實體的仿真波形 8買鯛鴯譖曇膚遙閆擷凄。4.2 計費模塊的仿真波形 9綾鏑鯛駕櫬鶘蹤韋轔糴。4.3 顯示模塊的仿真波形 10驅(qū)躓髏彥浹綏譎飴憂錦。4.4 管腳鎖定 1貓0蠆驢繪燈鮒誅髏貺廡。4.5 顯示結(jié)果的幾種情況 1鍬1 籟饗逕瑣筆襖鷗婭薔。5 總結(jié) 1構(gòu)1氽頑黌碩飩薺齦話騖。參考文獻 1輒2嶧陽檉籪癤網(wǎng)儂號澩。致 謝 1堯3側(cè)閆繭絳闕絢勵蜆贅。附 錄 1識4饒鎂錕縊灩筧嚌儼淒。巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )1 引言1.1 設(shè)計背景出租車行業(yè)在我國八十年代初開始興起, 因為其方便快捷的特點受到人們的 歡迎。尤其是近幾年里,人們物質(zhì)生活水平得到提高

9、以及生活節(jié)奏加快了,很多 城市的出租車行業(yè)迅速發(fā)展, 出租車已經(jīng)成為人們出行的普遍選擇之一。 而出租 車計費器是出租車內(nèi)重要的儀器之一, 它能夠規(guī)范出租車市場, 減小乘客與司機 之間發(fā)生糾紛的可能性。 要想加強出租車行業(yè)的管理, 提高服務(wù)的質(zhì)量就必須要 有一種功能齊全,準確計量,簡單又易用的出租車計費器。因為出租車計費器計 數(shù)是連續(xù)累加的, 所以它可以顯示出任一時刻乘客應(yīng)付的費用。 我國最初所使用 的計費器只有一種功能,即計量。我國第一家生產(chǎn)計費器的是重慶起重機廠,早 期的計費器就是個里程表 , 因為它們都是用的機械齒輪結(jié)構(gòu),只能實現(xiàn)最簡單的 計程功能。如今我國有上百家企業(yè)生產(chǎn)出租車計費器,

10、這些企業(yè)主要分布在北京, 上海,廣州和沈陽等地。隨著時代的發(fā)展,第一代計費器已經(jīng)不能滿足人們的需 求,科學技術(shù)的發(fā)展使第二代計費器應(yīng)運而生。 它實現(xiàn)了半機械半電子化的設(shè)計, 采用的是手搖計算機與機械結(jié)構(gòu)相結(jié)合的方式, 它不僅能實現(xiàn)計程的功能, 同時 還能完成計價的工作, 給計費器的使用者帶來了方便。 而大規(guī)模集成電路的發(fā)展 又給計費器帶來了新的變化,產(chǎn)生了第三代計費器,即全電子化的計費器。它的 功能變得更多,同時也在不斷完善的過程之中。在改進和完善的過程中,產(chǎn)生了 很多實用的附加功能,給人們帶來了更多的方便。例如: (1)LED 顯示功能。在 計費器中添加數(shù)碼管,讓計費器多屏顯示的功能得以實現(xiàn)

11、; (2) 永久時鐘功能。 將日歷時鐘芯片運用到計費器當中, 即使是在非營運的狀態(tài)下, 計費器上的時鐘 也可以永久顯示; (3) 存儲功能。計費器可長時間存儲多項營運數(shù)據(jù),以便于需 要的時候查詢 1 。凍鈹鋨勞臘鍇癇婦脛糴。1.2 VHDL 簡介硬件描述語言已經(jīng)有幾十年的發(fā)展歷史,并且在系統(tǒng)的仿真、驗證和設(shè)計、 綜合等方面得到成功的應(yīng)用。 目前常用的硬件描述語言有 VHDL、 Verilog HDL 、出租車計費器的設(shè)計及實現(xiàn)ABEL等234 。VHDL則起源于 20世紀 70 年代末和 80 年代初,美國國防部提出 的 VHSIC計劃,目標是為下一代集成電路的生產(chǎn)、 實踐階段性的工藝極限和完

12、成 10 萬門級以上的電路設(shè)計而建立一種新的描述方法5 。 VHDL 的英文全稱為Very-High-Speed Integrated Circuit Hardware Description Language, 是 IEEE 標準化的硬件描述語言,并且已經(jīng)成為系統(tǒng)描述的國際公認標準,得到眾多 EDA 公司的支持。 恥諤銪滅縈歡煬鞏鶩錦。VHDL具有很多的優(yōu)點使它能夠被大多數(shù)人認可,被廣泛應(yīng)用在邏輯電路的 設(shè)計方面,并且成為了標準化的硬件描述語言,其優(yōu)點如下: 鯊腎鑰詘褳鉀溈懼統(tǒng)庫。(1) 功能強大和設(shè)計靈活。 一個簡潔的使用 VHDL語言編寫的程序就可以描述 一個復雜的邏輯電路,因為 VHD

13、L擁有強大的語言結(jié)構(gòu) 6 。VHDL多層次的設(shè)計描 述功能可以有效地控制設(shè)計的實現(xiàn), 支持設(shè)計庫和可重復使用的元件生成, 還支 持多種設(shè)計方式,如層次化設(shè)計、模塊化設(shè)計和同步、異步和隨機電路設(shè)計。 碩 癘鄴頏謅攆檸攜驤蘞。(2) 與具體器件無關(guān)。用 VHDL設(shè)計硬件電路時不用先確定設(shè)計要用到哪種器 件,也不用特別熟悉器件的內(nèi)部結(jié)構(gòu), 這樣可以使設(shè)計人員專注于進行系統(tǒng)設(shè)計。 設(shè)計完成后,可以根據(jù)消耗的資源選擇合適的器件,而不造成資源的浪費。 閿擻輳 嬪諫遷擇楨秘騖。(3) 很強的移植能力。 VHDL由很多不同的工具支持,同一個設(shè)計的程序可以 在包括綜合工具、仿真工具、系統(tǒng)平臺等工具中使用。 氬嚕

14、躑竄貿(mào)懇彈瀘頷澩。(4) 強大的硬件描述能力。 VHDL可以描述系統(tǒng)級電路和門級電路,而且描述 方式多樣,可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以用其混合 描述方式。同時, VHDL可以準確地建立硬件電路模型,因為它支持慣性延遲和 傳輸延遲。 VHDL的數(shù)據(jù)類型很豐富,支持標準定義的數(shù)據(jù)類型,當標準定義的 數(shù)據(jù)類型不能滿足用戶的需求時, 用戶可以自己定義的所需要的數(shù)據(jù)類型, 增加 了設(shè)計的自由度。 釷鵒資贏車贖孫滅獅贅。(5) 語法規(guī)范,易于共享。當把用 VHDL編寫的代碼文件看作是程序時,它可 以作為設(shè)計人員之間的交流內(nèi)容; 當把它看作是文檔時, 可以作為簽約雙方的合 同文本。

15、VHDL易于共享的特點,使得大規(guī)模的協(xié)作開發(fā)容易實現(xiàn)。同時,這些 特點也促進了 VHDL的發(fā)展和完善。 慫闡譜鯪逕導嘯畫長涼。綜上所述, VHDL有很多其他的硬件描述語言所不具備的優(yōu)點。但是, VHDL 仍然存在一些缺點,主要是 3 個方面。 諺辭調(diào)擔鈧諂動禪瀉類。巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )(1) 要求設(shè)計者對硬件電路知識甚至是芯片結(jié)構(gòu)方面的知識了解較多。應(yīng)該 擺脫一般的高級語言程序設(shè)計思路,因為在電路世界里的事件很多是并行發(fā)生 的,并且硬件電路系統(tǒng)內(nèi)部的模塊可以是互相獨立的,也可以是互為因果的,所 以,在用 VHDL設(shè)計硬件電路時應(yīng)擺脫一般的高級語言程序設(shè)計思路。在設(shè)計電

16、 路時,應(yīng)先構(gòu)思電路,然后才能描述。 嘰覲詿縲鐋囁偽純鉿錈。(2) 不能進行太抽象的系統(tǒng)描述。 因為 EDA工具無法綜合抽象性太強的系統(tǒng) 故用 VHDL描述系統(tǒng)電路時不能太抽象。目前的 VHDL很難綜合實際的硬件電路, 只能適用于系統(tǒng)建模。 熒紿譏鉦鏌觶鷹緇機庫。(3) 不能描述模擬電路。對于模擬電路而言, VHDL并不是一種理想的硬件描 述語言。但可以預(yù)見, 未來硬件描述語言的發(fā)展方向是模擬電路和數(shù)?;旌想娐?的描述方式。 鶼漬螻偉閱劍鯫腎邏蘞。1.3 Quartus 簡介Quartus II 是 Altera 公司的綜合性 PLD開發(fā)軟件,可以采用多種輸入方式, 如 VHDL、 Veril

17、og HDL 、AHDL(Altera Hardware Description Language) 及電路 圖等。它支持一些比較成熟的模塊,如 LPM/MegaFunction 宏功能模塊庫等,設(shè) 計者可以直接調(diào)用這些模塊, 從而使設(shè)計的復雜性降低了, 設(shè)計的速度也加快了。 Quartus II 內(nèi)帶有綜合器和仿真器, 可以完成從設(shè)計輸入到硬件配置的完整 PLD 設(shè)計流程,減少了設(shè)計者的工作量。 Quartus II 是一種綜合性的開發(fā)平臺,在 Quartus II 中可以進行系統(tǒng)級設(shè)計嵌入式的軟件開發(fā)和可編程邏輯的設(shè)計。 Quartus II 越來越受到數(shù)字系統(tǒng)設(shè)計者的歡迎,是因為 Qua

18、rtus II 擁有強大 的設(shè)計能力和直觀易用的接口, 可以在多種平臺上使用, 如 XP、Linux 以及 Unix 等,具有完善的用戶圖形界面設(shè)計方式,運行速度快,功能集中,易學易用等特 點78 。 紂憂蔣氳頑薟驅(qū)藥憫騖。2 出租車計費器的設(shè)計2.1 系統(tǒng)設(shè)計要求系統(tǒng)設(shè)計要求為:出租車計費器的設(shè)計及實現(xiàn)(1) 起步價為 8.00 元,起步公里為 3 公里;(2) 超過 3 公里,每公里按 1.00 元收費;(3) 單程行駛里程超過 20 公里,每公里租價加收 50%;(4) 等候時間累計 1 分鐘,則每分鐘折算 1 公里里程價。 要求顯示里程、計費及等候時間。乘客上車后,按下啟動鍵,開始計費

19、,除非同一乘客往返乘車,否則按下單 程鍵,這樣當行駛里程超過 20 公里時,每公里收費 1.5 元。 穎芻莖蛺餑億頓裊賠瀧。2.2 設(shè)計思路根據(jù)系統(tǒng)的功能要求,分為 2 個模塊來實現(xiàn),分別是計費模塊,顯示模塊。 計費模塊是實現(xiàn)系統(tǒng)功能的核心,里面有分為分頻、計時、公里計數(shù)、計費等部 分。分頻部分是把外部提供的 300Hz進行分頻得到系統(tǒng)工作需要的工作脈沖, 計 費部分包括兩個內(nèi)容, 一個是正常行駛的里程數(shù)所產(chǎn)生的費用, 另一個是車行中 途暫停的時間所產(chǎn)生的費用。 然后將里程、 計費和等候時間以 BCD碼形式顯示出 來,顯示模塊將其譯碼輪流掃描顯示。 濫驂膽閉驟羥闈詔寢賻。2.3 出租車計費器系

20、統(tǒng)工作流程圖對出租車計費器系統(tǒng)的功能要求進行分析,得到如下工作流程圖:巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )圖 1 工作流程圖出租車載客后,啟動計費器,整個系統(tǒng)開始工作,進入初始化狀態(tài),即計程 從 0 開始,計費從 8 開始。再根據(jù) stop 信號判斷行駛還是暫停。若是行駛狀態(tài), 計費器開始進行里程計數(shù),當里程超過 3 公里時,計費器開始累加,按 1.00 元 每公里計算,計程器則繼續(xù),否則計費器不變。當里程超過 20 公里,按 1.50 每 公里進行累加。若是暫停狀態(tài),計費器開始進行等候時間計數(shù),當?shù)群驎r間累計 1分鐘,則每分鐘折算 1公里里程價。 最后將等候時間、 里程、計費都顯示

21、出來。 銚銻縵嚌鰻鴻鋟謎諏涼。出租車計費器的設(shè)計及實現(xiàn)3 出租車計費器的實現(xiàn)3.1 出租車計費器的頂層原理圖圖 2 頂層原理圖原理圖中輸入部分分別是 clk :系統(tǒng)時鐘信號;mile :公里脈沖信號;single : 單程鍵; start :計費器啟動信號; stop :等待信號。輸出部分為七段譯碼 show 和位選碼 sel ,show 顯示出來的是等候時間、里程和計費。 擠貼綬電麥結(jié)鈺贖嘵類。描述系統(tǒng)頂層實體的 VHDL程序見附錄。3.2 系統(tǒng)各功能模塊的實現(xiàn)3.2.1 模塊 taxi:charge_control6巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )圖 3 計費模塊設(shè)計計費模塊

22、的難點在于小數(shù)計算,由計費規(guī)則知,單程行駛里程超過 20 公里,每公里租價加收 50%,即每公里租價 1.5 元。20 公里是臨界值, 在此以后, 計費以 1.5 元累加,需要對計數(shù)進行討論,因為個位為 8或 9都可能導致進位。 等候時間累計 1分鐘,則每分鐘折算 1 公里里程價,所以,等候和行駛都可使計 費增加。為此,設(shè)計 2 個時鐘脈沖,公里脈沖和等候脈沖,根據(jù)汽車行駛還是等 候選擇計費脈沖。 賠荊紳諮侖驟遼輩襪錈。描述計費模塊的 VHDL程序見附錄。3.2.2 模塊 display:display_control圖 4 顯示模塊顯示模塊用來將計費模塊輸出譯碼,然后輪流掃描數(shù)碼管。如圖5,

23、出租車計費器共有 8 個數(shù)碼管,帶一個使能端,高電平有效。 塤礙籟饈決穩(wěn)賽釙冊庫。abh g f e d c b a8 7 6 5 4 3 2 1ch圖 5 七段數(shù)碼管與向量元素對應(yīng)表 1 七段數(shù)碼管段位碼十進制數(shù)字段位碼0001111111000001107出租車計費器的設(shè)計及實現(xiàn)201011011301100111401100110501101101601111101700100111801111111901101111滅00000000描述顯示模塊的 VHDL程序見附錄4 出租車計費器系統(tǒng)仿真及分析4.1 頂層實體的仿真波形圖 6 系統(tǒng)頂層實體仿真波形圖之一圖 7 系統(tǒng)頂層實體仿真波形圖

24、之由圖 7 可知 001(表示 c1) 對應(yīng) 11101111(表示 9.) , 100(表示 k0) 對應(yīng) 01100110(表示 4) ,其余均對應(yīng) 00111111(表示 0) ,即顯示為行駛 4公里,費用 為 9.0 元。 裊樣祕廬廂顫諺鍘羋藺。巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )4.2 計費模塊的仿真波形圖 8(a)圖 8(b)圖 8(c)圖 8 均為計費模塊的仿真波形圖, 由圖 8(a) 可看出汽車是單程行駛, 圖 8(b) 可看出汽車在中途暫停了一段時間,在圖 8(c) 中可直觀地看出汽車行駛了 75 公 里,等候時間為 4分鐘,應(yīng)付的費用為 113.5 元。 倉嫗盤紲

25、囑瓏詁鍬齊驁。出租車計費器的設(shè)計及實現(xiàn)4.3 顯示模塊的仿真波形鐘,將計費模塊輸出譯碼,然后輪流掃描數(shù)碼管,顯示各個數(shù)據(jù),等候時間 4 分 里程 75 公里,計費 113.5 元。 綻萬璉轆娛閬蟶鬮綰瀧。4.4 管腳鎖定在驗證出租車計費器系統(tǒng)的功能之前, 需要清楚實驗箱與各個信號之間的對 應(yīng)關(guān)系,參照資料得出本設(shè)計中各引腳的對應(yīng)情況如下: 驍顧燁鶚巰瀆蕪領(lǐng)鱺賻。圖 10 管腳鎖定管腳鎖定后將頂層文件下載到 EDA實驗箱芯片中,驗證計費器的功能10巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )4.5 顯示結(jié)果的幾種情況圖 11 表示汽車行駛 21 公里,應(yīng)付費 26.5 元,符合設(shè)計要求圖 12

26、 驗證結(jié)果 2圖 12 表示汽車行駛 25 公里,在行駛 20公里之后的一段時間內(nèi)停留 4 分鐘, 應(yīng)付費 38.5 元,符合設(shè)計要求。 瑣釙濺曖惲錕縞馭篩涼。5 總結(jié)本設(shè)計采用 VHDL硬件描述語言 , 通過 Quartus 開發(fā)平臺設(shè)計了出租車計費 器系統(tǒng),經(jīng)過編譯仿真基本無誤,在此次設(shè)計中我主要做了以下工作: 鎦詩涇艷損樓 紲鯗餳類。1對所選題目進行仔細的審閱,理順思路,了解熟悉設(shè)計的基本思路,掌 握整個設(shè)計工作的框架;2學習設(shè)計所需要用到的 Quartus 軟件,做到熟練掌握軟件的各種仿真 功能;11出租車計費器的設(shè)計及實現(xiàn)3學習 VHDL硬件描述語言,做到能讀懂 VHDL程序,并能夠

27、編寫本設(shè)計所 需要的程序;4用軟件對程序進行編譯和仿真,觀察波形,符合設(shè)計的要求后,準備硬 件下載工作;5在實驗室把程序下載到實驗板上,經(jīng)過數(shù)碼管顯示結(jié)果符合設(shè)計要求, 完成整個設(shè)計工作部分的實驗環(huán)節(jié)。出租車計費器系統(tǒng)的設(shè)計已經(jīng)全部完成,能夠按照預(yù)期的效果顯示等候時 間、里程和車費數(shù)目。車行駛或暫停按其各自的計費規(guī)則進行計費,車費總數(shù)為 兩項之和,若停止則車費清零,等待下一次計費的開始 9 。在出租車計費器系統(tǒng) 的兩個模塊計費模塊、顯示模塊中,計費模塊是實現(xiàn)系統(tǒng)功能的核心,里面 又分為分頻、計時、公里計數(shù)、計費等部分;顯示模塊將顯示等候時間,里程和 費用。各模塊成功編譯運行后,再將它們組合到一

28、起,完成完整的出租車系統(tǒng)的 設(shè)計10 。櫛緶歐鋤棗鈕種鵑瑤錟。通過這次的論文設(shè)計, 我對 VHDL編程語言有了更深層次的了解, 對 Quartus 軟件的應(yīng)用更加的熟練, 加強了我的動手能力, 使我在理論學習和編程練習方 面都有了較大的收獲。 轡燁棟剛殮攬瑤麗鬮應(yīng)。參考文獻1 李蓉.基于 VHDL語言的出租車自動計費器的設(shè)計 J.科技風, 2008,24: 42-462 侯伯亨,顧新 .VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計 (修訂版 )M. 西安: 西安電子科技大學出版社, 2005:3-9 峴揚斕滾澗輻灄興渙藺。3 孟慶海,張洲 .VHDL基礎(chǔ)及經(jīng)典實例開發(fā) M. 西安:西安交通大學出版社

29、, 2008,4:1-5 詩叁撻訥燼憂毀厲鋨驁。4 王行,李衍 .EDA技術(shù)入門與提高 M. 西安:西安電子科技大學出版社, 2005:17-325 周彩寶等 .VHDL語言及其應(yīng)用 J. 計算機工程, 1998,10:17-206 孫冰等. VHDL 在計算機組成原理實驗中的應(yīng)用研究 J.價值工 程,2011,30(27): 56-59 則鯤愜韋瘓賈暉園棟瀧。7 黃正瑾等編著 .CPLD系統(tǒng)設(shè)計技術(shù)入門與應(yīng)用 M. 北京: 電子工業(yè)出版12巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )社,2002:13-23 脹鏝彈奧秘孫戶孿釔賻。8 劉愛榮等編著 . EDA 技術(shù)與 CPLD/FPGA開發(fā)

30、應(yīng)用簡明教程 M. 北京: 清華大 學出版社 ,2007:45-56 鰓躋峽禱紉誦幫廢掃減。9 席礪莼等 . 基于 VHDL語言的出租車計費系統(tǒng)設(shè)計 J. 現(xiàn)代電子技術(shù), 2003,3:57-6110 高健等.基于 Verilog HDL 出租車計費系統(tǒng)的研制 J. 實驗室研究與探索 , 2004,10: 34-37 稟虛嬪賑維嚌妝擴踴糶。致謝在這次畢業(yè)設(shè)計的設(shè)計過程中, 得到了很多人的幫助。 首先要感謝我的指導 老師陳初俠老師,在課程設(shè)計上給予我的指導,提供給我的支持和幫助,讓 我能把系統(tǒng)做得更加完善。在完成畢業(yè)論文的過程中,我學到了許多新的知識, 也鞏固了一些已經(jīng)學過的知識,彌補了以前的不

31、足之處,鍛煉了我的動手能力, 使我的設(shè)計能力得到提高。其次,我要感謝幫助過我的同學們,他們也為我解決 了不少難題,同時也感謝學院為我提供了良好的做畢業(yè)設(shè)計的環(huán)境。最后,要感 謝各位老師抽出時間對本文進行評閱。 陽簍埡鮭罷規(guī)嗚舊巋錟。13出租車計費器的設(shè)計及實現(xiàn)附錄頂層實體的 VHDL編程:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;port(clk: in std_logic;- 輸入 300Hz 時鐘start: in std_log

32、ic;- 計費器啟動stop: in std_logic;- 等待信號mile: in std_logic;- 公里脈沖信號single: in std_logic;- 單程鍵sel: out std_logic_vector(2 downto 0);- 位選show: out std_logic_vector(7 downto 0);-7 段數(shù)碼管譯碼輸出entity taximeter is應(yīng)。end taximeter;溈氣嘮戇萇鑿鑿櫧諤14巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )architecture structural of taximeter is component t

33、axiport(clk: in std_logic;start: in std_logic;stop: in std_logic;mile: in std_logic;singlein std_logic;藺。char0: out std_logic_vector(3 downto 0);- 計費輸出小數(shù)點位鋇嵐縣緱虜榮產(chǎn)濤團char1: out std_logic_vector(3 downto 0);- 計費輸出個位char2: out std_logic_vector(3 downto 0);- 計費輸出十位char3: out std_logic_vector(3 downto 0);

34、- 計費輸出百位min0: out std_logic_vector(3 downto 0);- 等待時間輸出個位懨俠劑鈍觸樂鷴燼觶騮。min1: out std_logic_vector(3 downto 0);- 等待時間輸出十位謾飽兗爭詣繚鮐癩別瀘。km0: out std_logic_vector(3 downto 0);- 行駛公里輸出個位咼鉉們歟謙鴣餃競蕩賺。km1: out std_logic_vector(3 downto 0);- 行駛公里輸出十位瑩諧齷蘄賞組靄縐嚴減。end component; component display port(clk : in std_log

35、ic;char0 : in std_logic_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_vec

36、tor(3 downto 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 min0std_logic_

37、vector(3 downto 0);signal min1std_logic_vector(3 downto 0);signal km0: std_logic_vector(3 downto 0);signal km1: std_logic_vector(3 downto 0);begincharge_control:taxi15出租車計費器的設(shè)計及實現(xiàn)port map(clk= clk,start= start,stop= stop,mile= mile,single= single,char0= char0,char1= char1,char2= char2,char3= char3,m

38、in0= 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;計費模塊的 VHDL編程:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ie

39、ee.std_logic_arith.all;entity taxi isport(clk: instd_logic;- 輸入 300Hz 時鐘start: instd_logic;- 計費器啟動stop: instd_logic;- 等待信號mile: instd_logic;- 公里脈沖信號singleinstd_logic;- 單程鍵麩肅鵬鏇轎騍鐐縛縟糶。char0 : out std_logic_vector(3 downto 0);- 計費輸出小數(shù)點位 char1 : out std_logic_vector(3 downto 0);- 計費輸出個位 char2 : out std_

40、logic_vector(3 downto 0);- 計費輸出十位 char3 : out std_logic_vector(3 downto 0);- 計費輸出百位 min0 : out std_logic_vector(3 downto 0);- 等待時間輸出 min1 : out std_logic_vector(3 downto 0);- 等待時間輸出16巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )km0: out std_logic_vector(3 downto 0);- 行駛公里輸出km1: out std_logic_vector(3 downto 0);- 行駛公里輸出 納

41、疇鰻吶鄖禎銣膩鰲錟。end taxi;architecture behave of taxi isconstant n signal f_mile1 signal f_mile2 signal f_mile_r signal start_r signal clk1hz signal q signal sec: integer := 30;: std_logic;- 延遲時間: std_logic;- 延遲時間: std_logic;- 延遲時間: std_logic;- 延遲時間: std_logic;- 分頻所得 1Hz 時鐘: integer range 0 to n-1;- 分頻器: i

42、nteger range 0 to 59;signal c3,c2,c1,c0 : std_logic_vector(3 downto 0);- 計費寄存器 風攆鮪貓鐵頻鈣薊糾廟。signal k0 signal k1 signal m1 signal m0 signal en0 signal en1 signal f_wait signal f: std_logic_vector(3 downto 0);- 公里寄存器 滅噯駭諗鋅獵輛覯餿藹。: std_logic_vector(3 downto 0);- 公里寄存器 鐒鸝餉飾鐔閌貲諢癱騮。: std_logic_vector(3 downt

43、o 0);- 等待時間寄存器 攙閿頻嶸陣澇諗譴隴瀘。: std_logic_vector(3 downto 0);- 等待時間寄存器 趕輾雛紈顆鋝討躍滿賺。: std_logic;- 路程大于 3 公里,使能有效: std_logic;- 單程且大于 20 公里,使能有效: std_logic;- 等待時間, 1 脈沖 / 分鐘: std_logic;- 計費時鐘begin-輸出顯示min0 = m0;min1 = m1;km0 = k0;km1 = k1;char0 = c0; char1 = c1; char2 = c2; char3 = c3;-分頻進程u1:process(clk)be

44、ginif rising_edge(clk) then if q=299 then q=0;else q=q+1;end if;end if;17出租車計費器的設(shè)計及實現(xiàn)end process;clk1hz = 0 when qinteger(n/2) else 1;-等待計時進程u2:process(clk1hz,start)beginif start=0 thenf_wait=0;elsif rising_edge(clk1hz) thenif stop=1 then if sec=59 then sec=0; f_wait=1;if m0=1001 then m0=0000;if m1=

45、0101 then m1=0000;else m1=m1+1;end if;else m0=m0+1;end if;elsef_wait=0; sec=sec+1;end if;else f_wait=0;end if;end if;end process;-延遲信號,檢測上升沿u3:process(clk1hz)beginif rising_edge(clk1hz) then f_mile2 = f_mile1; f_mile1 = mile; start_r = start;end if;end process;18巢湖學院 2012 屆本科畢業(yè)論文 (設(shè)計 )f_mile_r= f_mi

46、le1 and not(f_mile2);-選擇不同的計費時鐘f= f_wait when stop=1 else f_mile_r when en0=1 else 0;-公里計數(shù)進程u4:process(start,f_mile_r)begin if start=0 thenk0=0000; k1=0000;en0=0; en1=0;elsif rising_edge(f_mile_r) then if k0=1001 then k0=0000;if k1=1001 then k1=0000;else k1=k1+1;end if; elsek0=k0+1; end if;-大于 3 公里,

47、使能有效 if k0=0011 thenen0=1; end if;-單程且大于 20 公里,使能有效 if k1=0001 and k0=1001 and single=1 then en1=1;end if;end if;end process;-計費進程u5:process(start,f,start_r)beginif start=1 and start_r=0 then19出租車計費器的設(shè)計及實現(xiàn)c0=0000;c1=1000;c2=0000;c3=0000;elsif rising_edge(f) thenif en1=0 then-小于 20 公里時,每公里 1元if c1=10

48、01 thenc1=0000;if c2=1001 thenc2=0000;if c3=1001 thenc3=0000;elsec3=c3+1;end if;elsec2=c2+1;end if;elsec1=c1+1;end if;else-超過 20 公里,每公里 1.5 元 if(c0=0101 and c1=1000) or c1=1001 then- 等于 XX9.5 時,累加得 XX1.0 if c1=1001 and c0=0101 thenc0=0000;c1=0001;- 等于 XX9.0 ,累加得 XX0.5 elsif c1=1001 and c0=0000 then c0=0101;c1=0000;- 等于 XX8.5 時,累加得 XX0.0 e

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論