電梯控制器單片機_第1頁
電梯控制器單片機_第2頁
電梯控制器單片機_第3頁
電梯控制器單片機_第4頁
電梯控制器單片機_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于單片機控制的電梯控制器機電113 楊碩1 引言隨著現(xiàn)代高科技的發(fā)展,住房和辦公用樓都已經(jīng)逐漸向高層發(fā)展。電梯是高層賓館、商店、住宅、多層倉庫等高層建筑不可缺少的垂直方向的交通運輸工具。1889年美國奧梯斯升降機公司推出的世界上第一部以電動機為動力的升降機,同年在紐約市馬累特大廈安裝成功。隨著建筑物規(guī)模越來越大,樓層也越來越高,對電梯的調(diào)速精度、調(diào)速范圍等靜態(tài)和動態(tài)特性都提出了更高的要求。由于傳統(tǒng)的電梯運行邏輯控制系統(tǒng)采用的是繼電器邏輯控制線路。采用這種控制線路,存在易出故障、維護不便、運行壽命較短、占用空間大等缺點。而由單片機設計的控制系統(tǒng)可以隨著設備的更新而不斷

2、修改完善,更完美的實現(xiàn)設備的升級,且有價格便宜,電路簡單,出現(xiàn)故障容易維護等優(yōu)點。2 總體設計方案 電梯控制系統(tǒng)由外部呼叫,內(nèi)部呼叫電機部分組成。電梯在各樓層的定位本應采用行程開關或者傳感器,由于條件限制,采用延時控制。相鄰樓層間升降時間設為3秒。2.1 設計思路 本設計是六層電梯的單片機控制系統(tǒng)。在電梯??康拿恳粚佣加猩舷潞艚邪粹o(六樓只有向下呼叫按鈕,一樓只有向上呼叫按鈕),需要電梯的乘客只需按一下呼叫按鈕,然后等待電梯,進入電梯后電梯有六個樓層的內(nèi)部呼叫按鈕,乘客要到哪一層只需按下其按鈕,轎廂內(nèi)有一個由數(shù)碼管組成的顯示屏,它用來顯示轎廂的樓層,在每一層廳站的門外有兩個發(fā)光二極管用來顯示轎

3、廂此刻的上下行。2.2 設計方框圖樓層電梯呼叫按鍵電梯內(nèi)部呼叫按鍵樓層顯示數(shù)碼管電機控制電路單片機圖1 設計方框圖3電梯控制系統(tǒng)原理分析3.1硬件系統(tǒng)實現(xiàn) 硬件由單片機最小系統(tǒng)、電梯內(nèi)外呼叫電路、顯示電路、電機控制電路等組成。3.1.1AT89C51簡介本設計主要采用AT89S51芯片,如圖2所示。AT89S51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了

4、通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作。掉電模式凍結(jié)振蕩器而

5、保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產(chǎn)品的需求。圖2 AT89C513.1.2電梯內(nèi)部呼叫電路電梯內(nèi)電路如圖3所示,六個目標樓層選擇按鍵K1、K2、K3、K4、K5、K6與單片機P0口的P0.0、P0.1、P0.2、P0.3、P0.4、P0.5連接(P0口作為輸出端驅(qū)動外部電路時須外界上拉電阻)。人進入轎廂內(nèi)按下要去的樓層對應的按鍵,就會控制電機轉(zhuǎn)動,達到相應樓層。若按下的外部呼叫按鍵為上升的,則在轎廂內(nèi)按比該樓層低的按鍵,電梯不會響應;反之亦然。圖3 電梯內(nèi)部呼叫電路3.1.3 電梯外部呼叫電路 電

6、梯外部呼叫電路如圖4所示,按鍵UP1、UP2、DOWN2、UP3、DOWN3、UP4、DOWN4、UP5、DOWN5、DOWN6接單片機的P2口和P1.0、P1.1。若按下上升鍵,則電梯在上升過程中不響應下降鍵;反之亦然。圖4 電梯外部呼叫電路3.1.4 顯示樓層電路 顯示電路的作用是實時顯示電梯所在樓層,用一個八段數(shù)碼管來實現(xiàn)。電路如圖5所示。圖5 顯示樓層電路3.1.5 電機控制電路 電機采用普通直流電機,直流電機具有優(yōu)良的調(diào)速特性,調(diào)速平滑、方便,調(diào)整范圍廣;過載能力強,能承受頻繁的沖擊負載,可實現(xiàn)頻繁的無極快速啟動、制動和反轉(zhuǎn);能滿足生產(chǎn)自動化系統(tǒng)各種不同的特殊運行要求。用電機驅(qū)動芯片

