【正文】
when 01101=D=f7。 when 01011=D=f5。 when 01001=D=f3。 when 00111=D=f1。 end if。 when others =D=00100000。 when 11000=D=ci。 when 10110=D=cg。 when 10100=D=ce。 when 10010=D=cc。 when 10000=D=ca。 when 01110=D=c8。 when 01100=D=c6。 when 01010=D=c4。 when 01000=D=c2。 if t=3 then // 寫第三行 // case q is when 00110=D=c0。 end case。 when 11001=D=bj。 when 10111=D=bh。 when 10101=D=bf。 when 10011=D=bd。 when 10001=D=bb。 when 01111=D=b9。 when 01101=D=b7。 when 01011=D=b5。 when 01001=D=b3。 when 00111=D=b1。 end if。 when others =D=00100000。 when 11000=D=ai。 when 10110=D=ag。 when 10100=D=ae。 when 10010=D=ac。 when 10000=D=aa。 長沙學(xué)院畢業(yè)設(shè)計 (論文 ) 26 when 01110=D=a8。 when 01100=D=a6。 when 01010=D=a4。 when 01000=D=a2。 if t=1 then // 寫第一行 // case q is when 00110=D=a0。 rw=39。 if q5 then // 寫數(shù)據(jù) // rs=39。 // 第四行首地址 // end case。 // 第二行首地址 // when 10=D=10010100。 case t is when 00=D=10000000。 if p=1 then t=t+1。 rw=39。 if q=5 then rs=39。 D=00000110。 rw=39。 if q=4 then rs=39。 D=00001110。 rw=39。 if q=3 then rs=39。 D=00000001。 rw=39。 if q=2 then rs=39。 長沙學(xué)院畢業(yè)設(shè)計 (論文 ) 25 D=00111000。 rw=39。 if q=1 then rs=39。039。 end if。 elsif p=1 then if q=25 then q=00011。 IF p=0 then e=39。 else p=p+1。139。 BEGIN PROCESS (clk) BEGIN IF (clk39。 SIGNAL q : STD_LOGIC_vector(4 downto 0)。 END lcd。 f0,f1,f2,f3,f4,f5,f6,f7,f8,f9,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj : IN STD_LOGIC_vector(7 downto 0) rs,rw,e : OUT STD_LOGIC。 b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,ba,bb,bc,bd,be,bf,bg,bh,bi,bj : IN STD_LOGIC_vector(7downto0)。 ENTITY lcd IS PORT ( clk : IN STD_LOGIC。 USE 。通過驗證證明了預(yù)期方案的可行性。使用 VHDL 語言、 Quartus 軟件,實現(xiàn)了軟件的設(shè)計制作。未來基于 FPGA 平臺的出租車計費器會有更低的成本、更小的體積、更安全、更精確和多功能?;?Flash 的 FPGA 可以提供加密、低功耗、上電工作、可重復(fù)編程的方案。 長沙學(xué)院畢業(yè)設(shè)計 (論文 ) 21 圖 計費系統(tǒng)時序仿真圖 長沙學(xué)院畢業(yè)設(shè)計 (論文 ) 22 結(jié) 論 FPGA 器件的成本越來越低, Actel 公司發(fā)布第三代的基于 Flash 的可編程邏輯方案。 系統(tǒng)程序 仿真 如下圖所示為系統(tǒng)的時序仿真圖,其中當(dāng) start=’ 1’ 時進(jìn)行計費, fin 為公里脈沖, stop 為等待信號。當(dāng) rs為高電平, e為下降沿時開始寫數(shù)據(jù)給 DDRAM。根據(jù)不同的需求輸出有 1Hz(給時鐘和加減等)、 2 Hz、 4 Hz、 15 Hz(按鍵掃描)、 61 Hz(再返回用來輸出標(biāo)準(zhǔn)的1Hz)、 2k Hz( 給 BCD 碼轉(zhuǎn)換模塊 )、 Hz(給步進(jìn)電機(jī)驅(qū)動模塊)。 SUM 為乘客數(shù), ZE 為營運額總數(shù)。 統(tǒng)計 模塊 圖 統(tǒng)計模塊 長沙學(xué)院畢業(yè)設(shè)計 (論文 ) 19 為讓司機(jī)更好的了解一天的營運額狀況,所以做了一個統(tǒng)計模塊,用來統(tǒng)計所接乘客總數(shù)和營運額總數(shù)。 jfout 把計算 值輸出給總額計算端。 D_N 是白天和深夜的判別信號, D D D3 、 N N N3 分別代表白天起步費、單位公里費、10 公里后的單位公里費、深夜起步費、單位公里費、 10 公里后的單位公里費。 up 和 down 為加減鍵, clk 為加減的快慢頻率, ds 為過 10 公里后加收 50%費用的每公里價格輸出端給自動計費模塊,它的初始值設(shè)為 元/km,每次可以加減 元進(jìn)行設(shè)定,最大值為 元 /km。 up 和 down 為加減鍵, clk 為加減的快慢頻率, ds 為起步費輸出端給自動 計費模塊,它的初始值設(shè)為 +%=13 元,每次可以加減 元進(jìn)行設(shè)定,最大值為 元。 up和 down 為加減鍵, clk 為加減的快慢頻率, ds 為每公里價格輸出端給自動計費模塊,它的初始值設(shè)為 元 /km,每次可以加減 元進(jìn)行設(shè)定,最大值為 元 /km。 ( 10) DSHI:白天過 10 公里后加收費設(shè)定模塊, up 和 down 為加減鍵, clk 為加減的快慢頻率, ds 為加收 50%后的每公里價格輸出端給自動計費模塊,它的初始值設(shè)為 元 /km,每次可以加減 元進(jìn)行設(shè)定,最大值為 元 /km。 ( 8) DSAN:白天每公里費用設(shè)定模塊, up 和 down 為加減鍵, clk 為加減的快慢頻率, ds 為每公里價格輸出端給自動計 費模塊,它的初始值設(shè)為 元 /km,每次可以加減 元進(jìn)行設(shè)定,最大值為 元 /km。所以預(yù)設(shè)值為 5分鐘。 ( 7) SETMIN:計時時間設(shè)定模塊,根據(jù)標(biāo)準(zhǔn)當(dāng)車速低于 12km/h 時,不計路程,計時間。 up 和 down 為加減鍵, clk 為加減的快慢頻率,只要按住加鍵后就會自動加了, word 是顯示輸出端,經(jīng)過二進(jìn)制轉(zhuǎn) BCD 碼后就可以在界面上顯示。 clk 輸出自動變化的頻率給加減模塊,k 是累積端,累積 4 秒后不再發(fā)生變化,通過 XOR(異或)端,當(dāng)加鍵或減鍵停止后則自動使 k 累積的值清零,這樣下次按下加鍵時就又從 1Hz 開始加了。 ( 5) ZDJS:按鍵自動加速模塊,按鍵自動加速模塊是一個非常人性化的功能設(shè)定,通過自動加速模塊可 以讓加減一開始變化的慢,過了長按 4秒后自動變快,一方面使得快速調(diào)到某個數(shù)值,另一方面又可以精確定位到某個數(shù)值。 ( 4) SETMUX:設(shè)置按鍵選通模塊,為了減少出租車計費器上的按鍵,為它做了一個按鍵選通模塊。 ( 2) CHELUN:車輪大小設(shè)定模塊, 在 小節(jié)中有詳細(xì)說明。通過自動加速模塊可以讓加減一開始加的慢,過了 4 秒后自動變快,一方面使得快速調(diào)到某個數(shù)值,另一方面又可以精確定位到某個數(shù)值,比較人性化。密碼輸入正確后 passout 會變?yōu)? 1 送到 set 模塊和 chelun 模塊,否則為 0,禁止設(shè)定。我設(shè)計的計費標(biāo)準(zhǔn)設(shè)定系統(tǒng)包括了:白天的起步費設(shè)定、每公里價格設(shè)定、超出 10 公里后的加收設(shè)定,以及深夜的對應(yīng)與上面三項的加收設(shè)定、低速時的時間設(shè)定,車輪大小設(shè)定、密碼保護(hù)設(shè)定,總共 9 項參數(shù)可以設(shè)定,可以說相當(dāng)全面和靈活。 計費標(biāo)準(zhǔn)設(shè)定系統(tǒng) 由于受到油價影響,很多城市都推出了油價運價聯(lián)動機(jī)制。 車輪大小設(shè)定模塊 長沙學(xué)院畢業(yè)設(shè)計 (論文 ) 15 圖 車輪大小設(shè)定模塊 圖 為車輪大小設(shè)定模塊,根據(jù)調(diào)查現(xiàn)在的車租車車輪大小主要有以下幾種規(guī)格: 表 車輪直徑規(guī)格與每 km 轉(zhuǎn)的圈數(shù) 對應(yīng)表 車輪直徑 50cm 52cm 54cm 56cm 58cm 60cm 圈數(shù) /km 當(dāng)密碼正確后, pass 端為 1, setout 把設(shè)定的車輪大小數(shù)值送到計程模塊,計程模塊根據(jù)輪徑大小的不同,每 km 所轉(zhuǎn)圈數(shù)不同,自行調(diào)節(jié)計算。計時端則有兩位數(shù)字的 BCD 碼輸出,最大計時 99 分鐘。 圖 計程計時選通模塊 計程計時顯示輸出模塊 圖 計程計時顯示輸出模塊 圖 為計程計時顯示輸出模塊, LCD 顯示屏上會顯示 0到 999km 的路程和 0 到99min 的時間。 圖 計程模塊 計程計時選通模塊 計程計時選通模塊如下圖 所示,通過速度比較器的輸出信號給計程計時選通模塊的選通端 sel就可 以識別現(xiàn)在是應(yīng)該要把計程的信號輸出給