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

下載本文檔

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

文檔簡介

1、<p><b>  單片機綜合實驗</b></p><p><b>  實驗報告</b></p><p>  學院 計 算 機 與 電 子 信 息 學 院 </p><p>  專業 電子信息工程 班級 電信11-2班 </p><p>  實驗題目

2、 基于單片機的電梯控制系統 </p><p>  實驗報告評分:_______</p><p>  基于單片機的電梯控制系統設計</p><p>  摘要:本文介紹了一種采用單片AT89C52芯片進行電梯控制系統的設計方法,主要闡述如何使用單片機進行編程來實現電子設計的方法,利用單片機編程實現功能,簡潔而又多變的設計方法,縮短了研發周期,同時使電梯控

3、制系統體積更小功能更強大。硬件部分主要由單片機的最小模塊、電梯內外按鈕控制模塊、數碼管顯示樓層模塊、發光二極管顯示目的樓層模塊、報警顯示模塊組成。軟件部分使用kiel軟件進行C語言程序編寫,用proteus軟件進行仿真調試。本設計具有電梯控制系統所需的一些基本功能,能通過方向按鍵選擇方向,能通過數字按鍵選擇樓層,數碼管顯示實時樓層數,電動機控制部分采用直流電機及H橋驅動電路,使電梯箱能上下運動。硬件設計簡單可靠,結合軟件,基本實現了五層

4、電梯運行的模擬仿真。</p><p>  關鍵詞:AT89C52;單片機;電梯控制系統; C語言</p><p><b>  1 引言</b></p><p>  隨著現代高科技的發展,住房和辦公用樓都已經逐漸向高層發展。電梯是高層賓館、商店、住宅、多層倉庫等高層建筑不可缺少的垂直方向的交通運輸工具。因此電梯在我們的生活中起著舉足輕重的作用。

5、電梯已不僅是一種生產環節中的重要設備,更是一種人們頻繁乘用的交通運輸設備。由于傳統的電梯運行邏輯控制系統采用的是繼電器邏輯控制線路。采用這種控制線路,存在易出故障、維護不便、運行壽命較短、占用空間大等缺點。從技術發展來看,這種系統將逐漸被淘汰。而單片機價格相當便宜,由單片機設計的控制系統可以隨著設備的更新而不斷修改完善,更完美的實現設備的升級。</p><p>  1.1 課題的提出及研究意義</p>

6、;<p>  電梯是集機械原理應用、電氣控制技術、微處理技術、系統工程學等多科學和技術分支于一體的機電設備,它是建筑中永久垂直交通工具。電梯作為生產生活的典型運載工具使用已十分普及,其控制信號類型多,關系復雜,要求的控制性能特別高。隨著經濟的發展高層建筑越來越多對電梯的運行速度和控制性能也提出了更高的要求。而在我國于八十年代初至九十年代初投入使用的電梯,其中絕大部分采用繼電器—繼電器陣列結構該結構體積大、接線復雜、噪音大、

7、觸點易磨損、故障率高、維護工作量大,已無法滿足現代社會的需要。</p><p>  自上世紀80年代以來,微機控制系統得到了極大的發展,現已深人到我國工農業生產的各個方方面面,隨著電力電子技術和微電子技術的發展,使得以微機為核心的控制系統得到廣泛應用。尤其是單片機的開發與應用,其深度和廣度越來越大。微機應用于電梯控制系統,與傳統的采用繼電接觸邏輯控制系統相比,具有很大優越性,一方面,它使整個系統的體積減小,可靠性

8、提高,使用壽命延長;另一方面,它還簡化了安裝調試和維護維修的工作量,使整個電梯的運行成本降低。更突出的優點是微機具有靈活的算術和邏輯運算功能,具有很強的通信和可擴展功能,實現更完善的自動控制。</p><p>  常用的微機控制主要的有兩種技術:基于PLC控制和基于單片機控制兩大技術??删幊炭刂破?,是微機技術與繼電器常規控制技術相結合的產物,是在順序控制器和微機控制器的基礎上發展起來的新型控制器,是一種以微處理器

9、為核心用作數字控制的專用計算機,它有良好的抗干擾性能,適應很多工業控制現場的惡劣環境,所以現在的電梯控制系統主要還是由可編程控制器控制。但是由于PLC的針對性較強,每一臺PLC都是根據一個設備而設計的,所以價格較昂貴。而單片機價格相當便宜,也不像PLC那么有針對性,可以隨著設備的更新而不斷修改完善,更完美的實現設備的升級?;趩纹瑱C控制的電梯可以大大的降低成本而且運行也較可靠,采用單片機來實現老式電梯控制系統的改造無疑是最佳方案。由于單

10、片機具有體積小、線路簡單、無噪音、可靠性高、維護方便,是一種少投入、高回報的方案。同時能方便實現多臺電梯的群控,并通過通訊接口與樓宇自動化系統聯接,實施對電梯的監控。</p><p>  1.2 國內外電梯系統技術的發展現狀</p><p>  在現代社會和經濟活動中,電梯已經成為城市物質文明的一種標志。特別是在高層建筑中,電梯是不可缺少的垂直運輸工具。</p><p

11、>  電梯作為垂直運輸的升降設備,其特點是在高層建筑物中所占的面積很小,同時通過電氣或其它的控制方式可以將乘客或貨物安全、合理、有效地送到不同的樓層?;谶@些優點,在建筑業特別是高層建筑飛速發展的今天,電梯行業也隨之進入了新的發展時期。</p><p>  電梯的存在,使得每幢大型高樓都可以成為一座垂直的城市。在紐約的前世界貿易中心大樓里,除每天有5萬人上班外,還有8萬人次的來訪和旅游,因此250臺電梯和7

