基于CPLD的出租車(chē)計(jì)費(fèi)器嵌入式課程設(shè)計(jì)_第1頁(yè)
基于CPLD的出租車(chē)計(jì)費(fèi)器嵌入式課程設(shè)計(jì)_第2頁(yè)
基于CPLD的出租車(chē)計(jì)費(fèi)器嵌入式課程設(shè)計(jì)_第3頁(yè)
基于CPLD的出租車(chē)計(jì)費(fèi)器嵌入式課程設(shè)計(jì)_第4頁(yè)
基于CPLD的出租車(chē)計(jì)費(fèi)器嵌入式課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(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、 設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求cpld為復(fù)雜可編程邏輯器件,通過(guò)eda技術(shù)對(duì)其進(jìn)行編程,可將一個(gè)較復(fù)雜的數(shù)字系統(tǒng)集成于一個(gè)芯片中,制成專(zhuān)用集成電路芯片,并可隨時(shí)在系統(tǒng)修改其邏輯功能。有關(guān)知識(shí)可參見(jiàn)相關(guān)教材或參考書(shū)。一設(shè)計(jì)內(nèi)容(1) 實(shí)現(xiàn)計(jì)費(fèi)功能,計(jì)費(fèi)標(biāo)準(zhǔn)為:按行駛里程計(jì)費(fèi),起步價(jià)為6.00元,并在車(chē)行3km后按2.00元/km計(jì)費(fèi),當(dāng)計(jì)費(fèi)器達(dá)到或超過(guò)20元時(shí),每公里加收50的車(chē)費(fèi),車(chē)停止不計(jì)費(fèi)。(2) 現(xiàn)場(chǎng)模擬功能:能模擬汽車(chē)起動(dòng)、停止、暫停以及加速等狀態(tài)。(3) 按計(jì)動(dòng)態(tài)掃描電路,將車(chē)費(fèi)和路程顯示出來(lái),各有兩位小數(shù)。二、設(shè)計(jì)要求:1、 設(shè)計(jì)思路清晰,給出整體設(shè)計(jì)框圖;2、 設(shè)計(jì)各單元電路,完成其功能仿

2、真和編譯并生成低層模塊;3、 完成頂層設(shè)計(jì)并編譯通過(guò);4、 完成設(shè)計(jì)下載并調(diào)試電路;5、 寫(xiě)出設(shè)計(jì)報(bào)告;主要設(shè)計(jì)條件1. 提供eda實(shí)驗(yàn)室;2. 提供el實(shí)驗(yàn)箱和cpld芯片;3. 提供設(shè)計(jì)軟件說(shuō)明書(shū)格式1. 課程設(shè)計(jì)封面;2. 任務(wù)書(shū);3. 說(shuō)明書(shū)目錄;4. 設(shè)計(jì)總體思路,基本原理和框圖(頂層電路圖);5. 單元電路設(shè)計(jì)(各次級(jí)模塊電路圖);6. 設(shè)計(jì)仿真;7. 編程下載;8. 總結(jié)與體會(huì);9. 附錄;10. 參考文獻(xiàn)。進(jìn)度安排星期一、二:下達(dá)設(shè)計(jì)任務(wù)書(shū),介紹課題內(nèi)容與要求;查找資料,確定總體設(shè)計(jì)方案和單元電路設(shè)計(jì);星期三第二周星期一:?jiǎn)卧娐吩O(shè)計(jì)與仿真,硬件下載;第二周星期二、三:硬件下載

3、;第二星期四、五:書(shū)寫(xiě)設(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í)用手冊(cè),電子工業(yè)出版社。7. 劉洪喜,陸穎編著. vhdl電路設(shè)計(jì)實(shí)用教程 清華大學(xué)出版社 目錄第一章 引言11.1 課題背景11.2 本文的主要工作1第二章 出租車(chē)計(jì)費(fèi)器的設(shè)計(jì)32.1 技術(shù)要求32.2 功能要求3

4、第三章 方案設(shè)計(jì)及原理框圖43.1 總體框架設(shè)計(jì)43.2出租車(chē)計(jì)費(fèi)器主要模塊設(shè)計(jì)5第四章 各單元模塊設(shè)計(jì)與仿真64.1 速度模塊64.1.1 速度模塊vhdl程序64.1.2 速度模塊仿真結(jié)果84.2 計(jì)程模塊84.2.1 計(jì)程模塊vhdl程序94.2.2 計(jì)程模塊仿真結(jié)果104.3 計(jì)費(fèi)模塊104.3.1 計(jì)費(fèi)模塊vhdl的程序114.3.2 計(jì)費(fèi)模塊仿真結(jié)果134.4 數(shù)碼管顯示模塊134.4.1 顯示模塊vhdl程序134.4.2 顯示模塊仿真結(jié)果17第五章 硬件調(diào)試185.1 設(shè)計(jì)測(cè)試185.2 硬件調(diào)試圖18心得體會(huì)20參考文獻(xiàn)21附錄 整體電路圖22第一章 引言1.1 課題背景幾年

