eda課程設(shè)計(jì)--電梯控制器設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩11頁(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>  課程設(shè)計(jì)</b></p><p><b>  引言1</b></p><p>  1.1EDA技術(shù)的概念1</p><p>  1.2EDA技術(shù)的特點(diǎn)1</p><p>  1.3EDA設(shè)計(jì)流程1</p><p>  1.4VHDL的介紹

2、2</p><p>  2電梯控制器的設(shè)計(jì)要求2</p><p>  2.1課程設(shè)計(jì)的目的2</p><p>  2.2課程設(shè)計(jì)的基本要求2</p><p>  3電梯控制器的綜合設(shè)計(jì)3</p><p>  3.1電梯控制器的功能3</p><p>  3.2電梯控制器的設(shè)計(jì)方案3

3、</p><p>  3.3電梯控制器的實(shí)體設(shè)計(jì)3</p><p>  3.4電梯控制器的結(jié)構(gòu)體設(shè)計(jì)4</p><p>  3.5電梯控制器的VHDL4</p><p>  3.6電梯控制器的功能仿真波形9</p><p><b>  4心得體會(huì)10</b></p><

4、;p><b>  5參考文獻(xiàn)10</b></p><p><b>  引言</b></p><p>  1.1EDA技術(shù)的概念</p><p>  EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫(xiě),在20世紀(jì)90年代初從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算

5、機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來(lái)的。EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。</p><p>  1.2EDA技術(shù)的特點(diǎn)</p><p>  利用EDA技術(shù)進(jìn)行電子系統(tǒng)的設(shè)計(jì),具有以

6、下幾個(gè)特點(diǎn):① 用軟件的方式設(shè)計(jì)硬件;② 用軟件方式設(shè)計(jì)的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)的開(kāi)發(fā)軟件自動(dòng)完成的;③ 設(shè)計(jì)過(guò)程中可用有關(guān)軟件進(jìn)行各種仿真;④ 系統(tǒng)可現(xiàn)場(chǎng)編程,在線升級(jí);⑤ 整個(gè)系統(tǒng)可集成在一個(gè)芯片上,體積小、功耗低、可靠性高。因此,EDA技術(shù)是現(xiàn)代電子設(shè)計(jì)的發(fā)展趨勢(shì)。</p><p>  1.3EDA設(shè)計(jì)流程</p><p>  典型的EDA設(shè)計(jì)流程如下:</p>

7、<p>  1、文本/原理圖編輯與修改。首先利用EDA工具的文本或圖形編輯器將設(shè)計(jì)者的設(shè)計(jì)意圖用文本或圖形方式表達(dá)出來(lái)。   2、編譯。完成設(shè)計(jì)描述后即可通過(guò)編譯器進(jìn)行排錯(cuò)編譯,變成特定的文本格式,為下一步的綜合做準(zhǔn)備。   3、 綜合。將軟件設(shè)計(jì)與硬件的可實(shí)現(xiàn)性掛鉤,是將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。</p><p>  4、 行為仿真和功能仿真。利用產(chǎn)生的網(wǎng)表文件進(jìn)行功能仿真,以便了解設(shè)計(jì)描述與

8、設(shè)計(jì)意圖的一致性?! ?、適配。利用FPGA/CPLD布局布線適配器將綜合后的網(wǎng)表文件針對(duì)某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布局布線。適配報(bào)告指明了芯片內(nèi)資源的分配與利用、引腳鎖定、設(shè)計(jì)的布爾方程描述情況。 </p><p>  6、 功能仿真和時(shí)序仿真。</p><p>  7、 下載。如果以上的所有過(guò)程都沒(méi)有發(fā)現(xiàn)問(wèn)題,就可以將適配器產(chǎn)生的下

9、載文件通過(guò)FPGA/CPLD下載電纜載入目標(biāo)芯片中。</p><p>  8、 硬件仿真與測(cè)試。</p><p>  1.4VHDL的介紹</p><p>  VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特

10、征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(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è)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本。</p>

