2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  EDA基礎(chǔ)課程設(shè)計(jì)</b></p><p>  題目: 出租車計(jì)費(fèi)器設(shè)計(jì)</p><p>  學(xué)生姓名: *</p><p>  學(xué) 號(hào): 2009*******</p><p>  班 級(jí): 電子信息工程09-02班</p

2、><p>  專 業(yè): 電子信息工程</p><p>  所在院系: 電氣與信息工程學(xué)院 </p><p>  指導(dǎo)教師: ***** </p><p>  起止日期:2012年5月28日至2012年6月8日</p><p><b>  出租車計(jì)費(fèi)器設(shè)

3、計(jì)</b></p><p><b>  摘要</b></p><p>  隨著我國(guó)社會(huì)經(jīng)濟(jì)的全面發(fā)展,各大中小城市的出租車營(yíng)運(yùn)事業(yè)發(fā)展迅速,出租車已經(jīng)成為人們?nèi)粘3鲂羞x擇較為普遍的交通工具。出租車計(jì)費(fèi)器是出租車營(yíng)運(yùn)收費(fèi)的專用智能化儀表,是出租車市場(chǎng)規(guī)范化 、標(biāo)準(zhǔn)化以及減少司機(jī)與乘客之間發(fā)生糾紛的重要設(shè)備。一種功能完備、簡(jiǎn)單易用、計(jì)量準(zhǔn)確的出租車計(jì)費(fèi)器是加強(qiáng)

4、出租車行業(yè)管理、提高服務(wù)質(zhì)量的必備品。</p><p>  本文介紹了出租車計(jì)費(fèi)器系統(tǒng)在實(shí)際生產(chǎn)生活中的重要性,根據(jù)預(yù)定的設(shè)計(jì)要求和設(shè)計(jì)思路,采用VHDL硬件描述語(yǔ)言作為設(shè)計(jì)手段,采用自頂向下的設(shè)計(jì)思路設(shè)計(jì)了一個(gè)實(shí)際的基于EP3C80F780C8N芯片的出租車計(jì)費(fèi)系統(tǒng),通過(guò)在QuartusⅡ8.1軟件下進(jìn)行模擬仿真,并進(jìn)行相應(yīng)的硬件下載調(diào)試,證明該出租車計(jì)費(fèi)系統(tǒng)具有實(shí)用出租車計(jì)費(fèi)器的基本功能,各技術(shù)指標(biāo)符合預(yù)定標(biāo)

5、準(zhǔn),如能進(jìn)一步完善,將可以實(shí)用化和市場(chǎng)化,具有一定實(shí)用性。</p><p>  關(guān)鍵詞:出租車計(jì)費(fèi)器;現(xiàn)場(chǎng)可編程門(mén)陣列;仿真 </p><p><b>  目 錄</b></p><p><b>  1 設(shè)計(jì)目的1</b></p><p><b>  2 設(shè)計(jì)指標(biāo)2</b>

6、;</p><p><b>  2.1 課題2</b></p><p><b>  2.2技術(shù)指標(biāo)2</b></p><p>  3 VHDL簡(jiǎn)介2</p><p>  4 出租車計(jì)費(fèi)器功能設(shè)計(jì)4</p><p>  4.1出租車計(jì)費(fèi)器功能設(shè)計(jì)4</p>

7、<p>  4.2出租車計(jì)費(fèi)器原理5</p><p><b>  4.3模塊設(shè)計(jì)5</b></p><p>  4.3.1點(diǎn)陣動(dòng)態(tài)顯示模塊5</p><p>  4.3.2里程動(dòng)態(tài)顯示模塊6</p><p>  4.3.3計(jì)費(fèi)動(dòng)態(tài)顯示模塊6</p><p>  5 出租車計(jì)

8、費(fèi)器的實(shí)現(xiàn)6</p><p>  5.1出租車計(jì)費(fèi)器功能設(shè)計(jì)6</p><p>  5.2出租車計(jì)費(fèi)器原理7</p><p>  5.3模塊設(shè)計(jì)10</p><p>  6 出租車計(jì)費(fèi)器的仿真結(jié)果18</p><p>  6.1管腳分配18</p><p>  6.2顯示模塊仿真結(jié)果

9、19</p><p><b>  7 設(shè)計(jì)總結(jié)21</b></p><p><b>  參考文獻(xiàn)22</b></p><p>  附錄 出租車計(jì)費(fèi)器VHDL源程序23</p><p><b>  1 設(shè)計(jì)目的</b></p><p>  隨著我國(guó)