5、來(lái),出租車(chē)行業(yè)發(fā)展迅速,全國(guó)大大小小的出租車(chē)公司已有數(shù)千家,基于出租車(chē)的附屬品市場(chǎng)前景也是十分廣闊。傳統(tǒng)的出租車(chē)計(jì)費(fèi)器大多是由單片機(jī)實(shí)現(xiàn)的,發(fā)展使用也是十幾年了,在穩(wěn)定性、成本、制造工藝、使用習(xí)慣等方面都具有一些優(yōu)勢(shì),但在運(yùn)營(yíng)過(guò)程中系統(tǒng)不是很穩(wěn)定,容易造成死機(jī)的現(xiàn)象。傳統(tǒng)計(jì)費(fèi)器的不足點(diǎn):1. 產(chǎn)品更新周期長(zhǎng):傳統(tǒng)的計(jì)費(fèi)器利用微控器,大部分功能依靠單片機(jī)實(shí)現(xiàn)。但單片機(jī)的程序不通用,不同芯片指令集不相同,因此設(shè)計(jì)研發(fā)比較困難,周期很長(zhǎng)。2. 計(jì)價(jià)方式不靈活:每次計(jì)價(jià)標(biāo)準(zhǔn)修改都需要重新燒錄芯片,使得每次價(jià)格調(diào)整都成為很費(fèi)力的事情,很難適應(yīng)社會(huì)發(fā)展的需要。傳統(tǒng)出租車(chē)計(jì)費(fèi)器多數(shù)由單片機(jī)實(shí)現(xiàn),升級(jí)繁瑣,成

6、本高。隨著eda技術(shù)的高速發(fā)展,電子系統(tǒng)的設(shè)計(jì)技術(shù)和工具發(fā)生了深刻的變化,大規(guī)??删幊踢壿嬈骷pldfpga的出現(xiàn),給設(shè)計(jì)人員帶來(lái)了諸多方便。利用它進(jìn)行產(chǎn)品開(kāi)發(fā),不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問(wèn)題,還具有成本低、開(kāi)發(fā)周期短、開(kāi)發(fā)軟件投入少的優(yōu)點(diǎn),也能滿足對(duì)小批量、多品種的產(chǎn)品需求。使用eda設(shè)計(jì)出租車(chē)計(jì)費(fèi)器,其部分功能還能由軟件實(shí)現(xiàn),減少了硬件的壓力,使得系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、調(diào)試方便且成本低廉。所以基于cpld的出租車(chē)計(jì)費(fèi)器已成首選。1.2 本文的主要工作面對(duì)出租車(chē)行業(yè)日益迅猛的發(fā)展趨勢(shì)及對(duì)計(jì)費(fèi)器更高的靈活性的要求,本設(shè)計(jì)希望嘗試一些新的方法來(lái)予以解決。(1).利用cpld取代傳統(tǒng)

7、微控器 隨著cpld等數(shù)字可編程器件的出現(xiàn)解決了傳統(tǒng)電子設(shè)計(jì)不能完成的任務(wù),利用fpga來(lái)實(shí)現(xiàn)出租車(chē)計(jì)費(fèi)器,可行性很高,而且電路簡(jiǎn)單,大大減少外圍器件,可以用軟件完全仿真,靈活度高,可以設(shè)計(jì)一些復(fù)雜的系統(tǒng),而且編好的系統(tǒng)可以在不同的fpga或cpld芯片上通用。cpld能完成任何數(shù)字器件的功能,使用cpld來(lái)開(kāi)發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少pcb面積,提高系統(tǒng)的可靠性。同時(shí)由于cpld的功能完全取決于vhdl語(yǔ)言編寫(xiě)的程序,不拘泥于某種芯片的特殊指令,更加提高了產(chǎn)品的更新?lián)Q代能力。 (2).完成基于cpld的出租車(chē)計(jì)費(fèi)器的設(shè)計(jì) 出租車(chē)計(jì)費(fèi)器系統(tǒng)是vhdl語(yǔ)言的實(shí)際應(yīng)用,利用vhdl語(yǔ)言