12、5臺自動扶梯的設置和正常運行,才使得合理調運人員、充分發揮大樓的功能成為現實。中國第一高樓、坐落在上海浦東的金茂大廈,高度420.5m,主樓地上88層,建筑面積220000㎡,集金融、商業、辦公和旅游為一體,其中60臺電梯、18臺扶梯的作用是顯而易見的。</p><p>  20世紀初,美國出現了曳引式電梯,鋼絲繩懸掛在曳引輪上,一端與轎廂連接,而另一端與對重連接,隨曳引輪的轉動,靠鋼絲繩與曳引輪槽之間的摩擦力,

13、使轎廂與對重作一生一降的相反運動。顯然,鋼絲繩不用纏繞,因此鋼絲繩的長度和股數均不受控制,當然轎廂的載重量以及提升的高度就得到了提高,從而滿足了人們對電梯的使用需求。因此,近一百年來,曳引電梯一直受到重視,并發展沿用至今。其具體運行模型如圖1所示:</p><p>  圖1 曳引式電梯示意圖</p><p>  1—轎廂 2—曳引輪 3—對重</p><p> 

14、 在后來的幾十年里,通過變換電動機級數的調速方法來調整電梯運行速度的技術相繼研制成功,1933年,世界上第一臺運行速度為6 m/s 的電梯被安裝在美國紐約的帝國大廈。</p><p>  第二次世界大戰后,建筑業的發展促使電梯進入了高峰發展時期,代表新技術的電子技術被廣泛應用于電梯領域的同時,陸續出現了群控電梯、超高速電梯。</p><p>  隨著電力電子技術的發展,晶閘管變流裝置越來越

15、多地用于電梯系統,使電梯的拖動系統簡化,性能提高。同時交流調壓調速系統的研制和開發,使交流電梯的調速性能有了明顯的改善。進入20世紀80年代,通過控制電動機定子供電電壓與頻率調整電梯運行速度的調壓調頻技術研制成功,出現了交流變壓變頻(VVVF)調速電梯,開拓了電梯拖動的新領域。1993年,日本生產了12.5m/s的世界最高速交流變壓變頻調速電梯,結束了支流電梯獨占高速電梯領域的歷史。</p><p>  電梯發展

16、到今天,在使用需求和新技術應用方面都到了全面發展的時期。隨著智能化、信息化建筑的興起與完善,要求電梯不只是完成垂直運輸的基本功能,還應以人為本,提高舒適度,特別從電梯運行的控制智能化角度考慮,電梯的優質服務不再是單一的“時間最短”問題,而是采用模糊理論、神經網絡、專家系統等方法,以期實現單梯與群控管理的最佳模式、合理的配置與使用、遠程監控與故障診斷、節能以及減少環境污染等。</p><p>  現在電梯越來越朝著

17、綠色方向發展,目前意義上的“綠色”,一般是強調“天然”的一面,強調與環境的協調與和諧。電梯屬于純粹的工業產品,其天然性應表現為對環境影響的盡可能小,與環境的協調與平衡,以及電梯本身的人性化。這也應是綠色電梯的發展方向。綠色電梯主要有下面兩個方面:</p><p>  1、智能化:智能化電梯是傳統的人工智能是無法勝任的。傳統的智能控制是一種技術的事先安排,說到底是一種程序控制,是一種周期性的系統自動控制,實際上還算

18、不上智能。而真正的智能電梯應更具人性化特點,不僅具有傳統的人工智能的所有優點,而且還有傳統的人工智能無法比擬的東西,具有動念和隨機處理各種問題的能力,諸如能根據轎廂內的情況和各層的候梯信息,自動地制定每次最優的運動速度和停車政策;自動選擇運動方面;雙向語音交流;到達目的層的語音提示等,讓乘客有更多的主動性,使大樓交通運輸實現真正的人機對話。智能化要求電梯有自動安全檢測功能,讓電梯自己能夠檢測到電梯的故障所在,并及時報警予以排除。<

19、/p><p>  2、安全:運行安全是電梯的根本和關鍵??梢哉f,電梯的全部其他工作都是以此為中心展開的,使電梯安全運行更有保障。運行安全不僅要消除電梯啟動時較強的電磁輻射,使用安全材料和運行穩定,而且要有一種良好的視覺效果,讓每一位乘客在寬敞、明亮轎廂內有安全、舒適的好心情。同時,電梯運行安全也要求電梯在運行中發生故障時,不但要使乘客容易與外界溝通聯系,而且電梯本身應當能自動播放讓乘客感到放松的音樂,徹底消除產生緊張

20、不安的情緒。當小孩和老人乘坐時,電梯對他們應給予一種如同家人般的照顧,不但讓老人和孩子感到方便和舒適,而且更讓其家人感到放心。電梯運行安全還要求電梯有自動休眠功能,使電梯在保證運行效率最高的同時,使電梯能最大限度地得到休眠。</p><p>  1.3 課題研究的內容</p><p>  隨著科技的發展,微型計算機領域的不斷進步,將使得將來電梯的體積大大減小,功能不斷完善,過程的控制更平

21、穩、可靠、抗干擾性能增強、機械與電氣部件被機結合在一個設備內,把儀表、電子和計算機的功能綜合在一起。因此微型計算機控制技術將會成為電梯運行中的關鍵技術。</p><p>  本次設計的主要內容是以單片機為主控制器的電梯控制系統。本來電梯系統是一個相對復雜的系統,由于能力和經驗有限,所以只能實現基本的功能如:層站呼叫、自動停層、轎廂命令響應等。通過單片機輸出電壓通過驅動電路然后控制電梯拖動。在此,本文以五層電梯為研

22、究對象,選用52單片機(該機芯片選為AT89C52)作為其控制器,研究微機控制梯系統的設計方法。根據問題的提出、意義和文獻綜述,本課題研究的具體內容包括以下四個方面:</p><p> ?。?)對電梯系統常用的控制方法的研究</p><p> ?。?)電梯控制系統硬件組成及其原理</p><p> ?。?)電梯的單片機系統軟件設計</p><p&

