2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  學(xué)位論文</b></p><p>  電梯控制系統(tǒng)的仿真設(shè)計</p><p> 論文作者姓名:</p><p> 申請學(xué)位專業(yè):計算機科學(xué)與技術(shù)</p><p> 申請學(xué)位類別:工學(xué)學(xué)士</p><p> 指導(dǎo)教師姓名(職稱):</p><p>

2、; 論文提交日期:2008年6月3 日</p><p>  電梯控制系統(tǒng)的仿真設(shè)計</p><p><b>  摘 要</b></p><p>  本課題是以現(xiàn)有的建筑中電梯控制及運行的情況為設(shè)計電梯控制系統(tǒng)的參照準(zhǔn)則,設(shè)計仿真系統(tǒng)。目的在于深刻理解電梯的運行控制過程,熟練掌握運用單片機設(shè)計仿真系統(tǒng)的過程,且能更好的理解電梯調(diào)度的算法。在已有

3、的電梯群控算法研究中,選擇適合的調(diào)度算法用于本系統(tǒng),在此基礎(chǔ)上,加入自己的理解和改進,這是本課題設(shè)計的意義所在。以兩臺六層樓電梯為仿真設(shè)計對象,以AT89C51單片機為核心,輔以相應(yīng)的軟硬件,設(shè)計仿真電路圖,用LED和數(shù)碼管輸出顯示,以此來表征電梯的各種運行狀態(tài)及規(guī)律。利用電梯群控算法的一些思想來實現(xiàn)雙路電梯的控制,較為真實的模擬出用于6層建筑的雙路電梯的控制系統(tǒng)。該系統(tǒng)體積小,運行穩(wěn)定,在傳統(tǒng)“忙梯”算法上有一定的改進。軟件的設(shè)計過程

4、采用模塊化的編程思想,條理清晰,模塊功能分明。</p><p>  關(guān)鍵詞:雙路電梯;電梯調(diào)度;單片機仿真;并聯(lián)電梯算法</p><p>  The Simulation Design of Elevator Control System</p><p><b>  Abstract</b></p><p>  This

5、 issue is based on the reference criteria of the elevator control and operation of the elevator control system in existing building to design the simulation system. The aim is to deeply understand the operational control

6、 process of lift, and master the design process of simulation system with microcontroller and the various scheduling algorithm of elevator. On the basis of existing elevator group control algorithm, I select the appropri

7、ate algorithm and improve it, which is the significance </p><p>  Key words: dual lifts; elevator scheduling; microcontroller simulation; parallel connection elevator algorithm </p><p><b>

8、  目 錄</b></p><p><b>  論文總頁數(shù):36頁</b></p><p><b>  1 引言1</b></p><p>  1.1 課題背景1</p><p>  1.2 國內(nèi)外研究現(xiàn)狀1</p><p>  1.3 本課題研究的意義

9、2</p><p>  1.4 本課題的研究方法2</p><p>  2 開發(fā)工具簡介3</p><p>  2.1 AT89C51單片機3</p><p>  2.2 編程軟件3</p><p>  2.3 模擬軟件3</p><p><b>  3 需求描述4<

10、/b></p><p>  3.1 模擬對象4</p><p>  3.2 按鈕情況4</p><p>  3.3 運行狀態(tài)顯示情況4</p><p>  3.4 電梯控制系統(tǒng)功能要求4</p><p>  3.4.1響應(yīng)外部請求功能4</p><p>  3.4.2 響應(yīng)內(nèi)部請

11、求5</p><p>  3.4.3 顯示信息功能5</p><p>  3.5 用戶特點5</p><p>  3.6 使用頻度5</p><p>  3.7 處理流程6</p><p>  4 仿真電路圖設(shè)計7</p><p>  4.1 設(shè)計仿真電路圖7</p>

12、<p>  4.2 仿真圖說明7</p><p>  5 系統(tǒng)結(jié)構(gòu)設(shè)計9</p><p>  5.1 模塊設(shè)計9</p><p>  5.2 系統(tǒng)處理流程10</p><p>  5.3 系統(tǒng)結(jié)構(gòu)描述11</p><p>  5.4 功能與程序的關(guān)系11</p><p>

13、  6 單片機編程12</p><p>  6.1 單片機引腳使用情況12</p><p>  6.1.1 從機引腳使用說明12</p><p>  6.1.2 主機引腳使用說明12</p><p>  6.2 串行通信12</p><p>  6.2.1需求概述12</p><p>

14、;  6.2.2 串行通信概述13</p><p>  6.2.3 本設(shè)計中的串行通信具體說明13</p><p><b>  6.3 中斷13</b></p><p>  6.3.1 需求概述13</p><p>  6.3.2 中斷概述13</p><p>  6.3.3 串行通信中

15、斷14</p><p>  6.3.4 定時/計數(shù)器中斷14</p><p>  6.4 定時器設(shè)置14</p><p>  6.4.1 串行通信定時設(shè)置14</p><p>  6.4.2 定時/計數(shù)器設(shè)置14</p><p>  6.5 行列式鍵盤15</p><p>  6.5

16、.1段數(shù)碼管動態(tài)掃描顯示15</p><p>  6.5.2 LED燈泡顯示16</p><p>  7 軟件設(shè)計概述17</p><p>  7.1 軟件設(shè)計總體流程17</p><p>  7.2 電梯群控概述18</p><p>  7.3 忙梯算法18</p><p>  7

17、.3.1算法概述18</p><p>  7.3.2 算法評價19</p><p>  7.3.3 算法的改進之處19</p><p>  7.4 電梯調(diào)度算法流程21</p><p>  7.5 程序代碼及說明21</p><p>  7.5.1 確定請求類型函數(shù)21</p><p&g

18、t;  7.5.2 運行參數(shù)設(shè)置函數(shù)23</p><p>  7.5.3 外部請求處理函數(shù)24</p><p>  7.5.4 電梯調(diào)度算法25</p><p><b>  8 測試27</b></p><p><b>  9 評價32</b></p><p>  

19、9.1 總體評價32</p><p>  9.2 缺陷與不足32</p><p>  9.3 需改進之處32</p><p><b>  結(jié)束語32</b></p><p><b>  參考文獻34</b></p><p><b>  致 謝35&

20、lt;/b></p><p><b>  聲 明36</b></p><p><b>  1 引言</b></p><p><b>  1.1 課題背景</b></p><p>  電梯是現(xiàn)代生活中必不可少的高層建筑垂直交通的工具。隨著生活水平的不斷提高,高層建筑

