課程設(shè)計(jì)基于PLD出租車計(jì)費(fèi)器的設(shè)計(jì)_第1頁
課程設(shè)計(jì)基于PLD出租車計(jì)費(fèi)器的設(shè)計(jì)_第2頁
課程設(shè)計(jì)基于PLD出租車計(jì)費(fèi)器的設(shè)計(jì)_第3頁
課程設(shè)計(jì)基于PLD出租車計(jì)費(fèi)器的設(shè)計(jì)_第4頁
課程設(shè)計(jì)基于PLD出租車計(jì)費(fèi)器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求cpld為復(fù)雜可編程邏輯器件,通過eda技術(shù)對其進(jìn)行編程,可將一個較復(fù)雜的數(shù)字系統(tǒng)集成于一個芯片中,制成專用集成電路芯片,并可隨時在系統(tǒng)修改其邏輯功能。有關(guān)知識可參見相關(guān)教材或參考書。一設(shè)計(jì)內(nèi)容(1) 實(shí)現(xiàn)計(jì)費(fèi)功能,計(jì)費(fèi)標(biāo)準(zhǔn)為:按行駛里程計(jì)費(fèi),起步價為9.00元,并在車行2km后按2.50元/km計(jì)費(fèi),當(dāng)計(jì)費(fèi)器達(dá)到或超過30元時,每公里加收60的車費(fèi),車停止不計(jì)費(fèi)。(2) 現(xiàn)場模擬功能:能模擬汽車起動、停止、暫停以及加速等狀態(tài)。(3) 按計(jì)動態(tài)掃描電路,將車費(fèi)和路程顯示出來,各有兩位小數(shù)。二、設(shè)計(jì)要求:1、 設(shè)計(jì)思路清晰,給出整體設(shè)計(jì)框圖;2、 在quartusii設(shè)計(jì)各單元

2、電路,完成其功能仿真和編譯并生成低層模塊;3、 在quartusii中完成頂層設(shè)計(jì)并編譯通過;4、 在quartusii中完成設(shè)計(jì)下載并調(diào)試電路;5、寫出設(shè)計(jì)報(bào)告;主要設(shè)計(jì)條件1. 提供eda實(shí)驗(yàn)室;2. 提供el實(shí)驗(yàn)箱和cpld芯片;3. 提供altera公司的quartusii7.2設(shè)計(jì)軟件。說明書格式1. 課程設(shè)計(jì)封面;2. 任務(wù)書;3. 說明書目錄;4. 設(shè)計(jì)總體思路,基本原理和框圖(頂層電路圖);5. 單元電路設(shè)計(jì)(各次級模塊電路圖);6. 設(shè)計(jì)仿真;7. 編程下載;8. 總結(jié)與體會;9. 附錄;10. 參考文獻(xiàn)。進(jìn)度安排星期一、二:下達(dá)設(shè)計(jì)任務(wù)書,介紹課題內(nèi)容與要求;介紹quart

3、usii軟件的使用;查找資料,確定總體設(shè)計(jì)方案和單元電路設(shè)計(jì);星期三第二周星期三:上機(jī)設(shè)計(jì)電路,電路仿真,硬件下載;第二星期四、五:書寫設(shè)計(jì)報(bào)告,打印相關(guān)圖紙;答辯參考文獻(xiàn)1. 康華光主編.電子技術(shù)基礎(chǔ)(數(shù)字部分),高等教育出版社。2. 閻石主編. 電子技術(shù)基礎(chǔ)(數(shù)字部分),清華大學(xué)出版社。3. 陳大欽主編,電子技術(shù)基礎(chǔ)實(shí)驗(yàn),高等教育出版社。4. 彭介華主編,電子技術(shù)課程設(shè)計(jì)指導(dǎo),高等教育出版社。5. 張 原編著,可編程邏輯器件設(shè)計(jì)及應(yīng)用,機(jī)械工業(yè)出版社。6.荀殿棟,徐志軍編著,數(shù)字電路設(shè)計(jì)實(shí)用手冊,電子工業(yè)出版社。7. quartusii入門8.劉洪喜,陸穎編著. vhdl電路設(shè)計(jì)實(shí)用教程