23、gt; ?。?)電梯在信號傳輸中遇到的問題</p><p><b>  2 總體設計方案</b></p><p><b>  2.1設計思路</b></p><p>  本次設計的基本思想是采用AT89C52單片機作為核心,利用其豐富的I/O接口與外圍電路配合進行控制。采用延時函數來控制電梯的位置校驗,采用數碼管靜態顯示來

24、實時顯示電梯所在樓層。采用行列式矩陣鍵盤矩陣作為外呼內選電路,由于是5層樓,故選用4×4矩陣鍵盤。當電梯到達目的樓層時電機停止,此時即可進、出乘客,乘客進入電梯之后可選擇去哪一層,然后電梯根據乘客的選擇判斷去哪一層,繼續運行。通過單片機控制電梯在上升過程中只響應上升呼叫,下降過程中只響應下降呼叫。電梯的正常運行通過單片機的控制來實現。</p><p><b>  2.1.1方案確立</b

25、></p><p> ?。?)主控芯片選擇 </p><p>  方案一:多片單片機控制方案。這種方案是使用多片單片機,其中一片是作為主控制器,另外設置了轎廂控制系統,每層的控制系統分別由一個單片機控制,然后通過主控制器和副控制器之間的通訊,實現電梯系統的控制。這種方案的控制系統的結構簡單明了,各個系統之間相互獨立便于維護和修檢。所

26、以根據功能要求需要選用5片AT89C51單片機就可以實現該電梯的功能。不過單片機之間的通訊較多,在目前通訊是個難點,可能導致電梯運行過程不夠穩定。</p><p>  方案二 :采用CPLD 器件作為控制中心,對整個系統的運作進行統一管理,但這種方案要求平時有很多的知識積累和較強的專業水平,實現起來比較困難且器件較貴,不符合經濟要求,而且升降電機的控制,運行時間的測量、顯示等還需要單片機的配合。</p>

27、;<p>  方案三:一片單片機為主控制器的方案。MCU采用一個單片機控制所有的按鍵、數碼管顯示、電動機的轉動、傳感器的輸出信號等,并對以上所有信號進行處理。這種方案的控制系統相對復雜,只適用于較簡單的電梯控制系統,因為這次的設計的內容是5層電梯控制系統,所以選用這種方案。單片機技術目前較為成熟,自身資源豐富,硬件設計簡單,成本低,可靠性高,結合軟件完全可以實現電梯運行狀況的簡單模擬。</p><p&g

28、t;  權衡以上方案的分析,采用方案三。</p><p><b> ?。?)樓層顯示模塊</b></p><p>  方案一:采用點陣式液晶顯示器(LCD)顯示各種相關數據以及信息。點陣式液晶顯示器屬于低功耗器件,但其價格較貴。</p><p>  方案二:采用傳統的7段數碼管(LED)顯示電梯實時所到的樓層。雖功耗大,但其軟件驅動簡單,硬件電

29、路調試方便,價格便宜,亮度大,能滿足本設計的要求。</p><p>  以上兩種方案中,選擇方案二。</p><p> ?。?) 聲音提示模塊</p><p>  方案一:采用美國ISD公司的2590語音芯片,該語音芯片錄放時間為90 秒。ISD2500 系列具有抗斷電、音質好,使用方便等優點。它的最大特點在于片內E2PROM容量為480K,所以錄放時間長;有10個

30、地址輸入端,尋址能力可達1024 位;最多能分600 段;設有OVF(溢出)端,便于多個器件級聯。</p><p>  方案二:采用蜂鳴提示音提示當轎箱到達所需的樓層時,蜂鳴器響,提示乘客到達了所需的樓層,另外可以作為緊急停止時的報警提示信號,其軟件驅動、硬件電路調試非常簡潔方便,而且價格便宜,能滿足本設計的要求。</p><p>  以上兩種方案中,選擇方案二。</p>&

31、lt;p><b> ?。?)電動機模塊</b></p><p>  方案一:采用步進電機作為本設計的執行元件,步進電機在定位性能方面十分優越。步進電機和普通電機的區別主要就在于其脈沖驅動的形式,步進電機不需要A/D 轉換,能夠直接將數字脈沖信號轉化成為角位移。常用的步進電機每轉一步,角度轉1.8°,在應用中,步進電機可以同時完成兩個工作,其一是傳遞轉矩,其二是傳遞信息,升降精

32、度很高。</p><p>  方案二:采用直流電機作為本設計的執行元件,直流電機工作是讓線圈始終交替地處于穩定狀態和非穩定平衡狀態,通過控制電流的方向可以實現電機的正反轉。直流電機在高起動轉矩、大轉矩、低慣量的系統中經常使用到。</p><p>  此題目中電機要帶動的負載較大,對升降精度要求不是很,所以采用方案二。 </p><p>  2.1.2實現單片機控制電

33、梯的主要方法</p><p>  首先,對實際的電梯系統進行模擬,一般情況下,一個電梯應該具備相關按鍵、顯示二極管、數碼管等,由于這是一個調度模塊,故沒有設計具體的轎廂等機械部分。然后,結合這些實物,選擇恰當的芯片,并分成若干模塊,安排好各自之間的關系。由于其有諸多按鍵和顯示環節,而單片機的I/O口管腳資源實在有限,故需要I/O口擴展,用以管理二極管;同時要有專門的按鍵控制芯片,從而便于按鍵管理。接著,要完成電路

34、圖的設計,焊接相關器件后進行硬件調試,看是否好用并加以適當的更正,最終使硬件電路簡單又實用。</p><p>  同時,如果每個選層按鈕都采用獨立的按鍵設置,可以很大程度上簡化掃描按鍵程序,采集信號也容易得多,但是由于單片機接口有限,模擬電梯自動控制系統所需按鍵較多,如此會有接口不足的問題,所以本設計采用4×4按鍵矩陣開關電路作為外呼內選呼叫控制。出于同樣問題,顯示樓層電路采用數碼管從串口輸出。為了更接

