【正文】
我想這次實踐不僅使我們學(xué)科學(xué)知識這么簡單,它還使我們明白了很多的道理,例如如何在絕望中尋找希望,陽光總在風(fēng)雨后等等,我想對每一個同學(xué)而言,這番經(jīng)歷 都將使其獲益終生。 俗話說寫程序容易,調(diào)試程序難,通過這次實踐我真正體會到了這句話的深刻含義,尤其是對做電梯的同學(xué)來說,體會會更深一些,電梯本身并不復(fù)雜,就是那么幾個狀態(tài),之所以難完全是因為電梯的模塊較少,集成度比較高,主程序模塊的代碼非常長(平均大概是170 行左右,高的可達 250 多行),這就給調(diào)試造成了極大的不方便,因為 代碼少,出現(xiàn)錯誤的概率也比較小。在應(yīng)用 VHDL 的過程中讓我真正領(lǐng)會到了其并行運行與其他軟件( C 語言)順序執(zhí)行的差別及其在電路設(shè)計上的優(yōu)越性。 注釋: 由于有的信號名字太長無法全部顯示出來,現(xiàn)特意標(biāo)示(每幅圖都一樣),信號的名稱依次為: alarm alarmled clk1 delay dengwo dooropenled down2 down3 down4 downled It1 It2 It3 It4 led1 led2 led3 led4 lock overweight overweightled quick up1 up2 up3 upled 。 5 電梯開門延時模擬 電梯受到一個不馬上關(guān)門信號( dengwo=’1’),電梯關(guān)上的門重新打開,并延長一段時間門。先是一樓有向上請求想到二樓去同時二樓有向上請求到四樓去,接著四樓有下降請求回到一樓,電梯運行情況是:電梯在一樓(一樓指示燈 led1 亮)時開門持續(xù) 6 秒(波形上可以看到開門燈亮),關(guān)門后,電梯向上運行(上行指示燈亮 2 秒),到二樓后(二樓指示燈 led2 亮),電梯開門(同樣開門燈持續(xù)亮六秒),接著電梯繼續(xù)上升,上行指示燈亮 2 秒,到三樓時,三樓指示燈 led3 亮,電梯繼續(xù)向上運行,上行指示燈亮 2 秒,到達四樓時四樓指示燈亮,同時電梯門打開(開門燈亮 6 秒),關(guān)門后,電梯向下運行(下降指示燈亮 2 秒),到達三樓時三樓指示燈亮,電梯繼續(xù)向下運行(下降指示燈亮 2 秒),到達 2 樓時二樓指示燈亮,電梯繼續(xù)向下運行(下降指示燈亮兩秒),到達一樓時,電梯門打開(開門燈亮),關(guān)門后沒有 其它請求,電梯停止運行。 end xin。 end if。 電梯停止運行,進入上鎖狀態(tài) end if。039。039。039。039。039。039。039。039。039。 state=rukou。 when stop=if position1 then stopcun(0)=39。 請求沒有執(zhí)行完畢,繼續(xù)執(zhí)行程序 else state=stop。 then state=wait6。 if dengwo=39。 延時過程 when wait9= dooropenled=39。 when wait7=state=wait8。 when wait5=state=wait6。 when wait3=state=wait4。 延時關(guān)門,電梯開門后 過九秒關(guān)門 else state=wait5。139。 then state=wait7。 電梯到達樓層后,停兩秒再開門 when wait2= if quick=39。139。 電梯進入開門狀態(tài)且將與所在樓層相關(guān)的請求清除 when dooropen =state=wait1。 7 / 12 end if。039。139。 end if。 then downcun(1)=39。 if downcun(1)=39。039。139。end if。 then stopcun(1)=39。 if stopcun(1)=39。039。139。 end if。 then upcun(1)=39。 elsif position=2 then if upcun(1)=39。039。139。end if。 then upcun(0)=39。if position=1 then if upcun(0)=39。 then state=down。 and downcun(0) =39。 and upcun(1)=39。 電梯在三樓且當(dāng)前層沒有請求,電梯繼續(xù)下降 elsif position=2 and dd30010 and stopcun(1)=39。039。039。039。 end if。led4=39。led3=39。led2=39。 else led1=39。led1=39。led3=39。led2=39。 elsif position=4 then led4=39。led4=39。led1=39。led2=39。 elsif position=3 then led3=39。led4=39。led3=39。led1=39。 elsif position=2 then led2=39。led4=39。led3=3