21、規(guī)模的不斷擴大,出現(xiàn)越來越多的電梯公寓,電梯辦公樓,且人們對電梯運行的效率要求也越來越高。電梯客流量的不斷增多,單部電梯已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足及時高效的要求。因此,高層建筑的電梯大多采取雙路或多路電梯共同作業(yè)的方式。然而僅靠電梯數(shù)量的增加,不僅不能滿足現(xiàn)代樓宇的多種要求,還會帶來諸如環(huán)境污染、能源消耗、運行效率低的問題。于是,多路電梯并聯(lián)的控制問題則成了首要應(yīng)解決的問題。為了進一步的提高電梯運載效率,更好的為乘客服務(wù),合理的電梯的調(diào)度算法,則

22、成為了研究的重點問題。電梯群控技術(shù),則是在這樣的背景下提出的,用來解決復(fù)雜的、非線性、不確定性的多目標(biāo)隨機決策問題。電梯群控技術(shù)對改善電梯控制方式,提高運載效率有很大的意義,能在提高系統(tǒng)服務(wù)質(zhì)量和運營效率的同時降低能耗。當(dāng)前電梯群控技術(shù)的研究有豐富的成果,比如基于神經(jīng)網(wǎng)絡(luò)算法控制的,基于模糊算法的解決方案,考慮乘客混雜度的電梯智能群控算法,多目標(biāo)優(yōu)化的群控算法等等。本課題基于現(xiàn)有樓宇中的雙路電梯控制系統(tǒng)和前人群控算法研究的背景來設(shè)計實施

23、的。</p><p>  1.2 國內(nèi)外研究現(xiàn)狀</p><p>  從有關(guān)的文獻看,對于電梯控制系統(tǒng)的單片機仿真設(shè)計不太多,注重單片機等有關(guān)電子器件的使用和電路設(shè)計。另一方面,由于現(xiàn)代高層樓宇的電梯大都采用兩臺或三臺甚至多臺電梯集中排列并列調(diào)度的方法,所以電梯群控技術(shù)成為這一領(lǐng)域研究的重點問題。電梯群控系統(tǒng)是通過對電梯群的運行狀態(tài)進行實時監(jiān)測與分析,再根據(jù)不同的實際情況對各電梯進行優(yōu)化調(diào)

24、度和合理分配,進而實現(xiàn)電梯系統(tǒng)對乘客的服務(wù)質(zhì)量和服務(wù)效率的改善和提高的目標(biāo)。國內(nèi)外對于電梯群控技術(shù)的研究有較為豐富的成果。在中國期刊全文數(shù)據(jù)庫中,及中國優(yōu)秀碩士論文全文數(shù)據(jù)庫中可以找到的有關(guān)電梯群控技術(shù)的相關(guān)文章較多,大體分為以下幾種研究方向,基于遺傳算法的電梯群控系統(tǒng)研究、基于模糊神經(jīng)網(wǎng)絡(luò)的電梯群控系統(tǒng)研究,多目標(biāo)優(yōu)化的智能調(diào)度算法研究及人工智能在電梯群控系統(tǒng)中的應(yīng)用等。國外也有眾多關(guān)于電梯群控技術(shù)的相關(guān)文獻,在MERL的網(wǎng)站上,和I

25、EEE Explore的網(wǎng)站上都可以查閱到許多關(guān)于電梯群控技術(shù)的文獻。國內(nèi)外的研究都注重電梯運行效率的提高,努力達到實時高效運行的目標(biāo)。</p><p>  1.3 本課題研究的意義</p><p>  本課題的研究有五個方面的意義:首先,仿真圖的設(shè)計,能提高設(shè)計者對模擬軟件的熟練使用程度,且在對電梯仿真的過程中,鍛煉設(shè)計者盡量使用簡潔明了的方式來表征電梯的運行過程。其次,單片機編程,通過

26、這個細(xì)致的工作過程,能對單片機的各種功能、使用方法、各種規(guī)范有進一步的理解,對其應(yīng)用也更加熟悉。再次,電梯調(diào)度算法的設(shè)計和實施,這是本課題研究的核心部分。通過對電梯運行及控制深入的了解,歸納出電梯運行的規(guī)范,在深刻理解的基礎(chǔ)上采用合適的算法解決。通過這個過程,提高的設(shè)計者在算法實現(xiàn)過程中的邏輯思考及模塊化的編程能力,而且對于算法的進一步改進,提高了原有算法的效率,這是在課題研究過程中收獲頗大的一個方面。最后,整個設(shè)計過程是逐步有序進行的

27、,需要統(tǒng)籌安排及合理布局,這樣鍛煉了設(shè)計者在軟件設(shè)計實現(xiàn)過程中使用軟件工程的思想及方法有效完成工作的能力。</p><p>  1.4 本課題的研究方法</p><p>  由于兩部電梯之間的相互關(guān)聯(lián)性很強,程序設(shè)計比較復(fù)雜,因此在雙電梯聯(lián)動控制系統(tǒng)的軟件部分時,主要采用8位單片機編程,用模塊化的編程思想來進行設(shè)計。這樣有利于突破沿用繼電器構(gòu)成的線路的局限,利用微處理器強大的算術(shù)邏輯運算和

28、通信功能,采用實時調(diào)度算法,實現(xiàn)快速服務(wù),達到較佳的運行效率。</p><p>  設(shè)計過程分為三個步驟進行,一是仿真圖設(shè)計,二是單片機編程,三是電梯調(diào)度算法。在仿真圖設(shè)計完成的基礎(chǔ)上,采用模塊化的編程思想,完成顯示模塊,按鍵模塊及通信模塊三個與單片機聯(lián)系密切的模塊的編程。然后在模擬軟件上測試連線及各部分輸入輸出的連線及輸入輸出正確與否。在這些工作全部完成的情況下,完成電梯調(diào)度算法模塊的編程。最后在仿真軟件是上模

29、擬實施,同時測試運行情況,若發(fā)現(xiàn)問題,則再修改程序,逐步完善。由于電梯控制系統(tǒng)實際上是一個人機交互式的控制系統(tǒng),因此單純采用順序控制或邏輯控制是不能夠滿足要求的,而應(yīng)該在設(shè)計中采用隨機邏輯控制方式。</p><p><b>  2 開發(fā)工具簡介</b></p><p>  2.1 AT89C51單片機</p><p>  AT89C51是一種帶

30、4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器

31、,AT89C51是它的一種精簡版本,其特點是:與MCS-51 兼容 ,8位CPU,片內(nèi)帶振蕩器,頻率范圍1.2MHz~12MHz、片內(nèi)帶128字節(jié)的數(shù)據(jù)存儲器,片內(nèi)帶4KB的程序存儲器,程序存儲器的尋址空間為64KB,片外數(shù)據(jù)存儲器的尋址空間為64KB,有21個字節(jié)特殊功能寄存器,4個8位并行I/O口,2個16位定時/計數(shù)器,2個優(yōu)先級別的5個中斷源,1個全雙工的串行I/O接口,可多機通信。</p><p>&l