4、清華大學(xué)出版社 目錄1、課題名稱.p6 1.1、課題名稱.p6 1.2、問題描述.p62、出租車計(jì)費(fèi)計(jì)費(fèi)器系統(tǒng)設(shè)計(jì).p6 2.1、系統(tǒng)總體結(jié)構(gòu).p6 2.2、頂層電路圖.p7 2.3、單元模塊設(shè)計(jì).p8 2.4、主程序時序圖.p113、系統(tǒng)仿真、綜合、下載.p134、總結(jié)p145、附加p156、參考文獻(xiàn)p221、課題名稱1.1、課題名稱 出租車計(jì)費(fèi)器課程設(shè)計(jì)1.2、問題描述(1)實(shí)現(xiàn)計(jì)費(fèi)功能,計(jì)費(fèi)標(biāo)準(zhǔn)為:按行駛里程計(jì)費(fèi),起步價為9.00元,并在車行2km后按2.50元/km計(jì)費(fèi),當(dāng)計(jì)費(fèi)器達(dá)到或超過30元時,每公里加收60的車費(fèi),車停止不計(jì)費(fèi)。(2)現(xiàn)場模擬功能:能模擬汽車起動、停止、暫停以及加

5、速等狀態(tài)。(3)按計(jì)動態(tài)掃描電路,將車費(fèi)和路程顯示出來,各有兩位小數(shù)。2、出租車計(jì)費(fèi)器系統(tǒng)設(shè)計(jì)2.1、系統(tǒng)總體結(jié)構(gòu)基于cpld的出租車計(jì)費(fèi)器的組成如圖1所示。各部分主要功能包括:信號輸入模塊對車輪傳感器的脈沖信號進(jìn)行計(jì)數(shù),并以高低電平模擬出租車啟動、停止、暫停、加速按鈕,具有輸入信號作用;數(shù)據(jù)轉(zhuǎn)換模塊將計(jì)費(fèi)模塊輸出的車費(fèi)和路程換成4位的十進(jìn)制數(shù)據(jù);譯碼/動態(tài)掃描模塊將路程與費(fèi)用的數(shù)值譯碼后用動態(tài)掃描的方式驅(qū)動數(shù)碼管;數(shù)碼管顯示模塊將公里和計(jì)費(fèi)金額用4位led數(shù)碼管顯示。動態(tài)掃描/譯碼/數(shù)碼管顯示模塊片選信號產(chǎn)生模塊數(shù)據(jù)轉(zhuǎn)換模塊數(shù)碼管控制模塊信號輸入模塊圖1 系統(tǒng)總體框圖2.2、頂層電路圖圖2

6、頂層電路圖2.3、單元模塊設(shè)計(jì)1.信號輸入模塊該模塊主要實(shí)現(xiàn)計(jì)費(fèi)功能和現(xiàn)場模擬功能。計(jì)費(fèi)標(biāo)準(zhǔn)為:對車輪傳感器傳送的脈沖信號進(jìn)行計(jì)數(shù),按行駛里程計(jì)費(fèi),起步價為9.00元,并在車行駛2km后按2.50元/km計(jì)費(fèi),當(dāng)計(jì)費(fèi)器達(dá)到或超過30元時,每公里加收60%的車費(fèi),車停止不計(jì)費(fèi)。并以高低電平模擬出租車啟動、停止、暫停、加速按鈕,具有輸入信號的作用。該模塊的時序仿真圖如圖3、圖4、圖5所示。圖中的stop下降沿到來時系統(tǒng)不計(jì)費(fèi),車費(fèi)為“0”,路程為“0”;start下降沿到來時系統(tǒng)開始計(jì)費(fèi),起步價為9.00元,在車行駛2km后按2.50元/km計(jì)費(fèi),當(dāng)計(jì)費(fèi)器達(dá)到或超過30元時,每公里加收60% ,即

7、按4.00元/km的車費(fèi)計(jì)費(fèi)。圖3 輸入信號模塊圖4 輸入信號模塊(起始段)圖5 輸入信號模塊(收費(fèi)段)2、數(shù)據(jù)轉(zhuǎn)換模塊數(shù)據(jù)轉(zhuǎn)換模塊可將計(jì)費(fèi)模塊輸出的車費(fèi)和路程轉(zhuǎn)換成4位的十進(jìn)制數(shù)。當(dāng)累加大于9時,對其進(jìn)行累加和調(diào)整。轉(zhuǎn)換模塊的時序仿真圖如圖6、圖7所示。圖中分別用age,ashi,abai,aqian,bge,bshi,bbai,bqian表示車費(fèi)和路程的個十百千為。其中ascore和bscore分別表示信號輸入模塊的輸出車費(fèi)和路程。圖6 轉(zhuǎn)換模塊(1)圖7 轉(zhuǎn)換模塊(2)3、顯示模塊顯示模塊是由七段led數(shù)碼管譯碼和動態(tài)掃描顯示兩部分組成。須設(shè)置一個控制小數(shù)點(diǎn)的變量,即程序中的dp。這段程

