【正文】
or downlight(3)=39。停止:該狀態(tài)的下一狀態(tài)為dooropen。 uplight(position)=39。)then uplight(2)=39。外部沒有請(qǐng)求時(shí),電梯等待4秒關(guān)門。雖然此時(shí)二層有下樓請(qǐng)求,但由于此時(shí)電梯處于上升模式,所以電梯在二層不停。電梯內(nèi)部要求停在三層同時(shí)二層外部有上樓請(qǐng)求,則電梯停在二層,開門,由于沒有關(guān)門請(qǐng)求,電梯等待4秒自動(dòng)關(guān)門。input pin=8。input pin=13。output pin=20 udsig0chip=lift。雖然本設(shè)計(jì)能基本實(shí)現(xiàn)上述的功能,但是也存在一定的問題:仿真中參數(shù)的設(shè)置問題。在日常應(yīng)用中,由于選用的硬件以及使用環(huán)境的問題,延時(shí)問題可能會(huì)進(jìn)一步顯著。use 。architecture behav of flift istype state_type is(stoponl,dooropen,doorclose,wait1,wait2,wait3,wait4,up,down,stop)。 end if。) then case state is when stoponl=doorlight=39。039。) then state=doorclose。 when wait4=state=doorclose。 elsif(stoplight(3)=39。 end if。 or uplight(2)=39。039。 state=doorclose。 state=up。 elsif(stoplight(1)=39。 end if。 or uplight(2)=39。139。 state=doorclose。 state=down。 or downlight(2)=39。139。 or downlight(2)=39。139。139。butt: process( buttclk) 讀按鍵、控制指示燈進(jìn)程 begin if(buttclk39。039。139。039。139。139。 end if。end process。 if(position=3) then dout=0011。139。139。139。039。139。039。 end if。139。139。 電梯下一層 if (pos=2 and (uplight(2)=39。139。 電梯上一層 if (pos=2 and (uplight(2)=39。 else udsig=39。 elsif(position=3) then 電梯在3層 if(stoplight =000 and uplight=000 and downlight=000)then udsig=39。139。 or downlight(2)=39。039。039。 else udsig=39。 elsif (position=1) then 電梯在1層 if(stoplight=000 and uplight=000 and downlight=000)then udsig=39。139。 or downlight(2)=39。139。139。 else state=wait4。 when wait2= 開門等待2秒 if(close=39。039。event and fliclk=39。139。 dout:out std_logic_vector(3 downto 0))。use 。通過調(diào)試仿真觀察,可以看到本系統(tǒng)的信號(hào)延時(shí)在10ms左右。output pin=336 結(jié)論分析設(shè)計(jì)要求可知用狀態(tài)機(jī)實(shí)現(xiàn)電梯的控制比較簡(jiǎn)便,通過各個(gè)狀態(tài)的分析找出關(guān)系,逐步分解各個(gè)狀態(tài),進(jìn)行設(shè)計(jì)。input pin=19。input pin=12。input pin=126。外部沒有請(qǐng)求時(shí),電梯等待4秒關(guān)門。外部沒有請(qǐng)求時(shí),電梯等待4秒關(guān)門。 4 系統(tǒng)仿真電梯運(yùn)行情況分析,選取幾個(gè)典型運(yùn)行情況進(jìn)行分析。 elsif(up2=39。) then stoplight(position)=39。如果此時(shí)電梯在二層同時(shí)二層外部有上升或下降的請(qǐng)求或電梯內(nèi)部有在二層下的請(qǐng)求,則進(jìn)入下一狀態(tài)stop。 elsif(pos=2 and (stoplight(3)=39。 pos:=pos+1。當(dāng)處于上升模式,同時(shí)電梯位于一層,如果此時(shí)電梯的內(nèi)部與外部都沒有請(qǐng)求,電梯仍為上升模式,并進(jìn)入下一狀態(tài)doorclose;如果此時(shí)電梯內(nèi)部有在一層下的請(qǐng)求或一層外部有上樓請(qǐng)求,電梯進(jìn)入下一狀態(tài)dooropen;否則電梯仍為上升模式,并進(jìn)入下一狀態(tài)up。139。 end if。 elsif(stoplight(3)=39。開門等待3秒:如果此時(shí)有關(guān)門請(qǐng)求,則轉(zhuǎn)入下一狀態(tài)doorclose;如果沒有請(qǐng)求,則下一狀態(tài)為wait4。 cleardn=39。139。 end if。 在狀態(tài)機(jī)進(jìn)程中,在電梯的上升狀態(tài)中,通過對(duì)信號(hào)燈的判斷,決定下一個(gè)狀態(tài)是繼續(xù)上升還是停止;在電梯下降狀態(tài)中,也是通過對(duì)信號(hào)燈的判斷,決定下一個(gè)狀態(tài)是繼續(xù)下降還是停止;在電梯停止?fàn)顟B(tài)中,判斷是最復(fù)雜的,通過對(duì)信號(hào)的判斷,決定電梯是上升、下降還是停止。 ——樓層指示燈 doorlight:out std_logic。 ——二樓上升按鈕 down2:in std_logic。 use 。當(dāng)按下梯內(nèi)關(guān)門按鈕時(shí)立刻響應(yīng)關(guān)門操作,否則,開門4秒后,電梯門關(guān)閉,開門指示燈滅,電梯繼續(xù)運(yùn)行,直至執(zhí)行完最后一個(gè)請(qǐng)求信號(hào)后停在當(dāng)前層??梢詫㈦娞莸却拿棵腌娨约伴_門、關(guān)門都看成一個(gè)獨(dú)立的狀態(tài)。當(dāng)電梯在一樓時(shí),不管是梯內(nèi)梯外,電梯都只可能接收到上升的請(qǐng)求信號(hào)。電子設(shè)計(jì)自動(dòng)化(EDA)是一種實(shí)現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動(dòng)化的技術(shù),它與電子技術(shù)、微電子技術(shù)的發(fā)展密切相關(guān),它吸收了計(jì)算機(jī)科學(xué)領(lǐng)域的大多數(shù)最新研究成果,以高性能的計(jì)算機(jī)作為工作平臺(tái),促進(jìn)了工程發(fā)展。本文采用VHDL語言來設(shè)計(jì)實(shí)用三層電梯控制器,其代碼具有良好的可讀性和易理解性,源程序經(jīng)A1tera公司的MAX+plus II軟件仿真,目標(biāo)器件選用CPLD器件。對(duì)于電梯的控制,隨著技術(shù)的不斷發(fā)展,微型計(jì)算機(jī)在電梯控制上的應(yīng)用日益廣泛,現(xiàn)在已進(jìn)入全微機(jī)化控制的時(shí)代。這就注定了必須合理的利用土地去解決人與土地的矛盾。本設(shè)計(jì)就是使用一片CPLD/FPGA來實(shí)現(xiàn)對(duì)電梯的控制的。隨著超大規(guī)模集成電路(Very Large Scale Integration)規(guī)模和技術(shù)復(fù)雜度的急劇增長(zhǎng),一塊芯片內(nèi)集成門可達(dá)幾十萬甚至幾百萬門,并且還在迅速增長(zhǎng),電子系統(tǒng)人工設(shè)計(jì)已十分困難,必須依靠電子設(shè)計(jì)自動(dòng)化技術(shù)。在MAX+plusⅡ上可以完成設(shè)計(jì)輸入、元件適配、時(shí)序仿真和功能仿真[5]、編程下載整個(gè)流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程[6]。當(dāng)電梯在二樓時(shí),電梯則可能出現(xiàn)三種情況:電梯并沒有接收到梯內(nèi)梯外的任何請(qǐng)求信號(hào)時(shí),電梯停在二樓待機(jī);電梯接收到上升請(qǐng)求信號(hào),進(jìn)入預(yù)上升狀