32、t;b>  2.2 編程軟件</b></p><p>  Keil uVision:Keil uVision為一款單片機的開發(fā)軟件,支持匯編語言及高級語言的開發(fā)。Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要

33、Pentium或以上的CPU,16MB或更多RAM,20M以上空閑的硬盤空間,WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。</p><p><b>  2.3 模擬軟件</b></p><p>  Proteus:Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件,具有原理布圖、PCB自動或人工布線及電路仿真的功能。

34、他的電路仿真是互動的,針對微處理器的應(yīng)用,能直接在基于原理圖的虛擬原型上編程,并實現(xiàn)軟件源碼的實時調(diào)試,如有顯示及輸出,還能看到運行后輸入輸出的效果。</p><p><b>  3 需求描述</b></p><p><b>  3.1 模擬對象</b></p><p>  仿真設(shè)計的模擬對象為學(xué)院圖書館的雙路電梯,共6層

35、及-1層。</p><p><b>  3.2 按鈕情況</b></p><p>  每層樓的電梯門外有向上和向下的要梯按鈕各一個(6樓只有向下的要梯按鈕,-1樓只有向上的要梯按鈕)。按下按鈕,按鈕燈亮,表示請求已被記錄,再次按下,則燈熄滅,表示請求取消。兩個電梯轎廂內(nèi)有11個按鈕,分別有表示-1樓至6樓的共7個樓層請求按鈕,開/關(guān)門按鈕2個,報警按鈕1個,呼叫按鈕1

36、個。樓層及開/關(guān)門按鈕都是按下時亮,再次按下時熄滅。報警及呼叫按鈕在異常情況下使用。</p><p>  3.3 運行狀態(tài)顯示情況</p><p>  電梯外部和轎廂內(nèi)都有顯示屏幕,顯示電梯運行到哪一層,同時還顯示當(dāng)前電梯的運動方向。若電梯停在某一層,則電梯運動方向無顯示,只顯示當(dāng)前樓層號。內(nèi)外對于運行情況的顯示是相同的。</p><p>  3.4 電梯控制系統(tǒng)功

37、能要求</p><p>  3.4.1響應(yīng)外部請求功能</p><p>  能響應(yīng)用戶在電梯外的乘梯請求,從兩路電梯中選出路徑最短,代價最小的一路電梯到達用戶所在樓層。具體細(xì)則如下:</p><p><b>  外部請求響應(yīng)規(guī)則:</b></p><p>  若電梯運行向上,在上行方向上有多個向上用戶請求,則按順序先響應(yīng)

38、最近端的請求。若為多個向下請求,則按順序從最遠(yuǎn)端開始響應(yīng)。</p><p>  若電梯運行向下,在下行方向上有多個外部向下請求,則從近端開始響應(yīng),多個向上請求,則從最遠(yuǎn)端開始響應(yīng)。</p><p>  電梯響應(yīng)外部請求時,應(yīng)先遍歷電梯當(dāng)前樓層以上或以下的樓層是否有請求信號(若有向下請求,則遍歷當(dāng)前樓層以下的所有樓層,反之,則相反)按規(guī)則1)響應(yīng),到達響應(yīng)有請求的樓層。</p>

39、<p>  當(dāng)電梯響應(yīng)了某樓層的外部請求,此時在相同方向上更高(更低)的樓層又有請求出現(xiàn),則作為中斷處理,按響應(yīng)規(guī)則,先響應(yīng)更高層(更低層)的請求。執(zhí)行完后,在轉(zhuǎn)回執(zhí)行之前未完的請求。</p><p>  3.4.2 響應(yīng)內(nèi)部請求</p><p>  能響應(yīng)用戶在電梯內(nèi)的樓層選擇,到達乘客想要到達的目的樓層的請求。能響應(yīng)單個,也能按順序響應(yīng)多個合理請求。具體細(xì)則如下:</

40、p><p>  當(dāng)用戶選擇要達到的樓層不在用戶所選擇的方向上,且該方向上沿途還有其他用戶的相同方向請求(如用戶請求到達的樓層高于當(dāng)前電梯樓層數(shù),且用戶在外部發(fā)出的請求是向下的,而且在下行方向是還有其他用戶的向下請求)則不予響應(yīng)。當(dāng)用戶選擇要達到的樓層不在用戶所選擇的方向上,且該方向上沿途沒有其他用戶的相同方向請求,則響應(yīng)。</p><p>  當(dāng)用戶選擇要達到的樓層為用戶所在樓層,視為不合理請

41、求,不予響應(yīng)。</p><p>  若在同一方向上,同時有多個合理請求,則按順序完成,即若向上運行,則響應(yīng)的請求順序為從低到高,若向下運行,則響應(yīng)請求順序為從高到低。</p><p>  3.4.3 顯示信息功能</p><p>  能對電梯的運行狀態(tài)做實時顯示。</p><p>  在電梯外部能顯示電梯當(dāng)前電梯運行的方向,當(dāng)前所在樓層。&l

42、t;/p><p>  能顯示當(dāng)前外部的請求。</p><p>  在電梯內(nèi)部能顯示電梯當(dāng)前電梯運行的方向,當(dāng)前所在樓層。</p><p>  能顯示用戶在電梯內(nèi)部的內(nèi)部請求,即用戶目的地。</p><p><b>  3.5 用戶特點</b></p><p>  普通用戶:出入圖書館的學(xué)生、老師、工作

43、人員及來訪者及電梯維護人員。人員無具體限制,(嚴(yán)重心臟病,高血壓,及精神病患者需有人陪同)只要有乘坐電梯需要的用戶,均會使用到該系統(tǒng),為最終操作人員。</p><p>  維護人員:需要有電梯維修的技術(shù)專長,為被指定的維修人員。</p><p><b>  3.6 使用頻度</b></p><p>  因人流量大,軟件使用頻率很高。每天從早上8

44、點至晚上10點,中間不間斷作業(yè)。</p><p><b>  3.7 處理流程</b></p><p>  處理流程主要通過數(shù)據(jù)流圖來表現(xiàn),如圖3-1和圖3-2。</p><p>  圖3-1數(shù)據(jù)流圖第一層</p><p>  圖3-2 數(shù)據(jù)流圖第二層</p><p><b>  4 仿

45、真電路圖設(shè)計</b></p><p>  4.1 設(shè)計仿真電路圖</p><p>  根據(jù)考察的電梯運行情況,設(shè)計電路圖,要求直觀,簡潔,操作簡便。仿真圖如圖4-1所示。</p><p><b>  圖4-1仿真電路圖</b></p><p><b>  4.2 仿真圖說明</b><