11、<p>  1.用VHDL代碼而不是用原理圖進(jìn)行設(shè)計(jì),意味著整個(gè)電路板的模型及性能可用計(jì)算機(jī)模擬進(jìn)行驗(yàn)證。</p><p>  2.VHDL元件的設(shè)計(jì)與工藝無(wú)關(guān),與工藝獨(dú)立,方便工藝轉(zhuǎn)換。</p><p>  3.VHDL支持各種設(shè)計(jì)方法,自頂向下、自底向上或者混合的都可以。</p><p>  4.可以進(jìn)行從系統(tǒng)級(jí)到邏輯級(jí)的描述,即混合描述。</p

12、><p>  5.VHDL區(qū)別于其他的HDL,已形成標(biāo)準(zhǔn),其代碼在不同的系統(tǒng)中可交換建模。</p><p>  2電梯控制器的設(shè)計(jì)要求</p><p>  2.1課程設(shè)計(jì)的目的</p><p>  本次設(shè)計(jì)的目的就是通過(guò)實(shí)踐深入理解EDA技術(shù)并掌握VHDL硬件描述語(yǔ)言的設(shè)計(jì)方法和思想。通過(guò)學(xué)習(xí)的VHDL語(yǔ)言結(jié)合電子電路的設(shè)計(jì)知識(shí)理論聯(lián)系實(shí)際,掌握

13、所學(xué)的課程知識(shí)和基本單元電路的綜合設(shè)計(jì)應(yīng)用。通過(guò)對(duì)實(shí)用電梯控制系統(tǒng)的設(shè)計(jì),鞏固和綜合運(yùn)用所學(xué)知識(shí),提高設(shè)計(jì)能力,提高分析、解決計(jì)算機(jī)技術(shù)實(shí)際問(wèn)題的獨(dú)立工作能力。</p><p>  2.2課程設(shè)計(jì)的基本要求</p><p>  電梯控制器是控制電梯按顧客要求自動(dòng)上下的裝置。本文采用VHDL語(yǔ)言來(lái)設(shè)計(jì)實(shí)用六層電梯控制器,其代碼具有良好的可讀性和易理解性,源程序經(jīng)A1tera公司的MAX+pl

14、us II軟件仿真。通過(guò)對(duì)四層電梯控制器的設(shè)計(jì),可以發(fā)現(xiàn)本設(shè)計(jì)有一定的擴(kuò)展性,而且可以作為更多層電梯控制器實(shí)現(xiàn)的基礎(chǔ)。</p><p>  通過(guò)獨(dú)立的設(shè)計(jì),能夠完整的完成老師分配的課程設(shè)計(jì)任務(wù)。通過(guò)對(duì)電梯控制系統(tǒng)的設(shè)計(jì),掌握所學(xué)EDA課程的基本知識(shí)和對(duì)VHDL語(yǔ)言的綜合設(shè)計(jì)應(yīng)用。通過(guò)課程設(shè)計(jì),提高設(shè)計(jì)能力,提高分析解決實(shí)際問(wèn)題的能力,并在設(shè)計(jì)中了解硬件編程的流程和思路,為以后工作和發(fā)揮技術(shù)打下基礎(chǔ)。</p&

15、gt;<p>  3電梯控制器的綜合設(shè)計(jì)</p><p>  3.1電梯控制器的功能</p><p>  1、  每層電梯的入口處設(shè)有上下請(qǐng)求開(kāi)關(guān),電梯內(nèi)設(shè)有乘客到達(dá)層次的停站請(qǐng)求開(kāi)關(guān)。</p><p>  2、  設(shè)有電梯所處位置指示裝置及電梯運(yùn)行模式(上升或下降)指示裝置。</p><p>  3、

16、60; 電梯每秒升降一層。</p><p>  4、  電梯到達(dá)有停站請(qǐng)求的樓層后,經(jīng)過(guò)1s電梯打開(kāi),開(kāi)門(mén)只是燈亮,開(kāi)門(mén)4s后,電梯門(mén)關(guān)閉(關(guān)門(mén)指示燈滅),電梯繼續(xù)運(yùn)行,直至執(zhí)行完請(qǐng)求信號(hào)后停在當(dāng)前樓層。</p><p>  5、  能記憶電梯內(nèi)外的所以請(qǐng)求信號(hào),并按照電梯運(yùn)行規(guī)則依次響應(yīng),每個(gè)請(qǐng)求信號(hào)保留至執(zhí)行后消除。</p><p>  6、

