四層電梯的控制_第1頁(yè)
四層電梯的控制_第2頁(yè)
四層電梯的控制_第3頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄1引言 (11.1 設(shè)計(jì)背景 (11.2 設(shè)計(jì)基礎(chǔ) (11.2.1 EDA 技術(shù)介紹 (11.2.2 硬件描述語(yǔ)言 (VHDL 介紹 (21.2.3 MAX+plusII 軟件介紹 (22 電梯控制器的具體設(shè)計(jì)(42.1 設(shè)計(jì)目的 (42.2 設(shè)計(jì)要求 (42.3 設(shè)計(jì)思路 (43 三層電梯控制器的綜合設(shè)計(jì)(VHDL 語(yǔ)言實(shí)現(xiàn) (63.1 分析判斷 (63.1.1 電梯運(yùn)行規(guī)則 (63.1.2 程序流程分析 (103.2 程序端口和寄存器說明(103.3 各模塊設(shè)計(jì)說明(113.4 具體語(yǔ)句設(shè)計(jì)說明(134 三層電梯控制器調(diào)試、仿真和硬件測(cè)試(144.1 程序調(diào)試 (144.2 程序波形仿

2、真 (154.2.1 波形輸入建立 (154.2.2 電梯運(yùn)行情況仿真(164.2.3 電梯功能仿真 (184.3 硬件測(cè)試 (194.3.1 引腳鎖定 (194.3.2 硬件下載 (195 結(jié)論 (205.1 設(shè)計(jì)功能實(shí)現(xiàn)情況(205.2 設(shè)計(jì)心得 (20參考文獻(xiàn) (21附錄 (221 引言1.1 設(shè)計(jì)背景近年來(lái) ,隨著我國(guó)房地產(chǎn)業(yè)的持續(xù)高速發(fā)展,高層建筑越來(lái)越多。因此,一種能使人們快速、便捷地到達(dá)目的樓層的電梯便應(yīng)運(yùn)而生了。分析近幾年房地產(chǎn)業(yè)的發(fā)展趨勢(shì) ,特別是商品住宅的高速發(fā)展,將使住宅對(duì)電梯的需求量持續(xù)攀升。人們對(duì)電梯安全性、高效性、舒適性的不斷追求也推動(dòng)了電梯技術(shù)的進(jìn)步。隨著電梯技術(shù)

3、的發(fā)展 , 綠色化、低能耗、智能化、網(wǎng)絡(luò)化、藍(lán)牙技術(shù)的電梯成為一段時(shí)間內(nèi)的發(fā)展趨勢(shì)。為保證人們能更安全、更快捷地到達(dá)目的樓層 ,實(shí)現(xiàn)人性化的功能 ,對(duì)電梯系統(tǒng)中的控制部分進(jìn)行優(yōu)化設(shè)計(jì)是非常必要。因此這部分的設(shè)計(jì)也就成了在電梯設(shè)計(jì)領(lǐng)域里最為核心的技術(shù)。為了實(shí)現(xiàn)電梯的智能化 ,可以采用許多方法。它的智能化控制可以有以下幾種形式 :1.PLC 控制 ;2.單板機(jī)控制 ;3.單片機(jī)控制 ;4.單微機(jī)控制 ;5.多微機(jī)控制 ; 6.人工智能控制。隨著 EDA 技術(shù)的快速發(fā)展 ,電子設(shè)計(jì)自動(dòng)化 (EDA 逐漸成為重要的設(shè)計(jì)手段 ,已經(jīng)廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。它是一種實(shí)現(xiàn)電子系統(tǒng)或電子產(chǎn)品自

4、動(dòng)化設(shè)計(jì)的技術(shù) ,與電子技術(shù)、微電子技術(shù)的發(fā)展密切相關(guān) ,并吸收了計(jì)算機(jī)科學(xué)領(lǐng)域的大多數(shù)最新研究成果 ,以高性能的計(jì)算機(jī)作為工作平臺(tái) ,促進(jìn)了工程發(fā)展。傳統(tǒng)單片機(jī)設(shè)計(jì)的電梯控制外圍電路復(fù)雜 ,性能不穩(wěn)定 ,而采用 EDA 設(shè)計(jì) ,卻擁有電子系統(tǒng)小型化、低功耗、高可靠性、開發(fā)過程投資小、周期短等優(yōu)點(diǎn) ,而且還可以通過軟件編程對(duì)硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu) ,使得硬件設(shè)計(jì)如軟件設(shè)計(jì)那般方便快捷。本次設(shè)計(jì)就是應(yīng)用 EDA 電子電路技術(shù)來(lái)設(shè)計(jì)電梯控制器 ,從而使用一片芯片就可以實(shí)現(xiàn)對(duì)電梯的控制的。1.2 設(shè)計(jì)基礎(chǔ)主要是應(yīng)用現(xiàn)代電子技術(shù)中的EDA 技術(shù)。利用 EDA 技術(shù)實(shí)現(xiàn)四層電梯的控制與目前主流的利用

5、可編程邏輯控制器實(shí)現(xiàn)電梯控制緊密相連。硬件描述語(yǔ)言是EDA 技術(shù)的重要組成部分 ,VHDL 是作為電子設(shè)計(jì)主流硬件的描述語(yǔ)言。使用VHDL 語(yǔ)言進(jìn)行程序的設(shè)計(jì) ,以 Quartusll 為核心。該程序可以實(shí)現(xiàn)電梯的升降,開門 ,關(guān)門等基礎(chǔ)功能。1.2.1 EDA 技術(shù)介紹EDA 是電子設(shè)計(jì)自動(dòng)化 (Electronic Design Automation 的縮寫 ,在 20 世紀(jì) 90 年代初從計(jì)算機(jī)輔助設(shè)計(jì) (CAD 、計(jì)算機(jī)輔助制造 (CAM 、計(jì)算機(jī)輔助測(cè)試 (CAT 和計(jì)算機(jī)輔助工程 (CAE 的概念發(fā)展而來(lái)的。 EDA 技術(shù)就是以計(jì)算機(jī)為工具 ,設(shè)計(jì)者在 EDA 軟件平臺(tái)上 ,用硬件

6、描述語(yǔ)言 HDL 完成設(shè)計(jì)文件 ,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真 ,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。利用 EDA 技術(shù)進(jìn)行電子系統(tǒng)的設(shè)計(jì) ,具有以下幾個(gè)特點(diǎn) :1.用軟件的方式設(shè)計(jì)硬件 ;2.用軟件方式設(shè)計(jì)的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)的開發(fā)軟件自動(dòng)完成的 ;3.設(shè)計(jì)過程中可用有關(guān)軟件進(jìn)行各種仿真 ;4.系統(tǒng)可現(xiàn)場(chǎng)編程 ,在線升級(jí) ;5.整個(gè)系統(tǒng)可集成在一個(gè)芯片上 ,體積小、功耗低、可靠性高。因此 ,EDA 技術(shù)是現(xiàn)代電子設(shè)計(jì)的發(fā)展趨勢(shì)。1.2.2 硬件描述語(yǔ)言 (VHDL 介紹VHDL(Very-High-Speed Int

7、egrated Circuit Hardware Description Language主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為 ,功能和接口 3 。它于 1983 年由美國(guó)國(guó)防部發(fā)起創(chuàng)建 ,由電工和電子工程師協(xié)會(huì) (the Institute of Electrical and Electronics Engineers進(jìn)一步發(fā)展并在 1987 年作為 “IEEE 1076發(fā)”布。從此 ,VHDL 成為硬件描述語(yǔ)言的業(yè)界標(biāo)準(zhǔn)之一。VHDL 作為一個(gè)規(guī)范語(yǔ)言和建模語(yǔ)言 ,具有很強(qiáng)的電路描述和建模能力 ,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述 ,從而大大簡(jiǎn)化了硬件設(shè)計(jì)任務(wù) ,提高了設(shè)計(jì)效率和可靠性。 V

8、HDL 具有與具體硬件電路無(wú)關(guān)和設(shè)計(jì)平臺(tái)無(wú)關(guān)的特性 ,并且具有良好的電路行為描述和系統(tǒng)描述的能力 ,并在語(yǔ)言易讀性和層次化結(jié)構(gòu)化設(shè)計(jì)方面 ,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。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)部開發(fā)完成后 ,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。1.2.3 Quartus軟件介紹Quartus II 是 Altera 公司的綜合性 PLD/FPGA 開發(fā)軟件 ,原理圖、 VHDL 、

9、VerilogHDL 以及 AHDL(Altera Hardware 支持 Description Language等多種設(shè)計(jì)輸入形式 ,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD 設(shè)計(jì)流程。Quartus II 可以在 XP、 Linux 以及 Unix 上使用 ,除了可以使用 Tcl 腳本完成設(shè)計(jì)流程外 ,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一 ,功能集中 ,易學(xué)易用等特點(diǎn)。Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模塊庫(kù) ,使用戶可以充分利用成熟的模塊 ,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了

10、設(shè)計(jì)速度。對(duì)第三方 EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。此外 ,Quartus II 通過和 DSP Builder 工具與 Matlab/Simulink 相結(jié)合 ,可以方便地實(shí)現(xiàn)各種 DSP 應(yīng)用系統(tǒng) ;支持 Altera 的片上可編程系統(tǒng) (SOPC 開發(fā) ,集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體 ,是一種綜合性的開發(fā)平臺(tái)。Maxplus II 作為 Altera 的上一代 PLD 設(shè)計(jì)軟件 ,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera 已經(jīng)停止了對(duì) Maxplus II 的更新支持 ,Quartus II 與之相比不僅

11、僅是支持器件類型的豐富和圖形界面的改變。Altera 在 Quartus II 中包含了許多諸如 SignalTap II、Chip Editor 和 RTL Viewer 的設(shè)計(jì)輔助工具 ,集成了 SOPC 和 HardCopy 設(shè)計(jì)流程 ,并且繼承了 Maxplus II 友好的圖形界面及簡(jiǎn)便的使用方法。Altera Quartus II 作為一種可編程邏輯的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口 ,越來(lái)越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。2 四層電梯控制器的具體設(shè)計(jì)2.1 設(shè)計(jì)目的本次設(shè)計(jì)的目的就是希望可以通過這一次的實(shí)踐從而更加深入的了解術(shù)并且掌握 VHDL 硬件描述語(yǔ)言的的設(shè)計(jì)方法

12、及設(shè)計(jì)思想。通過學(xué)習(xí)的EDA VHDL技語(yǔ)言結(jié)合電子電路的設(shè)計(jì)知識(shí)理論聯(lián)系實(shí)際,掌握所學(xué)的課程知識(shí)和基本單元電路的綜合設(shè)計(jì)應(yīng)用。通過對(duì)實(shí)用電梯控制系統(tǒng)的設(shè)計(jì),鞏固和綜合運(yùn)用所學(xué)知識(shí),提高設(shè)計(jì)能力 ,提高分析、解決問題的獨(dú)立工作能力。2.2 設(shè)計(jì)要求四層電梯控制器的功能如下:(1 每層電梯入口處設(shè)有上下請(qǐng)求開關(guān),電梯內(nèi)設(shè)有顧客到達(dá)層次的停站請(qǐng)求開關(guān)。(2 設(shè)有電梯入口處位置指示裝置及電梯運(yùn)行模式(上升或下降指示裝置。(3 電梯每秒上升 (下降一層樓。(4 電梯到達(dá)有停站請(qǐng)求的樓層 ,經(jīng)過 1 秒電梯門打開 ,開門指示燈亮 ,開門 4 秒后 , 電梯門關(guān)閉 (開門指示燈滅 ,電梯繼續(xù)進(jìn)行 ,直至執(zhí)

13、行完最后一個(gè)請(qǐng)求信號(hào)停留在當(dāng)前層。(5 能記憶電梯內(nèi)外所有請(qǐng)求,并按照電梯運(yùn)行規(guī)則按順序響應(yīng),每個(gè)請(qǐng)求信號(hào)保留至執(zhí)行后消除。(6 電梯運(yùn)行規(guī)則 :當(dāng)電梯處于上升模式時(shí),只響應(yīng)比電梯所在位置的上樓請(qǐng)求信號(hào) ,由下而上逐個(gè)執(zhí)行 ,直到最后一個(gè)上樓請(qǐng)求執(zhí)行完畢 ;如果高層有下樓請(qǐng)求 ,則直接升到由下樓請(qǐng)求的最高樓層 ,然后進(jìn)入下降模式。當(dāng)電梯處于下降模式則與上升模式相反。(7 電梯初始狀態(tài)為一層開門狀態(tài)通過對(duì)電梯控制系統(tǒng)的設(shè)計(jì) ,掌握所學(xué) EDA 課程的基本知識(shí)和對(duì) VHDL 語(yǔ)言的綜合設(shè)計(jì)應(yīng)用。通過課程設(shè)計(jì) ,提高設(shè)計(jì)能力 ,提高分析解決實(shí)際問題的能力 ,并在設(shè)計(jì)中了解硬件編程的流程和思路 ,為以

14、后工作和發(fā)揮技術(shù)打下基礎(chǔ)。2.3 設(shè)計(jì)思路本次設(shè)計(jì)的電梯控制器采用狀態(tài)機(jī)來(lái)實(shí)現(xiàn),由于電梯又是每秒上升或下降一層所以就通過一個(gè)周期為一秒的時(shí)鐘來(lái)觸發(fā)這個(gè)狀態(tài)機(jī)。再考慮到電梯的實(shí)際工作狀態(tài)可以把狀態(tài)機(jī)設(shè)置成 10 個(gè)狀態(tài) ,可以把狀態(tài)機(jī)設(shè)置 10 個(gè)狀態(tài) ,分別是 “電梯停留在第 1 層”、“開門 ”、 “關(guān)門 ”、“開門等待第 1 秒”、“開門等待第 2 秒 ”、“開門等待第 3 秒”、“開門等待第 4 秒 ”、 “上升 ”、 “下降 ”和 “停止?fàn)顟B(tài) ”。各個(gè)狀態(tài)之間的轉(zhuǎn)換條件可由上面的設(shè)計(jì)要求所決定3 四層電梯控制器的綜合設(shè)計(jì)(VHDL 語(yǔ)言實(shí)現(xiàn)3.1 分析判斷3.1.1 電梯運(yùn)行規(guī)則(1

15、請(qǐng)求信號(hào)分析 :電梯的請(qǐng)求信號(hào)可分為梯內(nèi)請(qǐng)求和梯外請(qǐng)求 ,如果從這個(gè)角度就很難去進(jìn)行對(duì)電梯運(yùn)行可能情況的分析 ,因?yàn)殡娞莸倪\(yùn)行是根據(jù)梯外和梯內(nèi)的請(qǐng)求信號(hào)、行程信號(hào)進(jìn)行控制 ,而梯外和梯內(nèi)的請(qǐng)求是隨機(jī)且不能以有限的規(guī)則去對(duì)其進(jìn)行說明的。因此 ,很難對(duì)電梯的運(yùn)行情況作出一個(gè)統(tǒng)一的分析。出于這方面的考慮 ,本設(shè)計(jì)把電梯的請(qǐng)求信號(hào)劃分為上升請(qǐng)求和下降請(qǐng)求。電梯接收到請(qǐng)求信號(hào)后 ,響應(yīng)并判斷是上升請(qǐng)求信號(hào)就是下降請(qǐng)求信號(hào) ,然后電梯向下或向上運(yùn)行。具體來(lái)說 ,就是當(dāng)電梯所在樓層低于發(fā)出梯外請(qǐng)求的樓層或者低于梯內(nèi)請(qǐng)求所要到達(dá)的目的樓層時(shí) ,電梯必須在下一操作中作出上升運(yùn)行。這時(shí)的請(qǐng)求信號(hào)就是上升請(qǐng)求信號(hào)。

16、反之 ,則是下降請(qǐng)求信號(hào)。如電梯在二層并上一次電梯運(yùn)行是向上或是向下,接收到的是上升請(qǐng)求還是下降請(qǐng)求。(2 電梯處于各樓層時(shí)的運(yùn)行情況。1.處于一層時(shí) ,不管是梯內(nèi)梯外 ,電梯都只能接收上升的請(qǐng)求信號(hào)。此后 ,電梯就進(jìn)入上升狀態(tài) ,作上升運(yùn)行。如果電梯沒有接收到請(qǐng)求信號(hào) ,則電梯在一層待機(jī) ,其分析圖如圖 2 所示。 在一層上升一層待機(jī)上升請(qǐng)求信號(hào)無(wú)請(qǐng)求信號(hào)圖 2 電梯處于一層時(shí)的運(yùn)行情況分析2.處于二層時(shí) ,電梯則可能出現(xiàn)以下三種情況 : 電梯沒有接收到梯內(nèi)梯外的任何請(qǐng)求信號(hào)時(shí) ,則電梯在二層待機(jī) ; 電梯接收到上升請(qǐng)求信號(hào) ,進(jìn)入上升狀態(tài) ; 電梯接收到下降請(qǐng)求信號(hào) ,進(jìn)入下降狀態(tài) ,其分

17、析圖如圖 3 所示。在二層上升下降二層待機(jī)上升請(qǐng)求信號(hào)無(wú)請(qǐng)求信號(hào)下降請(qǐng)求信號(hào)圖 3 電梯處于二層時(shí)的運(yùn)行情況分析3.處于三層時(shí) ,不管是梯內(nèi)梯外 ,電梯都只能接收到下降的請(qǐng)求信號(hào)。此時(shí) ,電梯就進(jìn)入下降狀態(tài) ,作下降運(yùn)行。如果電梯沒有接收到請(qǐng)求信號(hào) ,則電梯在三層待機(jī) ,其分析圖如圖 4 所示。在三層下降三層待機(jī)下降請(qǐng)求信號(hào)無(wú)請(qǐng)求信號(hào)圖 4 電梯處于三層時(shí)的運(yùn)行可能分析對(duì)上述電梯的運(yùn)行情況進(jìn)行匯總,可以得到如圖 5 的電梯運(yùn)行狀態(tài)圖。一層一層待機(jī)上升二層下降上升三層下降下降請(qǐng)求信號(hào)上升請(qǐng)求信號(hào)上升請(qǐng)求信號(hào)下降請(qǐng)求信號(hào)無(wú)請(qǐng)求信號(hào)二層待機(jī)無(wú)請(qǐng)求信號(hào)三層待機(jī)無(wú)請(qǐng)求信號(hào)圖 5 電梯運(yùn)行狀態(tài)圖在電梯運(yùn)行

18、過程中 ,存在一個(gè)如何處理請(qǐng)求信號(hào)優(yōu)先的問題。僅用順序優(yōu)先或邏輯優(yōu)先不能滿足控制要求。因此 ,控制系統(tǒng)需要同時(shí)采用順序和邏輯來(lái)控制電梯的運(yùn)行。即在以順序邏輯控制實(shí)現(xiàn)電梯的基本控制要求的基礎(chǔ)上,根據(jù)隨機(jī)的輸入信號(hào) ,以及電梯當(dāng)時(shí)運(yùn)行狀態(tài) (上升還是下降適時(shí)的控制電梯下一個(gè)操作 ,使電梯向上或向下運(yùn)行。例如 ,當(dāng)電梯在三層時(shí) ,二層、一層梯外均有上升請(qǐng)求信號(hào) :電梯向下運(yùn)行 ,在接近二層時(shí)判別二層具有同向的請(qǐng)求信號(hào) ,如沒有繼續(xù)下降到一層,經(jīng)開關(guān)門后 ,然后再向上運(yùn)行 ,在接近二層時(shí)判別二層具有同向的請(qǐng)求信號(hào)時(shí) , 在二層停止載客。又假如 ,當(dāng)電梯在三層時(shí) ,梯內(nèi)有到達(dá)一層的下降請(qǐng)求信號(hào) ,而二層

19、則有上升請(qǐng)求信號(hào) ,電梯先向下運(yùn)行 ,在接近二層時(shí)判別二層具有反向的請(qǐng)求信號(hào) ,系統(tǒng)將把二層的上升請(qǐng)求保存到上升請(qǐng)求寄存器上 ,不在二層作停泊而繼續(xù)下降到一層去載客 ,然后讀取上升請(qǐng)求寄存中先前二層的上升請(qǐng)求 ,執(zhí)行上升到二層載客的操作。執(zhí)行完成后 ,被保存在寄存器中的數(shù)據(jù)清除 ,為下一次響應(yīng)請(qǐng)求作準(zhǔn)備。(3 對(duì)電梯開門、關(guān)門等內(nèi)部信號(hào)處理的分析,其流程如圖 6 所示。接到樓層請(qǐng)求信號(hào)電梯運(yùn)行到該樓層開門使能信號(hào)關(guān)門延時(shí)信號(hào)倒數(shù)接受并處理請(qǐng)求信號(hào)電梯進(jìn)入運(yùn)行狀態(tài)立即關(guān)門立即關(guān)門請(qǐng)求圖 6 電梯內(nèi)外信號(hào)處理當(dāng)電梯接收到請(qǐng)求信號(hào)后 ,運(yùn)行到發(fā)出請(qǐng)求的樓層。運(yùn)達(dá)后 ,開門使能信號(hào)促使電梯開門載客 ,

20、同時(shí)驅(qū)動(dòng)關(guān)門延時(shí)信號(hào)。在電梯進(jìn)行完關(guān)門倒數(shù)計(jì)后 ,關(guān)門使能信號(hào)將促使電梯關(guān)門狀態(tài) ,然后上升或下降運(yùn)行。如果此前出現(xiàn)提前關(guān)門信號(hào) ,電梯立即關(guān)門 ,然后上升或下降運(yùn)行。3.1.2 程序流程分析電梯的運(yùn)行規(guī)則確定后 ,需對(duì)整個(gè)控制程序的設(shè)計(jì)作一個(gè)流程規(guī)范。對(duì)程序進(jìn)行模塊化構(gòu)思。根據(jù)VHDL 語(yǔ)言的規(guī)則 ,程序必須由最基本的實(shí)體和結(jié)構(gòu)體構(gòu)成。實(shí)體對(duì)控制器的端口進(jìn)行定義,結(jié)構(gòu)體對(duì)各端口的行為進(jìn)行描述。因此程序運(yùn)行時(shí)需經(jīng)過以下流程 :VHDL 庫(kù)調(diào)用 ;確立控制器的端口及相關(guān)的寄存器;根據(jù)電梯運(yùn)行規(guī)則確定各個(gè)狀態(tài)轉(zhuǎn)換的條件;對(duì)電梯內(nèi)外信號(hào)進(jìn)行處理,具體流程圖如圖7 所示。程序開始VHDL 庫(kù)調(diào)用設(shè)置控

21、制器的端口設(shè)置相關(guān)的寄存器各狀態(tài)轉(zhuǎn)換條件描述電梯信號(hào)處理程序結(jié)束圖 7 電梯設(shè)計(jì)流程圖3.2 程序端口和寄存器說明(1 由功能要求得到本程序設(shè)計(jì)的端口必須包括:時(shí)鐘信號(hào) (clk; 提前關(guān)門信號(hào)(quick;一樓電梯外人的上升請(qǐng)求信號(hào) (up1、二樓電梯外人的上升請(qǐng)求信號(hào) (up2;二樓電梯外人的下降請(qǐng)求信號(hào) (down2、三樓電梯外人的下降請(qǐng)求信號(hào) (down3;電梯內(nèi)人請(qǐng)求到達(dá)一樓信號(hào) (ting1、電梯內(nèi)人請(qǐng)求到達(dá)二樓信號(hào) (ting2、電梯內(nèi)人請(qǐng)求到達(dá)三樓信號(hào) (ting3;電梯開門控制信號(hào) (opendoor;電梯關(guān)門控制信號(hào) (closedoor;電梯所在樓層顯示 (current

22、;電梯向上運(yùn)行控制及顯示信號(hào)up、電梯向下運(yùn)行控制及顯示信號(hào)(down。(2 由相關(guān)端口得到程序要求的寄存器包括 :電梯內(nèi)人請(qǐng)求到達(dá)一樓信號(hào)寄存ting(1、電梯內(nèi)人請(qǐng)求到達(dá)二樓信號(hào)寄存 ting(2 、電梯內(nèi)人請(qǐng)求到達(dá)三樓信號(hào)寄存ting(3;一樓電梯外人上升請(qǐng)求信號(hào)寄存 u(1、二樓電梯外人上升請(qǐng)求信號(hào)寄存 u(2; 二樓電梯外人下降請(qǐng)求信號(hào)寄存 d(2、三樓電梯外人下降請(qǐng)求信號(hào)寄存 d(3。3.3 各模塊設(shè)計(jì)說明本程序由三個(gè)基本模塊組成 ,包括調(diào)用 VHDL 庫(kù)模塊、實(shí)體設(shè)計(jì)模塊和結(jié)構(gòu)體設(shè)計(jì)模塊。而在結(jié)構(gòu)體模塊中又內(nèi)嵌有進(jìn)程執(zhí)行單元。(1 調(diào)用 VHDL 庫(kù)通過 library 語(yǔ)句 ,

23、本程序應(yīng)用了 VHDL 庫(kù)中的 “通用 ieee庫(kù) ”和 “標(biāo)準(zhǔn) std 庫(kù)”。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;(2entity 實(shí)體設(shè)計(jì)模塊entity dianti isport (end dianti;實(shí)體語(yǔ)句用關(guān)鍵詞 entity 開頭 ,本程序以 dianti(電梯的漢語(yǔ)拼音作為所要描述的實(shí)體名 ,在結(jié)束實(shí)體語(yǔ)句的時(shí)候使用 end dianti。在 entity 語(yǔ)句的實(shí)體說明部分 ,用port(語(yǔ)句描述實(shí)體對(duì)外界連接的端口 (數(shù)目、方向和數(shù)據(jù)類型 ,輸入模式是 clk/

24、up1/up2/down2/down3/quick /ting1/ting2/ting3; 其余的都是輸出模式 ,其中 current是四位矢量數(shù)據(jù)的輸出接口。(3architecture結(jié)構(gòu)化設(shè)計(jì)模塊和process進(jìn)程執(zhí)行單元實(shí)體 dianti 以結(jié)構(gòu)化與行為化描述的結(jié)構(gòu)體如下:architecture dianti of dianti isbeginend dianti;由于篇幅的關(guān)系 ,結(jié)構(gòu)體部分并不能盡錄。本模塊以關(guān)鍵字 architecture做結(jié)構(gòu)體的開頭 ,描述 dianti 實(shí)體的結(jié)構(gòu)體 dianti。 architecture和 begin 之間是結(jié)構(gòu)體說明區(qū) ,列舉了電梯

25、運(yùn)行的各個(gè)狀態(tài) ;begin 和 end 之間是結(jié)構(gòu)體語(yǔ)句區(qū) ,在此將嵌入process進(jìn)程語(yǔ)句去對(duì)實(shí)體行為作出說明。process(clkbegincase when isend case;end process;關(guān)鍵字 process后面括號(hào)中的信號(hào)為時(shí)鐘信號(hào),它列舉可激活進(jìn)程語(yǔ)句的信號(hào),唯有這些信號(hào)上的事件能引起進(jìn)程語(yǔ)句執(zhí)行。關(guān)鍵字begin 把進(jìn)程語(yǔ)句分為進(jìn)程說明和進(jìn)程語(yǔ)句兩部分。進(jìn)程說明在時(shí)鐘信號(hào)和 begin 之間 ,說明局部變量或某些僅在進(jìn)程內(nèi)部用的內(nèi)容。進(jìn)程語(yǔ)句部分在 begin 和 end process之間 ,進(jìn)程內(nèi)的所有語(yǔ)句都是按順序一個(gè)接一個(gè)執(zhí)行的。其中的 case語(yǔ)句

26、是電梯七個(gè)運(yùn)行狀態(tài)的選擇。下載程序成功后 ,電梯處于 c1,即第一層。c1:處于第一層時(shí) ,先令 f1=0、f2=0、f3=0,down=0,up=0。表明電梯初始狀態(tài)是待機(jī)模式。若 u(1=1或者 ting(1= 即1第一層的任何請(qǐng)求都應(yīng)該開門 ,因?yàn)橐呀?jīng)到了第一層應(yīng)該優(yōu)先響應(yīng)開門 ,進(jìn)入 time4 開門狀態(tài)并且使 opendoor=1否,則若其它層有請(qǐng)求 (u(2、 u(3、 d(2、ting(2、ting(3 中至少有一個(gè)值為 1,進(jìn)入運(yùn)行狀態(tài)則 time3,并使 f1=1,up= 。1如在到達(dá)第一層經(jīng)開關(guān)門后如沒有任何請(qǐng)求 ,則使標(biāo)志位 f6= 1, 保持在第一層待機(jī)。c2 :處于第

27、二層的時(shí)候需要根據(jù)當(dāng)前的電梯狀態(tài)來(lái)決定下一個(gè)狀態(tài)。從其它層到二樓時(shí)先使?fàn)顟B(tài)標(biāo)志 f1=f2=f3=0, 并且顯示當(dāng)前層是第二層 ,響應(yīng)請(qǐng)求后使?fàn)顟B(tài)標(biāo)志 f2= 1表,示是從第二層運(yùn)行到其它層的。優(yōu)先順序是 :電梯上升時(shí)二樓門外有上升請(qǐng)求 ,電梯下降時(shí)二樓門外的下降請(qǐng)求 ,電梯下降時(shí)電梯內(nèi)一樓還沒響應(yīng)的停請(qǐng)求 ,電梯上升時(shí)電梯內(nèi)三樓還沒有響應(yīng)的停請(qǐng)求 ,上升時(shí)三樓門外的下降請(qǐng)求 ,下降時(shí)三樓門外的上升請(qǐng)求 ,若以上的都沒有則任何一個(gè)請(qǐng)求都響應(yīng)。進(jìn)入運(yùn)行狀態(tài)運(yùn)行到該層或響應(yīng)二樓的開門請(qǐng)求進(jìn)入進(jìn)入 time4 開門狀態(tài) ,并且上升時(shí)給up= 1 ,down=下降0,時(shí)down= 1 ,up=。并0輸

28、出顯示電梯運(yùn)行狀態(tài)。如在到達(dá)第二層經(jīng)開關(guān)門后如沒有任何請(qǐng)求,則使標(biāo)志位 f5= 1保,持在第二層待機(jī)。c3 :在進(jìn)入 c3 時(shí) f1=f2=f3= 0 , down= 0并,up=且顯示當(dāng)0前層是第三層 ,響應(yīng)請(qǐng)求后使?fàn)顟B(tài)標(biāo)志 f3= 1表,示是從第三層運(yùn)行到其它層的。每到第三層時(shí)都是優(yōu)先響應(yīng)三樓的下降請(qǐng)求進(jìn)入 time4 開門狀態(tài) ,而后進(jìn)入關(guān)門狀態(tài) ,再判斷其它層是否有梯外梯內(nèi)請(qǐng)求。否則只要有一層二層的任意請(qǐng)求存在都進(jìn)入time3 運(yùn)行狀態(tài)運(yùn)行到該層響應(yīng)請(qǐng)求。如在到達(dá)第三層經(jīng)開關(guān)門后如沒有任何請(qǐng)求,則使標(biāo)志位f4= 1保,持在第二層待機(jī)。time1 :判斷是否保持在該層待機(jī)。time2 :

29、關(guān)門狀態(tài)。判斷是否立即關(guān)門,如是 ,立即關(guān)門 ;否則延時(shí)關(guān)門。同時(shí)判斷是否進(jìn)入待機(jī)狀態(tài)。如是,進(jìn)入待機(jī)狀態(tài)保持在該層;否則進(jìn)入運(yùn)行狀態(tài)。time3 :運(yùn)行狀態(tài)。計(jì)數(shù)完成后 ,如果 f1= 則1進(jìn)入 c2,如果 f3= 則1進(jìn)入 c2。如果 f2= 1是,有優(yōu)先響應(yīng)順序的 :上升時(shí)則優(yōu)先響應(yīng)電梯內(nèi)還沒有響應(yīng)的停 ting(3= 1 請(qǐng)求 ,進(jìn)入 c3,下降時(shí)優(yōu)先響應(yīng)電梯內(nèi)還沒有響應(yīng)停 ting(1= 請(qǐng)1求 ,經(jīng)進(jìn)入 c1,上升時(shí)三樓門外有下降請(qǐng)求 ,進(jìn)入 c3,下降時(shí)一樓門外有上升請(qǐng)求 ,進(jìn)入 c1,剩下的請(qǐng)求只要有請(qǐng)求則響應(yīng) (f1、f2、 f3 是不可能同時(shí)為 1 的,這樣就保證了優(yōu)先原則

30、。time4 :開門狀態(tài)。只有開門狀態(tài)計(jì)數(shù)時(shí)間到才進(jìn)入關(guān)門狀態(tài)time2。3.4 具體語(yǔ)句設(shè)計(jì)說明上文已說明了構(gòu)成VHDL 程序的兩大部分 實(shí)體和結(jié)構(gòu)體的相關(guān)語(yǔ)句。在這些語(yǔ)句里 ,賦值語(yǔ)句占了相當(dāng)一部分。在 VHDL 語(yǔ)言里 ,對(duì)變量的賦值一般都是用 “ :=符”號(hào) ,對(duì)輸出信號(hào)賦值一般都是用 “ <=符”號(hào)。 VHDL 語(yǔ)言也具有與一般編程語(yǔ)言相同的一些語(yǔ)言邏輯結(jié)構(gòu) ,如“if ··· then ··· ;elsif等。···這是VHDLthen···中的順;”序語(yǔ)句

31、。在實(shí)體模塊中 ,對(duì)電梯的主要信號(hào)都一一作出了定義 ,具體說明給出如下。port (clk: in std_logic;- 時(shí)鐘信號(hào)up1,up2: in std_logic;-梯外上升請(qǐng)求down2,down3: in std_logic;-梯外下降請(qǐng)求ting1,ting2,ting3: in std_logic;- 梯內(nèi)到達(dá)請(qǐng)求quick: in std_logic;- 立即關(guān)門請(qǐng)求opendoor: buffer std_logic;-開門信號(hào)closedoor: buffer std_logic;-關(guān)門信號(hào)up:buffer std_logic;- 上升運(yùn)行down:buffer s

32、td_logic;- 下降運(yùn)行current:buffer std_logic_vector(3 downto 0;-顯示樓層號(hào)在結(jié)構(gòu)體中對(duì)電梯的運(yùn)行行為作出描述 ,其中在進(jìn)程執(zhí)行單元里 ,對(duì)電梯在各樓層之間轉(zhuǎn)換的情況作出了描述 ,詳見文末附錄中的程序及程序說明。4 三層電梯控制器調(diào)試、仿真和硬件測(cè)試4.1 程序調(diào)試(1 新建工作庫(kù)目錄 ,用于存儲(chǔ)設(shè)計(jì)的工程文件,打開 MAX+plusII 軟件。(2 在工具欄中選擇 “新建 ”按鈕。在選擇輸入路徑時(shí) ,選擇 “ Text Editor File以進(jìn) ” 行文本輸入 ,如圖 8 所示。圖 8 輸入路徑選擇文本輸入(3 在文本輸入界面內(nèi)進(jìn)行程序輸

33、入。(4 輸入完畢后 ,對(duì)程序進(jìn)行保存。文件名和實(shí)體定義的符號(hào)必須保持一致 ,即文件名為 dianti,文件后綴名須改成 vhd,詳見圖 9 所示。圖 9 文本輸入保存界面(5 保存以后 ,對(duì)程序進(jìn)行編譯。在編譯前 ,需要把當(dāng)前文件設(shè)置為當(dāng)前工程文件??赏ㄟ^選擇菜單 “File ”“ Set Project to Current來(lái)File指定當(dāng)前”的文件為當(dāng)前工程文件。(6 在 “ MAX+plusII 下”拉按鈕里選擇 “ Compiler 對(duì)”,程序進(jìn)行編譯。此時(shí) ,MAX+plusII 軟件會(huì)對(duì)程序進(jìn)行糾錯(cuò)等處理。當(dāng)程序被確認(rèn)無(wú)誤以后會(huì)出現(xiàn)如下界面 ,如圖 10 所示。圖 10 編譯通過

34、4.2 程序波形仿真4.2.1 波形輸入建立(1 編譯完全通過后 ,新建波形編輯器進(jìn)行設(shè)計(jì)仿真。通過“新建 ”按鈕 ,選擇“ Waveform Editor file 詳細(xì)”,如圖 11 所示。圖 11 新建波形編輯器(2 新建波形編輯器后 ,對(duì)文件進(jìn)行保存。同樣是使用相同的文件名dianti, 后綴則改為 scf。(3 在編輯器的 Name 欄點(diǎn)擊鼠標(biāo)右鍵 ,選擇 “ Enter Nodes from SNF選擇”添加需要觀察的節(jié)點(diǎn)信號(hào)。(4 在進(jìn)行仿真前 ,還需對(duì)仿真結(jié)束時(shí)間設(shè)定。在 “ File欄”對(duì)結(jié)束時(shí)間 “ End Time ” 設(shè)置為 “5ms”如,圖 12 所示。圖 12 仿真

35、結(jié)束時(shí)間設(shè)置圖(5 對(duì)所添加的節(jié)點(diǎn)中的輸入信號(hào)進(jìn)行相關(guān)的賦值后,就可對(duì)程序進(jìn)行仿真 ,觀察輸出信號(hào) ,得出結(jié)論。如對(duì)時(shí)鐘信號(hào)clk 賦周期為 50us的周期信號(hào) ,如圖 13 所示。圖 13 對(duì) clk 信號(hào)賦值圖4.2.2 電梯運(yùn)行情況仿真三層電梯的運(yùn)行情況多種多樣,下面以觀察以下兩種情況為例說明。(1 電梯在不同時(shí)段接收到請(qǐng)求信號(hào)的情況:電梯處于一樓 ,接收到三樓的梯外下降請(qǐng)求 (down3,于是電梯運(yùn)行到三樓 ,中途經(jīng)過二樓時(shí)不作停頓。到達(dá)三樓載客后,電梯內(nèi)又接收到下降到一樓的梯內(nèi)請(qǐng)求(ting1,于是電梯返回一樓待機(jī)。仿真情況如圖14 所示。觀察以下信號(hào) :down、up、opendo

36、or、closedoor、 current。說明 :電梯在一層待機(jī)時(shí) ,接收到三層的下降的請(qǐng)求 ,電梯運(yùn)行到第三層 ,并開關(guān)門后 ,響應(yīng)此時(shí)給出的梯內(nèi)的一層到達(dá)響應(yīng) ,并運(yùn)行到一層 ,此時(shí)沒有其它請(qǐng)求信號(hào) ,電梯在一層待機(jī)。圖 14 運(yùn)行情況一(2 當(dāng)電梯在同一時(shí)間段里接收到幾種不同的請(qǐng)求信號(hào)時(shí) :電梯停在一樓 ,在同一時(shí)間段里接受到幾個(gè)請(qǐng)求信號(hào) ,包括梯內(nèi)上升到三樓的請(qǐng)求 ting3、二樓的梯外上升請(qǐng)求 up2 和三樓的梯外下降請(qǐng)求 down3。電梯到達(dá)二樓 ,響應(yīng) up2,電梯停止載客后繼續(xù)上升。電梯上升到三樓時(shí) ,響應(yīng)請(qǐng)求 ting3 和 down3,開門卸客 ;如此時(shí)沒有任何梯內(nèi)梯外請(qǐng)

37、求 ,則在三層待機(jī)如有 ,則進(jìn)入電梯下降狀態(tài)。仿真情況如圖 15 所示。觀察以下信號(hào) :down、up、opendoor、closedoor、 current。說明 :電梯停在一樓 ,在同一時(shí)間段里接受到梯內(nèi)上升到三樓的請(qǐng)求 ting3、二樓的梯外上升請(qǐng)求 up2 和三樓的梯外下降請(qǐng)求 down3。當(dāng)電梯到達(dá)二樓 ,響應(yīng) up2,電梯停止載客后繼續(xù)上升。電梯上升到三樓時(shí) ,響應(yīng)請(qǐng)求 ting3 和 down3,開門卸客 ;此時(shí)沒有任何梯內(nèi)梯外請(qǐng)求 ,則在三層待機(jī)。圖 15 運(yùn)行情況二4.2.3 電梯功能仿真電梯的功能 :立即關(guān)門。設(shè)電梯到達(dá)三層響應(yīng) down3 請(qǐng)求時(shí) ,如立即關(guān)門有效 ,仿真

38、情況如圖 16 所示。觀察以下信號(hào) :quick、 opendoor、closedoor。說明 :quick: 在開門后如立即關(guān)門信號(hào)有效 ,即 quick= 時(shí)1,立即關(guān)門。 opendoor:開門信號(hào)。 opendoor=1時(shí),開門操作。 quick:關(guān)門信號(hào)。 closedo or= 時(shí)1,關(guān)門操作。圖 16 功能仿真圖4.3 硬件測(cè)試電梯控制器的設(shè)計(jì)選用的芯片是ACEX 系列中的 EP1K30TC144-3,選用模式5。4.3.1 引腳鎖定輸入按鍵共 8 個(gè),按鍵與引腳的對(duì)應(yīng)關(guān)系如表1。表 1:輸入引腳鎖定輸入信號(hào)鎖定的引腳clk clk0(126ting1 PIO0(8ting2 P

39、IO1(9ting3 PIO2(10up1 PIO3(12up2 PIO4(13down2 PIO5(17down3 PIO6(18quick PIO7(19輸出鎖定 8 個(gè)引腳 :一個(gè)鎖定二極管指示燈指示門的開門狀態(tài) ;一個(gè)鎖定二極管指示燈指示門的關(guān)門狀態(tài) ;一個(gè)鎖定二極管指示燈指示上升模式 ;一個(gè)鎖定二極管指示燈指示下降模式 ;四個(gè)輸入引腳鎖定一個(gè)數(shù)碼管 ,用來(lái)顯示樓層號(hào)。具體對(duì)應(yīng)關(guān)系如表 2。表 2:輸出引腳鎖定輸入信號(hào)鎖定的引腳輸入信號(hào)鎖定的引腳up PIO12(26current0 PIO28(68down PIO11(23current1 PIO29(69opendoor PIO9

40、(21current2 PIO30(70closedoor PIO8(20current3 PIO31(724.3.2 硬件下載鎖定芯片引腳后 ,保存并重新編譯工程文件,再下載到硬件進(jìn)行調(diào)試。設(shè)定各種請(qǐng)求信號(hào) ,在實(shí)驗(yàn)箱模擬 ,通過觀察數(shù)碼管和二極管的顯示來(lái)驗(yàn)證程序的正確性。5 結(jié)論5.1 設(shè)計(jì)功能實(shí)現(xiàn)情況對(duì)程序進(jìn)行調(diào)試 ,經(jīng)計(jì)算機(jī)仿真分析 ,結(jié)果表明本電梯控制程序?qū)崿F(xiàn)了以下功能 :(1 電梯到達(dá)樓層時(shí) ,能發(fā)出指示信號(hào) ;(2 能指示電梯的運(yùn)行狀態(tài) ;(3 電梯的門操作具有關(guān)門延時(shí)功能和立即關(guān)門功能 ;(4 基本能正確響應(yīng)各樓層的上行和下行請(qǐng)求 (各樓層設(shè)置上行和下行選擇按鈕。5.2 設(shè)計(jì)心

41、得通過這次課程設(shè)計(jì) ,讓我在學(xué)習(xí) EDA 理論知識(shí)的基礎(chǔ)上 ,增強(qiáng)了的實(shí)踐動(dòng)手能力。在參考了許多相關(guān)資料后 ,充分理解了三層電梯的設(shè)計(jì)要求 ,基本上完成了設(shè)計(jì)的功能要求 ,但本代碼中可能仍存在一些不能解決的實(shí)際問題 ,許多工程實(shí)際問題不能完全用理論知識(shí)去解決 ,需要不斷吸取現(xiàn)場(chǎng)經(jīng)驗(yàn) ,尋找解決問題方法。雖然能完成設(shè)計(jì)的基本功能 ,但仍有可拓展的空間 ,比如超載報(bào)警、多層電梯等 ,都是可以繼續(xù)研究以滿足更多的功能要求 ,但以我現(xiàn)在對(duì) EDA 知識(shí)的了解 ,可能不太容易完成 ,希望以后有機(jī)會(huì)再深入地學(xué)習(xí) EDA, 設(shè)計(jì)出更符合實(shí)際功能需求的代碼。參考文獻(xiàn)1 潘松 ,黃繼業(yè) . EDA 技術(shù)實(shí)用教程

42、 .北京 :科學(xué)出版社 ,2002.2 甘歷 .VHDL 應(yīng)用與開發(fā)實(shí)際 .北京 :科學(xué)出版社 ,2003.3 譚會(huì)生 ,張昌凡 . EDA 技術(shù)及應(yīng)用 M. 西安電子科技大學(xué)出版社 ,20044 謝正光 .數(shù)字系統(tǒng)設(shè)計(jì)中 VHDL 語(yǔ)言設(shè)計(jì)問題探討 J. 微型機(jī)與應(yīng)用 ,20045 田萍劉新云 .用 VHDL 語(yǔ)言實(shí)現(xiàn)數(shù)字系統(tǒng) J.現(xiàn)代電子技術(shù) ,2004附錄library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dianti isport (clk: in std_logic;- 時(shí)鐘信

43、號(hào)up1,up2: in std_logic;-梯外上升請(qǐng)求down2,down3: in std_logic;-梯外下降請(qǐng)求ting1,ting2,ting3: in std_logic;- 梯內(nèi)到達(dá)請(qǐng)求quick: in std_logic;- 立即關(guān)門請(qǐng)求opendoor: buffer std_logic;-開門信號(hào)closedoor: buffer std_logic;-關(guān)門信號(hào)up:buffer std_logic;- 上升運(yùn)行down:buffer std_logic;- 下降運(yùn)行current:buffer std_logic_vector(3 downto 0;-顯示樓層號(hào)e

44、nd dianti;architecture dianti of dianti istype state_type is (c1,c2,c3,time1,time2,time3,time4;-beginprocess(clkvariable ting: std_logic_vector(3 downto 1:="000"-ting 為梯內(nèi)請(qǐng)求信號(hào) ,variable u: std_logic_vector(2 downto 1:="00"-梯外上升請(qǐng)求信號(hào)請(qǐng)求信號(hào) ,u(2 二樓上升請(qǐng)求信號(hào)variable d: std_logic_vector(3 d

45、ownto 2:="00"-梯外下降請(qǐng)求信號(hào)請(qǐng)求信號(hào) ,d(3 三樓下降請(qǐng)求信號(hào)variable state:state_type:=c1;-初始狀態(tài)在第一層variable kuai:std_logic;variable js:integer range 0 to 6 :=0;-用于關(guān)門和運(yùn)行時(shí)間計(jì)數(shù)variable f1,f2,f3,ti:std_logic;variable f4:std_logic :='0'variable f5:std_logic :='0'variable f6:std_logic :='0'be

46、ginif clk'event and clk='1' thenif quick='1' then kuai:='1' end if;if up1='1' then u(1:='1'end if;if up2='1' then u(2:='1' end if;if down2='1' then d(2:='1' end if;if down3='1' then d(3:='1'end if;if ting1=&#

47、39;1' then ting(1:='1' end if;,u(1 一樓上升,d(2 二樓下降if ting2='1' then ting(2:='1' end if;-if ting3='1' then ting(3:='1' end if;-case state iswhen time1=> if f4='1' then state:=c3;elsif f5='1' then state:=c2;elsif f6='1' then state:=c

48、1;end if;when time2 => if kuai='1' then js:=3; kuai:='0'-kuai='1' 提前關(guān)門 - 關(guān)門控制 endif;if js>=2 then js:=0;closedoor<='0'if f4='1' or f5='1' or f6='1'then state:=time1;else state:=time3;end if;else js:=js+1;opendoor<='0'if js&g

49、t;=2 then closedoor<='1'end if;end if;when time3=> -從一層到另一層的時(shí)間if js<3 then js:=js+1;- 從一層到另一層的時(shí)間else js:=0;if f1='1' then state:=c2;elsif f2='1' thenif up='1' and ting(3='1' then state:=c3;elsif down='1' and ting(1='1' then state:=c1;e

50、lsif up='1' and d(3='1' then state:=c3;elsif down='1' and u(1='1' then state:=c1;elsif u(1='1' or ting(1='1' then state:=c1; DOWN<='1'elsif d(3='1' or ting(3='1' then state:=c3; UP<='1'end if;elsif f3='1' then state:=c2;elsif f4='1' then state:=c3;elsif f5='1' then state:=c2;elsif f6='1' then state:=c1;end if;end if;when time4 => closedoor<='0'opendoor<='1'js:=0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論