基于FPGA的電梯控制器系統(tǒng)設(shè)計(jì)
c. 電梯控制器模塊和指示模塊:該模塊根據(jù)各層按鈕被按下的情況,控制電梯運(yùn)行,并設(shè)置指示燈。模塊定義如下:
module Lift_cONtrol(
keyclk, //處理按鍵時(shí)鐘
liftclk, //電梯運(yùn)行控制時(shí)鐘
reset, //電梯復(fù)位按鈕,復(fù)位后電梯停在一樓;
stop_r, //電梯內(nèi)各層按鍵信息
up_r, //電梯外各層向上按鍵信息
down_r, //電梯外各層向下按鍵信息
position, //當(dāng)前樓層位置,每1位代表1層,當(dāng)相應(yīng)的位置1時(shí)表示電梯運(yùn)行至該層;
stoplight, //內(nèi)部各層按鈕指示燈,每1位代表1層,當(dāng)相應(yīng)位置1時(shí)表示指示該層指示燈亮;
uplight, //除頂層外各層外部按鈕指示燈,每1位代表1層,當(dāng)相應(yīng)位置1時(shí)表示該層up燈亮;
downlight, //除首層外各層外部按鈕指示燈,每1位代表1層,當(dāng)相應(yīng)的位置1時(shí)表示該層的down指示燈亮;
doorlight); //用于開(kāi)門(mén)指示燈,為1表示開(kāi)門(mén),為0表示關(guān)門(mén)
d. 顯示模塊:該模塊用于譯碼顯示當(dāng)前電梯所在樓層,模塊定義如下:
module Display(liftclk,position,disp);
2.2 模塊設(shè)計(jì)與實(shí)現(xiàn)
對(duì)于分頻器模塊、按鍵請(qǐng)求模塊、電梯控制器模塊和指示模塊和顯示模塊這四個(gè)模塊,電梯控制器模塊和指示模塊涉及到電梯各種運(yùn)行情況的處理,其算法是最復(fù)雜的,也是最容易出錯(cuò)的。本文采用使用有限狀態(tài)機(jī)來(lái)設(shè)計(jì)該模塊,具體的算法描述如下。
將電梯運(yùn)行定義為7個(gè)狀態(tài),具體的狀態(tài)定義如下:
S0:onfloor1,表示在樓層1;
S1:dooropen_up,上升過(guò)程中,電梯開(kāi)門(mén)5s;
S2:doorclose_up,上升過(guò)程中,電梯關(guān)門(mén);
S3:up_lift,表示電梯上升一層;
S4:dooropen_down,下降過(guò)程中,電梯開(kāi)門(mén)5s;
S5:doorclose_down,下降過(guò)程中,電梯關(guān)門(mén);
S6:down_lift,表示電梯下降一層。
評(píng)論