46、;/p><p>  從機:圖4-1中左邊的單片機為從機,負(fù)責(zé)數(shù)據(jù)采集。</p><p>  兩列按鍵:共10個,表示每層電梯外部的向上和向下的要梯請求按鈕。左邊一列的5個按鍵表示1-5層的外部向上按鍵。右邊一列的5個表示2-6層的外部向下按鍵。這樣將對每層按鈕的模擬按鍵集中在一處,便于操作和模擬時便于觀察。實際電梯有6層再加上-1層。為設(shè)計和表示的方便,只取了6層,沒有設(shè)計-1層。</p

47、><p>  兩個4x4鍵盤按鍵:表示電梯的內(nèi)部按鍵,左邊鍵盤表示左邊電梯內(nèi)部按鍵,右邊鍵盤表示右邊電梯內(nèi)部按鍵。電梯內(nèi)部有1-6樓的樓層選擇按鍵,還有開/關(guān)門的按鍵,共8個。故選用鍵盤的中間兩排,1-6數(shù)字按鍵就表示相應(yīng)的樓層號,x表示關(guān)門,—表示開門。這里沒有設(shè)計報警和呼叫按鍵。其原因是因為:其一、這兩個按鈕只在異常情況下使用,不常用。其二、對報警和呼叫按鈕的模擬只需添加一個蜂鳴器,按下鍵則發(fā)出蜂鳴聲來表示報警或

48、者呼叫,設(shè)計相對簡單。因為兩片單片在主要的功能實現(xiàn)完后,I/O口已經(jīng)不夠用了,所以就省略了該功能。</p><p>  主機:圖4-1中右邊的單片機為主機,負(fù)責(zé)數(shù)據(jù)處理和顯示。</p><p>  藍(lán)色八段數(shù)碼管:共8個,一組4個。顯示的數(shù)字表示在電梯內(nèi)部用戶選擇的目的樓層號。左邊數(shù)碼管的顯示表示左邊電梯用戶的選擇,右邊的數(shù)碼管則相應(yīng)表示右邊的樓層選擇。電梯內(nèi)部共有6個樓層選擇的按鍵,實際

49、應(yīng)是能響應(yīng)同時5個目的樓層的選擇請求(當(dāng)前層除外),但由于單片機I/O口有限,只能同時響應(yīng)4個樓層選擇請求。由于是仿真軟件,重要的是要仿真出電梯系統(tǒng)的運行和控制過程,所以少一個請求并不會對運行效果有太多影響。</p><p>  紅色八段數(shù)碼管:共兩個,用于顯示電梯運行到的當(dāng)前樓層號。也分左右,分別顯示左右兩部電梯所在的當(dāng)前樓層號。電梯在運行過程中,顯示的樓層號,根據(jù)其運行到的樓層實時更新。根據(jù)輸出要求,電梯內(nèi)部

50、和電梯外部都應(yīng)有電梯運行到的當(dāng)前樓層的顯示,且二者顯示的內(nèi)容是完全相同的,所以為了節(jié)約I/O口的使用,將二者用一組數(shù)碼管顯示。</p><p>  LED燈管:共10個,與左邊的10個按鍵對應(yīng),是10個按鍵請求的輸出顯示表示所有樓層的外部請求。這里將按鍵與顯示分開表示,與實際梢有不同,但這樣表示顯得直觀,能在仿真過程中,看到所有樓層要梯請求的情況。燈泡分為向上和向下兩組,間隔排列,從上到下依次為向下,向上如此間隔

51、的順序。響應(yīng)的樓層及請求方向見圖上標(biāo)注。向上顯示用紅色燈表示,向下的顯示用綠色燈表示。操作時當(dāng)左邊外部按鍵有鍵被按下時,對應(yīng)樓層的燈就應(yīng)該被點亮。當(dāng)電梯響應(yīng)請求,運行到外部請求所在的樓層時,該樓的燈就熄滅,表示請求已經(jīng)被應(yīng)答。</p><p><b>  5 系統(tǒng)結(jié)構(gòu)設(shè)計</b></p><p><b>  5.1 模塊設(shè)計</b></p&

52、gt;<p>  根據(jù)需求功能要求描述,電梯控制系統(tǒng)才用模塊化的編程思想,將整個系統(tǒng)大體劃分為4個模塊。數(shù)據(jù)采集模塊,通信模塊,數(shù)據(jù)處理模塊和顯示模塊。數(shù)據(jù)采集模塊負(fù)責(zé)采集從機接收的數(shù)據(jù),即記錄按鍵的情況。通信模塊負(fù)責(zé)從機與主機之間的數(shù)據(jù)傳送,從機只傳送數(shù)據(jù),主機只接受數(shù)據(jù)。數(shù)據(jù)處理模塊負(fù)責(zé)將接受到從機傳送來的數(shù)據(jù)進行處理,利用電梯調(diào)度算法,合理調(diào)度,控制電梯運行。顯示模塊負(fù)責(zé)顯示接收到的請求數(shù)據(jù),和處理模塊處理后的結(jié)果。

53、模塊之間的關(guān)系如圖5-1。</p><p>  圖5-1 模塊結(jié)構(gòu)圖</p><p>  5.2 系統(tǒng)處理流程</p><p>  系統(tǒng)處理流程如5-2處理流程圖所示。</p><p>  圖5-2 處理流程圖</p><p>  5.3 系統(tǒng)結(jié)構(gòu)描述</p><p>  系統(tǒng)結(jié)構(gòu)主要描述系統(tǒng)中

54、不同模塊之間的關(guān)系,如圖5-3系統(tǒng)結(jié)構(gòu)圖所示。</p><p>  圖5-3 系統(tǒng)結(jié)構(gòu)圖</p><p>  5.4 功能與程序的關(guān)系</p><p>  功能與程序的關(guān)系如表5-1所示。</p><p>  表5-1 功能和程序關(guān)系表</p><p><b>  6 單片機編程</b></

55、p><p>  6.1 單片機引腳使用情況</p><p>  6.1.1 從機引腳使用說明</p><p>  單片機的最小系統(tǒng)電路一般情況不用畫出。除此之外,P0口工作在I/O方式下,接收2-5層電梯外部按鍵輸入的數(shù)據(jù),因為1層樓只有向上請求,6層樓只有向下請求,與其他樓層稍有差別,且P0口已經(jīng)分配完畢,故將1層和6層的線單獨接到P3口。因為P0口作為I/O輸入,所