10、社會(huì)經(jīng)濟(jì)的全面發(fā)展,各大中小城市的出租車營(yíng)運(yùn)事業(yè)發(fā)展迅速,出租車已經(jīng)成為人們?nèi)粘3鲂羞x擇較為普遍的交通工具。出租車計(jì)費(fèi)器是出租車營(yíng)運(yùn)收費(fèi)的專用智能化儀表,是出租車市場(chǎng)規(guī)范化 、標(biāo)準(zhǔn)化以及減少司機(jī)與乘客之間發(fā)生糾紛的重要設(shè)備。一種功能完備、簡(jiǎn)單易用、計(jì)量準(zhǔn)確的出租車計(jì)費(fèi)器是加強(qiáng)出租車行業(yè)管理、提高服務(wù)質(zhì)量的必備品。本文介紹了出租車計(jì)費(fèi)器系統(tǒng)在實(shí)際生產(chǎn)生活中的重要性,根據(jù)預(yù)定的設(shè)計(jì)要求和設(shè)計(jì)思路,采用VHDL硬件描述語(yǔ)言作為設(shè)計(jì)手段,采用自

11、頂向下的設(shè)計(jì)思路設(shè)計(jì)了一個(gè)實(shí)際的基于AheraFPGA芯片的出租車計(jì)費(fèi)系統(tǒng),通過(guò)在QuartusⅡ8.1軟件下進(jìn)行模擬仿真,并進(jìn)行相應(yīng)的硬件下載調(diào)試,證明該出租車計(jì)費(fèi)系統(tǒng)具有實(shí)用出租車計(jì)費(fèi)器的基本功能,各技術(shù)指標(biāo)符合預(yù)定標(biāo)準(zhǔn),如能進(jìn)一步完善,將可以實(shí)用化和市場(chǎng)化,具有一定實(shí)用性。</p><p>  傳統(tǒng)出租車計(jì)費(fèi)器多數(shù)由單片機(jī)實(shí)現(xiàn),可擴(kuò)展的資源有限,硬件電路復(fù)雜,不利于系統(tǒng)功能升級(jí),容易在運(yùn)營(yíng)過(guò)程中產(chǎn)生干擾,影

12、響系統(tǒng)的使用。并且由于分立器件多,造成電源功耗大,影響芯片的使用壽命。而基于FPGA的出租車計(jì)費(fèi)器可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問(wèn)題,具有非常重要的實(shí)際意義。</p><p><b>  2 設(shè)計(jì)指標(biāo)</b></p><p><b>  2.1 課題</b></p><p><b>  出租車計(jì)費(fèi)器設(shè)

13、計(jì)</b></p><p><b>  2.2技術(shù)指標(biāo)</b></p><p>  1.用直流電動(dòng)機(jī)模擬出租車輪子,通過(guò)8個(gè)七段碼管的前四個(gè)顯示里程,后四個(gè)顯示費(fèi)用。</p><p>  2.利用16*16點(diǎn)陣顯示每公里費(fèi)用。</p><p>  3.白天黑夜出租車不同費(fèi)用價(jià)格。</p><

14、;p>  4.計(jì)算超出一定里程的返程費(fèi)用。</p><p><b>  3 VHDL簡(jiǎn)介</b></p><p>  VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,翻譯成中文就是超高速集成電路硬件描述語(yǔ)言,因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。1987年底

15、,VHDL被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076(簡(jiǎn)稱87版)之后,各EDA公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。</p><p>  此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的認(rèn)可,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語(yǔ)言。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,

16、公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,(簡(jiǎn)稱93版)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言。有專家認(rèn)為,在新的世紀(jì)中,VHDL與Verilog語(yǔ)言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。VHDL語(yǔ)言是一種用于電路設(shè)計(jì)的高級(jí)語(yǔ)言。它在80年代的后期出現(xiàn)。最初是由美國(guó)國(guó)防部開(kāi)發(fā)出來(lái)供美軍用來(lái)提高設(shè)計(jì)的可靠性和縮減開(kāi)發(fā)周

17、期的一種使用范圍較小的設(shè)計(jì)語(yǔ)言 。  </p><p>  VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式、描述風(fēng)格以及語(yǔ)法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)

18、計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。</p><p>  由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語(yǔ)言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計(jì)過(guò)程中,主要的設(shè)計(jì)文件是用VHDL編寫(xiě)的源代碼,因?yàn)閂HDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。<

19、/p><p>  VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門(mén)級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來(lái)較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。</p><p><b>  

20、4 設(shè)計(jì)過(guò)程</b></p><p>  4.1 出租車計(jì)費(fèi)器功能設(shè)計(jì)</p><p>  該系統(tǒng)的設(shè)計(jì)可以采用分立元件來(lái)搭建,也可以通過(guò)單片機(jī)來(lái)設(shè)計(jì),而使用可編程FPGA來(lái)設(shè)計(jì),具有設(shè)計(jì)周期短、易于修改等明顯特點(diǎn),而且隨著可編程邏輯器件和EDA軟件的飛速發(fā)展,越來(lái)越多的電子系統(tǒng)采用FPGA來(lái)設(shè)計(jì),一旦該系統(tǒng)達(dá)到一定的量產(chǎn)規(guī)模,也比較容易轉(zhuǎn)化為ASIC芯片設(shè)計(jì)。因此,基于FPG