8、設(shè)計(jì)出來(lái)的出租車(chē)計(jì)費(fèi)器系統(tǒng)將實(shí)現(xiàn)計(jì)程模塊、計(jì)時(shí)模塊以及動(dòng)態(tài)掃描模塊等設(shè)計(jì)方法與技巧。計(jì)程模塊將用計(jì)數(shù)器來(lái)完成,計(jì)數(shù)器對(duì)脈沖數(shù)計(jì)數(shù),然后提供給程序數(shù)據(jù)。通過(guò)不同的信號(hào),然后用比較器可以讓我們確定出租車(chē)是在車(chē)行計(jì)程還是車(chē)停計(jì)時(shí)。再將數(shù)據(jù)傳輸?shù)接?jì)費(fèi)模塊,通過(guò)多種條件判定,最后確定輸出值,然后相加確定最后的費(fèi)用,并顯示出來(lái)。第二章 出租車(chē)計(jì)費(fèi)器的設(shè)計(jì)2.1 技術(shù)要求(1)掌握較復(fù)雜邏輯的設(shè)計(jì)、調(diào)試。(2)進(jìn)一步掌握用quartus ii7.0。(3)掌握用max+pulsii軟件的原理圖輸入的設(shè)計(jì)方法。2.2 功能要求 基本功能:(1)按行駛里程計(jì)費(fèi),起步價(jià)為6.00元,并在車(chē)行3公里后按2.00元/

9、km計(jì)費(fèi),當(dāng)計(jì)數(shù)器達(dá)到或超過(guò)20元時(shí),每公里加收50%的車(chē)費(fèi),即按3.00元/km計(jì)費(fèi)。(2)實(shí)現(xiàn)模擬功能:能模擬汽車(chē)啟動(dòng)、停止。(3)設(shè)計(jì)動(dòng)態(tài)掃描電路:將車(chē)費(fèi)、里程、等待時(shí)間動(dòng)態(tài)的顯示出來(lái)。(4)用vhdl語(yǔ)言設(shè)計(jì)符合上述功能要求的出租車(chē)計(jì)費(fèi)器,并用層次化設(shè)計(jì)方法設(shè)計(jì)該電路。(5)各計(jì)數(shù)器的計(jì)數(shù)狀態(tài)用功能仿真的方法驗(yàn)證,并通過(guò)有關(guān)波形確認(rèn)電路設(shè)計(jì)是否正確。第三章 方案設(shè)計(jì)及原理框圖3.1 總體框架設(shè)計(jì)系統(tǒng)流程介紹:分析系統(tǒng)設(shè)計(jì)要求不難得知,整個(gè)出租車(chē)計(jì)費(fèi)系統(tǒng)按功能主要分為速度模塊、計(jì)程模塊、計(jì)時(shí)模塊和計(jì)費(fèi)模塊,其系統(tǒng)結(jié)構(gòu)圖如圖3-1所示。圖3-1出租車(chē)計(jì)費(fèi)器系統(tǒng)結(jié)構(gòu)圖各模塊的功能:(1)速度

10、模塊:通過(guò)對(duì)速度信號(hào)sp的判斷,決定變量kinside的值。kinside即是行進(jìn)100m所需要的時(shí)鐘周期數(shù),然后每行進(jìn)100m,則產(chǎn)生一個(gè)脈沖clkout。(2)計(jì)程模塊:由于一個(gè)clkout信號(hào)代表行進(jìn)100m,故通過(guò)對(duì)clkout計(jì)數(shù),可以獲得共行進(jìn)的距離kmcount。(3)計(jì)費(fèi)模塊:由兩個(gè)進(jìn)程組成,其中一個(gè)進(jìn)程根據(jù)條件對(duì)enable和price賦值:當(dāng)記錄的距離達(dá)到3公里后enable變?yōu)?,開(kāi)始進(jìn)行每公里收費(fèi),當(dāng)總費(fèi)用大于20元后,則單價(jià)price由原來(lái)的2元每公里變成3元每公里;第二個(gè)進(jìn)程在每個(gè)時(shí)鐘周期判斷timeout和clkout的值。當(dāng)其為1時(shí),則在總費(fèi)用上加上相應(yīng)的費(fèi)用費(fèi)