7、L298來驅(qū)動。電機控制電路用來控制電機的正反轉(zhuǎn),當按下上升鍵時,電機正轉(zhuǎn),按下下降鍵時,電機反轉(zhuǎn)。電路如圖6所示。圖6 電機控制電路3.2 軟件系統(tǒng)的實現(xiàn) 調(diào)用選擇當前要去的停留3s電梯未運行或雖運行但還沒停止電梯已到目的層?是否是否啟動電梯顯示在一樓圖7 主程序流程圖電梯改為上升電梯改為下降電梯到達最頂層電梯到達最底層電梯在下降當前樓層=目的樓層繼續(xù)下行查找下一個要去的樓層若無下行需求,則反向查詢向上查找下一個要去的樓層若無按鍵需求則停止當前樓層=目的樓層延時等待3s開始是24是24是24是24是24延時等待3s否否否否圖8 選擇當前要去的樓層子程序流程圖4 總電路工作原理分析 電路通電,

8、顯示器顯示1,當按下相應的外部呼叫按鍵時,電梯運行到目的樓層,顯示器實時顯示所在樓層。當人進入轎箱內(nèi),按下要去的樓層對應的按鍵,電梯就會運行到相應位置。電梯上升途中只響應上升呼叫,下降途中只響應下降呼叫,任何反方向呼叫均無效。兩相鄰樓層之間電機運行時間為3秒。5 總結(jié)與體會 這次單片機實習已經(jīng)結(jié)束,我們學到了很多東西。查資料對于學習是很重要的,又快又好的查到想要的資料,可以提高工作效率。我們設計的電梯自動控制用到了電機,實物出來時,沒能成功控制電機正反轉(zhuǎn),讓我們知道了理論與實際的差距,也意識到理論與實際相結(jié)合的重要性。在寫程序時需要極大的耐心,一點一點的改正,達到想要的效果。附錄1 總體電路原

9、理附錄2 PCB圖附錄3 源程序sbit k1=P00;sbit k2=P01;sbit k3=P02;sbit k4=P03;sbit k5=P04;sbit k6=P05;sbit km=P06;sbit gm=P07;sbit up1=P20;sbit up2=P21;sbit down2=P22;sbit up3=P23;sbit down3=P24;sbit up4=P25;sbit down4=P26;sbit up5=P27;sbit down5=P10;sbit down6=P11;sbit d11=P12;sbit d12=P13;sbit d21=P14;sbit d22=

10、P15;sbit pwm1=P16;sbit pwm2=P17;sbit LedUp=P37;sbit LedDown=P36;#include<reg51.h>#include"電梯.h"void DianTiKey(); #define uchar unsigned charchar KeyValueOld; /內(nèi)部按鍵上次值char KeyValueOOld;/外部按鍵上次值char NowFloor;/當前所在樓層char KeyValue;/電梯內(nèi)部按鍵暫存值char KeyValueO;/電梯外部按鍵暫存值char GoFloor5;/要去樓層暫存G

11、oFloor1=1 2樓在呼叫上升 GoFloor1=2 2樓在呼叫下降char t;/電梯 運行/停止標/上升/下降 志位 t=0電梯沒有運行 t=11電梯在上升 t=10電梯下降uchar code play=0xff,0xd7,0x32,0x92,0xd4,0x98,0x18;/串口顯示字型碼unsigned int TimeValue;/ 定時器計數(shù)char Num;void delay(unsigned int a)/unsigned int i;TH0=(65535-10000)/256;TL0=(65535-10000)%256;TimeValue=0;TR0=1;while(T

12、imeValue<a)DianTiKey(); /多人電梯功能添加部分TR0=0;void ShangSheng()/驅(qū)動電機上升函數(shù)int i;t=11;LedUp=0;LedDown=1;for(i=0;i<10;i+)d11=1,d12=0,d21=0,d22=0;delay(5);d11=1,d12=1,d21=0,d22=0;delay(5);d11=0,d12=1,d21=0,d22=0;delay(5);d11=0,d12=1,d21=1,d22=0;delay(5);d11=0,d12=0,d21=1,d22=0;delay(5);d11=0,d12=0,d21=1

13、,d22=1;delay(5);d11=0,d12=0,d21=0,d22=1;delay(5);d11=1,d12=0,d21=0,d22=1;delay(5);t=0;/d11=1,d12=1,d21=1,d22=1;LedDown=1;LedUp=1;void XiaJiang()/驅(qū)動電機下降函數(shù) int i;t=10;LedDown=0;LedUp=1;for(i=0;i<10;i+)d11=0,d12=0,d21=0,d22=1;delay(5);d11=0,d12=0,d21=1,d22=1;delay(5);d11=0,d12=0,d21=1,d22=0;delay(5)