21、A來(lái)設(shè)計(jì)一個(gè)出租車的計(jì)費(fèi)器。本系統(tǒng)在EDA工具軟件QuartusⅡ8.1中,采用硬件描述語(yǔ)言和原理圖設(shè)計(jì)相結(jié)合的方法,進(jìn)行各個(gè)模塊的設(shè)計(jì),最終將各個(gè)模塊組成整個(gè)系統(tǒng)。</p><p>  FPGA設(shè)計(jì)劃分為以下幾個(gè)功能模塊,它們分別是:點(diǎn)陣顯示模塊、計(jì)程模塊、輸出數(shù)據(jù)顯示模塊,將每個(gè)模塊的功能實(shí)現(xiàn)后,通過(guò)合理連接和協(xié)調(diào)各相關(guān)端口,得到整個(gè)電路系統(tǒng)。下面分別是各主要模塊的簡(jiǎn)單描述。</p><p

22、> ?、冱c(diǎn)陣顯示模塊:采用一種16路動(dòng)態(tài)分時(shí)掃描技術(shù)來(lái)實(shí)現(xiàn)16*16點(diǎn)陣動(dòng)態(tài)顯示白天和夜間不同的每公里費(fèi)用。具體方法是,將16×16數(shù)組的顯示模塊的行輸入端與FPGA內(nèi)的只讀存儲(chǔ)器ROM的16位數(shù)據(jù)輸出端口相連,16個(gè)列控制端與一個(gè)4-16譯碼器的輸出相連,而譯碼器的輸入端和片選信號(hào)又與FPGA內(nèi)的列掃描控制模塊的輸出端口相連。</p><p>  ②計(jì)程模塊:出租車能夠顯示行駛的里程,可以通過(guò)直

23、流電動(dòng)機(jī)的轉(zhuǎn)動(dòng)產(chǎn)生脈沖,然后通過(guò)計(jì)數(shù)器對(duì)脈沖進(jìn)行計(jì)數(shù)來(lái)實(shí)現(xiàn)。本次設(shè)計(jì)中里程數(shù)精確到O.1 km,也就是100m,由電動(dòng)機(jī)給出的脈沖信號(hào)作為里程計(jì)數(shù)器的時(shí)鐘信號(hào),里程計(jì)數(shù)器每計(jì)數(shù)1 km還會(huì)周期性地輸出一個(gè)脈沖信號(hào),稱為1 km脈沖信號(hào),可以通過(guò)一定的組合電路來(lái)實(shí)現(xiàn)。里程計(jì)數(shù)器可以用一個(gè)四位BCD碼計(jì)數(shù)器來(lái)實(shí)現(xiàn),最大能顯示到9999,根據(jù)設(shè)計(jì)的要求和條件限制,這里前三位為整數(shù)部分,最后一位為小數(shù)部分,即最大能顯示里程999.9 km。&l

24、t;/p><p> ?、蹟?shù)據(jù)顯示模塊:系統(tǒng)最核心的部分就是計(jì)費(fèi)如何實(shí)現(xiàn)。這里就需要設(shè)計(jì)一個(gè)BCD碼的加法器,在起步價(jià)的基礎(chǔ)上,根據(jù)行駛里程的不同,依據(jù)計(jì)費(fèi)標(biāo)準(zhǔn),每增加1 km加上一個(gè)單價(jià)。系統(tǒng)中用到了四位BCD碼加法器,可以實(shí)現(xiàn)四位十進(jìn)制數(shù)的加法運(yùn)算。加法器輸出的結(jié)果就是乘客應(yīng)付的費(fèi)用,這里以元為單位,最大能顯示9999元。四位BCD碼加法器由四個(gè)一位BCD碼加法器級(jí)聯(lián)而成。四位BCD碼加法器輸出的結(jié)果通過(guò)緩沖器以后

25、,反饋到輸入端重新作為一個(gè)加數(shù),在脈沖信號(hào)的作用下,每來(lái)一個(gè)脈沖就和單價(jià)相加,形成連續(xù)累加的功能。</p><p>  4.2 出租車計(jì)費(fèi)器原理</p><p>  圖1 出租車計(jì)費(fèi)器原理框圖</p><p><b>  4.3 模塊設(shè)計(jì)</b></p><p>  4.3.1 點(diǎn)陣動(dòng)態(tài)顯示模塊</p>

26、<p>  當(dāng)白天、夜間轉(zhuǎn)換開(kāi)關(guān)K1置于關(guān)狀態(tài)(低電平)時(shí),16*16點(diǎn)陣顯示文字“白天每公里2元”,文字逐個(gè)顯示,不斷循環(huán)以告知乘客出租價(jià)格;當(dāng)K1置于開(kāi)狀態(tài)(高電平)時(shí),顯示“夜間每公里3元”。其原理結(jié)構(gòu)圖如下:</p><p>  圖2 點(diǎn)陣顯示原理結(jié)構(gòu)圖</p><p>  4.3.2 里程動(dòng)態(tài)顯示模塊</p><p>  其包括直流電動(dòng)機(jī)發(fā)出的