17、  電梯運(yùn)行規(guī)則:當(dāng)電梯處于上升模式時(shí),只響應(yīng)比電梯所在位置高的上樓信號(hào),由下至上依次執(zhí)行,直到最后一個(gè)上樓請(qǐng)求執(zhí)行完畢,如更高層有下樓請(qǐng)求時(shí),則直接升到有下降請(qǐng)求的最高樓接客,然后進(jìn)入下降模式,但電梯處于下降模式時(shí),則與上升模式相反。</p><p>  7、  電梯初始狀態(tài)為一層門(mén)開(kāi)。</p><p>  3.2電梯控制器的設(shè)計(jì)方案</p><p

18、>  控制器的功能模塊如圖1所示,包括主控制器、分控制器、樓層選擇器、狀態(tài)顯示器、譯碼器和樓層顯示器。乘客在電梯中選擇所要到達(dá)的樓層,通過(guò)主控制器的處理,電梯開(kāi)始運(yùn)行,狀態(tài)顯示器顯示電梯的運(yùn)行狀態(tài),電梯所在樓層數(shù)通過(guò)譯碼器譯碼從而在樓層顯示器中顯示。分控制器把有效的請(qǐng)求傳給主控制器進(jìn)行處理,同時(shí)顯示電梯的運(yùn)行狀態(tài)和電梯所在樓層數(shù)。由于分控制器相對(duì)簡(jiǎn)單很多,所以主控制器是核心部分。</p><p>  電梯控

19、制器采用狀態(tài)機(jī)來(lái)實(shí)現(xiàn),思路比較清晰??梢詫㈦娞莸却拿棵腌娨约伴_(kāi)門(mén)、關(guān)門(mén)都看成一個(gè)獨(dú)立的狀態(tài)。由于電梯又是每秒上升或下降一層,所以就可以通過(guò)一個(gè)統(tǒng)一的1秒為周期的時(shí)鐘來(lái)觸發(fā)狀態(tài)機(jī)。根據(jù)電梯的實(shí)際工作情況,可以把狀態(tài)機(jī)設(shè)置10個(gè)狀態(tài),分別是“電梯停留在第1層”、“開(kāi)門(mén)”、“關(guān)門(mén)”、“開(kāi)門(mén)等待第1秒”、“開(kāi)門(mén)等待第2秒”、“開(kāi)門(mén)等待第3秒”、“開(kāi)門(mén)等待第4秒”、“上升”、“下降”和“停止?fàn)顟B(tài)”。各個(gè)狀態(tài)之間的轉(zhuǎn)換條件可由上面的設(shè)計(jì)要求所決定

20、。</p><p>  3.3電梯控制器的實(shí)體設(shè)計(jì)</p><p>  首先考慮輸入端口,一個(gè)異步復(fù)位端口reset,用于在系統(tǒng)不正常時(shí)回到初始狀態(tài);在電梯外部,必須有升降請(qǐng)求端口,一層是最低層,不需要有下降請(qǐng)求,四層是最高層,不需要有上升請(qǐng)求,二層則上升、下降請(qǐng)求端口都有;在電梯的內(nèi)部,應(yīng)該設(shè)有各層停留的請(qǐng)求端口:一個(gè)電梯時(shí)鐘輸入端口,該輸入時(shí)鐘以1秒為周期,用于驅(qū)動(dòng)電梯的升降及開(kāi)門(mén)關(guān)門(mén)

21、等動(dòng)作;另有一個(gè)按鍵時(shí)鐘輸入端口,時(shí)鐘頻率比電梯時(shí)鐘高。</p><p>  其次是輸出端口,有升降請(qǐng)求信號(hào)以后,就得有一個(gè)輸出端口來(lái)指示請(qǐng)求是否被響應(yīng),有請(qǐng)求信號(hào)以后,該輸出端口輸出邏輯‘l’。被響應(yīng)以后則恢復(fù)邏輯‘O’;同樣,在電梯內(nèi)部也應(yīng)該有這樣的輸出端口來(lái)顯示各層停留是否被響應(yīng);在電梯外部,需要一個(gè)端口來(lái)指示電梯現(xiàn)在所處的位置;電梯開(kāi)門(mén)關(guān)門(mén)的狀態(tài)也能用一個(gè)輸出端口來(lái)指示;為了觀察電梯的運(yùn)行是否正確,可以設(shè)

