




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1課題的主要功能設(shè)計一個出租車自動計費器,計費包括起步價、行車?yán)锍逃嬞M、等待時間計費三部分,用四位數(shù)碼管顯示金額,最大值為999.9元,最小計價單元為 0.1元,行程 3公里內(nèi),且等待累計時間3分鐘內(nèi),起步費為8元,超過3公里,以每公里1.6元計費,等待時間單價為每分鐘1元。用兩位數(shù)碼管顯示總里程,最大為99公里。用兩位數(shù)碼管顯示等待時間,最大值為59min。2課題的功能的劃分2.1課題系統(tǒng)功能模塊圖出租車自動計費器計費模塊計量模塊把握模塊譯碼模塊分頻模塊 圖2-1系統(tǒng)功能原理圖2.2功能模塊的算法分析由圖2-1系統(tǒng)功能原理圖可知:該設(shè)計問題自頂向下可分為分頻模塊、計量模塊、計費模塊、把握模塊
2、、譯碼和動態(tài)掃描顯示模塊。2.2.1分頻模塊分頻模塊對頻率為240Hz的輸入脈沖進(jìn)行分頻,得到的頻率為16Hz,10Hz和1Hz的三種頻率。該模塊產(chǎn)生頻率信號用于計費,每個1HZ脈沖為0.1元計費把握,10HZ信號為1元的計費把握,16Hz信號為1.6元計費把握。2.2.2計量把握模塊計量把握模塊是出租車自動計費器系統(tǒng)的主體部分,該模塊主要完成等待計時功能、計價功能、計程功能,同時產(chǎn)生3分種的等待計時使能把握信號en1,行程 3公里外的使能把握信號en0。其中計價功能主要完成的任務(wù)是:行程 3公里內(nèi),且等待累計時間3分鐘內(nèi),起步費為8元;3公里外以每公里1.6元計費,等待累計時間3分鐘外以每分
3、鐘1元計費;計時功能主要完成的任務(wù)是:計算乘客的等待累計時間,計時器的量程為59分,滿量程自動歸零;計程功能主要完成的任務(wù)是:計算乘客所行駛的公里數(shù)。計程器的量程為99公里,滿量程自動歸零。2.2.3譯碼顯示模塊該模塊經(jīng)過8選1選擇器將計費數(shù)據(jù)(4位BCD碼)、計時數(shù)據(jù)(2位BCD碼)、計程數(shù)據(jù)(2位BCD碼)動態(tài)選擇輸出。其中計費數(shù)據(jù)送入顯示譯碼模塊進(jìn)行譯碼,最終送至百元、十元、元、角為單位對應(yīng)的數(shù)碼管上顯示,最大顯示為999.9元;計時數(shù)據(jù)送入顯示譯碼模塊進(jìn)行譯碼,最終送至分為單位對應(yīng)的數(shù)碼管上顯示,最大顯示為59秒;計程數(shù)據(jù)送入顯示譯碼模塊進(jìn)行譯碼,最終送至以公里為單位的數(shù)碼管上顯示,最
4、大顯示為99公里。3主要功能的實現(xiàn)3.1分頻模塊的實現(xiàn)由圖3-1分頻模塊封裝圖可知:系統(tǒng)是對240HZ時鐘脈沖信號進(jìn)行分頻,分別得到16HZ、10HZ、1HZ三種頻率;本設(shè)計中通過三種不同頻率的脈沖信號實現(xiàn)在計程車在行駛、等待兩種狀況下的不同計費。 圖3-1分頻模塊封裝圖3.2計量模塊的實現(xiàn)由圖3-2可知:本模塊實現(xiàn)對于出租車在行駛和等待過程中的繼承和計時功能;當(dāng)行駛里程大于3KM時,本模塊中en0信號變?yōu)?;當(dāng)?shù)却龝r間大于3min時,本模塊中en1信號變?yōu)?;clk1每來一個上升沿,計量模塊實現(xiàn)一次計數(shù),里程數(shù)或者等待時間加1。圖3-2計量模塊封裝圖3.3計費功能的實現(xiàn)由圖3-3可知:輸入一
5、個脈沖信號,同時當(dāng)start為時開頭計價;c0、c1、c2、c3為價格的顯示信號。 圖3-3計費模塊封裝圖3.4把握功能的實現(xiàn)由圖3-4可知:本模塊主要是通過兩個不同的輸入使能信號,對兩個輸入脈沖進(jìn)行選擇輸出,使能信號是計量模塊中的輸出,兩個輸入脈沖是分頻模塊輸出的16HZ、10HZ的脈沖。圖3-4把握模塊封裝圖3.5譯碼和動態(tài)掃描功能實現(xiàn)由圖3-5可知:該模塊首先以一個case語句進(jìn)行通道的選擇,接著有以一個case語句對所選的通道進(jìn)行動態(tài)掃描,由于時間微小,因此我們?nèi)庋鄹杏X數(shù)字是同時顯示出來的。 圖3-5譯碼模塊封裝圖3.6總體功能原理圖圖3-6總體功能原理圖4程序調(diào)試4.1分頻模塊波形仿
6、真圖圖4-1分頻模塊仿真波形圖由圖4-1可知:當(dāng)輸入240HZ的clk脈沖信號時,clk每消滅240個脈沖時q1、q10、q16分別消滅1、24、15個,相當(dāng)于計費0.01元、1元、1.6元,掛念計費。4.2計量模塊波形仿真圖圖4-2計量模塊波形仿真圖由圖4-2可知:由于講輸入?yún)?shù)fin始終設(shè)為高,將stop始終設(shè)為低。所以k1、k0記錄路程的輸出量有值,而m1、m0記錄等待時間的輸出量沒有值。4.3計費模塊波形仿真圖圖4-3計費模塊波形仿真圖由圖4-3可知:輸入一個脈沖信號,同時當(dāng)start為高時開頭計價;c0、c1、c2、c3為價格的顯示信號,逢9后一位將進(jìn)1。4.4把握模塊波形仿真圖圖4
7、-4把握模塊波形仿真圖由圖4-4可知:本模塊主要是通過兩個不同的輸入使能信號,對兩個輸入脈沖進(jìn)行選擇輸出,使能信號是計量模塊中的輸出,兩個輸入脈沖是分頻模塊輸出的16HZ、10HZ的脈沖。4.5譯碼顯示模塊波形仿真圖圖4-5譯碼模塊波形仿真圖由圖4-5可知:首先以一個case語句進(jìn)行通道的選擇,以8為二進(jìn)制表示。當(dāng)某一位為1時,表示選擇該通道接著。接著又以一個case語句對所選的通道進(jìn)行動態(tài)掃描,由于時間微小,因此在我們用肉眼感覺是同時顯示出來的。4.6總模塊的波形仿真圖圖4-6總模塊的波形仿真圖5總結(jié)6附件6.1分頻功能實現(xiàn)的源代碼如下:library IEEE;use IEEE.STD_L
8、OGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity fp isport ( clk :in std_logic; q16: out std_logic; -頻率為16的時鐘 q10: out std_logic; -頻率為10的時鐘 q1: out std_logic); -頻率為1的時鐘end fp;architecture qq of fp is begin process(clk) variable cout16:integer range 0 to 14; variable
9、 cout10:integer range 0 to 23; variable cout1:integer range 0 to 239; beginif clk'event and clk='1' then if cout16=14 -240hz分頻為16hzthen cout16:=0;q16<='1' else cout16:=cout16+1;q16<='0'end if;if cout10=23 -240hz分頻為10hzthen cout10:=0;q10<='1' else cout10:=
10、cout10+1;q10<='0'end if;if cout1=239 -240hz分頻為1hzthen cout16:=0;q1<='1' else cout1:=cout1+1;q1<='0'end if;end if;end process;end qq;6.2計量功能模塊實現(xiàn)的源代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity jiliang isp
11、ort( s: in std_logic; -計量開頭信號 fin: in std_logic; - 計量路程的信號 stop: in std_logic; -等待信號 clk1: in std_logic; -計量驅(qū)動信號 en1,en0:buffer std_logic; -計量把握信號 k1,k0: buffer std_logic_vector(3 downto 0); -路程的計量 m1,m0: buffer std_logic_vector(3 downto 0); -時間的計量end jiliang;architecture rt2 of jiliang issignal w:i
12、nteger range 0 to 59; beginprocess(clk1)begin if clk1'event and clk1='1' then -驅(qū)動信號發(fā)揮作用 if s='0' then w<=0;en1<='0'en0<='0'm1<="0000"m0<="0000"-初始化值k1<="0000"k0<="0000"elsif stop='1' then -等待信號為高
13、,時間把握信號開頭計時if w=59 then w<=0; if m0="1001" then m0<="0000" if m1="0101" then m1<="0000"else m1<=m1+1;end if;else m0<=m0+1;end if; if m1&m0>"00000010"then en1<='1' -當(dāng)時間大于3min時使能信號en1開頭使能 else en1<='0' end if
14、; else w<=w+1;en1<='0' end if; elsif fin='1' 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; if k1&k0>"00000010" then en0<='1' -當(dāng)路程大于3km時
15、 ,使能信號en0開頭發(fā)揮作用 else en0<='0' end if; else en1<='0'en0<='0' end if; end if;end process;end rt2;6.3計費功能實現(xiàn)的源代碼library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jifei isport(clk2:in std_logic; -計費驅(qū)動信號 start: in
16、std_logic; -計費開頭信號 c0,c1,c2,c3: buffer std_logic_vector(3 downto 0);-費用顯示信號end jifei;architecture rt3 of jifei isbeginprocess(clk2,start)begin if start='0' then c3<="0000"c2<="0000"c1<="1000"c0<="0000" elsif clk2'event and clk2='1
17、39; then if c0="1001" then c0<="0000" 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;
18、else c0<=c0+1; end if; end if;end process;end rt3;6.4實現(xiàn)把握功能源代碼如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity kongzhi isport(ent0,ent1:in std_logic; -輸入的使能選擇信號 clk_in1:in std_logic; -輸入脈沖 clk_in2:in std_logic; -輸入脈沖 clk_out:out std_l
19、ogic); -輸出脈沖end kongzhi;architecture rt4 of kongzhi isbeginprocess(ent0,ent1)begin if ent0='1' then -依據(jù)條件選擇所需的通道 clk_out<=clk_in1;elsif ent1='1' then clk_out<=clk_in2; end if; end process;end rt4;6.5實現(xiàn)譯碼和動態(tài)掃描功能源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_un
20、signed.all;entity yima isport( clk :in std_logic; m1,m0,k1,k0,c3,c2,c1,c0 : in std_logic_vector(3 downto 0); sg:out std_logic_vector(7 downto 0); bt: out std_logic_vector(7 downto 0);end ;architecture behav of yima is signal cnt8:std_logic_vector( 2 downto 0); -定義信號 signal a :std_logic_vector(3 down
21、to 0); signal b :std_logic_vector(7 downto 0); signal c :std_logic_vector(7 downto 0); beginprocess(clk) beginif clk'event and clk='1'then cnt8<=cnt8+1;end if;end process;process(cnt8) begincase cnt8 iswhen "000" =>a<=k0;c<="00000001"b(7)<='0' -
22、依據(jù)cnt的條件選擇通道when "001" =>a<=k1;c<="00000010"b(7)<='0'when "010" =>a<=m0;c<="00000100"b(7)<='0'when "011" =>a<=m1;c<="00001000"b(7)<='0'when "100" =>a<=c0;c<=&quo
23、t;00010000"b(7)<='0'when "101" =>a<=c1;c<="00100000"b(7)<='1'when "110" =>a<=c2;c<="01000000"b(7)<='0'when "111" =>a<=c3;c<="10000000"b(7)<='0'when others=> null
24、;end case;end process;process(a) -譯碼 begincase a iswhen "0000"=>b(6 downto 0)<="0111111"when "0001"=>b(6 downto 0)<="0000110"when "0010"=>b(6 downto 0)<="1011011"when "0011"=>b(6 downto 0)<="1001111&qu
25、ot;when "0100"=>b(6 downto 0)<="1100110"when "0101"=>b(6 downto 0)<="1101101"when "0110"=>b(6 downto 0)<="1111101"when "0111"=>b(6 downto 0)<="0000111"when "1000"=>b(6 downto 0)<=&
26、quot;1111111"when "1001"=>b(6 downto 0)<="1101111"when others=> null;end case;end process;sg<=b;bt<=c;end;6.6頂層文件實現(xiàn)的源代碼如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity taxi isport ( clk240 :in std_
27、logic; start :in std_logic; stop:in std_logic; fin:in std_logic; cha3,cha2,cha1,cha0:out std_logic_vector(3 downto 0); km1,km0:out std_logic_vector(3 downto 0); min1,min0: out std_logic_vector(3 downto 0); end taxi;architecture behav of taxi is component fp -實現(xiàn)對分頻模塊的例化 port(clk: in std_logic; q16: o
28、ut std_logic; q10: out std_logic; q1 : out std_logic); end component; component jiliang -實現(xiàn)對計量模塊的例化 port( s: in std_logic; fin: in std_logic; stop: in std_logic; clk1: in std_logic; en1,en0:buffer std_logic; k1,k0: buffer std_logic_vector(3 downto 0); m1,m0: buffer std_logic_vector(3 downto 0); end component;component jifei -實現(xiàn)對計費模塊的例化 port(clk2:in std_logic; start: in std_logic; c0,c1,c2,c3: buffer std_logic_vector(3 downto 0); end component;component kongzhi -實現(xiàn)對把握模塊的例化 port(ent0,ent1:in std_logic; clk_in1:in std_logic; clk_in2:in std_logic; clk_out:out std_logic); end component;compo
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2014年食品藥品監(jiān)督2014年工作總結(jié)
- 設(shè)備制作加工協(xié)議書
- 鄉(xiāng)鎮(zhèn)征地建小學(xué)協(xié)議書
- 專場供酒合同或協(xié)議書
- 養(yǎng)老院合同解除協(xié)議書
- 企業(yè)勞動服務(wù)期協(xié)議書
- 雇傭車輛安全協(xié)議書
- 餐廳撤資退股協(xié)議書
- 鄰里建房遮光協(xié)議書
- 寫字樓裝修管理協(xié)議書
- GB/T 18400.4-2010加工中心檢驗條件第4部分:線性和回轉(zhuǎn)軸線的定位精度和重復(fù)定位精度檢驗
- 危險化學(xué)品MSDS(硫酸鈉(非?;罚?/a>
- 無人機結(jié)構(gòu)與系統(tǒng)-第1章-無人機結(jié)構(gòu)與飛行原理課件
- 2023年STD溫鹽深剖面儀行業(yè)分析報告及未來五至十年行業(yè)發(fā)展報告
- 奇妙的剪紙藝術(shù)(欣賞)-完整版課件
- 護(hù)理管理中的組織溝通課件
- 公安機關(guān)人民警察基本級執(zhí)法資格考試題庫及答案
- 泌尿系結(jié)石課件
- DB34-T 4016-2021 健康體檢機構(gòu) 建設(shè)和管理規(guī)范-高清現(xiàn)行
- 二手新能源汽車充電安全承諾書
- 中醫(yī)學(xué)理論-筋膜學(xué)與人體經(jīng)絡(luò)共120張課件
評論
0/150
提交評論