14、;d11=0,d12=1,d21=1,d22=0;delay(5);d11=0,d12=1,d21=0,d22=0;delay(5);d11=1,d12=1,d21=0,d22=0;delay(5);d11=1,d12=0,d21=0,d22=0;delay(5);d11=1,d12=0,d21=0,d22=1;delay(5);t=0;/d11=1,d12=1,d21=1,d22=1;LedDown=1;LedUp=1;void Go() /電梯內(nèi)部按鍵響應程序char temp;if(KeyValue!=KeyValueOld)KeyValueOld=KeyValue;temp=NowFl

15、oor-KeyValue;if(t=0)if(temp>0) /電梯執(zhí)行上升 while(temp>0)ShangSheng();Num+;if(GoFloorNum!=0)if(GoFloorNum&0x01)+(GoFloorNum&0x04)>0);temp-;SBUF=play-NowFloor;while(!TI);TI=0;NowFloor=KeyValue;if(temp<0) /電梯執(zhí)行下降while(temp<0)XiaJiang();temp+;SBUF=play+NowFloor;while(!TI);TI=0;NowFloo

16、r=KeyValue; /此電梯功能只適合一個人乘車 多人程序還沒有實現(xiàn) /*else /多人乘坐電梯處理部分KeyValue=GoFloori;temp=NowFloor-KeyValue;if(tt=11)if(temp>0)while(temp>0)ShangSheng();temp-NowFloor=KeyValue;else if(t=10)if(temp<0) /電梯執(zhí)行下降while(temp<0)XiaJiang();temp+NowFloor=KeyValue; */void OutKey() /外部按鍵響應程序char temp;if(KeyValu

17、eO!=KeyValueOOld)/按鍵是否按下KeyValueOOld=KeyValueO;temp=NowFloor-KeyValueO;if(t=0) if(temp>0) /電梯執(zhí)行上升while(temp>0)ShangSheng();temp-;SBUF=play-NowFloor;while(!TI);TI=0;NowFloor=KeyValueO;if(temp<0) /電梯執(zhí)行下降while(temp<0)XiaJiang();temp+;SBUF=play+NowFloor;while(!TI);TI=0;NowFloor=KeyValueO; vo

18、id DianTiKey() /電梯按鍵掃描函數(shù)switch(P0)case 0x01:KeyValue=1;GoFloor0|=4;break;case 0x02:KeyValue=2;GoFloor1|=4;break;case 0x04:KeyValue=3;GoFloor2|=4;break;case 0x08:KeyValue=4;GoFloor3|=4;break;case 0x10:KeyValue=5;GoFloor4|=4;break;case 0x20:KeyValue=6;GoFloor5|=4;break;case 0x40:break;case 0x80:break;

19、if(t=0) switch(P2) /上升按鍵掃描case 0x01:GoFloor0|=1;KeyValueO=1;break;/1樓呼叫上升case 0x02:GoFloor1|=1;KeyValueO=2;break;/2樓呼叫上升case 0x04:GoFloor2|=1;KeyValueO=3;break;/3樓呼叫上升case 0x08:GoFloor3|=1;KeyValueO=4;break;/4樓呼叫上升case 0x10:GoFloor4|=1;KeyValueO=5;break;/5樓呼叫上升 case 0x20:GoFloor0|=2;KeyValueO=2;brea

20、k;/2樓呼叫下降case 0x40:GoFloor1|=2;KeyValueO=3;break;/3樓呼叫下降case 0x80:GoFloor2|=2;KeyValueO=4;break;/4樓呼叫下降 if(!down6)GoFloor4|=2; /6樓呼叫下降KeyValueO=6;if(!down5) /5樓呼叫下降GoFloor3|=2; KeyValueO=5;else if(t=11) /電梯在上升時響應上升呼叫switch(P2) /上升按鍵掃描case 0x01:GoFloor0|=1;KeyValueO=1;break;/1樓呼叫上升case 0x02:GoFloor1|=1;KeyValueO=2;break;/2樓呼叫上升case 0x04:GoFloor2|=1;KeyValueO=3;break;/3樓呼叫上升case 0x08:GoFloor3|=1;KeyValueO=4;break;/4樓呼叫上升case 0x10:GoFloor4|=1;KeyValueO=5;bre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論