22、置一個(gè)輸出端口來(lái)指示電梯的升降狀態(tài)。</p><p>  3.4電梯控制器的結(jié)構(gòu)體設(shè)計(jì)</p><p>  首先說(shuō)明一下?tīng)顟B(tài)。狀態(tài)機(jī)設(shè)置了lO個(gè)狀態(tài),分別是電梯停留在l層(stoponl)、開(kāi)門(mén)(dooropen)、關(guān)門(mén)(doorclose)、開(kāi)門(mén)等待第1秒(doorwaitl)、開(kāi)門(mén)等待第2秒(doorwait2)、開(kāi)門(mén)等待第3秒(doorwait3)、開(kāi)門(mén)等待第4秒(doorwait4

23、)、上升(up)、下降(down)和停止(stop)。在實(shí)體說(shuō)明定義完端口之后,在結(jié)構(gòu)體architecture和begin之間需要有如下的定義語(yǔ)句,來(lái)定義狀態(tài)機(jī)。</p><p>  TYPE lift_state IS</p><p>  (stoponl,dooropen,doorclose,doorwaitl,doorwait2,doorwai t3,doorwait4,up,do

24、wn,stop):</p><p>  SIGNAL mylift:lift_state:</p><p>  在結(jié)構(gòu)體中,設(shè)計(jì)了倆個(gè)進(jìn)程互相配合,一個(gè)是狀態(tài)機(jī)進(jìn)程作為主要進(jìn)程,另外一個(gè)是信號(hào)燈控制進(jìn)程作為輔助進(jìn)程。狀態(tài)機(jī)進(jìn)程中的很多判斷條件是以信號(hào)燈進(jìn)程產(chǎn)生的信號(hào)燈信號(hào)為依據(jù)的,而信號(hào)燈進(jìn)程中信號(hào)燈的熄滅又是由狀態(tài)機(jī)進(jìn)程中傳出的clearup和cleardn信號(hào)來(lái)控制。</p>

25、;<p>  在狀態(tài)機(jī)進(jìn)程中,在電梯的上升狀態(tài)中,通過(guò)對(duì)信號(hào)燈的判斷,決定下一個(gè)狀態(tài)是繼續(xù)上升還是停止;在電梯下降狀態(tài)中,也是通過(guò)對(duì)信號(hào)燈的判斷,決定下一個(gè)狀態(tài)是繼續(xù)下降還是停止;在電梯停止?fàn)顟B(tài)中,判斷是最復(fù)雜的,通過(guò)對(duì)信號(hào)的判斷,決定電梯是上升、下降還是停止。</p><p>  在信號(hào)燈控制進(jìn)程中,由于使用了專門(mén)的頻率較高的按鍵時(shí)鐘,所以使得按鍵的靈敏度增大,但是時(shí)鐘頻率不能過(guò)高,否則容易使按鍵

26、過(guò)于靈敏。按鍵后產(chǎn)生的點(diǎn)亮的信號(hào)燈(邏輯值為‘1’)用于作為狀態(tài)機(jī)進(jìn)程中的判斷條件,而clearup和cleardn信號(hào)為邏輯‘l’使得相應(yīng)的信號(hào)燈熄滅。</p><p>  3.5電梯控制器的VHDL</p><p>  library ieee;--庫(kù)聲明</p><p>  use ieee.std_logic_1164.all;</p><