8、序所示的是在數(shù)碼管的第二、第六個后面顯示小數(shù)點(diǎn),實(shí)現(xiàn)了路程和車費(fèi)都用了兩位小數(shù)點(diǎn)表示功能。數(shù)碼管控制及譯碼顯示模塊將十進(jìn)制的輸入信號用七段數(shù)碼管顯示。由七段發(fā)光二極管組成數(shù)碼顯示器,利用字段的不同組合,可分別顯示09十個數(shù)字。本設(shè)計(jì)中,要求輸出的段信號為低電平有效。七段數(shù)碼管顯示模塊的時序如圖8、圖9所示。圖8 顯示模塊(1)圖9 顯示模塊(2)2.4、主程序時序圖描述子程序之間的聯(lián)系,包含元件調(diào)用聲明語句和元件例化語句。出租車計(jì)費(fèi)器頂層設(shè)計(jì)描述,分別調(diào)用了各子程序,并定義了10各信號(x1x2,v1v8)作為內(nèi)部的連接線。主程序時序圖如圖10、圖11所示。圖10 主程序時序圖(1)圖11 主

9、程序時序圖(2)3、系統(tǒng)仿真、綜合、下載仿真是eda技術(shù)的重要組成部分,也是對設(shè)計(jì)的電路進(jìn)行功能和性能測試的有效手段。eda工具提供了強(qiáng)大且與電路實(shí)時行為相吻合的精確硬件系統(tǒng)測試工具。在建立了波形文件、輸入信號節(jié)點(diǎn)、波形參數(shù)、加輸入信號激勵電平并存盤后,選擇菜單“start simulation”,進(jìn)行仿真運(yùn)算,完成之后就可以看到時序波形圖。最終的電路設(shè)計(jì)完成后,若總體電路編譯無錯,且時序仿真成功,可以進(jìn)行硬件測試。為了能進(jìn)行硬件測試,應(yīng)將其輸入輸出信號鎖定在芯片確定的引腳上,編譯后下載。之前應(yīng)該將試驗(yàn)箱上的線接好。打開電源,數(shù)碼管有正確的數(shù)字顯示,操作運(yùn)行試驗(yàn)結(jié)果完全符合要求。查看報(bào)告文件可

10、得到器件引腳的利用情況和器件內(nèi)部使用情況,通過更換適當(dāng)?shù)钠骷蛊滟Y源配置達(dá)到最優(yōu)。4、總結(jié)出租車計(jì)費(fèi)器計(jì)數(shù)脈沖來自車輪轉(zhuǎn)速傳感器,脈沖經(jīng)器件內(nèi)部整形后送至計(jì)數(shù)器;動態(tài)掃描脈沖由外圍電路給出,將單位脈沖看做行駛的單位公里數(shù),并在此基礎(chǔ)上進(jìn)行計(jì)費(fèi)與顯示。在這兩周的pld課程設(shè)計(jì)里,對eda常用軟件quartus ii有了更好的了解:使用quartus ii,編程、繪圖、仿真。大致掌握了出租車計(jì)費(fèi)器的設(shè)計(jì)步驟。整個設(shè)計(jì)過程,主要難點(diǎn)在于主程序的編寫和下載調(diào)試電路。其中主程序中連線的編寫比較復(fù)雜,需要條理清晰,最好統(tǒng)一編號(程序中以x1x2,v1v8)。在運(yùn)行中多次出現(xiàn)錯誤,主要是由于不夠仔細(xì),細(xì)心檢

11、查可以避免。調(diào)試過程開始不順利,檢查后發(fā)現(xiàn)引腳和信號不對應(yīng),更改過后調(diào)試成功。還需要注意的是顯示模塊部分。用d,q分別表示片選信號和數(shù)碼管顯示信號。結(jié)果重要,過程更是我們學(xué)習(xí)的寶貴經(jīng)驗(yàn)。課程設(shè)計(jì)不僅是學(xué)習(xí)一門課,更可以鍛煉我們的實(shí)踐能力,動手操作能力,和解決問題的能力。能夠?qū)⒄n堂上所學(xué)的知識靈活、巧妙的運(yùn)用到實(shí)踐操作上是一次很好的體驗(yàn),和機(jī)會。不僅鍛煉路我們的動手能力,而且加深了對課本的理解和彌補(bǔ)了課本上所不能涉及到的東西。所以在對待每一次的課程設(shè)計(jì)時我都很認(rèn)真,也終于通過自己的努力終于完成了此次的課程設(shè)計(jì)。非常感謝在此次pld課程設(shè)計(jì)中幫助過我的老師和同學(xué),我將繼續(xù)努力下去。5、附件libr