56、以必須接上拉電阻。P1口工作在I/O方式下,接收左邊電梯內(nèi)部鍵盤按鍵輸入的數(shù)據(jù)。因為電梯內(nèi)部按鍵只設(shè)計了8個,故4x4的鍵盤,只選取了中間的兩行使用。為方便行列式鍵盤編程,兩條列線接P1.1和P1.2。P1.0和P1.3懸空,默認(rèn)為高電平。四條行線依次接P1.4-P1.7。P2口工作在I/O方式下,接收右邊電梯內(nèi)部鍵盤按鍵輸入的數(shù)據(jù),其電路連接情況與P1口相同。P3口的P3.6和P3.7工作在I/O方式下,接收電梯外部按鍵6層和1層的請

57、求。P3.0和P3.1采用的是其第二功能RTD和TXD,分別用于串行通信的輸出和輸入。</p><p>  6.1.2 主機引腳使用說明</p><p>  P0口工作在I/O方式下,作為2個紅色八段數(shù)碼管的顯示段選輸出,由于沒有用到小數(shù)點,故cp懸空,P0.7默認(rèn)為高電平。P1口工作在I/O方式下,作為8個藍(lán)色八段數(shù)碼管的片選輸出。P2口工作在I/O方式下,將2-5樓層的接收外部請求的輸

58、出顯示。P3口的P3.4和P3.5工作在I/O方式下,將電梯外部按鍵6層和1層的請求輸出。P3.6和P3.7工作在I/O方式下,作為2個紅色八段數(shù)碼管的片選輸出。P3.0和P3.1采用的是其第二功能RTD和TXD,分別用于串行通信的輸出和輸入。</p><p><b>  6.2 串行通信</b></p><p><b>  6.2.1需求概述</b&

59、gt;</p><p>  在設(shè)計過程中,由于仿真6層電梯,每層都需要有對應(yīng)的向上或向下要梯的10個輸入按鈕,每個轎廂內(nèi)要有8個按鈕,對按鈕的顯示相應(yīng)有LED顯示,一個單片機的I/O口不夠用,所以設(shè)計中采用兩快單片機,這就涉及兩塊單片機的通信問題。</p><p>  6.2.2 串行通信概述</p><p>  串行通信是指數(shù)據(jù)一位一位的按順序傳送的通信方式,其突

60、出優(yōu)點是只需一根傳輸線,大大降低了傳輸成本,特別適用于遠(yuǎn)距離通信,通信線路簡單。缺點是傳送速度較低。有同步傳送和異步傳送兩種方式。串行通信可通過串行接口來實現(xiàn)。</p><p>  單片機內(nèi)部有一個可編程的,全雙工的異步串行接口SBUF,有兩個獨立的發(fā)送緩沖和接受緩沖器,對外也有兩條獨立的收、發(fā)信號線RXD和TXD,可以同時發(fā)送、接受數(shù)據(jù),實現(xiàn)全雙工傳送。發(fā)送、接受數(shù)據(jù)可通過查詢或中斷方式處理,使用十分靈活,可實

61、現(xiàn)雙機、多機通信,有四種工作方式。</p><p>  6.2.3 本設(shè)計中的串行通信具體說明</p><p>  由于只有兩塊單片機,只需雙機通信,且單片機的電器特性決定傳輸數(shù)據(jù)誤差很少,可以不需要奇偶校驗,所以本設(shè)計利用串行接受在工作方式1下進行異步串行通信。工作方式1是8位異步通信方式,波特率可變。這里波特率由定時/計數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD決定,所以在工

62、作方式1下,要對定時/計數(shù)器T1進行初始化。編程過程中設(shè)定波特率為1200bps,振蕩頻率為12MHz。設(shè)計中通信的數(shù)據(jù)格式都有一定的規(guī)定,相應(yīng)的位數(shù)有特殊的意義,是為配合算法來規(guī)定的,在后面調(diào)度算法中詳細(xì)介紹。</p><p><b>  6.3 中斷</b></p><p>  6.3.1 需求概述</p><p>  由于電梯控制系統(tǒng)實際

63、上是一個人機交互式的控制系統(tǒng),因此單純采用順序控制或邏輯控制是不能夠滿足要求的,而應(yīng)該在設(shè)計中采用隨機邏輯控制進行實時控制。實時控制自然需要用到中斷完成。另一方面,串行通信采用中斷方式,也能節(jié)約CPU查詢等待的時間,提高運行效率。</p><p>  6.3.2 中斷概述</p><p>  AT89C51單片機提供了5個硬件中斷源,2個外部中斷源INTO和INT1,2個定時/計數(shù)器T0和

64、T1的溢出中斷TF0和TF1,1個串行口發(fā)送TI和接收RI中斷。AT89C51的中斷系統(tǒng),是通過以下幾個特殊功能寄存器來控制的。定時器控制寄存器TCON,中斷允許寄存器IE,中斷優(yōu)先級寄存器IP,串行口控制寄存器SCON。中斷過程,是通過操作以上寄存器的各位來控制的。</p><p>  6.3.3 串行通信中斷</p><p>  AT89C51的串行口中斷源對應(yīng)兩個中斷標(biāo)志位RI和TI

65、,無論哪個標(biāo)志位置“1”都請求串行口中斷,到底是發(fā)送中斷還是接收中斷,只有在中斷服務(wù)程序中通過指令查詢來判斷。串行口中斷響應(yīng)后,不能由硬件自動清零,必須由軟件對TI或RI清零。在程序中,需首先設(shè)置中斷允許總控位EA和串行口中斷允許位ES為“1”,然后才能進行串行通信中斷,在發(fā)送端(從機)通過判斷RI來進行數(shù)據(jù)傳送,在接收端(主機)通過判斷TI來接收數(shù)據(jù)。</p><p>  6.3.4 定時/計數(shù)器中斷</

66、p><p>  定時/計數(shù)器中斷是由TF、ET兩個標(biāo)志位控制的。當(dāng)定時/計數(shù)器TO/TI溢出時,由硬件置TF為“1”,向CPU發(fā)送中斷請求,當(dāng)CPU響應(yīng)中斷后,由硬件自動清除TF。ET為定時/計數(shù)器的溢出中斷允許位,當(dāng)ET為“1”時,才允許中斷。程序中,中斷的初始設(shè)置為ET0=1。TF由硬件自動設(shè)置。</p><p><b>  6.4 定時器設(shè)置</b></p&g

67、t;<p>  6.4.1 串行通信定時設(shè)置</p><p>  串行通信中工作方式1需設(shè)置波特率,波特率由定時/計數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD決定,所以在工作方式1下,要對定時/計數(shù)器T1進行初始化。串行通信時,定時器通常采用定時器方式2即8位重裝計數(shù)方式,這樣不但操作方便,也可避免指令重裝時間常數(shù)帶來的定時誤差。</p><p>  定時/計數(shù)器的