27、;p>  use ieee.std_logic_unsigned.all;</p><p>  use ieee.std_logic_arith.all;</p><p><b>  --實(shí)體代碼</b></p><p>  entity fourlift is</p><p>  port(reset :in s

28、td_logic;</p><p>  sys_clk,key_clk:in std_logic;--系統(tǒng)時(shí)鐘 按鍵時(shí)鐘</p><p>  f1_up_key :in std_logic;--一樓上升按鍵</p><p>  f2_up_key :in std_logic;--二樓上升按鍵</p><p>  f2_dn_key :in s

29、td_logic;--二樓下降按鍵</p><p>  f3_up_key :in std_logic;--三樓上升按鍵</p><p>  f3_dn_key :in std_logic;--三樓下降按鍵</p><p>  f4_dn_key :in std_logic;--四樓下降按鍵</p><p>  stop1_key :in s

30、td_logic;--一層停站請(qǐng)求端口</p><p>  stop2_key :in std_logic;--二層停站請(qǐng)求端口</p><p>  stop3_key :in std_logic;--三層停站請(qǐng)求端口</p><p>  stop4_key :in std_logic;--四層停站請(qǐng)求端口</p><p>  close_k

31、ey :in std_logic;--關(guān)門(mén)請(qǐng)求端口</p><p>  f_up_status :buffer std_logic_vector(4 downto 1);--上升的狀態(tài)寄存信號(hào)</p><p>  f_dn_status :buffer std_logic_vector(4 downto 1);--下降的狀態(tài)寄存信號(hào)</p><p>  f_stop

32、_status :buffer std_logic_vector(4 downto 1);--停站的狀態(tài)寄存信號(hào)</p><p>  position :buffer integer range 1 to 4;--樓層的位置狀態(tài)</p><p>  lift_mode :buffer std_logic;--電梯運(yùn)行模式 1為上升 0為下降</p><p>  do

33、or_status:out std_logic);--電梯門(mén)的狀態(tài) 1為開(kāi) 0為關(guān) </p><p>  end entity fourlift;</p><p><b>  --結(jié)構(gòu)體代碼</b></p><p>  architecture one of fourlift is</p><p>  type

34、states is (stop_on1,door_open,door_close,door_wait1,door_wait2,door_wait3,door_wait4,up,down,stop);--定義各狀態(tài)子類型</p><p>  signal lift_state :states;</p><p>  signal clear_up :std_logic;--上升和停站請(qǐng)求清除信

35、號(hào)</p><p>  signal clear_dn :std_logic;--下降和停站請(qǐng)求清除信號(hào)</p><p><b>  begin</b></p><p>  reg:process(reset,sys_clk)--狀態(tài)進(jìn)程</p><p>  variable pos1:integer range 4 d

36、ownto 1;--定義一個(gè)樓層的局部變量</p><p><b>  begin</b></p><p>  if reset='1' then--復(fù)位有效</p><p>  lift_state <= stop_on1;</p><p>  clear_up <= '0'