11、。 (4)譯碼模塊:實(shí)現(xiàn)將車(chē)費(fèi)計(jì)數(shù)模塊、等待狀態(tài)模塊和里程計(jì)數(shù)模塊輸出的bcd碼轉(zhuǎn)換成七段碼輸出。3.2出租車(chē)計(jì)費(fèi)器主要模塊設(shè)計(jì)從上述設(shè)計(jì)方案中我們可以大致得到出租車(chē)計(jì)費(fèi)器的系統(tǒng)框圖,如圖3-2所示。其中clk為輸入時(shí)鐘脈沖,時(shí)鐘上升沿有效;reset為復(fù)位信號(hào),start為開(kāi)始計(jì)費(fèi)信號(hào),stop為停止計(jì)費(fèi)信號(hào),均高電平有效;sp2.0表示出租車(chē)狀態(tài)(停止或不同形式速度);kmcnt和count信號(hào)則分別輸出出租車(chē)行駛的里程和花費(fèi)。 圖3-2 出租車(chē)計(jì)費(fèi)器系統(tǒng)框圖第四章 各單元模塊設(shè)計(jì)與仿真本系統(tǒng)采用層次化、模塊化的設(shè)計(jì)方法,設(shè)計(jì)順序?yàn)樽韵孪蛏?。首先?shí)現(xiàn)系統(tǒng)框圖中的各子模塊,然后由頂層模塊調(diào)用

12、各子模塊來(lái)完成整個(gè)系統(tǒng)。4.1 速度模塊速度模塊首先根據(jù)start信號(hào)判斷是否開(kāi)始計(jì)費(fèi),然后根據(jù)輸入的速度檔位sp2.0的判斷,確定行駛100m所需要的時(shí)鐘數(shù),每前進(jìn)100m,輸出一個(gè)clkout信號(hào)。同時(shí)由cnt對(duì)clk進(jìn)行計(jì)數(shù),當(dāng)cnt等于kinside時(shí),把clkout信號(hào)置1,cnt清0。其模塊框圖如圖3-3。圖4-1 速度模塊框圖4.1.1 速度模塊vhdl程序library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity speed isport( clk :in std_logic;

13、reset:in std_logic;start:in std_logic;stop :in std_logic;sp :in std_logic_vector(2 downto 0);clkout:out std_logic);end speed;architecture rtl of speed isbeginprocess(clk,reset,start,stop,sp) type state_type is(s0,s1); variable s_state:state_type; variable cnt:integer range 0 to 28;variable kinside:i

14、nteger range 0 to 30;begincase sp is when"000"=>kinside:=0; when"001"=>kinside:=28; when"010"=>kinside:=24; when"011"=>kinside:=20;when"100"=>kinside:=16;when"101"=>kinside:=12;when"110"=>kinside:=8;when"

15、111"=>kinside:=4;end case;if reset='1'thens_state:=s0;elsif clk'event and clk='1'thencase s_state iswhen s0=>cnt:=0;clkout<='0'if start='1'thens_state:=s1;elses_state:=s0;end if;when s1=>clkout<='0'if stop='1'thens_state:=s0;els

16、if sp="000"thens_state:=s1;elsif cnt=kinside thencnt:=0;clkout<='1's_state:=s1;elsecnt:=cnt+1;s_state:=s1;end if;end case;end if;end process;end rtl;4.1.2 速度模塊仿真結(jié)果速度模塊的仿真波形圖如圖4-2所示。該模塊根據(jù)出租車(chē)所處的運(yùn)行狀態(tài)和不同的形式速度,對(duì)相應(yīng)數(shù)目的時(shí)鐘周期進(jìn)行計(jì)數(shù),車(chē)每行駛100m時(shí)輸出信號(hào)clkout輸出高電平。圖4-2 速度模塊仿真圖4.2 計(jì)程模塊此模塊主要用于記錄行進(jìn)的距離