35、近實際的電梯控制系統,設計中還應該添加電梯外上下行請求顯示,可用五個發光二極管表示目的請求按鍵是否按下,有則亮,無則暗。</p><p>  軟件方面至于采用中斷方式還是采用查詢的方式來檢測用戶的請求信息,可根據具體的設計方案來確定,同時要想準確地采集按鍵請求狀態,就必須時時刻刻調用鍵盤矩陣掃描程序,也就增加了軟件編程的難度。采用單片機作為核心,配以適當接口作為輸入輸出通道。實際電梯控制系統每層裝有一個傳感器,從

36、而判斷車廂所在位置,本模型使用延時函數對電梯運行樓層數進行控制。當電梯到達所選層,電梯開門延時等待進人并選層,然后延時關門執行請求,若無請求則停在本層等待請求。軟件部分使用kiel作為開發環境,用C語言進行編程,采用查詢方式來檢測用戶請求的按鍵信息并相應相應的函數。 </p><p>  隨著人類社會的不斷發展,電梯在人們生活中越來越占著重要位置,如何使電梯發揮更大的作用關鍵在于電梯的控制方法的改進以及控制費用的

37、降低。單片機之所以如此受歡迎在于其廉價的成本和可靠地運行性能。故應用單片機進行電梯的控制勢必成為電梯今后發展的重要方向,最優化的程序設計以及更廉價的費用對促進電梯行業的發展用著重要的作用,通過對具體問題的分析和探討,具體程序的優化與改良,本設計也致力于解決這一問題。</p><p><b>  2.2功能框架圖</b></p><p>  本電路主要由6大部分電路組成

38、:鍵盤電路、單片機最小系統電路、樓層顯示電路、電機驅動顯示電路、目的樓層顯示電路、警報電路。其中單片機最小系統主要由復位電路組成。電路復位后樓層顯示數字1 表示電梯此時在一樓,顯示電路數碼管顯示,電梯樓層位置是由延時電路控制的,延時電路包括3秒延時和5秒延時,每層之間通過5秒延時控制即每延時5秒表示電梯走了一層,3秒延時是控制電梯的開門時間,3秒延時后電梯關門繼續運行。電梯狀態是通過兩個發光管顯示的,上行燈亮表示電梯在向上運行,下行燈亮

39、表示電梯在向下運行。鍵盤電路采用4×4鍵盤矩陣共16個按鍵分,其中8個按鍵是各層樓外呼按鍵,5個按鍵是電梯內部的選擇鍵。電梯的正常工作是通過對單片機寫入程序控制的。</p><p>  總體方框圖如圖0所示:</p><p><b>  圖0 功能框架</b></p><p><b>  3 設計原理分析</b>

40、</p><p><b>  3.1硬件設計</b></p><p><b>  3.1.1時鐘電路</b></p><p><b>  圖1 時鐘電路圖</b></p><p>  單片機的時鐘電路有振蕩電路和分頻電路組成。其中振蕩電路由反相器以及并聯外接的石英晶體和電容構成

41、,用于產生振蕩脈沖。而分頻電路則用于把振蕩脈沖分頻,以得到所需要的時鐘信號。</p><p>  AT89C52單片機各功能部件的運行都是以時鐘控制信號為基準,有條不紊地一拍一拍地工作,因此時鐘頻率直接影響單片機的速度,時鐘電路的質量也直接影響單片機系統的穩定性。AT89C52單片機電路中的電容C1和C2典型值通常選擇為30pF。晶振的頻率越高則系統的時鐘頻率也越高,單片機的運行速度也越快。但反過來運行速度越快對

42、內存的速度要求就越高,對印刷電路板的工藝要求也越高,即要求產生的寄生電容要小,晶振和電容應盡可能安裝得與單片機芯片靠近,以減少寄生電容,更好的保證振蕩器穩定、可靠的工作?;谝陨媳驹O計我們考慮選擇頻率為12MHz的晶振,當振蕩脈沖頻率為12MHz時,一個機器周期為1us。</p><p><b>  3.1.2復位電路</b></p><p><b>  圖

43、2 復位電路圖</b></p><p>  復位是單片機的初始化操作,程序給單片機的復位引腳RST加大于2個機器周期(即24個時鐘振蕩周期)的高電平就可使單片機復位。AT89C52的復位是由外部的復位電路來實現的。復位電路通常采用上電復位和手動復位兩種方式,手動復位有電平方式和脈沖方式兩種,我們采用了手動復位為電平方式的復位。如圖3-2所示,我們通過RST端經由電阻與電源VCC接通而實現,當按鍵按下時

44、,RST端為高電平復位。當時鐘頻率選用12MHz時,C1取10uF,R1取10KΩ時,電容C1充放電時間τ=R1*C1=0.1s>2us(2個機器周期)。</p><p>  3.1.3鍵盤矩陣電路的設計</p><p>  由于本電路所需按鍵較多,為了節省單片機的I/O口,故選用行列式鍵盤矩陣(但是使用了矩陣鍵盤就與真實電梯有明顯的區別了)。本電路采用的是4×4鍵盤矩陣,

45、分為外部按鈕跟內部按鈕兩部分。電路如圖2 所示,0 - 7是接單片機的P3 端口,單片機采用行和列掃描法來判別這16個按鍵中哪個鍵按下,并將其信號進行儲存,然后可根據每個按鍵的功能來通過單片機控制電梯的運行。下面將每個按鍵的功能說明一下:</p><p>  1L上: 一樓向上呼叫按鍵,此鍵按下表示一樓有人要乘坐電梯上樓,并且單片機將此信號存入固定單元,等到電梯運行到此樓層時判斷是否該響應此呼叫;</p&g

