2021湖南科技大學(xué)計(jì)算機(jī)學(xué)院數(shù)字系統(tǒng)設(shè)計(jì)與VHDL出租車計(jì)價(jià)器設(shè)計(jì)報(bào)告和源代碼_第1頁
2021湖南科技大學(xué)計(jì)算機(jī)學(xué)院數(shù)字系統(tǒng)設(shè)計(jì)與VHDL出租車計(jì)價(jià)器設(shè)計(jì)報(bào)告和源代碼_第2頁
2021湖南科技大學(xué)計(jì)算機(jī)學(xué)院數(shù)字系統(tǒng)設(shè)計(jì)與VHDL出租車計(jì)價(jià)器設(shè)計(jì)報(bào)告和源代碼_第3頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄一、設(shè)計(jì)題目說明 1二、設(shè)計(jì)方案 11、設(shè)計(jì)思路 12、外部接口 13、總體框圖 1三、系統(tǒng)實(shí)現(xiàn) 21、設(shè)計(jì)原理 22、模塊設(shè)計(jì) 2四、仿真 4五、測試 5六、總結(jié) 51、實(shí)驗(yàn)中遇到的問題 52、心得收獲 63、不足 6附錄:VHDL代碼 7PAGEPAGE10一、設(shè)計(jì)題目說明題目九:出租車計(jì)價(jià)器設(shè)計(jì)(平臺(tái)實(shí)現(xiàn))★★完成簡易出租車計(jì)價(jià)器設(shè)計(jì),選做停車等待計(jì)價(jià)功能?;竟δ埽?/3/公里;500.1(40KM/h)0.1選做功能:增加一個(gè)停車等待/恢復(fù)行程按鈕,用2個(gè)數(shù)碼管顯示等待時(shí)間,精確到0.1分鐘。等候費(fèi)1元/0.1二、設(shè)計(jì)方案1、設(shè)計(jì)思路8.00332/2min,1元/LED單價(jià)為元。計(jì)價(jià)范圍為0—99.90.1“XX.Xkm1km“X.X0—9.90.12、外部接口時(shí)鐘信號(hào)輸入:clk_100100HZ;計(jì)價(jià)器開關(guān):start乘客上下車開關(guān):in_car中途停車等待開關(guān):stop數(shù)字顯示向量:ledag數(shù)碼管選擇向量:Bt3、總體框圖三、系統(tǒng)實(shí)現(xiàn)1、設(shè)計(jì)原理100HZclk_100,系統(tǒng)啟動(dòng)和重start,計(jì)價(jià)開始以及乘客上下車信號(hào)in_car,stop。系c0~c2,行駛距離k0~k2,m0~m11/6Hz1/9Hz2/9Hzstartin_carstop;控制過程為:startstart8.0startin_carstop0;如需stop0,來讀取最終的行駛路程數(shù)、等待時(shí)間和最后的總費(fèi)用,直接將start0,8.0譯碼、分頻、計(jì)量四個(gè)部分組成。2、模塊設(shè)計(jì)顯示模塊顯示模塊負(fù)責(zé)將6000000HZstartstart譯碼模塊行譯碼,送至對(duì)應(yīng)的數(shù)碼管上顯示,并且顯示小數(shù)點(diǎn)。分頻模塊100HZ6s1/600clk_599stopclk_5990.12,en10.1且車費(fèi)增加0.1元;100HZ9s1/900clk_899stopclk_8990.1km;3km3kmen02/km0.05km,0.1100HZ4.5s1/450clk_4493kmclk_449升沿代表出租車行駛路程增加0.05km,此時(shí)按照2元/km計(jì)費(fèi),里程每增加0.05km0.1計(jì)量模塊100Hz消抖部分20ms化。重置清零部分維護(hù)系統(tǒng),顯示正常示數(shù)。當(dāng)start8.0等待時(shí)間,行駛里程以及其它信號(hào);當(dāng)in_car0,暫停計(jì)時(shí)和記里程,費(fèi)用也不再增加。計(jì)時(shí)部分stopclk_100沿,計(jì)時(shí)器就自增1,并且自動(dòng)完成進(jìn)位,當(dāng)?shù)却龝r(shí)間大于2min19.9min,滿量程后自動(dòng)歸零。計(jì)程部分stopclk_1001,3kmen0199.9km,滿量程后自動(dòng)歸零。計(jì)費(fèi)部分clk_100start=1in_car=1en0en1=1始終處于計(jì)費(fèi)狀態(tài),c0、c1、c2三個(gè)四位向量信號(hào)從低位到高位表示費(fèi)用,其c00.1en3km則為起步價(jià)8.021(en0=0,en1=1)。四、仿真仿真波形圖2.84.5求所得費(fèi)用為:8.0+(4.5km-3.0km)*2.0/公里+(2.8min-2.0min)*1.0元=8.0+3.0+0.8=11.8五、測試板載實(shí)驗(yàn)圖4.44.2算所得費(fèi)用為:8.0+(4.2km-3km)*2.0/km+(4.4min-2min)*1.0/min=8.0+2.4+2.4=12.8六、總結(jié)VHDLFPGA1、實(shí)驗(yàn)中遇到的問題驅(qū)動(dòng)安裝問題序強(qiáng)制簽名,再重新安裝驅(qū)動(dòng)程序,終于解決了該問題。硬件選擇和引腳選擇問題Quartus在請(qǐng)教同學(xué)后才知道在哪個(gè)窗口選擇引腳。數(shù)碼管輸出數(shù)字時(shí)序脈沖的確認(rèn)和選擇的時(shí)間則需等待很久(40km/h100m/9s3需花費(fèi)270s),等待結(jié)果十分耗時(shí)。因此在最后板載實(shí)驗(yàn)時(shí),我將時(shí)鐘頻率輸1000HZ10的觀察。多驅(qū)動(dòng)問題2、心得收獲VHDL我成功完成了板載實(shí)驗(yàn)。VHDLQuartusVHDLQuartusVHDL電路圖并實(shí)現(xiàn)功能。3、不足決,如:計(jì)費(fèi),還需要進(jìn)一步討論。VHDL在實(shí)際中出現(xiàn)操作偏差,會(huì)導(dǎo)致計(jì)費(fèi)不準(zhǔn)確。附錄:VHDL代碼LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;entitytaxiis port(clk_100:instd_logic; clk_6000000:instd_logic; start:instd_logic;--認(rèn)為start0,系統(tǒng)停止工作;價(jià)格開始?xì)w為起步價(jià)8.00,startin_car:instd_logic;--認(rèn)為in_car1等待時(shí)間和最后的總費(fèi)用stop:instd_logic;--行駛中,中途等待信號(hào)stop高電平:停車等待,并去除in_car輸入脈沖,進(jìn)行等待計(jì)費(fèi);低電平:正在行駛。--添加數(shù)碼管引腳選擇和數(shù)碼管選擇ledag:OUTSTD_LOGIC_VECTOR(7downto0);--8segments從右到左從低到高高電平有效Bt:OUTSTD_LOGIC_VECTOR(7downto--8digitaltubes從右到左從低到高低電平有效);endtaxi;architecturetaxioftaxiissignalq_599:integerrange0to599; signalq_899:integerrange0to899;signalq_449:integerrange0toSignalcnt8:integerrange0to7;signalnum:std_logic_vector(3downto0); signalc0,c1,c2:std_logic_vector(3downto0);--車費(fèi),初始值8元,計(jì)價(jià)范圍為0—99.9元,c0~c2從低位到高位signalclk_599:std_logic; --600分頻,6s為0.1分鐘,花費(fèi)0.1signalclk_899:std_logic; --900分頻,9s走了0.1千米signalclk_449:std_logic; --4504.50.050.1元signalen1,en0:std_logic;--計(jì)費(fèi)單價(jià)使能信號(hào),當(dāng)行駛里程大于3km時(shí),本模塊中en0使能信號(hào)變?yōu)?,當(dāng)?shù)却龝r(shí)間大于2min時(shí),本模塊中en1使能信號(hào)變?yōu)?signalk2,k1,k0:std_logic_vector(3downto0);--行駛公里計(jì)數(shù),計(jì)程器的量程為99.9km,滿量程后自動(dòng)歸零。k0低位,k2高位,用BCD碼,k0,k1,k2分別用三個(gè)BCD碼確定0~9signalm1,m0:std_logic_vector(3downto0);BCDBCD0~90~9分鐘(0~959299),滿量程后自動(dòng)歸零。signalledag_temp:STD_LOGIC_VECTOR(6downto0);--7segments除了小數(shù)點(diǎn),從右到左,從低到高,高電平有效signalflag:std_logic; beginprocess(clk_6000000)--分為八個(gè)時(shí)段,每個(gè)時(shí)段選擇一個(gè)一個(gè)數(shù)碼管,更新其示數(shù)Beginif(clk_6000000'eventandclk_6000000='1')thenifcnt8=7thencnt8<=0;elsecnt8<=cnt8+1;endif;endif;Endprocess;process(cnt8,start)--顯示模塊,不同時(shí)段對(duì)應(yīng)不同的數(shù)碼管Beginif(start='1')thencasecnt8ISwhen0=>Bt<="11111110";num<=c0;flag<='0';--數(shù)碼管SEL0示數(shù)代表c0when1=>Bt<="11111101";num<=c1;flag<='1';when2=>Bt<="11111011";num<=c2;flag<='0';when3=>Bt<="11110111";num<=k0;flag<='0';when4=>Bt<="11101111";num<=k1;flag<='1';when5=>Bt<="11011111";num<=k2;flag<='0';when6=>Bt<="10111111";num<=m0;flag<='0';when7=>Bt<="01111111";num<=m1;flag<='1';Endcase;elseBt<="11111111";-startendif;endprocess;process(num,start)--譯碼顯示模塊beginif(start='1')thencasenumiswhen"0000"=>ledag_temp<="0111111";ledag<=flag&ledag_temp;--數(shù)顯,加入小數(shù)點(diǎn)when"0001"=>ledag_temp<="0000110";ledag<=flag&ledag_temp;when"0010"=>ledag_temp<="1011011";ledag<=flag&ledag_temp;when"0011"=>ledag_temp<="1001111";ledag<=flag&ledag_temp;when"0100"=>ledag_temp<="1100110";ledag<=flag&ledag_temp;when"0101"=>ledag_temp<="1101101";ledag<=flag&ledag_temp;when"0110"=>ledag_temp<="1111101";ledag<=flag&ledag_temp;when"0111"=>ledag_temp<="0000111";ledag<=flag&ledag_temp;when"1000"=>ledag_temp<="1111111";ledag<=flag&ledag_temp;when"1001"=>ledag_temp<="1101111";ledag<=flag&ledag_temp;whenothers=>null;endcase;endif;endprocess;process(clk_100) --分頻模塊beginif(clk_100'eventandclk_100='1')then --100HZif(q_599=599)then--每6s一個(gè)高電平,時(shí)間增加0.1min--并且如果en1=1,同時(shí)價(jià)格也要增加0.1q_599<=0;clk_599<='1';elseq_599<=q_599+1;clk_599<='0';endif;if(q_899=899)then --每9q_899<=0;clk_899<='1';elseclk_899<='0';endif;加0.1

