版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于FPGA的出租車計費器課程設(shè)計程序設(shè)計題目:出租車計費器一、設(shè)計實驗條件QuartusII7.2二、設(shè)計目標1. 實現(xiàn)計費功能。按行駛里程計費,起步價為6.00元,并在車行駛3km后按1.2元/km計費,當計費器達到或超過20元時,每千米加收50%的車費,車停止和暫停時不計費;2. 現(xiàn)場模擬汽車的起動、停止、暫停和換擋等狀態(tài);3. 設(shè)計數(shù)碼管動態(tài)掃描電路,將車費和路程顯示出來,各有兩位小數(shù)。三、設(shè)計報告的內(nèi)容1. 前言伴隨中國經(jīng)濟的騰飛,城市化的進程也隨之加快。雖然人們出行的選擇趨于多樣化,但是出租車作為一種重要的交通工具,也為很多人作為出行的選擇。大城市里出租車
2、已經(jīng)相當普及,但是在中小城市出租車依然處于快速發(fā)展的階段。 出租車的計費方式也在發(fā)生變化,由只能顯示里程的方式變?yōu)楝F(xiàn)在的自主計費和打印發(fā)票及語音提示的智能化方式;根據(jù)出租車行業(yè)的發(fā)展需求,國內(nèi)許多生產(chǎn)廠商也制造出不同類型的計價器,傳統(tǒng)的出租車計費器經(jīng)過十幾年的使用,在穩(wěn)定性,成本等方面都具有一定的優(yōu)勢。利用FPGA設(shè)計出滿足出租車不同計費需求的計費器,去滿足當?shù)爻鲎廛嚨挠嬞M需求。這個課題在實現(xiàn)計費功能的同時,也解決了傳統(tǒng)出租車計費器系統(tǒng)的不足。出租車的需求不斷的增大,因此,出租車計費器的需求也將不斷增大,計程車的服務(wù)也顯得越來越重要,因此出租車計費器也就應(yīng)運而生了。2. 設(shè)計主體(1)設(shè)計原理
3、:假設(shè)出租車有啟動鍵、停止鍵、暫停鍵和檔位鍵。啟動鍵為脈沖觸發(fā)信號,當它為一個脈沖是,表示汽車已啟動,并根據(jù)車速的選擇和基本車速發(fā)出相應(yīng)頻率的脈沖(計費脈沖)實現(xiàn)車費和路程的計數(shù),同時車費顯示起步價;當停止鍵為高電平時,表示汽車熄火,同時停止發(fā)出脈沖,此時車費和路程計數(shù)清零;當暫停鍵為高電平時,表示汽車暫停并停止發(fā)出脈沖,此時車費和路程計數(shù)暫停;檔位鍵用來改變車速,不同檔位對應(yīng)著不同的車速,同時路程計數(shù)的速度也不同。出租車計費器可分為兩大模塊,即控制模塊和譯碼顯示模塊,系統(tǒng)框圖如圖1所示,控制模塊實現(xiàn)了計費和路程的技術(shù),并且通過不同的檔位控制車速。譯碼顯示模塊實現(xiàn)了十進制到4位十進制的轉(zhuǎn)換,以
4、及車費和路程的顯示。圖1 出租車計費器系統(tǒng)框圖(2)步驟: 首先設(shè)計taxi計費模塊,實現(xiàn)計費功能。起步價為6.00元,并在車行駛3km后按1.2元/km計費,當計費器達到或超過20元時,每千米加收50%的車費,車停止和暫停時不計費。taxi模塊程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity taxi isport(clk:in std_logic;-計費時鐘start:in std_logic;-汽車起動stop:in std_logic;-汽車停止pause:in st
5、d_logic;-汽車暫停speedup:in std_logic_vector(1 downto 0);-檔位(4個檔位)money:out integer range 0 to 8000;-車費distance:out integer range 0 to 8000);-路程end;architecture one of taxi isbeginprocess(clk,start,stop,pause,speedup)variable money_reg,distance_reg:integer range 0 to 8000;-車費和路程的寄存器variable num:integer
6、range 0 to 9;-控制車速的計數(shù)器variable dis:integer range 0 to 100;-千米計數(shù)器variable d:std_logic;-千米標志位beginif stop='1'then-汽車停止,計費和路程清零money_reg:=0;distance_reg:=0;dis:=0;num:=0;elsif start='1'then-汽車起動后,起步價為6元money_reg:=600;distance_reg:=0;dis:=0;num:=0;elsif clk'event and clk='1't
7、henif start='0'and speedup="00"and pause='0' and stop='0'then-1檔 if num=9 thennum:=0;distance_reg:=distance_reg+1;dis:=dis+1;else num:=num+1;end if;elsif start='0'and speedup="01"and pause='0' and stop='0'then-2檔 if num=9 thennum:=0
8、;distance_reg:=distance_reg+2;dis:=dis+2;else num:=num+1;end if;elsif start='0'and speedup="10"and pause='0' and stop='0'then-3檔 if num=9 thennum:=0;distance_reg:=distance_reg+5;dis:=dis+5;else num:=num+1;end if;elsif start='0'and speedup="11"and p
9、ause='0' and stop='0'then-4檔 distance_reg:=distance_reg+1;dis:=dis+1;end if;if dis>=100 thend:='1'dis:=0;else d:='0'end if;if distance_reg>=300 then-如果超過3km按1.2元/千米計算 if money_reg<2000 and d='1'thenmoney_reg:=money_reg+120;elsif money_reg>=2000 and
10、 d='1'thenmoney_reg:=money_reg+180;-當計費器達到20元,每千米加收50%的車費 end if;end if;end if;money<=money_reg;distance<=distance_reg;end process;end; 將輸出的費用和路程作為輸入,給decoder模塊,完成數(shù)碼管顯示功能,并且對小數(shù)點等做出明確定義。decoder程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity
11、decoder isport(clk20mhz:in std_logic;-系統(tǒng)時鐘20MHZmoney_in:in integer range 0 to 8000;-車費distance_in:in integer range 0 to 8000;-路程scan:out std_logic_vector(7 downto 0);-數(shù)碼管地址選擇信號seg7:out std_logic_vector(6 downto 0);-7段顯示控制信號(abcdefg) dp:out std_logic);-小數(shù)點end;architecture one of decoder issignal clk1
12、khz:std_logic;-1KHZ的分頻時鐘,用于掃描數(shù)碼管地址 signal data:std_logic_vector(3 downto 0);signal m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0);-錢數(shù)的4位十進制表示signal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);-路程的4位十進制表示begin-1KHZ分頻,用于掃描數(shù)碼管地址-process(clk20mhz)variable count:integer range 0 to 9999;beg
13、inif clk20mhz'event and clk20mhz='1'thenif count=9999 then clk1khz<=not clk1khz;count:=0;else count:=count+1;end if;end if;end process;-將車費的十進制數(shù)轉(zhuǎn)化為4位十進制數(shù)-process(clk20mhz,money_in)variable comb1:integer range 0 to 8000;variable comb1_a,comb1_b,comb1_c,comb1_d:std_logic_vector(3 downto
14、 0); beginif clk20mhz'event and clk20mhz='1'thenif comb1<money_in thenif comb1_a=9 and comb1_b=9 and comb1_c=9 thencomb1_a:="0000"comb1_b:="0000"comb1_c:="0000"comb1_d:=comb1_d+1;comb1:=comb1+1;elsif comb1_a=9 and comb1_b=9 thencomb1_a:="0000"co
15、mb1_b:="0000"comb1_c:=comb1_c+1;comb1:=comb1+1;elsif comb1_a=9 thencomb1_a:="0000"comb1_b:=comb1_b+1;comb1:=comb1+1;elsecomb1_a:=comb1_a+1;comb1:=comb1+1;end if;elsif comb1=money_in thenm_one<=comb1_a;m_ten<=comb1_b;m_hun<=comb1_c;m_tho<=comb1_d;elsif comb1>money_i
16、n thencomb1_a:="0000"comb1_b:="0000"comb1_c:="0000"comb1_d:="0000"comb1:=0;end if;end if;end process;-將路程的十進制轉(zhuǎn)化為4位十進制數(shù)-process(clk20mhz,distance_in)variable comb2:integer range 0 to 8000;variable comb2_a,comb2_b,comb2_c,comb2_d:std_logic_vector(3 downto 0); be
17、ginif clk20mhz'event and clk20mhz='1'thenif comb2<distance_in thenif comb2_a=9 and comb2_b=9 and comb2_c=9 thencomb2_a:="0000"comb2_b:="0000"comb2_c:="0000"comb2_d:=comb2_d+1; comb2:=comb2+1;elsif comb2_a=9 and comb2_b=9 then comb2_a:="0000" com
18、b2_b:="0000" comb2_c:=comb2_c+1; comb2:=comb2+1; elsif comb2_a=9 thencomb2_a:="0000"comb2_b:=comb2_b+1; comb2:=comb2+1; elsecomb2_a:=comb2_a+1; comb2:=comb2+1; end if;elsif comb2=distance_in thend_one<=comb2_a;d_ten<=comb2_b;d_hun<=comb2_c;d_tho<=comb2_d;elsif comb2&g
19、t;distance_in thencomb2_a:="0000"comb2_b:="0000"comb2_c:="0000"comb2_d:="0000"comb2:=0;end if;end if;end process;-數(shù)碼管動態(tài)掃描process(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho) variable cnt:std_logic_vector(2 downto 0);beginif clk1khz'event and cl
20、k1khz='1'thencnt:=cnt+1;end if;case cnt iswhen"000"=>data<=m_one;dp<='0'scan<="" when"001"=>data<=m_ten;dp<='0'scan<="" when"010"=>data<=m_hun;dp<='1'scan<="" when"011
21、"=>data<=m_tho;dp<='0'scan<="" when"100"=>data<=d_one;dp<='0'scan<="" when"101"=>data<=d_ten;dp<='0'scan<="" when"110"=>data<=d_hun;dp<='1'scan<="" when"111"=>data<=d_tho;dp<='0'scan<="" end case;end process;-7段譯碼-process(data)begincase data iswhen"0000"=>seg7<=""when"0001"=>seg7&
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字經(jīng)濟背景下創(chuàng)新創(chuàng)業(yè)的發(fā)展路徑
- 數(shù)學教育信息化背景下的小學教學模式
- 2025版地下水打井監(jiān)測合同范本3篇
- 二零二五版公路貨運合同-物流信息化管理及升級協(xié)議3篇
- 母嬰保健中草藥知識與實踐應(yīng)用解析
- 2025版信托投資公司外匯貸款利率調(diào)整通知合同3篇
- 2025年度個人綠色出行借款合同模板3篇
- 學生族群瘦身飲食的五大原則
- 科技衛(wèi)生雙驅(qū)動的實驗室管理模式探索
- 2025版出納人員責任擔保與服務(wù)質(zhì)量保證合同3篇
- 《健康體檢知識》課件
- 部編版語文五年級下冊 第一單元 專項訓(xùn)練課外閱讀(含答案)
- 蘇少版七年級美術(shù)下冊 全冊
- 名表買賣合同協(xié)議書
- JTG-T-F20-2015公路路面基層施工技術(shù)細則
- 2024年遼寧石化職業(yè)技術(shù)學院單招職業(yè)適應(yīng)性測試題庫附答案
- 中西方校服文化差異研究
- 《子宮肉瘤》課件
- 《準媽媽衣食住行》課件
- 給男友的道歉信10000字(十二篇)
- 客人在酒店受傷免責承諾書范本
評論
0/150
提交評論