仿真圖proteus 7.8
程序編譯器:keil 4/keil 5
編程語言:C語言
設(shè)計編號:C0072
主要功能:
結(jié)合實際情況,基于51單片機設(shè)計一個四層電梯單片機控制系統(tǒng)。該系統(tǒng)應(yīng)滿足的功能要求為:
4層電梯運行控制,轎內(nèi)外呼叫,運行狀態(tài)顯示。獨立鍵盤、LED顯示樓層、指示燈。
1.通電后,系統(tǒng)默認電梯停在一層。
2.按下不同的按鍵電梯可以到達不同的樓層,如果電梯在上行,下面的樓層有呼叫電梯會繼續(xù)上行,直到上行完了才會下行。同樣如果電梯在下行,上面的樓層有呼叫 電梯會繼續(xù)上行 ,直到下行完了才會上行。
3.如需上行,請按下所要到達樓層的上行呼叫按鈕,電梯顯示開始上行,所經(jīng)樓層號用數(shù)碼管進行顯示,到達,樓層號持續(xù)顯示,并有蜂鳴器鳴叫以示到達。
4.當轎廂停留在中間樓層時,可實現(xiàn)上或下行呼叫,行進方向按呼叫順序進行,如同時呼叫,則堅持先上行,后下行原則。
5.由LED箭頭指示電梯是上行和下行的方向。
6.如上下行同時呼叫,則按先上后下原則實現(xiàn) 。
7.電梯具有報警功能。
仿真說明
開始仿真,初始化電梯停在1樓。
按下電梯完按鈕四樓,上行指示燈電路,電梯點擊開始工作。此時顯示欄會顯示經(jīng)過的樓層。
電梯到達四樓,數(shù)碼管顯示4,蜂鳴器報警1秒,電梯點擊停止轉(zhuǎn)動,電梯運行指示燈熄滅。
電梯內(nèi)按下報警按鈕,樓層顯示顯示E,蜂鳴器短促響。再按一次報警按鈕,系統(tǒng)功能恢復(fù)正常。
程序設(shè)計
系統(tǒng)工作流程:
(1)用程序初始化完成,電梯停在一樓。
(2)顯示模塊顯示當前樓層,主程序不斷地執(zhí)行鍵盤掃描程序,當有鍵盤輸入時,主程序讀取按鍵值。
(3)讀取到按鍵之后,主程序調(diào)用顯示子程序,通過顯示上下和當前樓層信息和LED輸出當前按下鍵的信息以及開關(guān)門的信息向操作人員傳遞信息。
(4)通過判斷當前電梯所在樓層和電梯內(nèi)人員操作,完成電梯運作。停在最終樓層等待按鍵輸入。
關(guān)鍵代碼:
void main()
{
P0=Tab[Now];//開機電梯在1樓
while(1)
{
P0=Tab[Now]; //顯示當前樓層
if(Now==4)//電梯在4樓處理方法
{
Fourth_Process();
}
if(Now==3) //電梯在3樓處理方法
{
Third_Process();
}
if(Now==2) //電梯在2樓處理方法
{
Second_Process();
}
if(Now==1) //電梯在1樓處理方法
{
First_Process();
}
}
}
原理圖
單片機最小系統(tǒng)電路
單片機最小系統(tǒng)包括復(fù)位電路和時鐘電路。具體電路如圖3-1所示。
復(fù)位電路雖然簡單,但其作用非常重要。一個單片機系統(tǒng)能否正常運行,首先要檢查是否能復(fù)位成功。初步檢查可用于示波器探頭監(jiān)視RST引腳,按下復(fù)位鍵,觀察是否有足夠幅度的波形輸出(瞬時的),還可以通過改變復(fù)位電路阻容值進行試驗。本復(fù)位電路采用上電自動復(fù)位和手動復(fù)位組合。上電自動復(fù)位是在加電瞬間電容通過充電來實現(xiàn)的,在通電瞬間,電容C3通過R1K電阻充電,RST端出現(xiàn)正脈沖,用以復(fù)位。只要電源Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位,即接通電源就完成了系統(tǒng)的復(fù)位初始化。手動復(fù)位是通過按下S111后,通過電阻RR直接給服務(wù)端一個高電平使之復(fù)位。編程初始化設(shè)置數(shù)碼管顯示為1,并且等待樓層模擬傳感器讀取數(shù)據(jù)。
單片機最小系統(tǒng)包括復(fù)位電路。具體電路如圖3所示。
復(fù)位電路雖然簡單,但其作用非常重要。一個單片機系統(tǒng)能否正常運行,首先要檢查是否能復(fù)位成功。初步檢查可用于示波器探頭監(jiān)視RST引腳,按下復(fù)位鍵,觀察是否有足夠幅度的波形輸出(瞬時的),還可以通過改變復(fù)位電路阻容值進行試驗。本復(fù)位電路采用上電自動復(fù)位和手動復(fù)位組合。上電自動復(fù)位是在加電瞬間電容通過充電來實現(xiàn)的,在通電瞬間,電容C3通過R1K電阻充電,RST端出現(xiàn)正脈沖,用以復(fù)位。只要電源Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位,即接通電源就完成了系統(tǒng)的復(fù)位初始化。手動復(fù)位是通過按下S111后,通過電阻RR直接給服務(wù)端一個高電平使之復(fù)位。編程初始化設(shè)置數(shù)碼管顯示為1,并且等待樓層模擬傳感器讀取數(shù)據(jù)。
開關(guān)控制電路
實際上即為一個內(nèi)呼外叫系統(tǒng),現(xiàn)以呼叫信號的輸入為例,來說明信號輸入及單片機識別原理。如圖3所示,采用獨立按鍵外接上拉電阻的并行輸入形式,來輸入外呼叫信號,具體原理如下: 當IO口檢測到低電平,代表按鍵按下。
PCB圖
資料清單
資料獲取方式,掃碼后面的二維碼~發(fā)送 電梯