if(q_449=449)then--每4.5秒一個(gè)高電平,若en0=1,同時(shí)價(jià)格也要增q_449<=0;clk_449<='1';elseclk_449<='0';endif;endif;endprocess;process(clk_100,clk_449,clk_599,clk_899) beginif(clk_100'eventandclk_100='1')then --100HZ上升if(start='0')then --初始化en1<='0'; --停留時(shí)間不超過兩分鐘不計(jì)入價(jià)格en0<='0';m1<="0000";m0<="0000";k2<="0000";k1<="0000";k0<="0000";c2<="0000";c1<="1000"; 8c0<="0000";elsif(in_car='0')then--重置,此時(shí)價(jià)錢不增加,認(rèn)為in_car10en0<='0';en1<='0';elsif(start='1'andin_car='1')thenif(k2&k1&k0>"000000110000")thenen0<='1'; 3km則en0elseen0<='0';endif;ifm1&m0>"00100000"thenen1<='1'; 2min,則en11elseen1<='0';endif;if(clk_599='1')thenifstop='1'then --停車等待if(m0="1001")then m0<="0000";if(m1="1001")thenm1<="0000";elsem1<=m1+1;endif;elsem0<=m0+1;endif;if(en1='1')thenif(c0="1001")then c0<="0000";if(c1="1001")thenc1<="

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論