68、工作方式、計數(shù)(定時)值、中斷控制等都是有程序來設(shè)定的,在AT89C51單片機中,是通過特殊功能寄存器TMOD(定時器方式控制寄存器)和TCON(定時器控制寄存器)來設(shè)置的。程序中設(shè)置TMOD=0x21,即定時/計數(shù)器1在工作方式2下,定時方式。設(shè)置TCON中的TR1=1,表示開始計數(shù)。由于編程過程中設(shè)定波特率為1200bps,振蕩頻率為12MHz。</p><p>  計數(shù)初值=256- × /(1

69、2*波特率*32)=0xe6</p><p>  所以TH1=0xe6,TL1=0xe6。</p><p>  6.4.2 定時/計數(shù)器設(shè)置</p><p>  電梯的運行過程首先是idle(空閑),收到一個請求,進行計算,得出要??康牡胤?,然后進入running,每5秒爬升或降低一樓,如果到達目的地,則進入opening,并清除有關(guān)數(shù)據(jù),2秒后進入waiting,

70、等待5秒進入closing,2秒后重新進行計算,得出下次的目的地。這就需要設(shè)置電梯的速度,每5s爬一層,等待時間為5s,等待接受請求的時間為2s。由于定時/計數(shù)器方式1為16位計數(shù)器,其所能計的最大數(shù)值為65535,計時不能1s,而程序中需要的定時都是以s為單位的,所以就只有利用定時和計數(shù)兩種當(dāng)時結(jié)合來達到定時5s或者2s。由于程序中需要定時的時間不只一個,只使用一個定時器,要達到要求,采用以下的思路:定時50ms,計數(shù)20,這樣可以達

71、到1s的時間,然后再利用for循環(huán),用一個變量來計數(shù)到2或者5,表示是達到了2s或者5s ,這樣就能靈活的操作不同狀態(tài)下的時間了。程序中設(shè)置TOMD=0x21,即定時/計數(shù)器0在工作方式1下,定時方式。設(shè)置TRO=1,開始計數(shù)。計數(shù)初值有公式計算得出TH0=0x3c,TL0=0xb0。</p><p><b>  6.5 行列式鍵盤</b></p><p>  單片機

72、系統(tǒng)的鍵盤一般使用非編碼鍵盤,其特點是硬件電路簡單,必須有一套相應(yīng)的程序與之配合。使用非編碼鍵盤,需要用軟件來解決按鍵識別、防止抖動及鍵碼的產(chǎn)生等工作。采用行掃描法來識別按鍵,程序中使用的是4x4的鍵盤,只使用了中間的兩行,8條線可以接在一個I/O口上。然后通過交替變換I/O的引腳的高低電平來確定按鍵。先設(shè)置引腳高4位為高,低4位為低,當(dāng)有鍵按下時,高4位就會有相應(yīng)的一條線就會變?yōu)榈碗娖?,得到一個碼值。然后取相反的設(shè)置,有鍵按下時,低4

73、位就會有相應(yīng)的一條線就會變?yōu)榈碗娖?,則可以再得到一個碼值。最后將兩個得到的碼值相或,則可以得出鍵碼。而按鍵去抖動,才用的是在檢測到有鍵按下時,等待一段時間再進行“行掃描”,延時時間為10-20ms,這可通過延遲子程序來解決。程序中,使用4x4的鍵盤的中間兩行,有1-6層的數(shù)字,分別表示相應(yīng)的樓層號,及x和-,x表示關(guān)門,-表示開門。得到鍵碼后,還要將鍵碼轉(zhuǎn)換為對應(yīng)的鍵盤上的數(shù)字或者開/關(guān)門表示,這樣行列鍵盤的編程工作才算全部完成。<

74、;/p><p>  6.5.1段數(shù)碼管動態(tài)掃描顯示</p><p>  LED顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個鎖存器,從而大大地簡化了硬件電路。點亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫

75、留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。 </p><p>  使用7段數(shù)碼管顯示器,有共陰和共陽兩種接法,本設(shè)計中采用共陰接法。為了顯示數(shù)字或字符,必須對數(shù)字或字符進行編碼。七段數(shù)碼管加上一個小數(shù)點,共計8段。因此為LED顯示器提供的編碼正好是一個字節(jié)。</p><p>  設(shè)計中需要用到7段數(shù)碼管顯示

76、的有兩處,一是顯示所選擇的內(nèi)部請求即目的地,二是顯示電梯當(dāng)前所到達的摟層。內(nèi)部請求的顯示,最多需要同時顯示4個摟層,要用到4個7段數(shù)碼管,采用動態(tài)顯示的方式。而且為了保證顯示的樓層不斷的刷新顯示,請求被響應(yīng)的過程清晰明了,使顯示的樓層數(shù)字按從左到右,從大到小的順序排列。這樣能很明了的看出誰先被響應(yīng),響應(yīng)的順序是怎樣的。這個過程,是在程序中從6樓到1樓的數(shù)字循環(huán)檢測,有內(nèi)部請求,則顯示段碼,然后再從右到左移位片選碼,來達到從右邊開始顯示的

77、效果。然后不斷的循環(huán)檢測是否有顯示,這樣如果有3個目的地,其中一個到達后,相應(yīng)的藍(lán)色數(shù)碼管所顯示的該目的地就會熄滅。由于不斷循環(huán),后兩個目的地則會依次移動一個位置。這樣的顯示效果是因為循環(huán)顯示才完成的。</p><p>  6.5.2 LED燈泡顯示</p><p>  LED燈泡的亮和滅是通過設(shè)置引腳的電平變化來實現(xiàn)的。這里著重描述的是本設(shè)計中燈泡工作的程序?qū)崿F(xiàn)。LED燈泡表示外部請求情

78、況,如仿真圖所示共10個燈泡,分別對應(yīng)從機的十個外部按鍵,除去1層和6層的按鍵,中間8個都接在P2口,用一個長度為8的字符數(shù)組表示,數(shù)組相應(yīng)的位置上為“1”則燈泡亮。從機的按鍵是分為向上和向下兩組的,主機的顯示通過把兩組交替合并顯示,程序8位數(shù)組進行操作,通過移位和“或”操作來得到表示向上和向下的燈泡交替出現(xiàn)的,且對應(yīng)左邊相應(yīng)的樓層請求。詳細(xì)可見程序display()。</p><p><b>  7

79、軟件設(shè)計概述</b></p><p>  7.1 軟件設(shè)計總體流程</p><p>  程序?qū)崿F(xiàn)的總體結(jié)構(gòu)如圖7-1所示。</p><p>  圖7-1 系統(tǒng)程序總體結(jié)構(gòu)圖</p><p><b>  說明:</b></p><p>  由于電梯控制系統(tǒng)實際上是一個人機交互式的控制系統(tǒng)