46、t;<p>  2L上: 二樓向上呼叫按鍵,此鍵按下表示二樓有人要乘坐電梯上樓,并且單片機將此信號存入固定單元,等到電梯運行到此樓層時判斷是否該響應此呼叫;</p><p>  3L上: 三樓向上呼叫按鍵,此鍵按下表示三樓有人要乘坐電梯上樓,并且單片機將此信號存入固定單元,等到電梯運行到此樓層時判斷是否該響應此呼叫;</p><p>  4L上: 四樓向上呼叫按鍵,此按鍵按下

47、表示四樓有人要乘坐電梯上樓,并且單片機將此信號存入固定單元,等到電梯運行到此樓層時判斷是否該響應此呼叫;</p><p>  2L下:二樓向下呼叫按鍵,此鍵按下表示二樓有人要乘坐電梯下樓,并且單片機將此信號存入固定單元,等到電梯運行到此樓層時判斷是否該響應此呼叫;</p><p>  3L下:三樓向下呼叫按鍵,此鍵按下表示三樓有人要乘坐電梯下樓,并且單片機將此信號存入固定單元,等到電梯運行

48、到此樓層時判斷是否該響應此呼叫;</p><p>  4L下:四樓向下呼叫按鍵,此按鍵按下表示四樓有人要乘坐電梯下樓,并且單片機將此信號存入固定單元,等到電梯運行到此樓層時判斷是否該響應此呼叫;</p><p>  5L下:五樓向下呼叫按鍵,此按鍵按下表示五樓有人要乘坐電梯下樓,并且單片機將此信號存入固定單元,等到電梯運行到此樓層時判斷是否該響應此呼叫;</p><p&

49、gt;  1L:電梯內部選擇去一樓按鍵,此按鍵按下表示電梯里的乘客要去一樓,單片機根據此信號控制電梯的運行;</p><p>  2L:電梯內部選擇去二樓按鍵,此按鍵按下表示電梯里的乘客要去二樓,單片機根據此信號控制電梯運行;</p><p>  3L:電梯內部選擇去三樓按鍵,此按鍵按下表示電梯里的乘客要去三樓,單片機根據此信號控制電梯運行;</p><p>  4

50、L:電梯內部選擇去四樓按鍵,此按鍵按下表示電梯里的乘客要去四樓,單片機根據此信號控制電梯運行;</p><p>  5L:電梯內部選擇去五樓按鍵,此按鍵按下表示電梯里的乘客要去五樓,單片機根據此信號控制電梯運行;</p><p>  ALARM:警報按鈕,此按鈕按下表示電梯有突發情況,單片機根據此信號會將電梯停止運行,點亮警報指示燈并發出警報;</p><p>  

51、鍵盤電路如圖3 所示:</p><p><b>  圖3 鍵盤矩陣電路</b></p><p>  3.1.4 顯示電路設計</p><p>  本電路采用數碼管顯示電梯所到達的樓層數,數碼管采用共陰極由單片機的P0口控制,當電梯運行到兩樓層之間時,數碼管顯示為前一樓樓層。</p><p><b>  電路如

52、圖5 所示:</b></p><p><b>  圖5 樓層顯示電路</b></p><p>  3.1.5 電機正反轉控制</p><p>  本電路中用兩個發光二極管來表示電機正反轉,如圖6所示:用單片機的P1.1口和P1.2口做輸出口來驅動發光二極管,其中上行燈亮表示電機正轉,下行燈亮表示電機反轉、兩燈都不亮表示電機停轉。本

53、設計使用兩二極管反向并聯再與電機串聯,有效的節約了單片機端口的使用,又能準確的顯示電機的運行狀態。</p><p>  由于單片機的IO口電壓過低,不能驅動電機,故電機驅動部分采用常用的H橋電路,如圖6所示:</p><p>  圖6 直流電機H橋驅動電路</p><p>  3.1.6 目的樓層顯示電路</p><p>  本電路中用五個

54、發光二極管顯示電梯的目的樓層,置于電梯內部,分別由單片機的P1.3到P1.7控制,當對應的目標按鍵被按下時,向相應的控制口輸入低電平,點亮二極管,其中亮的表示有人想前往該層樓,當電梯到達該樓層時,對應的二極管熄滅。每個二極管均用1K的電阻進行限流。</p><p>  目的樓層顯示電路如圖7所示:</p><p>  圖7 目的樓層顯示電路</p><p>  3.

55、1.7 警報電路</p><p>  本電路由蜂鳴器和發光二極管兩部分組成,其中蜂鳴器由單片機的P1.0口進行控制,二極管由單片機的P0.0口進行控制,由于P0口無內部電壓,故在外部上拉電壓。當有突發情況發生時,按下ALARM按鈕,蜂鳴器會發出警報,二極管將點亮。</p><p>  警報電路如圖8所示:</p><p><b>  圖8 警報電路<

56、/b></p><p><b>  3.2軟件設計</b></p><p>  3.2.1軟件運行整體設計</p><p>  軟件設計是智能化系統進行數據采集、處理、控制等工作的基礎。系統的軟件設計直接影響整個系統的運轉和硬件作用的發揮。</p><p>  本設計由于采用鍵盤矩陣來代替外呼內選按鈕,而電梯的運行

57、方向是根據這些呼叫按鍵和選擇按鍵來決定的,所以單片機要不斷的掃描鍵盤來獲取各層呼叫狀態。從而來控制電梯的運行。故鍵盤矩陣掃描是本系統軟件設計的重要一部分,另外要把鍵盤掃描到的各層的按鍵信息存儲起來,然后和電梯的運行狀態比較,判斷是否響應各層呼叫(電梯只響應同方向呼叫),最后就是樓層顯示部分和警報部分了。整個軟件設計包括一下幾部分:</p><p> ?、懦跏蓟绦蚴箶荡a管顯示“1”表示電梯處在一樓。</p&