12、ary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity czc is port(clk0,start0,stop0,pause0,js0,daclk0:in std_logic; dp0:out std_logic; q0:out std_logic_vector(6 downto 0); d0:out std_logic_vector(7 downto 0);end entity czc;architecture z1 of czc is component mk1 port(clk,start,

13、stop,pause,js:in std_logic; chefei,luc:out integer range 0 to 8000); end component mk1; component mk2 port(daclk:in std_logic; ascore,bscore:in integer range 0 to 8000; age,ashi,abai,aqian,bge,bshi,bbai,bqian:out std_logic_vector(3 downto 0); end component mk2; component mk3 port(clk:in std_logic; a

14、1,a2,a3,a4,b1,b2,b3,b4:in std_logic_vector(3 downto 0); dp:out std_logic; d:out std_logic_vector(7 downto 0); q:out std_logic_vector(6 downto 0); end component mk3;signal x1,x2:integer range 0 to 8000;signal v1,v2,v3,v4,v5,v6,v7,v8:std_logic_vector(3 downto 0);begin u1:mk1 port map(clk=clk0,start=st

15、art0,stop=stop0,pause=pause0,js=js0,chefei=x1,luc=x2); u2:mk2 port map(daclk=daclk0,ascore=x1,bscore=x2,age=v1,ashi=v2,abai=v3,aqian=v4,bge=v5,bshi=v6,bbai=v7,bqian=v8); u3:mk3 port map(clk=daclk0,a1=v1,a2=v2,a3=v3,a4=v4,b1=v5,b2=v6,b3=v7,b4=v8,dp=dp0,d=d0,q=q0);end architecture z1;library ieee;use

16、ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mk1 isport(clk,start,stop,pause,js:in std_logic; chefei,luc:out integer range 0 to 8000);end mk1;architecture rt1 of mk1 isbegin process(clk,start,stop,pause,js) variable a,b:std_logic; variable aa:integer range 0 to 100; variable chf,lc

17、:integer range 0 to 8000; variable num:integer range 0 to 10; begin if(clkevent and clk=1)then if(stop=0)then chf:=0; num:=0; b:=1; aa:=0; lc:=0; elsif(start=0)then b:=0; chf:=900; lc:=0; elsif(start=1and js=1and pause=1)then if(b=0)then num:=num+1; end if; if(num=10)then lc:=lc+5; num:=0; aa:=aa+5;

18、 end if; elsif(start=1and js=0and pause=1)then lc:=lc+1; aa:=aa+1; end if; if(aa=100)then a:=1; aa:=0; else a:=0; end if; if(lc200)then null; elsif(chf=3000 and a=1)then chf:=chf+400; end if; end if; chefei=chf; luc=lc; end process;end rt1;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_

19、unsigned.all;entity mk2 is port(daclk:in std_logic; ascore,bscore:in integer range 0 to 8000; age,ashi,abai,aqian,bge,bshi,bbai,bqian:out std_logic_vector(3 downto 0);end mk2;architecture rt1 of mk2 isbegin process(daclk,ascore) variable comb1:integer range 0 to 8000; variable comb1a,comb1b,comb1c,c

20、omb1d:std_logic_vector(3 downto 0); begin if(daclkevent and daclk=1)then if(comb1ascore)then if(comb1a=9 and comb1b=9 and comb1c=9)then comb1a:=0000; comb1b:=0000; comb1c:=0000; comb1d:=comb1d+1; comb1:=comb1+1; elsif(comb1a=9 and comb1b=9)then comb1a:=0000; comb1b:=0000; comb1c:=comb1c+1; comb1:=co

21、mb1+1; elsif(comb1a=9)then comb1a:=0000; comb1b:=comb1b+1; comb1:=comb1+1; else comb1a:=comb1a+1; comb1:=comb1+1; end if; else age=comb1a; ashi=comb1b; abai=comb1c; aqian=comb1d; comb1a:=0000; comb1b:=0000; comb1c:=0000; comb1d:=0000; comb1:=0; end if; end if;end process;process(daclk,bscore)variabl

22、e comb2:integer range 0 to 8000;variable comb2a,comb2b,comb2c,comb2d:std_logic_vector(3 downto 0);begin if(daclkevent and daclk=1)then if(comb2bscore)then if(comb2a=9 and comb2b=9 and comb2c=9)then comb2a:=0000; comb2b:=0000; comb2c:=0000; comb2d:=comb2d+1; comb2:=comb2+1; elsif(comb2a=9 and comb2b=

23、9)then comb2a:=0000; comb2b:=0000; comb2c:=comb2c+1; comb2:=comb2+1; elsif(comb2a=9)then comb2a:=0000; comb2b:=comb2b+1; comb2:=comb2+1; else comb2a:=comb2a+1; comb2:=comb2+1; end if; else bge=comb2a; bshi=comb2b; bbai=comb2c; bqian=comb2d; comb2a:=0000; comb2b:=0000; comb2c:=0000; comb2d:=0000; comb2:=0; end if; end if; end process;end rt1;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;enti

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論