27、脈沖以及將計(jì)數(shù)顯示動(dòng)態(tài)顯示在前四個(gè)七段數(shù)碼管,每來(lái)一個(gè)脈沖里程值加0.1(控制器每發(fā)一個(gè)脈沖代表運(yùn)行了0.1公里)。當(dāng)S1按鍵按下進(jìn)行復(fù)位后數(shù)值歸零,重新開(kāi)始計(jì)數(shù)。</p><p>  4.3.3 計(jì)費(fèi)動(dòng)態(tài)顯示模塊</p><p>  其初值為6元,當(dāng)里程超過(guò)2公里后才接受直流電動(dòng)機(jī)發(fā)出的脈沖的驅(qū)動(dòng),并且計(jì)數(shù)顯示動(dòng)態(tài)顯示出來(lái),白天期間每來(lái)10個(gè)脈沖(代表運(yùn)行了1公里)其數(shù)值加2元,當(dāng)里程超

28、過(guò)20km時(shí)加收50%的返程費(fèi),即數(shù)值加3元;夜間20km以內(nèi)單價(jià)3元,當(dāng)超過(guò)20km時(shí)加收返程費(fèi)。當(dāng)S1按鍵按下進(jìn)行復(fù)位后數(shù)值歸零,重新開(kāi)始計(jì)費(fèi)。</p><p>  5 出租車計(jì)費(fèi)器的實(shí)現(xiàn)</p><p>  5.1 計(jì)程模塊程序設(shè)計(jì)</p><p>  計(jì)程模塊的VHDL源程序如下:</p><p>  process(Motor,Rs

29、t) --計(jì)里程</p><p><b>  begin</b></p><p>  if(Rst='0') then</p><p>  Meter1<=0;</p><p>  Meter10<=0;</p><p>  Meter100<=0;</