58、gt;<p><b> ?、浦鞒绦蛑饕ǎ?lt;/b></p><p> ?、倥袛喑丝瓦M入電梯后選擇去哪一層,根據判斷情況來控制電梯運行;</p><p> ?、陔娞菰谶\行過程中要不斷的掃描鍵盤,從而來判斷各樓層有無呼叫請求,;</p><p> ?、垭娞菰谶\行過程中只響應同方向的呼叫請求;</p><p>

59、 ?、軐崟r顯示電梯所在位置及運行狀態(上行/下行);</p><p> ?、蓍_關門有一定的延時來保證乘客走出/進入電梯;</p><p>  軟件流程圖如圖9 所示:</p><p><b>  圖9 軟件流程圖</b></p><p>  3.2.2 分析鍵值設計</p><p>  單片機在

60、讀取到鍵值后,自然會分析該鍵值來自于哪一層樓的哪個按鍵。然后才可以把該按鍵對應的儲存單位置1,點亮相應的二極管(實際中的電梯也是如此)。</p><p>  在本設計中,按鍵是按照行與列均勻分布的,特定的行與特定的列處的每個按鍵,均對應有特定的鍵值。首先可以人為地規定每個按鍵在電梯中所處的位置。例如規定位第一行按鍵為上行呼叫的按鍵等等(具體可參照電路圖)。它有自己固定的鍵值。那么在返回鍵值后,只需用一個switc

61、h-case語句對相應存儲數據進行置1即可。</p><p>  在程序中,我們定義了shang[]、xia[]、nei[]三個數組對相應的按鍵狀況進行存儲,這一步是整個程序得以正常運行的前提與基礎。在程序開始之前,我們設置了這樣一些狀態變量,它們分別對應于各個按鍵,當某個按鍵按下時,其對應的狀態變量就會被置位。這樣做的好處是使電梯在執行判決操作時,有據可循。因為判決函數就是依靠當前都有哪些鍵按下以及電梯此刻所處

62、的上下行狀態來判斷下一個需要停留的目標樓層的。</p><p>  分析完鍵值的來源后,就要點亮相應的二極管。由于二極管是由單片機控制且是低電平使發光二極管點亮,故一般來說,要點亮哪個二極管,只需在單片機向相應端口輸入0即可。當電梯到達該層后,我們再向該層對應的端口輸入1即可熄滅該二極管。</p><p>  3.2.3電梯運行方向的判決方法</p><p>  這

63、是整個程序成功運行的核心保證。在電梯經過一個樓層時,就會自動調用該函數,它的作用是基于短時間、高效率、人性化的基礎上,合理智能的對電梯的運行進行調度,結合實際情況,最終得出電梯下一個目標停留樓層。</p><p>  其流程如圖10所示:</p><p>  圖10 電梯判決流程圖</p><p>  由圖可知,程序中將實際情況分為四種情況來判斷:電梯上行且是去送

64、人(即電梯此時位于底層,而高層有人呼叫要上樓)、電梯上行且是去接人(即電梯此時位于底層,而高層有人呼叫要下樓)、電梯下行且是去送人(即電梯此時位于高層,而低層有人呼叫要下樓)、電梯下行且是去接人(即電梯此時位于高層,而低層有人呼叫要上樓)。</p><p>  在實際應用中,最簡單的情況莫過于電梯當前為閑置狀態,然后有一人按下按鍵呼叫,然后電梯便響應呼叫。但是,實際情況往往比這復雜的多,在第一個人按下按鍵電梯運行

65、的過程中,還很有可能會有其他不同樓層的人按下不同的按鍵(上行或者下行)的情況發生。那么就必須得為電梯規定好一個特定的優先級規則,讓其依據這個規則來運行,以免亂作一團。那么這個規則就必須要高效且人性化,在此,我們規定,當電梯上行時,均不理會那些按下行按鍵的顧客。并且,若在上行過程中,也有人在某層按的是上行按鍵,但是電梯此時已經走過了該層,那么電梯也絕對不會再選擇先下行接他。當然,當將高層上行的顧客送完后(此時一般來說電梯已經處于高層了),

66、電梯便會檢測下行按鍵,若更高層有人呼叫下行,則電梯會選擇先去響應他們,然后再下行的過程中依次響應按了下行處于等待中的顧客,最后這些顧客都送完后,再去相應那些電梯上行過程中,處于比電梯低的樓層卻按了上行鍵的顧客。</p><p>  簡單地說,若電梯處于上行狀態,則在該過程中響應不同顧客的優先級(或者電梯響應的先后順序)為:高層呼叫上行顧客>高層呼叫下行顧客>底層呼叫下行顧客>底層呼叫上行顧客。&

67、lt;/p><p>  那么,當電梯通過程序運行得知到相應狀態后,又是如何具體的判斷當天所鎖定的目標樓層是否要變更呢?現以上行為例,加以詳細說明:</p><p>  若上行,且是送人,比如電梯當前在一層,四樓有人呼叫上樓,那么它就要響應這一呼叫,從而把自己的目標樓層鎖定為四樓并向上運行,而在四樓呼叫后不久,三樓也有人呼叫上樓(且電梯此刻還未運行到三樓),那么在電梯運行中,沒經過一個樓層,會做

68、一次判決,因為三樓也有人呼叫,所以正常情況下,它應該在判決后將目標樓層定位三樓。而若三樓的顧客按下的是下行鍵,或者二樓的人按下呼叫鍵,電梯此時都會暫時不予理會。部分程序代碼見附錄。</p><p>  由程序可以看出,當四樓有上行鍵呼叫時,狀態變量shang[4]便會被置位,但電梯依然在判斷按鍵狀況,此時程序的檢測依據兩個標準:第一,由低層向高層開始檢查;第二,對于電梯已經過的樓層和按下下行鍵所發出的請求,電梯暫