80、,實時處理的要求很高,基于這一點,該軟件設(shè)計的思想就將所有交互的操作采用中斷完成。主程序只負(fù)責(zé)不斷的刷新顯示,有外部事件的申請,才中斷,轉(zhuǎn)去執(zhí)行中斷程序,中斷程序執(zhí)行完之后就返回,繼續(xù)執(zhí)行顯示程序。在通信中斷和定時中斷程序中去調(diào)用電梯調(diào)度算法程序,實現(xiàn)電梯調(diào)度。程序中有兩個中斷程序,串行通信中斷和定時/計數(shù)器中斷,單片機中規(guī)定了這兩個中斷源的優(yōu)先級,定時中斷的優(yōu)先級大于串行通信中斷,這樣程序中不會出現(xiàn)同時中斷,需要判斷由誰先響應(yīng)的問題。

81、考慮到該系統(tǒng)的算法實現(xiàn)都是由中斷實現(xiàn)的,如果算法的處理太復(fù)雜,就會影響響應(yīng)的速度,所以采用了并聯(lián)電梯的忙梯算法,而沒有采用更加高效的神經(jīng)網(wǎng)絡(luò)模糊算法等,因為這樣軟件復(fù)雜程度高,不利于系統(tǒng)的運行。</p><p>  7.2 電梯群控概述</p><p>  一座建筑物往往需要安裝兩臺或兩臺以上電梯,但如果只裝兩臺或是兩臺以上各自獨立運行的電梯,并不能提高效率。以A、B兩臺電梯為例,如果某一

82、層乘客要求上行,按下兩臺電梯的上召喚按鈕,則兩臺電梯會同時應(yīng)召前往,結(jié)果一臺電梯往往是空行;又如,有兩個鄰層的上召喚信號,本可由B電梯順向??繎?yīng)召,但如果兩個上召信號分別給了A、B,則兩臺電梯同時上行。這種線路不能合理調(diào)配電梯,而采用雙梯并聯(lián)或群控可以大大提高運行效率.當(dāng)建筑物中多臺電梯處于并聯(lián)或群控狀態(tài)時,對信號控制系統(tǒng)設(shè)計好壞的評價標(biāo)準(zhǔn)是電梯響應(yīng)召喚的快速性和運行能量的最小化。電梯群控技術(shù)就是為解決這樣的問題產(chǎn)生的。電梯群控系統(tǒng)是指

83、在一座大樓內(nèi)的數(shù)臺電梯通過一個或多個的控制器(計算機)互聯(lián)控制。該系統(tǒng)可以采集到每臺電梯的內(nèi)召,上下外召、載重以及位置等信號,并可向每臺電梯發(fā)送控制信號。主控制器對該組電梯進行統(tǒng)一調(diào)度管理,使他們合理運行。群控電梯的控制具有多目標(biāo)行,非線性性不確定性。具體要求及特性如下:</p><p>  乘客的平均候梯時間要盡量短。</p><p>  盡量減少乘客的長候梯率,即盡量避免產(chǎn)生上時間的候

84、梯過程。</p><p>  轎廂到達的預(yù)報準(zhǔn)確率高,減少乘客的等待時的心理壓力。</p><p>  電梯運送乘客的時間要盡量短,并合理分配電梯應(yīng)答,防止堆聚和忙閑不分。</p><p>  選擇能源消耗最節(jié)省的方式,盡量降低能耗。</p><p>  層站的乘客書不確定。</p><p>  呼梯者的目的站不能事先

85、確定。</p><p>  對同一組呼梯,在不同的時間標(biāo)度下,轎廂的分配是不同的,轎廂分配的變化是不連續(xù)的。</p><p><b>  7.3 忙梯算法</b></p><p><b>  7.3.1算法概述</b></p><p>  通常情況下,一臺電梯(A 梯)在基站待命,另一電梯(B梯)為

86、忙梯,在最后的服務(wù)層。有召喚時由忙梯響應(yīng),如圖7-2(a)所示。</p><p>  當(dāng)兩個電梯均在基站時,對廳召喚由先到基站的電梯響應(yīng),另一電梯則成為基站梯。</p><p>  當(dāng)B梯上行時,響應(yīng)其上方的任何廳召喚及下方的下方向召喚,而其下方的上方向召喚則由A梯響應(yīng),如圖7-2(b)所示。</p><p>  當(dāng)B梯下行時,響應(yīng)其下方的下行召喚,而其下方的上召喚

87、及上方的任何廳召喚則由A梯來響應(yīng),如圖7-2(c)所示。</p><p>  當(dāng)A梯召喚很多而B梯長時間不具備發(fā)車條件,或A梯因有故障長時間不能正常運行時,通知B梯發(fā)車響應(yīng)。</p><p>  圖7-2并聯(lián)電梯算法調(diào)度情況</p><p>  7.3.2 算法評價</p><p>  以上調(diào)度原則簡單明了、易于實現(xiàn),但存在不足。主要缺陷在于

88、,并聯(lián)電梯的調(diào)度情況只考慮召喚的方向而未考慮召喚離服務(wù)梯的距離,因此對3) 和4) 兩個原則,很可能出現(xiàn)一臺電梯空閑,另一臺電梯過忙的情況。這一情況雖可通過5) 來解決,但要等一段時間,故實時性較差.因此繼電器的硬件線路的調(diào)度方法無法解決距離的問題,這只有依靠微處理器的邏輯運算和通信功能解決,所以以一臺電梯為“忙梯”的調(diào)度原則并不能解決快速服務(wù)問題。 </p><p>  7.3.3 算法的改進之處</p&

89、gt;<p>  正常情況下,當(dāng)電梯使用以后,B梯作為忙梯會首先自動上升至第三層待命,A梯則作為基站電梯在第一層樓待命。當(dāng)某層站有門廳呼叫信號時,則“忙梯”立即啟動并定向運行去接該層站的乘客。</p><p>  對7-2(c)的運行規(guī)則的改變:當(dāng)B梯向下運行時,響應(yīng)其下方的任何請求,和其上方的向上請求,而其上方的向下請求,由A梯響應(yīng),如圖7-3 (c)示。這樣避免出現(xiàn)基本梯過忙的情況。&

90、lt;/p><p>  由于此算法導(dǎo)致出現(xiàn)一臺電梯過忙的情況,為實現(xiàn)負(fù)載平衡,采用有效原則。當(dāng)兩臺電梯因轎廂內(nèi)指令而到達基站后關(guān)門待命時,則應(yīng)按照有效利用的原則,執(zhí)行相互交替程序段。原先充當(dāng)忙梯的電梯現(xiàn)在即作為基站電梯來使用,而原先作為基站電梯使用的電梯此時即成為忙梯。不論是A梯還是B梯均停留在最后??康膶诱敬_@樣的改進就避免了一臺電梯過忙的情況。</p><p>  圖7-3 改進后的