37、;</p><p>  clear_dn <= '0';</p><p><b>  else </b></p><p>  if (sys_clk'event and sys_clk='1') then--上升沿</p><p>  case lift_state is&l

38、t;/p><p>  when stop_on1=> door_status <= '1';--</p><p>  position <= 1; pos1:=1;</p><p>  lift_state <= door_wait1;</p><p>  when door_wait1=>lift_

39、state <= door_wait2;</p><p>  when door_wait2=>lift_state <= door_wait3;clear_up <= '0';clear_dn <= '0';</p><p>  when door_wait3=>lift_state <= door_wait4;&

40、lt;/p><p>  when door_wait4=>lift_state <= door_close;</p><p>  when door_close=>door_status <= '0';--關(guān)門(mén) 判斷電梯的下一個(gè)運(yùn)行方式</p><p>  if lift_mode ='0' then --下降模式

41、</p><p>  if position =4 then --在4層</p><p>  if (f_up_status="0000" and f_dn_status="0000" and f_stop_status="0000") then --沒(méi)有請(qǐng)求信號(hào)時(shí)電梯停在當(dāng)前層</p><p>  lif

42、t_mode <='0';lift_state <= door_close;</p><p>  elsif (f_dn_status(4)='1' and f_stop_status(4)='1') then--本層有請(qǐng)求信號(hào)時(shí)開(kāi)門(mén)</p><p>  lift_mode <='0';lift_state

43、<= door_open;</p><p>  else lift_mode <='0';lift_state <= down;--否則下降</p><p><b>  end if;</b></p><p>  elsif position =3 then --</p><p>  i

44、f (f_up_status="0000" and f_dn_status="0000" and f_stop_status="0000") then --沒(méi)有請(qǐng)求信號(hào)時(shí)電梯停在當(dāng)前層</p><p>  lift_mode <='1';lift_state <= door_close;</p><p>

45、;  elsif (f_up_status(3)='1' or f_stop_status(3)='1') then--本層有上升和停站請(qǐng)求時(shí)</p><p>  lift_mode <='1';lift_state <= door_open;</p><p>  elsif (f_up_status="0000&quo

46、t; and f_dn_status="0100" and f_stop_status="0000") then --只有3層有下降請(qǐng)求 電梯開(kāi)門(mén)</p><p>  lift_mode <='0';lift_state <= door_open;</p><p>  elsif (f_dn_status(4)='

47、1' or f_stop_status(4)='1') then--當(dāng)四層有下降和停請(qǐng)求信號(hào)時(shí)</p><p>  lift_mode <='1';lift_state <= up;</p><p>  else lift_mode <='0';lift_state <= down;</p>&l

48、t;p><b>  end if;</b></p><p>  elsif position =2 then --</p><p>  if (f_up_status="0000" and f_dn_status="0000" and f_stop_status="0000") then --沒(méi)有請(qǐng)求信

49、號(hào)時(shí)電梯停在當(dāng)前層</p><p>  lift_mode <='1';lift_state <= door_close;</p><p>  elsif (f_up_status(2)='1' or f_stop_status(2)='1') then--本層有上升和停站請(qǐng)求時(shí)</p><p>  lif

50、t_mode <='1';lift_state <= door_open;</p><p>  elsif (f_up_status="0000" and f_dn_status="0010" and f_stop_status="0000") then --只有2層有下降請(qǐng)求 電梯開(kāi)門(mén)</p><p>

51、;  lift_mode <='0';lift_state <= door_open;</p><p>  elsif (f_dn_status(4)='1' or f_stop_status(4)='1' or f_dn_status(3)='1' or f_stop_status(3)='1' or f_up_stat

52、us(3)='1') then</p><p>  lift_mode <='1';lift_state <= up;</p><p>  else lift_mode <='0';lift_state <= down;</p><p><b>  end if;</b>&

53、lt;/p><p>  elsif position =1 then --</p><p>  if (f_up_status="0000" and f_dn_status="0000" and f_stop_status="0000") then --沒(méi)有請(qǐng)求信號(hào)時(shí)電梯停在當(dāng)前層</p><p>  lift

54、_mode <='1';lift_state <= door_close;</p><p>  elsif (f_up_status(1)='1' or f_stop_status(1)='1') then--本層有上升和停站請(qǐng)求時(shí)</p><p>  lift_mode <='1';lift_state &

55、lt;= door_open;</p><p>  else lift_mode <='1';lift_state <= up; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p

56、>  end if; </p><p>  when up=> position <= position+1;pos1:=pos1+1;--電梯樓層數(shù)加一</p><p>  if pos1 <4 and (f_up_status(pos1)='1' or f_stop_status(pos1)='1') then<

57、/p><p>  lift_state <= stop;</p><p>  elsif pos1 = 4 and (f_up_status(pos1)='1' or f_stop_status(pos1)='1') then</p><p>  lift_state <= stop;</p><p>

58、  else lift_state <= door_close;</p><p><b>  end if;</b></p><p>  when down=> position <= position-1;pos1:=pos1-1;--電梯樓層數(shù)減一</p><p>  if pos1 >1 and (f_dn_sta

59、tus(pos1)='1' or f_stop_status(pos1)='1') then </p><p>  lift_state <= stop;</p><p>  elsif pos1 =1 and (f_dn_status(pos1)='1' or f_stop_status(pos1)='1') then

60、</p><p>  lift_state <= stop;</p><p>  else lift_state <= door_close;</p><p><b>  end if;</b></p><p>  when stop=>lift_state <= door_open;</p

61、><p>  when door_open=>door_status <='1';</p><p>  if lift_mode = '1' then</p><p>  if position < 4 and (f_up_status(pos1)='1' or f_stop_status(pos1)=&

62、#39;1') then</p><p>  clear_up <='1';</p><p><b>  else </b></p><p>  clear_up <='1';</p><p>  clear_dn <='1'; </p&

63、gt;<p><b>  end if;</b></p><p>  elsif lift_mode = '0' then</p><p>  if position > 1 and (f_dn_status(pos1)='1' or f_stop_status(pos1)='1') then<

64、/p><p>  clear_dn <='1';</p><p><b>  else</b></p><p>  clear_up <='1';</p><p>  clear_dn <='1';</p><p><b> 

65、 end if;</b></p><p><b>  end if;</b></p><p><b>  end case;</b></p><p><b>  end if;</b></p><p><b>  end if;</b><

66、/p><p>  end process reg;</p><p>  com:process(reset,key_clk)--控制進(jìn)程</p><p><b>  begin</b></p><p>  if reset ='1' then--復(fù)位寄存器信號(hào)清零</p><p>  

67、f_up_status<="0000"; f_dn_status<="0000"; f_stop_status<="0000";</p><p><b>  else</b></p><p>  if (key_clk'event and key_clk ='1')

68、then--key—clk上升沿觸發(fā)</p><p>  if f1_up_key ='1' then --記憶各層上升請(qǐng)求</p><p>  f_up_status(1)<='1';</p><p><b>  end if;</b></p><p>  if f2_up_key

69、 ='1' then --記憶各層上升請(qǐng)求</p><p>  f_up_status(2)<='1';</p><p><b>  end if;</b></p><p>  if f3_up_key ='1' then --記憶各層上升請(qǐng)求</p><p>  f

70、_up_status(3)<='1';</p><p><b>  end if;</b></p><p>  if clear_up ='1' then</p><p>  f_up_status(position)<='0';f_stop_status(position)<=

71、'0';--</p><p><b>  end if;</b></p><p>  if f4_dn_key ='1' then --記憶各層下降請(qǐng)求</p><p>  f_dn_status(4)<='1';</p><p><b>  end if;

72、</b></p><p>  if f3_dn_key ='1' then --記憶各層下降請(qǐng)求</p><p>  f_dn_status(3)<='1';</p><p><b>  end if;</b></p><p>  if f2_dn_key ='1

73、' then --記憶各層下降請(qǐng)求</p><p>  f_dn_status(2)<='1';</p><p><b>  end if;</b></p><p>  if clear_dn ='1' then</p><p>  f_dn_status(position)

74、<='0';f_stop_status(position)<='0';--</p><p><b>  end if;</b></p><p>  if stop1_key ='1' then</p><p>  f_stop_status(1)<='1';<

75、;/p><p><b>  end if;</b></p><p>  if stop2_key ='1' then</p><p>  f_stop_status(2)<='1';</p><p><b>  end if;</b></p><

76、p>  if stop3_key ='1' then</p><p>  f_stop_status(3)<='1';</p><p><b>  end if;</b></p><p>  if stop4_key ='1' then</p><p>  f_

77、stop_status(4)<='1';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process com;&l

78、t;/p><p>  end architecture one;</p><p>  3.6電梯控制器的功能仿真波形</p><p>  仿真1:在一樓的電梯內(nèi)部,有一個(gè)去二樓的請(qǐng)求,三樓有一個(gè)上升和停站的請(qǐng)求。仿真波形如圖3-1:</p><p><b>  圖3-1</b></p><p>  仿

79、真2:二樓有一個(gè)上升的請(qǐng)求,三樓和四樓有一個(gè)下降的請(qǐng)求,仿真波形如圖3-2:</p><p><b>  圖3-2</b></p><p><b>  4心得體會(huì)</b></p><p>  在本設(shè)計(jì)的過(guò)程中,我學(xué)習(xí)了VHDL語(yǔ)言的基本語(yǔ)法,熟悉了QuartusII的VHDL文本設(shè)計(jì)流程全過(guò)程,掌握了四層電梯控制器的設(shè)計(jì)方

80、法,及它的仿真和硬件測(cè)試。經(jīng)過(guò)多次改進(jìn),本設(shè)計(jì)實(shí)現(xiàn)了四層電梯的基本功能,電梯的的運(yùn)行情況完全符合它的運(yùn)行規(guī)則,電梯的位置變化合情合理。本次四層電梯控制器的設(shè)計(jì)采用VHDL語(yǔ)言,源程序經(jīng)Quartus II軟件仿真,目標(biāo)器件選用CPLD器件。本設(shè)計(jì)代碼具有良好的可讀性和可移植性,運(yùn)用了有限狀態(tài)機(jī)的設(shè)計(jì)方法,使得它靈活、簡(jiǎn)單、運(yùn)算速度快、可靠性高,并且此設(shè)計(jì)具有良好的擴(kuò)展性</p><p><b>  5參

溫馨提示

  • 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)論