69、時是不予理會的。這也是很明顯的,因為上行送人狀態中,低層的優先權大于高層的。程序就是靠著上面這些if語句的嵌套,來完成這種優先級設置的。</p><p>  至于上行接人狀態時,所堅持的標準是由高層到底層的順序進行排查,而對于上行鍵的呼叫暫時不予理會。下行的狀態,恰好與上行相反,在此不再贅述。</p><p>  同時,我們設計了flag標志位,當flag=0表示電梯停止運行,當flag=

70、1表示電梯向上運行,當flag=2表示電梯向下運行。</p><p><b>  4 結束語</b></p><p>  本次畢業設計是對傳統設計電梯的部分改進,可以降低電梯的設計成本,實現樓層快速通行的模擬控制。另外由于此次設計實現的功能簡單,簡化處理了一些實際情況,沒有去考慮這種電梯在實際應用中的故障問題,及一些更智能的硬件與軟件的安裝與調試,并且使用矩陣按鍵代替

71、獨立按鍵,與真實的電梯按鍵不符合。</p><p>  由于時間緊迫,本人能力有限,還有許多功能可以在此基礎上進行拓展,例如可以擴展單片機增加智能識別系統,增加電梯內部的溫度控制、增加單片機的故障預警等一些智能控制系統。隨著科技與經濟的深入發展,單片機技術的不斷進步,以后的電梯控制系統將會越來越智能化,這對提升人們的生活質量、生活的幸福指數有著深遠的意義。</p><p>  此次設計不僅

72、僅是一個硬件電路設計和程序編寫的過程,更重要的是實際問題的分析和設計階段的努力。我們將充分利用單片機開發上的靈活、快速的特點,來實現我們自己智能控制的設計。</p><p><b>  參考文獻</b></p><p>  [1] 李林功·單片機原理與應用-科學出版社,2011</p><p>  [2] 李繼凱.楊艷·數字

73、電子技術及應用-科學出版社,2012</p><p>  [3] 華成英·模擬電子技術基本教程-清華大學出版社,2006</p><p>  [4] 彭介華·電子技術課程設計指導-高等教育出版社,1997版.2010重印</p><p><b>  附錄</b></p><p><b> 

74、 整體電路圖</b></p><p><b>  程序</b></p><p>  #include <reg51.h> </p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int </p>&

75、lt;p>  sbit alarm1=P1^0; </p><p>  sbit alarm2=P2^0; </p><p>  sbit fz=P1^1;</p><p>  sbit zz=P1^2;</p><p>  sbit L1=P1^3; </p><p>  sbit L2=P1^4; </

76、p><p>  sbit L3=P1^5; </p><p>  sbit L4=P1^6; </p><p>  sbit L5=P1^7; </p><p>  uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x00};</p><p>  uint shang[6

77、]={0,0,0,0,0,0};</p><p>  uint xia[6]={0,0,0,0,0,0};</p><p>  uint nei[6]={0,0,0,0,0,0}; </p><p>  uint num,temp,flag=0,lc=1,i,n; </p><p><b>  //函數聲明語句</b>

78、</p><p>  void delay(uint z); </p><p>  void delay3();</p><p>  void delay5(); </p><p>  void keyscan(); </p><p>  void display(uint aa);</p><p&

79、gt;  void init(); </p><p>  void zhishideng(); </p><p><b>  //主函數</b></p><p>  void main() </p><p>  { init();//端口初始化 </p><p>  while(1)

80、</p><p>  { keyscan(); //鍵盤掃描 </p><p>  zhishideng(); //有請求樓層亮對應的指示燈 </p><p>  if(flag==0) </p><p>  { zz=fz=0;//電梯停止運行 </p><p>  shang[lc]=0;/

81、/置位 </p><p>  xia[lc]=0; </p><p>  nei[lc]=0; </p><p>  n=lc; </p><p>  for(i=n+1;i<=5;i++)//檢測高樓層有無請求 </p><p>  {keyscan();

82、 </p><p>  zhishideng();</p><p>  if(shang[i]==1||xia[i]==1||nei[i]==1) </p><p>  { flag=1; </p><p>  break; </p><p><b>  } </b

83、></p><p><b>  } </b></p><p>  for(i=n-1;i>=1;i--)//檢測低樓層有無請求 </p><p>  { keyscan();</p><p>  zhishideng(); </p><p>  if(shan

84、g[i]==1||xia[i]==1||nei[i]==1) </p><p>  { flag=2; </p><p><b>  break; </b></p><p><b>  } </b></p><p><b>  } </b></p&