17、,其模塊框圖如圖3-4所示。通過(guò)對(duì)clkout信號(hào)的計(jì)數(shù),可以計(jì)算行駛的距離kmcount。一個(gè)clkout脈沖相當(dāng)于行進(jìn)100m所以只要記錄clkout的脈沖數(shù)目即可確定共行進(jìn)的距離。kmcount1為十分位,kmcount2為個(gè)位,kmcount3為十位,分別為十進(jìn)制數(shù)。圖4-3計(jì)程模塊框圖4.2.1 計(jì)程模塊vhdl程序library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity kilometers isport(clkout,reset:in std_logic;kmcnt1:out

18、std_logic_vector(3 downto 0);kmcnt2:out std_logic_vector(3 downto 0);kmcnt3:out std_logic_vector(3 downto 0);end kilometers;architecture rtl of kilometers isbeginprocess(clkout,reset)variablekm_reg:std_logic_vector(11 downto 0);beginif reset='1'thenkm_reg:="000000000000"elsif clkou

19、t'event and clkout='1'then if km_reg(11 downto 8)="1001"then km_reg(11 downto 8):="0000" elsif km_reg(7 downto 4)="1001" then km_reg(11 downto 8):=km_reg(11 downto 8)+"0001"km_reg(7 downto 4):="0000" elsif km_reg(3 downto 0)="1001&qu

20、ot; then km_reg(3 downto 0):="0000" km_reg(7 downto 4):=km_reg(7 downto 4)+"0001" else km_reg(3 downto 0):=km_reg(3 downto 0)+"0001" end if;end if;kmcnt1<=km_reg(3 downto 0);kmcnt2<=km_reg(7 downto 4);kmcnt3<=km_reg(11 downto 8);end process;end rtl;4.2.2 計(jì)程模塊仿真

21、結(jié)果計(jì)程模塊的仿真波形如圖5-3所示。圖中,當(dāng)reset信號(hào)有效時(shí),系統(tǒng)復(fù)位清零;否則,對(duì)輸入信號(hào)clkout進(jìn)行十進(jìn)制計(jì)數(shù)。圖4-4計(jì)程模塊仿真波形圖4.3 計(jì)費(fèi)模塊計(jì)費(fèi)模塊如圖4-5所示,可分為kmmoney1和kmmoney2兩個(gè)進(jìn)程。kmmoney1用于產(chǎn)生enable和price信號(hào)。當(dāng)記錄距離達(dá)到3km后,enable信號(hào)為1,開(kāi)始進(jìn)行每公里收費(fèi)。當(dāng)總費(fèi)用大于20元后,單價(jià)price由原來(lái)的2元變成3元,用作計(jì)時(shí)收費(fèi)。通過(guò)對(duì)sp信號(hào)的判斷,當(dāng)sp=0,開(kāi)始記錄時(shí)間。當(dāng)時(shí)間達(dá)到足夠長(zhǎng)時(shí),產(chǎn)生timecount脈沖,并重新計(jì)時(shí)。kmmoney2用于判斷timecount和clkout的

22、值,當(dāng)其為1時(shí),總費(fèi)用加1。最終輸出為總費(fèi)用。圖4-5 計(jì)費(fèi)模塊框圖4.3.1 計(jì)費(fèi)模塊vhdl的程序library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity kmmoney isport( clk :in std_logic;reset :in std_logic;timecount:in std_logic;clkout :in std_logic;kmcnt2 :in std_logic_vector(3 downto 0);kmcnt3 :in std_logic_vector(3

23、downto 0);count1 :out std_logic_vector(3 downto 0);count2 :out std_logic_vector(3 downto 0);count3 :out std_logic_vector(3 downto 0);end kmmoney;architecture rtl of kmmoney issignal cash:std_logic_vector(11 downto 0);signal price:std_logic_vector(3 downto 0);signal enable:std_logic;beginkmmoney1:pro

24、cess(cash,kmcnt2,kmcnt3)beginif cash>="000000100000"thenprice<="0011"elseprice<="0010"end if;if kmcnt2>="0001" and kmcnt3>="0010" thenenable<='1'elseenable<='0'end if;end process;kmmoney2:process(reset,clkout,clk,

25、enable,price,kmcnt2)variable reg2:std_logic_vector(11 downto 0);variable clkout_cnt:integer range 0 to 10;beginifreset='1'thencash<="000000000110"elsif clk'event and clk='1'thenif timecount='1' thenreg2:=cash;if reg2(3 downto 0)+"0001">"1001

26、"thenreg2(7 downto 0):=reg2(7 downto 0)+"00000111"if reg2(7 downto 4)>"1001"thencash<=reg2+"000001100000"elsecash<=reg2;end if;elsecash<=reg2+"0001"end if; elsif clkout='1' and enable='1'thenif clkout_cnt=9 thenclkout_cnt:=0;re

27、g2:=cash;if "0000"&reg2(3 downto 0)+price>"00001001"thenreg2(7 downto 0):=reg2(7 downto 0)+"00000110"+price;if reg2(7 downto 4)>"1001"thencash<=reg2+"000001100000"elsecash<=reg2;end if;elsecash<=reg2+price;end if;elseclkout_cnt:=cl

28、kout_cnt+1;end if;end if; end if;end process;count1<=cash(3 downto 0);count2<=cash(7 downto 4);count3<=cash(11 downto 8);end rtl;4.3.2 計(jì)費(fèi)模塊仿真結(jié)果計(jì)費(fèi)模塊的仿真波形圖如圖4-6所示。當(dāng)reset信號(hào)有效時(shí),系統(tǒng)復(fù)位清零;否則,當(dāng)計(jì)時(shí)計(jì)費(fèi)信號(hào)timecount和計(jì)程計(jì)費(fèi)信號(hào)clkout為高電平時(shí),按照一定計(jì)費(fèi)規(guī)則進(jìn)行計(jì)費(fèi)。圖4-6 計(jì)費(fèi)模塊仿真功能圖4.4 數(shù)碼管顯示模塊圖4-7 數(shù)碼管顯示模塊圖4.4.1 顯示模塊vhdl程序librar

29、y ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity display is port( dout1:in std_logic_vector(3 downto 0); dout2:in std_logic_vector(3 downto 0); dout3:in std_logic_vector(3 downto 0); dout11:in std_logic_vector(3 downto 0); dout22:in std_logic_vector(3 downto 0); dout33:in st

30、d_logic_vector(3 downto 0); clkms:in std_logic; duanma:out std_logic_vector(7 downto 0); weima:out std_logic_vector(5 downto 0); end display;architecture rt1 of display issignal count:integer:=0; begin com1:process(clkms) begin if clkms'event and clkms='1' then if count=5 then count<=

31、0; else count<=count+1; end if; end if; end process;com2:process(count,dout1,dout2,dout3,dout11,dout22,dout33) begin if count=0 then weima<="000001" case dout1 is when "0000"=>duanma<="00111111" when "0001"=>duanma<="00000110" when

32、"0010"=>duanma<="01011011" when "0011"=>duanma<="01001111" when "0100"=>duanma<="01100110" when "0101"=>duanma<="01101101" when "0110"=>duanma<="01111101" when "0111

33、"=>duanma<="00000111" when "1000"=>duanma<="01111111" when "1001"=>duanma<="01101111" when others=>null; end case; elsif count=1 then weima<="000010" case dout2 is when "0000"=>duanma<="0011

34、1111" when "0001"=>duanma<="00000110" when "0010"=>duanma<="01011011" when "0011"=>duanma<="01001111" when "0100"=>duanma<="01100110" when "0101"=>duanma<="01101101"

35、 when "0110"=>duanma<="01111101" when "0111"=>duanma<="00000111" when "1000"=>duanma<="01111111" when "1001"=>duanma<="01101111" when others=>null; end case; elsif count=2 then weima<="

36、000100" case dout3 is when "0000"=>duanma<="00111111" when "0001"=>duanma<="00000110" when "0010"=>duanma<="01011011" when "0011"=>duanma<="01001111" when "0100"=>duanma<=&quo

37、t;01100110" when "0101"=>duanma<="01101101" when "0110"=>duanma<="01111101" when "0111"=>duanma<="00000111" when "1000"=>duanma<="01111111" when "1001"=>duanma<="01101111

38、" when others=>null; end case; elsif count=3 then weima<="001000" case dout11 is when "0000"=>duanma<="00111111" when "0001"=>duanma<="00000110" when "0010"=>duanma<="01011011" when "0011"=&g

39、t;duanma<="01001111" when "0100"=>duanma<="01100110" when "0101"=>duanma<="01101101" when "0110"=>duanma<="01111101" when "0111"=>duanma<="00000111" when "1000"=>duanma&l

40、t;="01111111" when "1001"=>duanma<="01101111" when others=>null; end case; elsif count=4 then weima<="010000" case dout22 is when "0000"=>duanma<="10111111" when "0001"=>duanma<="10000110" when &q

41、uot;0010"=>duanma<="11011011" when "0011"=>duanma<="11001111" when "0100"=>duanma<="11100110" when "0101"=>duanma<="11101101" when "0110"=>duanma<="11111101" when "0111&q

42、uot;=>duanma<="10000111" when "1000"=>duanma<="11111111" when "1001"=>duanma<="11101111" when others=>null; end case; else weima<="100000" case dout33 is when "0000"=>duanma<="00111111" when "0001"=>duanma<="00000110" when "0010"=>duanma<="01011011" when "0011"=>duanma<="01001111" when "0100"=>duanma<="01100110" when "0101"=>duanma&

溫馨提示

  • 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ù)網(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)論