30、p><p>  Meter1K<=0;</p><p>  elsif(Motor'event and Motor='1') then</p><p>  if(Meter1=9) then Meter1<=0;</p><p>  if(Meter10=9) then Meter10<=

31、0;</p><p>  if(Meter100=9) then Meter100<=0;</p><p>  if(Meter1K=9) then Meter1K<=0;</p><p><b>  else </b></p><p>  Meter1K<=Meter1K+1;<

32、;/p><p><b>  end if;</b></p><p><b>  else</b></p><p>  Meter100<=Meter100+1;</p><p><b>  end if;</b></p><p><b>  

33、else</b></p><p>  Meter10<=Meter10+1;</p><p><b>  end if;</b></p><p><b>  else </b></p><p>  Meter1<=Meter1+1;</p><p>&

34、lt;b>  end if;</b></p><p><b>  end if; </b></p><p>  end process;</p><p>  出租車能夠顯示行駛的里程,可以通過(guò)直流電動(dòng)機(jī)的轉(zhuǎn)動(dòng)產(chǎn)生脈沖,然后通過(guò)計(jì)數(shù)器對(duì)脈沖進(jìn)行計(jì)數(shù)來(lái)實(shí)現(xiàn)。本次設(shè)計(jì)中里程數(shù)精確到O.1 km,也就是100m,由電動(dòng)機(jī)給出的脈沖信號(hào)

35、作為里程計(jì)數(shù)器的時(shí)鐘信號(hào),里程計(jì)數(shù)器每計(jì)數(shù)1 km還會(huì)周期性地輸出一個(gè)脈沖信號(hào),稱為1 km脈沖信號(hào),可以通過(guò)一定的組合電路來(lái)實(shí)現(xiàn)。里程計(jì)數(shù)器可以用一個(gè)四位BCD碼計(jì)數(shù)器來(lái)實(shí)現(xiàn),最大能顯示到9999,根據(jù)設(shè)計(jì)的要求和條件限制,這里前三位為整數(shù)部分,最后一位為小數(shù)部分,即最大能顯示里程999.9 km。</p><p>  5.1 計(jì)費(fèi)模塊程序設(shè)計(jì)</p><p>  計(jì)費(fèi)模塊的VHDL源程

36、序如下:</p><p>  process(Clk,Rst,dn) --計(jì)費(fèi)模塊</p><p><b>  begin</b></p><p>  if(Rst='0') then</p><p>  Money1<=0;</p><p>  Money10<

37、=0;</p><p>  Money100<=0;</p><p>  elsif(Motor'event and Motor='1') then</p><p>  if( Meter10<2 and Meter100<1 and Meter1k<1) then --里程小于2Km時(shí)顯示起步價(jià)</p&g

38、t;<p>  Money100<=0;</p><p>  Money10<=0; </p><p>  Money1<=6; --起步價(jià)6元</p><p>  Old_Money1<=0;</p><p><b>  else</b></p>&l

39、t;p>  if (dn='0' and Meter100<2 and Meter1k<0) then</p><p>  if (Old_Money1=9) then Old_Money1<=0; ---白天</p><p>  if (Money1=9) then Money1<=0;</p&g

40、t;<p>  if(Money10=9) then Money10<=0;</p><p>  if(Money100=9) then Money100<=0;</p><p>  else Money100<=Money100+1;</p><p><b>  end if;</b><

41、/p><p>  else Money10<=Money10 +1;</p><p><b>  end if;</b></p><p>  else Money1<=Money1 +1;</p><p>  end if; </p><p><b>  else &l

42、t;/b></p><p>  Old_Money1<= Old_Money1 +2; --- 續(xù)程單價(jià)每公里2元</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if (dn=’0’ and (Meter1

43、00>1 or Meter1k>0)) then ---白天超過(guò)20km加收返程費(fèi)</p><p>  if (Old_Money1=9) then Old_Money1<=0; </p><p>  if (Money1=9) then Money1<=0;</p><p>  if(Money10=9) the

44、n Money10<=0;</p><p>  if(Money100=9) then Money100<=0;</p><p>  else Money100<=Money100+1;</p><p><b>  end if;</b></p><p>  else Money10&l

45、t;=Money10 +1;</p><p><b>  end if;</b></p><p>  else Money1<=Money1 +1;</p><p>  end if; </p><p><b>  else </b></p><p>  Old

46、_Money1<= Old_Money1 +3; ---加收返程費(fèi)</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if (dn='1' and Meter100<2 and Meter1k<0) t

47、hen</p><p>  if (Old_Money1=9) then Old_Money1<=0; ---夜間</p><p>  if (Money1=9) then Money1<=0;</p><p>  if(Money10=9) then Money10<=0;</p>&

48、lt;p>  if(Money100=9) then Money100<=0;</p><p>  else Money100<=Money100+1;</p><p><b>  end if;</b></p><p>  else Money10<=Money10 +1;</p><p&g

49、t;<b>  end if;</b></p><p>  else Money1<=Money1 +1;</p><p>  end if; </p><p><b>  else </b></p><p>  Old_Money1<= Old_Money1 +3; ---

50、 續(xù)程單價(jià)每公里3元</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if (dn='1' and (Meter100>1 or Meter1k>0)) then ---夜間超過(guò)20km加收返程費(fèi)</p>

51、<p>  if (Old_Money1=9) then Old_Money1<=0; </p><p>  if (Money1=9) then Money1<=0;</p><p>  if(Money10=9) then Money10<=0;</p><p>  if(Money100=9)

52、 then Money100<=0;</p><p>  else Money100<=Money100+1;</p><p><b>  end if;</b></p><p>  else Money10<=Money10 +1;</p><p><b>  end if;<

53、/b></p><p>  else Money1<=Money1 +1;</p><p>  end if; </p><p><b>  else </b></p><p>  Old_Money1<= Old_Money1 +4; ---加收的返程費(fèi)</p><

54、;p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;<

55、/p><p>  process(SEG_SEL) --- 顯示 </p><p><b>  begin</b></p><p>  case (SEG_SEL+1) is</p><p>  when "000"=>Disp_Temp<=Meter1K;</p>&l

56、t;p>  when "001"=>Disp_Temp<=Meter100;</p><p>  when "010"=>Disp_Temp<=Meter10;</p><p>  when "011"=>Disp_Temp<=Meter1;</p><p>  w

57、hen "100"=>Disp_Temp<=10;</p><p>  when "101"=>Disp_Temp<=Money100;</p><p>  when "110"=>Disp_Temp<=Money10;</p><p>  when "111&

58、quot;=>Disp_Temp<=Money1;</p><p>  end case; </p><p>  end process;</p><p>  process(Clk)</p><p><b>  begin</b></p><p>  if(Clk'even

59、t and Clk='1') then --掃描累加 </p><p>  SEG_SEL<=SEG_SEL+1;</p><p>  if(SEG_SEL=3) then</p><p>  Display<=Disp_Decode or "1000000";</p><p><b

60、>  else </b></p><p>  Display<=Disp_Decode;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p&g

61、t;  process(Disp_Temp) --顯示轉(zhuǎn)換</p><p><b>  begin</b></p><p>  case Disp_Temp is</p><p>  when 0=>Disp_Decode<="00111111"; --0</p><p> 

62、 when 1=>Disp_Decode<="00000110"; --1</p><p>  when 2=>Disp_Decode<="01011011"; --2</p><p>  when 3=>Disp_Decode<="01001111"; --3</p>

63、<p>  when 4=>Disp_Decode<="01100110"; --4</p><p>  when 5=>Disp_Decode<="01101101"; --5</p><p>  when 6=>Disp_Decode<="01111101"; --6

64、</p><p>  when 7=>Disp_Decode<="00000111"; --7</p><p>  when 8=>Disp_Decode<="01111111"; --8</p><p>  when 9=>Disp_Decode<="01101111&q

65、uot;; --9</p><p>  when 10=>Disp_Decode<="01000000"; </p><p>  when others=>Disp_Decode<="00000000"; --全滅</p><p><b>  end case;</b>

66、</p><p>  end process; </p><p>  在起步價(jià)的基礎(chǔ)上,根據(jù)行駛里程的不同,依據(jù)計(jì)費(fèi)標(biāo)準(zhǔn),每增加1 km加上一個(gè)單價(jià)。系統(tǒng)中用到了四位BCD碼加法器,可以實(shí)現(xiàn)四位十進(jìn)制數(shù)的加法運(yùn)算。加法器輸出的結(jié)果就是乘客應(yīng)付的費(fèi)用,這里以元為單位,最大能顯示9999元。四位BCD碼加法器由四個(gè)一位BCD碼加法器級(jí)聯(lián)而成。四位BCD碼加法器輸出的結(jié)果通過(guò)緩沖器以后,反饋

67、到輸入端重新作為一個(gè)加數(shù),在脈沖信號(hào)的作用下,每來(lái)一個(gè)脈沖就和單價(jià)相加,形成連續(xù)累加的功能。此設(shè)計(jì)中2km以內(nèi)起步價(jià)為6元,白天續(xù)程單價(jià)2元,超過(guò)20km為3元;夜間續(xù)程單價(jià)3元,超過(guò)20km為4元。</p><p>  5.3 點(diǎn)陣顯示模塊程序</p><p>  點(diǎn)陣顯示模塊的VHDL源程序如下:</p><p>  process(clk)

68、 ---顯示時(shí)序控制 </p><p><b>  begin</b></p><p>  if clk'event and clk='1' then</p><p>  dount<=dount+1;</p><p>  if dount=255 then<

69、/p><p>  if S=15 then</p><p>  S<="0000";</p><p><b>  else</b></p><p><b>  s<=S+1;</b></p><p><b>  end if;<

70、;/b></p><p><b>  s<=s+1;</b></p><p><b>  else</b></p><p><b>  s<=S;</b></p><p><b>  end if;</b></p><

71、;p>  if cdount<15 then</p><p>  cdount<=cdount+1;</p><p><b>  else</b></p><p>  cdount<="0000";</p><p><b>  end if;</b>

72、;</p><p><b>  end if;</b></p><p>  keyc<=cdount;</p><p>  end process;</p><p>  process(cdount,s,dn)</p><p><b>  begin</b><

73、/p><p>  if(dn='0') then</p><p>  if s="0000" then</p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111111111111"; --

74、點(diǎn)陣顯示 白 </p><p>  when "0001"=>keyr<="1111111111111111";</p><p>  when "0010"=>keyr<="1100000000000111";</p><p>  when "001

75、1"=>keyr<="1101111011110111";</p><p>  when "0100"=>keyr<="1101111011110011";</p><p>  when "0101"=>keyr<="1101111011110101&qu

76、ot;;</p><p>  when "0110"=>keyr<="1101111011110110";</p><p>  when "0111"=>keyr<="1101111011110111";</p><p>  when "1000&quo

77、t;=>keyr<="1101111011110111";</p><p>  when "1001"=>keyr<="1101111011110111";</p><p>  when "1010"=>keyr<="1101111011110111";&

78、lt;/p><p>  when "1011"=>keyr<="1101111011110111";</p><p>  when "1100"=>keyr<="1110111011101001";</p><p>  when "1101"=&g

79、t;keyr<="1100000000000111";</p><p>  when "1110"=>keyr<="1111111111111111";</p><p>  when "1111"=>keyr<="1111111111111111";</p

80、><p>  when others=>keyr<="1111111111111111";</p><p>  end case; </p><p>  elsif s="0001" then </p><p>  case cdount is</p><p>  

81、when "0000"=>keyr<="0111111110111111"; --點(diǎn)陣顯示 天</p><p>  when "0001"=>keyr<="0111111110111101";</p><p>  when "0010"=>keyr<=&q

82、uot;1011111110111101";</p><p>  when "0011"=>keyr<="1101111110111101";</p><p>  when "0100"=>keyr<="1110111110111101";</p><p&g

83、t;  when "0101"=>keyr<="1111001110111101";</p><p>  when "0110"=>keyr<="1111110010111101";</p><p>  when "0111"=>keyr<="1

84、111111100000001";</p><p>  when "1000"=>keyr<="1111110010111101";</p><p>  when "1001"=>keyr<="1111001110111101";</p><p>  w

85、hen "1010"=>keyr<="1110111110111101";</p><p>  when "1011"=>keyr<="1101111110111101";</p><p>  when "1100"=>keyr<="101111

86、1110111100";</p><p>  when "1101"=>keyr<="0011111110011101";</p><p>  when "1110"=>keyr<="1011111110111111";</p><p>  when &

87、quot;1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p><p><b>  end case;</b></p><p>  elsif s=&q

88、uot;0010" then </p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111011111111"; --點(diǎn)陣顯示 每</p><p>  when "0001"=>keyr<="1

89、111111011101111";</p><p>  when "0010"=>keyr<="1110001011110111";</p><p>  when "0011"=>keyr<="1110110000001000";</p><p>  w

90、hen "0100"=>keyr<="1110111011101011";</p><p>  when "0101"=>keyr<="1110111011101011";</p><p>  when "0110"=>keyr<="111011

91、0011001011";</p><p>  when "0111"=>keyr<="1110101010101011";</p><p>  when "1000"=>keyr<="1010111011101011";</p><p>  when &

92、quot;1001"=>keyr<="0110111011101011";</p><p>  when "1010"=>keyr<="1000111011101011";</p><p>  when "1011"=>keyr<="11100000000

93、00011";</p><p>  when "1100"=>keyr<="1110111011101001";</p><p>  when "1101"=>keyr<="1111111001111011";</p><p>  when "

94、1110"=>keyr<="1111111011111111";</p><p>  when "1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";<

95、;/p><p>  end case; </p><p>  elsif s="0011" then </p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111011111111"; --點(diǎn)陣顯示 公&

96、lt;/p><p>  when "0001"=>keyr<="1111111011111111";</p><p>  when "0010"=>keyr<="1111111101111111";</p><p>  when "0011"=&g

97、t;keyr<="1100111110111111";</p><p>  when "0100"=>keyr<="1101011111001111";</p><p>  when "0101"=>keyr<="1101101111110011";</p

98、><p>  when "0110"=>keyr<="1101110011111111";</p><p>  when "0111"=>keyr<="1101111100111111";</p><p>  when "1000"=>key

99、r<="1101111111111001";</p><p>  when "1001"=>keyr<="1101111111111001";</p><p>  when "1010"=>keyr<="1100011111100111";</p>

100、<p>  when "1011"=>keyr<="1100111111011111";</p><p>  when "1100"=>keyr<="1001111110111111";</p><p>  when "1101"=>keyr<

101、="1111111101111111";</p><p>  when "1110"=>keyr<="1111111001111111";</p><p>  when "1111"=>keyr<="1111111101111111";</p><

102、p>  when others=>keyr<="1111111111111111";</p><p><b>  end case;</b></p><p>  elsif s="0100" then</p><p>  case cdount is</p><p

103、>  when "0000"=>keyr<="1011111111111111"; --點(diǎn)陣顯示 里</p><p>  when "0001"=>keyr<="1011111111111111";</p><p>  when "0010"=>keyr&

104、lt;="1011011000000001";</p><p>  when "0011"=>keyr<="1011011011101101";</p><p>  when "0100"=>keyr<="1011011011101101";</p>&

105、lt;p>  when "0101"=>keyr<="1011011011101101";</p><p>  when "0110"=>keyr<="1011011011101101";</p><p>  when "0111"=>keyr<=&

106、quot;1000000000000001";</p><p>  when "1000"=>keyr<="1011011011101101";</p><p>  when "1001"=>keyr<="1011011011101101";</p><p&

107、gt;  when "1010"=>keyr<="1011011011101101";</p><p>  when "1011"=>keyr<="1011011011101101";</p><p>  when "1100"=>keyr<="

108、1011011000000001";</p><p>  when "1101"=>keyr<="1011111111111111";</p><p>  when "1110"=>keyr<="1011111111111111";</p><p>  

109、when "1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p><p><b>  end case;</b></p><p>  elsif

110、 s="0101" then</p><p>  case cdount is</p><p>  when "0000"=>eyr<="1111111111111111"; --點(diǎn)陣顯示 2</p><p>  when "0001"=>keyr<=&qu

111、ot;1111111111111111";</p><p>  when "0010"=>keyr<="1100111110011111";</p><p>  when "0011"=>keyr<="1100111110001111";</p><p>

112、;  when "0100"=>keyr<="1100011110000111";</p><p>  when "0101"=>keyr<="1100001111110011";</p><p>  when "0110"=>keyr<="11

113、00101111110011";</p><p>  when "0111"=>keyr<="1100100111110011";</p><p>  when "1000"=>keyr<="1100110111110011";</p><p>  wh

114、en "1001"=>keyr<="1100110011110011";</p><p>  when "1010"=>keyr<="1100111001110011";</p><p>  when "1011"=>keyr<="1100111

115、000000111";</p><p>  when "1100"=>keyr<="1100111100001111";</p><p>  when "1101"=>keyr<="1100011110011111";</p><p>  when &q

116、uot;1110"=>keyr<="1111111111111111";</p><p>  when "1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111"

117、;</p><p><b>  end case;</b></p><p>  elsif s>5 then</p><p>  case cdount is</p><p>  when "0000"=>keyr<="0111111111011111";

118、--點(diǎn)陣顯示 元</p><p>  when "0001"=>keyr<="0111111111011111";</p><p>  when "0010"=>keyr<="1011111111011101";</p><p>  when "0011

119、"=>keyr<="1101111111011101";</p><p>  when "0100"=>keyr<="1110011111011101";</p><p>  when "0101"=>keyr<="1111100000011101&quo

120、t;;</p><p>  when "0110"=>keyr<="1111111111011101";</p><p>  when "0111"=>keyr<="1111111111011101";</p><p>  when "1000"

121、;=>keyr<="1111111111011101";</p><p>  when "1001"=>keyr<="1100000000011101";</p><p>  when "1010"=>keyr<="1011111111011101";&l

122、t;/p><p>  when "1011"=>keyr<="1011111111011101";</p><p>  when "1100"=>keyr<="1011111111011101";</p><p>  when "1101"=>

123、;keyr<="1011111111011101";</p><p>  when "1110"=>keyr<="1011111111011111";</p><p>  when "1111"=>keyr<="1000111111111111";</p&

124、gt;<p>  when others=>keyr<="1111111111111111";</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p><b>  elsif</b><

125、;/p><p>  s="0000" then</p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111110111111011"; --點(diǎn)陣顯示 夜</p><p>  when "0001"

126、;=>keyr<="1111111011111011";</p><p>  when "0010"=>keyr<="1111111101111011";</p><p>  when "0011"=>keyr<="0000000000011011";&l

127、t;/p><p>  when "0100"=>keyr<="0111110111100011";</p><p>  when "0101"=>keyr<="0111111011111011";</p><p>  when "0110"=>

128、;keyr<="1011111001111010";</p><p>  when "0111"=>keyr<="1101110110111001";</p><p>  when "1000"=>keyr<="1110101101000011";</p&

129、gt;<p>  when "1001"=>keyr<="1111011011011011";</p><p>  when "1010"=>keyr<="1110101111011011";</p><p>  when "1011"=>keyr

130、<="1101110011011011";</p><p>  when "1100"=>keyr<="1011111100011011";</p><p>  when "1101"=>keyr<="0011111111111001";</p>

131、<p>  when "1110"=>keyr<="1011111111111011";</p><p>  when "1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111

132、111111111111";</p><p>  end case; </p><p>  elsif s="0001" then </p><p>  case cdount is</p><p>  when "0000"=>keyr<="11111111111

133、11111"; --點(diǎn)陣顯示 間</p><p>  when "0001"=>keyr<="0000000000000111";</p><p>  when "0010"=>keyr<="1111111111111110";</p><p>  wh

134、en "0011"=>keyr<="1111111111111101";</p><p>  when "0100"=>keyr<="1100000000001001";</p><p>  when "0101"=>keyr<="1110111

135、011101111";</p><p>  when "0110"=>keyr<="1110111011101101";</p><p>  when "0111"=>keyr<="1110111011101101";</p><p>  when &q

136、uot;1000"=>keyr<="1110111011101101";</p><p>  when "1001"=>keyr<="1110111011101101";</p><p>  when "1010"=>keyr<="110000000000

137、0101";</p><p>  when "1011"=>keyr<="1011111111101101";</p><p>  when "1100"=>keyr<="0111111111111101";</p><p>  when "1

138、101"=>keyr<="1000000000000000";</p><p>  when "1110"=>keyr<="1111111111111101";</p><p>  when "1111"=>keyr<="1111111111111111&

139、quot;;</p><p>  when others=>keyr<="1111111111111111";</p><p><b>  end case;</b></p><p>  elsif s="0010" then </p><p>  case cd

140、ount is</p><p>  when "0000"=>keyr<="1111111011111111"; --點(diǎn)陣顯示 每</p><p>  when "0001"=>keyr<="1111111011101111";</p><p>  when &q

141、uot;0010"=>keyr<="1110001011110111";</p><p>  when "0011"=>keyr<="1110110000001000";</p><p>  when "0100"=>keyr<="111011101110

142、1011";</p><p>  when "0101"=>keyr<="1110111011101011";</p><p>  when "0110"=>keyr<="1110110011001011";</p><p>  when "0

143、111"=>keyr<="1110101010101011";</p><p>  when "1000"=>keyr<="1010111011101011";</p><p>  when "1001"=>keyr<="0110111011101011&

144、quot;;</p><p>  when "1010"=>keyr<="1000111011101011";</p><p>  when "1011"=>keyr<="1110000000000011";</p><p>  when "1100&q

溫馨提示

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