85、gt;<p><b>  } </b></p><p>  if(flag==1) </p><p>  { keyscan();</p><p>  zhishideng(); </p><p><b>  zz=1; </b></p><p>  f

86、z=0; </p><p>  delay5(); </p><p><b>  lc++; </b></p><p>  display(lc); </p><p>  if(shang[lc]==1||nei[lc]==1)//是否已到達指定樓層 </p><p><

87、;b>  {</b></p><p>  shang[lc]=0; </p><p>  nei[lc]=0; </p><p>  zhishideng(); </p><p><b>  fz=0; </b></p><p><b>  

88、zz=0; </b></p><p>  delay3(); </p><p><b>  } </b></p><p><b>  flag=0; </b></p><p><b>  n=lc; </b></p><p&

89、gt;  for(i=n+1;i<=5;i++) //檢測高樓層有無請求 </p><p>  { keyscan(); </p><p>  zhishideng(); </p><p>  if(shang[i]==1||xia[i]==1||nei[i]==1) </p><p>  { flag=1; </

90、p><p>  break; </p><p><b>  } </b></p><p><b>  }</b></p><p>  if(flag==0||lc>=5) </p><p>  { n=lc; </p&g

91、t;<p>  if(shang[n]==0&&nei[n]==0) </p><p><b>  {</b></p><p><b>  fz=0;</b></p><p><b>  zz=0;</b></p><p><b>

92、;  delay3();</b></p><p><b>  } </b></p><p><b>  xia[n]=0;</b></p><p>  for(i=n-1;i>=1;i--) //檢測低樓層有無請求 </p><p>  { keyscan();&

93、lt;/p><p>  zhishideng(); </p><p>  if(shang[i]==1||xia[i]==1||nei[i]==1) </p><p>  { flag=2;</p><p><b>  break;</b></p><p><b&g

94、t;  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p>  if(flag==2)</p><p><b>  {

95、</b></p><p>  keyscan(); </p><p>  zhishideng(); </p><p><b>  zz=0; </b></p><p><b>  fz=1; </b></p><p>  delay5(); &

96、lt;/p><p><b>  lc--;</b></p><p>  display(lc); </p><p>  if(xia[lc]==1||nei[lc]==1) </p><p>  { xia[lc]=0;</p><p>  nei[lc]=0;</p&

97、gt;<p>  zhishideng();</p><p><b>  fz=0; </b></p><p><b>  zz=0;</b></p><p>  delay3(); </p><p><b>  }</b></p><p>

98、;<b>  flag=0;</b></p><p><b>  n=lc; </b></p><p>  for(i=n-1;i>=1;i--) </p><p>  { keyscan();</p><p>  zhishideng(); </p>&l

99、t;p>  if(shang[i]==1||xia[i]==1||nei[i]==1) </p><p>  { flag=2;</p><p><b>  break; </b></p><p><b>  } </b></p><p><b>  

100、} </b></p><p>  if(flag==0||lc<=1) </p><p>  { n=lc;</p><p>  if(xia[n]==0&&nei[n]==0) </p><p>  { fz=0;</p><p><b>

101、  zz=0;</b></p><p><b>  delay3();</b></p><p><b>  } </b></p><p>  shang[n]=0; </p><p>  for(i=n+1;i<=5;i++) </p><p>

102、;  { keyscan();</p><p>  zhishideng(); </p><p>  if(shang[i]==1||xia[i]==1||nei[i]==1) </p><p>  { flag=1;</p><p><b>  break;</b></p&

103、gt;<p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b>

104、</p><p><b>  }</b></p><p>  //二極管點亮熄滅函數。 </p><p>  void zhishideng() </p><p>  { L1=!nei[1];</p><p>  L2=!nei[2];</p><p>  L3=!ne

105、i[3];</p><p>  L4=!nei[4];</p><p>  L5=!nei[5];</p><p><b>  } </b></p><p>  //端口初始化函數。</p><p>  void init()</p><p>  { P2=0xff;

106、</p><p><b>  P1=0xf8;</b></p><p>  P0=table[lc];</p><p><b>  P3=0x00;</b></p><p><b>  }</b></p><p>  //數碼管顯示函數。</p&g

107、t;<p>  void display(uint aa)</p><p>  { P0=table[aa];</p><p><b>  } </b></p><p><b>  //延遲五秒函數。</b></p><p>  void delay5() </p&g

108、t;<p>  { uint x,y;</p><p>  for(x=380;x>0;x--)</p><p>  for(y=110;y>0;y--)</p><p>  { keyscan();</p><p>  zhishideng();</p><p><b>

109、  }</b></p><p><b>  } </b></p><p><b>  //延遲三秒函數。</b></p><p>  void delay3() </p><p>  { uint x,y; </p><p>  for(x=280;x&

110、gt;0;x--) </p><p>  for(y=110;y>0;y--) </p><p>  { keyscan();</p><p>  zhishideng();</p><p><b>  }</b></p><p><b>  } </b>&

111、lt;/p><p><b>  //ms級延函數。</b></p><p>  void delay(uint z) </p><p>  { uint x,y;</p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--); } &

112、lt;/p><p>  //鍵盤掃描函數。 </p><p>  void keyscan() </p><p><b>  { num=0;</b></p><p>  P3=0xfe;//第一行為低電平</p><p>  temp=P3;//讀入列按鍵值</p><

113、p>  temp=temp&0xf0; </p><p>  while(temp!=0xf0) </p><p>  { delay(5);//調用延時消抖</p><p><b>  temp=P3;</b></p><p>  temp=temp&0xf0; </p>

114、<p>  while(temp!=0xf0) </p><p>  { temp=P3; </p><p>  switch(temp) </p><p>  { case 0xee:num=1; break; </p><p>  case 0xde:num=2; break;

115、 </p><p>  case 0xbe:num=3; break; </p><p>  case 0x7e:num=4; break;</p><p><b>  } </b></p><p>  while(temp!=0xf0)//等待響應結束(高四位變回全“1”)</p&

116、gt;<p>  { temp=P3;</p><p>  temp=temp&0xf0; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p&

117、gt;<p><b>  P3=0xfd;</b></p><p><b>  temp=P3;</b></p><p>  temp=temp&0xf0; </p><p>  while(temp!=0xf0) </p><p>  {delay(5); </p&

118、gt;<p><b>  temp=P3; </b></p><p>  temp=temp&0xf0; </p><p>  while(temp!=0xf0) </p><p>  { temp=P3;</p><p>  switch(temp) </p>&l

119、t;p>  { case 0xed:num=5; break; </p><p>  case 0xdd:num=6; break; </p><p>  case 0xbd:num=7; break; </p><p>  case 0x7d:num=8; break;</p>

120、<p><b>  } </b></p><p>  while(temp!=0xf0) </p><p>  { temp=P3;</p><p>  temp=temp&0xf0; </p><p><b>  } </b></p><

溫馨提示

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

評論

0/150

提交評論