91、電梯調(diào)度情況</p><p>  7.4 電梯調(diào)度算法流程</p><p>  核心的調(diào)度算法主要有外部請求調(diào)度算法和內(nèi)部請求調(diào)度算法,兩算法之間也有關(guān)聯(lián),具體調(diào)度過程如圖7-4所示。</p><p>  圖7-4 電梯調(diào)度算法流程圖</p><p>  7.5 程序代碼及說明</p><p>  7.5.1 確定請求

92、類型函數(shù)</p><p>  電梯運行方向上,對請求合理響應(yīng),以較優(yōu)的方式到達目的地。</p><p>  則搜尋上行方向的內(nèi)部請求和外部向上的請求,以離電梯當(dāng)前位置最近的先響應(yīng)。</p><p>  如果沒有這兩個請求,則搜尋上行方向的向下請求。按最遠(yuǎn)的先響應(yīng)。</p><p>  如果仍然無請求,則搜尋下行方向的內(nèi)部請求和向下請求,按最近

93、的先響應(yīng)。</p><p>  仍無請求,則搜尋下行方向的向上請求。按最遠(yuǎn)響應(yīng)。</p><p>  如果都無請求,則為空閑,停在當(dāng)前層待命。</p><p>  void scheduleLeftUp(void) //確定請求類型,目的地和運行方向。請求類型0x01表示內(nèi)部請求,0x02為外部向上請求,0x04為外部向下請求</p><p

94、><b>  {</b></p><p><b>  int i;</b></p><p>  for(i = leftFloor + 1; i < 7; i++)//從當(dāng)前層的上一層開始逐層搜尋請求</p><p><b>  {</b></p><p>  

95、if(leftRequest[i - 1])//有內(nèi)部請求,則設(shè)置請求類型和目的地</p><p><b>  {</b></p><p>  leftType |= 0x01;//0x01為內(nèi)部請求表示</p><p>  leftDest = i;</p><p><b>  }</b&g

96、t;</p><p>  if(leftExterUp[i - 1])//有外部請求</p><p><b>  {</b></p><p>  leftType |= 0x02;</p><p>  leftDest = i;</p><p><b>  }</b>&

97、lt;/p><p>  if(leftType != 0x00)//在運行方向上行,確定請求類型和目的地之后及時返回</p><p><b>  {</b></p><p>  leftDirect = 1;// 運行方向為向上</p><p>  return;</p><p&g

98、t;<b>  }</b></p><p><b>  }</b></p><p>  for(i = 6; i > leftFloor; i--)//上行方向沒有前面兩種請求,則從上往下搜尋是否有向下請求。</p><p><b>  {</b></p><p>

99、  if(leftExterDown[i - 1])//has external down request</p><p><b>  {</b></p><p>  leftType = 0x04;//0x04 為外部向下請求</p><p>  leftDest = i;</p><p>  leftDi

100、rect = 1;//運行方向仍然為上,要運行到呼梯樓層。</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(leftType != 0x00)</p><p><b>  {</b><

101、/p><p>  leftDirect = 1;</p><p>  return;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

102、;  7.5.2 運行參數(shù)設(shè)置函數(shù)</p><p>  根據(jù)不同的運行方向,調(diào)用上述函數(shù),確定電梯請求類型,目的地,運行方向,然后啟動電梯運行。</p><p>  void scheduleLeft(void)//左邊電梯運行的調(diào)度函數(shù)</p><p><b>  {</b></p><p>  if(l

103、eftDirect == 1)//電梯向上運行</p><p><b>  {</b></p><p>  leftType = 0x00;</p><p>  scheduleLeftUp();//左邊電梯的請求類型,目</p><p><b>  的地,運行方向</b>

104、</p><p>  if(leftType == 0x00) //上行方向沒有請求</p><p><b>  {</b></p><p>  scheduleLeftDown();//電梯運行方向可以在此改變</p><p>  if(leftType == 0x00) //下行方向上沒

105、有請求</p><p><b>  {</b></p><p>  leftRequest[leftFloor - 1] = 0;</p><p>  leftExterUp[leftFloor - 1] = 0;</p><p>  leftExterDown[leftFloor - 1] = 0;</p>

106、<p>  leftDirect = 0;</p><p>  leftStatus = idle;</p><p>  if(leftFloor == 1 && rightFloor == 1 && rightStatus == idle)</p><p><b>  {</b></p&

107、gt;<p>  busyEle++;</p><p>  busyEle %= 2;//當(dāng)兩部電梯都在1樓空閑時,交替忙梯標(biāo)志</p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b&g

108、t;</p><p><b>  else</b></p><p><b>  {</b></p><p>  leftExterDown[leftFloor - 1] = 0;//若有請求,則電梯繼續(xù)向上運行,清除該樓層外部請求。</p><p><b>  }</b><

109、;/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  leftExterUp[leftFloor - 1] = 0;</p><p><b>  }<

110、/b></p><p><b>  }</b></p><p>  else//向下運行,過程基本同向上運行</p><p><b>  {</b></p><p>  leftType = 0x00;</p><p>  scheduleLeftDo

111、wn();</p><p>  if(leftType == 0x00)</p><p><b>  {</b></p><p>  scheduleLeftUp();</p><p>  if(leftType == 0x00)</p><p><b>  {</b><

112、;/p><p>  leftRequest[leftFloor - 1] = 0;</p><p>  leftExterUp[leftFloor - 1] = 0;</p><p>  leftExterDown[leftFloor - 1] = 0;</p><p>  leftDirect = 0;</p><p>

113、  leftStatus = idle;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p&g

114、t;  leftExterUp[leftFloor - 1] = 0;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

115、<p>  leftExterDown[leftFloor - 1] = 0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(leftStatus == idle)//啟動電梯</p><p>  leftStatu

116、s = running;</p><p><b>  }</b></p><p>  7.5.3 外部請求處理函數(shù)</p><p><b>  外部請求處理過程:</b></p><p>  外部請求與電梯所在位置相同,然后判斷電梯的狀態(tài),若為idle或者closing,則響應(yīng)外部請求,立即開門。若

117、為running,則記錄下請求,將請求寫入請求隊列。其他狀態(tài)不予響應(yīng)。</p><p>  外部請求與電梯所在位置不同,則將請求寫入請求隊列,調(diào)用前一函數(shù)響應(yīng)。</p><p>  void scheduleExterLeft(uchar floor, uchar direct)//左邊電梯請求處理,direct=0為外部向上請求 1為外部向下請求</p><p&g

溫馨提示

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

評論

0/150

提交評論