【正文】
電梯外人下降請(qǐng)求信號(hào)顯示end if。39。c_u33amp。d33amp。 then c_d55=c_d5。 對(duì)電梯外人下降請(qǐng)求信號(hào)進(jìn)行檢測(cè)和寄存 elsif c_d3=39。 then c_u44=c_u4。 對(duì)電梯外人上升請(qǐng)求信號(hào)進(jìn)行檢測(cè)和寄存 elsif c_u2=39。 then d55=d5。 elsif d3=39。alarm=39。 end if。opendoor=39。 電梯到達(dá)6樓,數(shù)碼管顯示6 if d66=39。 en_dw=39。 elsif dd_cc00010000 then en_dw=39。 or c_d55=39。139。139。139。039。039。039。 opendoor=39。en_dw=39。 then d44=39。139。 elsif dd_cc00000111 then en_up=39。 opendoor=39。 elsif d33=39。039。039。139。039。139。139。en_up=39。 有當(dāng)前層的請(qǐng)求,則電梯進(jìn)入開門狀態(tài) elsif dd_cc00000011 then en_up=39。 or c_u22=39。 無(wú)請(qǐng)求時(shí),電梯停在1樓待機(jī) end if。有當(dāng)前層的請(qǐng)求,則電梯進(jìn)入開門狀態(tài) elsif dd_cc00000001 then en_up=39。 or c_u11=39。door=00。 elsif q1=6 then door=00。 then 下降預(yù)操作 if deng=39。139。q2=q2+1。down=39。139。 q1=0。 then q1=0。 電梯內(nèi)外請(qǐng)求信號(hào)寄存器signal opendoor:std_logic。 電機(jī)控制信號(hào)和電梯運(yùn)動(dòng)end dianti。 到達(dá)樓層信號(hào) door : out std_logic_vector(1 downto 0)。use 。再次謹(jǐn)向?qū)熩w桂青表示衷心的感謝和崇高的敬意。在設(shè)計(jì)方法上也做了特殊的設(shè)計(jì),所以使得擴(kuò)展性較好。4. 電梯接受到提前關(guān)門信號(hào)quick,電梯跳過(guò)關(guān)門等待時(shí)間。圖19 電梯控制程序仿真局部放大圖2從上圖可以看出:1. 電梯上升到6樓時(shí),響應(yīng)請(qǐng)求(d_6),開門卸客;進(jìn)入預(yù)備下降狀態(tài)。(2)啟動(dòng)仿真器。(3)將工程dianti的端口信號(hào)名選入波形編輯器中。選擇菜單“Project”中的“Set as TopLevel Entity”。 程序調(diào)試(1)建立好工作目錄,以便設(shè)計(jì)工程項(xiàng)目的存儲(chǔ),打開QuartusII軟件,其初始界面如圖8所示。039。c_u22amp。d22amp。 elsif c_d6=39。139。 elsif c_u5=39。139。 elsif d6=39。139。039。q1=q1+1。139。 elsif en_dw=39。139。 then door=10。up=39。039。 then alarm=39。 then if clr=39。 opendoor=39。en_up=39。 thend22=39。039。139。139。elsif g2=39。 q1=0。 then q1=0。(進(jìn)程語(yǔ)句具體看附錄)end behav。電梯外人下降請(qǐng)求信號(hào)寄存信號(hào)signal q:integer range 0 to 1。電梯外人下降請(qǐng)求信號(hào)顯示 led_d : out std_logic_vector(5 downto 0)。 超載、關(guān)門中斷、提前關(guān)門、清除報(bào)警信號(hào) c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic。而在結(jié)構(gòu)體模塊中又內(nèi)嵌有進(jìn)程執(zhí)行單元。實(shí)體對(duì)控制器的端口進(jìn)行定義,結(jié)構(gòu)體對(duì)各端口的行為進(jìn)行描述。開門使能信號(hào)促使電梯開門載客,同時(shí)驅(qū)動(dòng)關(guān)門延時(shí)信號(hào)、超重檢測(cè)以及故障檢測(cè)。對(duì)上述電梯的運(yùn)行情況進(jìn)行匯總,可以得到如圖2的電梯運(yùn)行狀態(tài)圖。反之,則是下降請(qǐng)求信號(hào)。 目前常使用三種方法消除毛刺,它們分別為延時(shí)法、選通法和修改邏輯設(shè)計(jì)法。OF實(shí)體申明并行語(yǔ)句模式實(shí)體(ENTITY):聲明到其他實(shí)體或其他設(shè)計(jì)的接口,即定義本定義的輸入輸出端口。(四)可操作性:由于VHDL具有類屬描述語(yǔ)句和子程序調(diào)用等功能,對(duì)于已完成的設(shè)計(jì),在不改變?cè)闯绦虻臈l件下,只需改變端口類屬參量或函數(shù),就能輕易地改變?cè)O(shè)計(jì)的規(guī)模和結(jié)構(gòu)。并且具有多層次的設(shè)計(jì)描述功能,支持設(shè)計(jì)庫(kù)和可重復(fù)使用的元件生成。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性。綜上比較,本設(shè)計(jì)采用EDA技術(shù)實(shí)現(xiàn)對(duì)電梯的控制。VHDL具有與具體硬件電路無(wú)關(guān)和設(shè)計(jì)平臺(tái)無(wú)關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語(yǔ)言易讀性和層次化結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。EDA使得設(shè)計(jì)者的工作僅限于利用硬件描述語(yǔ)言和EDA軟件來(lái)完成對(duì)系統(tǒng)硬件功能的實(shí)現(xiàn)。3設(shè)計(jì)的基礎(chǔ)依據(jù)現(xiàn)代電子設(shè)計(jì)技術(shù)的核心是EDA技術(shù)。這些器件可以通過(guò)軟件編程而對(duì)其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。例如在飛機(jī)制造過(guò)程中,從設(shè)計(jì)、性能測(cè)試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。VHDL是一種設(shè)計(jì)、仿真和綜合的標(biāo)準(zhǔn)硬件描述語(yǔ)言。(五)靈活性:VHDL最初是作為一種仿真標(biāo)準(zhǔn)格式出現(xiàn)的,有著豐富的仿真語(yǔ)句和庫(kù)函數(shù)。構(gòu)造體(ARCHITECTUR):定義實(shí)體的實(shí)現(xiàn)。端口說(shuō)明(端口信號(hào)名1:類型);TYPE語(yǔ)句或常量定義實(shí)體名其中,修改邏輯設(shè)計(jì)能從根本上消除毛刺,但該方法要求使用者掌握電路的工作狀態(tài)及其轉(zhuǎn)換,有時(shí)需要多路輸出,使用起來(lái)有一定的復(fù)雜性。(2)電梯處于各樓層時(shí)的運(yùn)行情況:處于一樓時(shí),電梯只可能接收到上升的請(qǐng)求信號(hào)。在電梯運(yùn)行過(guò)程中,存在一個(gè)如何處理信號(hào)優(yōu)先的問(wèn)題。在電梯進(jìn)行完關(guān)門倒數(shù)計(jì)時(shí)、超重排除以及故障排除后,關(guān)門使能信號(hào)將促使電梯關(guān)門進(jìn)入預(yù)操作狀態(tài)。因此程序運(yùn)行需經(jīng)過(guò)以下流程:VHDL庫(kù)調(diào)用;確立控制器的端口及相關(guān)的寄存器;根據(jù)電梯運(yùn)行規(guī)則,設(shè)計(jì)相關(guān)運(yùn)行描述;對(duì)電梯內(nèi)外信號(hào)進(jìn)行處理。(1) 調(diào)用VHDL庫(kù) 使用library語(yǔ)句,本程序應(yīng)用了VHDL庫(kù)中的“通用ieee庫(kù)”和“標(biāo)準(zhǔn)std庫(kù)” 。 電梯外人的上升請(qǐng)求信號(hào) c_d2,c_d3,c_d4,c_d5,c_d6: in std_logic。電梯內(nèi)請(qǐng)求信號(hào)顯示 wahaha : out std_logic。分頻信號(hào)signal q1:integer range 0 to 6。上文已說(shuō)明了構(gòu)成VHDL程序的兩大部分—實(shí)體和結(jié)構(gòu)體的相關(guān)語(yǔ)句。q2=0。if q1=3 then door=10。139。 thend22=39。en_dw=39。 opendoor=39。039。039。039。139。139。 if q2=3 then wahaha=39。039。q1=0。up=39。139。 then q1=3。 else q1=q1+1。 清除超載報(bào)警 if d1=39。 then d33=d3。139。 then c_u22=c_u2。139。 then c_d33=c_d3。139。d11。c_u11。 電梯外人下降請(qǐng)求信號(hào)并置 dd_cc=dd or cc_u or cc_d。(2)在工具欄中選擇“新建”按鈕。(6) 在“QuartusII”里選擇“Processing”下拉菜單中的“Start Compilation”,此時(shí),QuartusII軟件會(huì)對(duì)程序進(jìn)行糾錯(cuò)等處理。方法是在編輯器左邊Name下的空白處右擊選擇“Insert Node Or Bus”項(xiàng),彈出對(duì)話框如圖13所示,在Node Filter框中選“Pins:all”,單擊List按鈕,下方的Nodes Found 窗口中出現(xiàn)設(shè)計(jì)工程的所有端口引腳名。現(xiàn)在所有設(shè)置進(jìn)行完畢,在菜單Processing項(xiàng)下選擇Start Simulation,直到出現(xiàn)Simulation was successful,仿真結(jié)束。2. 電梯下降經(jīng)過(guò)5樓,4樓都不停,到達(dá)3樓開門卸客,電梯進(jìn)入預(yù)備下降狀態(tài)。仿真圖中q1從1跳到3;進(jìn)入關(guān)門狀態(tài)。如果要實(shí)現(xiàn)n層電梯的控制,首先在端口的地方就要加入所有的按鍵,而指示燈只要把向量中的6改成n就可以了。感謝所有任課老師四年來(lái)對(duì)我的培養(yǎng)。use 。 電梯門控制信號(hào) led : out std_logic_vector(6 downto 0)。architecture behav of dianti issignal d11,d22,d33,d44,d55,d66:std_logic。 開門使能信號(hào)signal updown:std_logic。q2=0。 超載報(bào)警if q1=3 then door=10。 故障報(bào)警 else if opendoor=39。039。 關(guān)門中斷