基于單片機(jī)電梯控制系統(tǒng)設(shè)計
《基于單片機(jī)電梯控制系統(tǒng)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)電梯控制系統(tǒng)設(shè)計(72頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
太原科技大學(xué)華科學(xué)院畢業(yè)論文(論文) 目 錄 摘 要 V ABSTRACT VII 第一章 緒論 1 1.1研究的背景與意義 1 1.2本文主要研究內(nèi)容及設(shè)計步驟 2 第二章 方案設(shè)計 5 2.1電梯控制系統(tǒng)原理 5 2.2總體方案設(shè)計 5 2.2.1設(shè)計原理 5 2.2.2設(shè)計方框圖 6 2.3 硬件芯片的選擇 7 2.4軟件的使用 8 2.4.1電路圖制作軟件 proteus 7.5 sp3 8 2.4.2 C51的程序開發(fā)軟件Keil 9 2.5本章小結(jié) 10 第三章系統(tǒng)的硬件設(shè)計 11 3.1單片機(jī)的最小系統(tǒng)模塊 11 3.1.1 AT89C51簡介 11 3.1.2最小系統(tǒng)模塊 14 3.2可編程I/O擴(kuò)展芯片82C55模塊 16 3.3信號輸入電路 19 3.3.1內(nèi)外請求輸入電路 19 3.3.2廂體位置模擬輸入電路 20 3.4信號模擬輸出電路 21 3.4.1樓層顯示電路 21 3.4.2電梯外部請求顯示電路 22 3.4.3報警部分 23 3.5單片機(jī)對芯片82C55的基本讀寫 24 3.5.1芯片82C55的初始化 25 3.5.2芯片82C55的工作方式 27 3.6本章小結(jié) 29 第四章系統(tǒng)的軟件設(shè)計 31 4.1軟件設(shè)計 31 4.1.1電梯判決函數(shù) 31 4.1.2電梯運(yùn)行的主程序流程圖 33 4.2 keilc的編程和匯編語言的程序 35 4.2.1 keilc編程的流程 35 4.2.2 部分軟件功能的程序 37 4.3本章小結(jié) 40 第五章 功能仿真與結(jié)果分析 41 5.1單片機(jī)控制電梯的仿真 41 5.2 結(jié)果與分析 42 5.3本章小結(jié) 44 第六章 總結(jié) 45 參考文獻(xiàn) 47 附錄 52 III 基于單片機(jī)的五層電梯控制系統(tǒng)設(shè)計 摘 要 隨著現(xiàn)代城市的發(fā)展,高層建筑日益增多,電梯成為人們?nèi)粘I夭豢缮俚拇焦ぞ唠娞菪阅艿暮脡膶θ藗兩畹挠绊懺絹碓斤@著,因此必須努力提高電梯系統(tǒng)的性能,保證電梯的運(yùn)行既高效節(jié)能有安全可靠。傳統(tǒng)的電梯控制系統(tǒng)采用的是繼電器邏輯控制電路,這種控制易出故障,維護(hù)不便,運(yùn)行壽命短,占地空間大,正逐步被淘汰。 本文設(shè)計了基于單片機(jī)的電梯控制系統(tǒng),硬件部分主要由單片機(jī)最小系統(tǒng)模塊、電梯內(nèi)外電路按鍵矩陣模擬檢測模塊、電梯外請求發(fā)光顯示模塊、樓層顯示數(shù)碼管模塊、電梯上下行及開關(guān)門模擬顯示等部分組成。該系統(tǒng)采用單片機(jī)(AT89C51)作為控制核心,內(nèi)外使用按鍵按下與否引起的電平改變,作為用戶請求信息發(fā)送到單片機(jī)單片機(jī)控制電動機(jī)的轉(zhuǎn)動,單片根據(jù)樓層檢測結(jié)果控制電機(jī)停在目標(biāo)樓層。軟件部分采用匯編語言,利用查詢方式來檢測用戶的請求信息,根據(jù)電梯運(yùn)行到相應(yīng)樓層時,引起的電平變化,送到單片機(jī)計數(shù)來確定樓層,并送到數(shù)碼管進(jìn)行顯示,硬件設(shè)計簡單可靠,結(jié)合軟件,基本實(shí)現(xiàn)了五層電梯運(yùn)行的模擬。 關(guān)鍵詞:AT89C51,LED數(shù)碼顯示,矩陣式按鍵,電梯控制 VII Microcontroller-based five-story elevator control system design ABSTRACT With the development of modem cities ,an increasing number of high-rise building , elevator become an indispensable means of transport of daily life. The quality of the life performance of the impact on people’s lives becoming more and more obvious ,it must strive to improve the performance of elevator systems, and ensure the operation of the life is safe, reliable and energy efficient. The traditional elevator control system uses logic of the relay to control circuit, this kind of controls easily to be crash, maintains inconveniently, the movement life is short, and that occupying a large area of space, it being eliminated gradually. This paper design the elevator control system based on single-chip microcontroller hardware part, mainly by minimum system module, elevator internal and external circuit simulation tests module, buttons matrix light-emitting display module elevator outside request, floor shows digital tube module, elevator downlink and open closed model shows that components. The system USES the monolithic (AT89C51) as control core, internal and external use keys pressed or not cause level change, as users request information sent to single-chip microcontroller control motor rotation, monolithic according to floor detection results in target floor control motor stops. Software part adopts assembly language, using inquires the way to test users, according to request information to the appropriate elevator running, according to floor level changes caused by the keys, to determine the floor to SCM count, and sent to digital tube display, hardware design is simple, reliable, combining software, basically achieved simulation of elevator running five floors. KEY WORDS : AT89C51, LED digital display, Matrix buttons, Elevator control 第一章 緒論 1.1研究的背景與意義 電梯進(jìn)入人們的生活已經(jīng)150年了。一個半世紀(jì)的風(fēng)風(fēng)雨雨,翻天覆地的是歷史的變遷,永恒不變的是電梯提升人類生活質(zhì)量的承諾。 生活在繼續(xù),科技在發(fā)展,電梯也在進(jìn)步。150年來,電梯的材質(zhì)由黑白到彩色,樣式由直式到斜式,在操縱控制方面更是步步出新——手柄開關(guān)操縱、按鈕控制、信號控制、集選控制、人機(jī)對話等等,多臺電梯還出現(xiàn)了并聯(lián)控制,智能群控;雙層轎廂電梯展示出節(jié)省井道空間,提升運(yùn)輸能力的優(yōu)勢;變速式自動人行道扶梯的出現(xiàn)大大節(jié)省了行人的時間;不同外形——扇形、三角形、半菱形、半圓形、整圓形的觀光電梯則使身處其中的乘客的視線不再封閉[1]。如今,以美國奧的斯公司為代表的世界各大著名電梯公司各展風(fēng)姿,仍在繼續(xù)進(jìn)行電梯新品的研發(fā),并不斷完善維修和保養(yǎng)服務(wù)系統(tǒng)。調(diào)頻門控、智能遠(yuǎn)程監(jiān)控、主機(jī)節(jié)能、控制柜低噪音耐用,一款款集納了人類在機(jī)械、電子、光學(xué)等領(lǐng)域最新科研成果的新型電梯競相問世,冷冰冰的建筑因此散射出人性的光輝,人們的生活因此變得更加美好[2]。 中國最早的一部電梯出現(xiàn)在上海,是由美國奧的斯公司于1901年安裝的。1932年由美國奧的斯公司安裝在天津利順德酒店的電梯至今還在安全運(yùn)轉(zhuǎn)著。1951年,黨中央提出要在天安門安裝一臺由我國自行制造的電梯,天津從慶生電機(jī)廠榮接此任,四個月后不辱使命,順利地完成了任務(wù)。十一屆三中全會后,沐浴著改革開放的春風(fēng),我國電梯業(yè)進(jìn)入了高速發(fā)展的時期。在我國任何一個城市,電梯都在被廣泛應(yīng)用著。電梯給人們的生活帶來了便利,也為我國現(xiàn)代化建設(shè)的加速發(fā)展提供了強(qiáng)大的保障。電梯是高層建筑中安全、可靠、垂直上下的運(yùn)載工具,對改善勞動條件、減輕勞動強(qiáng)度起到很大的作用[3]。電梯的應(yīng)用范圍很廣,可用于賓館、飯店、辦公大樓、商場、娛樂場所、倉庫以及居民住宅大樓等。在現(xiàn)代社會中,電梯已成為人類必不可少的垂直運(yùn)輸交通工具。 1.2本文主要研究內(nèi)容及設(shè)計步驟 本課題的主要任務(wù)是完成一個電梯系統(tǒng)的調(diào)度模塊,即根據(jù)每個樓層不同顧客的按鍵需求,讓電梯做出合理的判斷,正確高效地知道電梯完成各項(xiàng)載客任務(wù)。根據(jù)此任務(wù),本課題需要研究的內(nèi)容有: 1、根據(jù)系統(tǒng)的技術(shù)要求,進(jìn)行系統(tǒng)硬件的總體方案設(shè)計; 2、學(xué)習(xí)單片機(jī)的相關(guān)知識,并且加以運(yùn)用; 3、研究匯編語言編程,并且規(guī)定電梯的工作規(guī)則,用匯編語言加以實(shí)現(xiàn); 4、對軟件和硬件進(jìn)行調(diào)試,讓其協(xié)調(diào)工作,完成指定任務(wù)。 設(shè)計步驟如下: 關(guān)于硬件部分 首先,對實(shí)際的電梯系統(tǒng)進(jìn)行模擬,一般情況下,一個電梯應(yīng)該具備相關(guān)按鍵、二極管、數(shù)碼管等,由于這是一個調(diào)度模塊,故沒有設(shè)計具體的轎廂等機(jī)械部分。然后,結(jié)合這些實(shí)物,選擇恰當(dāng)?shù)男酒?,并分成若干模塊,安排好各自之間的關(guān)系。由于其有諸多按鍵和顯示環(huán)節(jié),而單片機(jī)的I/O口管腳資源實(shí)在有限,故需要I/O口擴(kuò)展,用以管理二極管;同時要有專門的按鍵控制芯片,從而便于按鍵管理。在此,我選擇了8255和74ls48芯片。接著,要完成電路圖的設(shè)計. 關(guān)于軟件部分:處于最底層的是對兩個芯片的寄存器讀寫工作,完成后方可進(jìn)行更高層的應(yīng)用程序調(diào)試。然后是關(guān)于電梯調(diào)度時所遵循的原則作出規(guī)定,其必須基于高效與人性化兩個原則。最后是使用匯編語言將規(guī)定程序化,以便電梯真正的運(yùn)作。當(dāng)然,二者的關(guān)系并不是分離的,它們是相輔相成,硬件依據(jù)軟件來驗(yàn)證,軟件依據(jù)硬件來調(diào)試。經(jīng)過一個個的發(fā)現(xiàn)問題、一個個的解決問題,最終做出完美的電梯調(diào)度模塊。 63 第二章 方案設(shè)計 2.1電梯控制系統(tǒng)原理 電梯應(yīng)用中大多采用交流變頻電機(jī)拖動原理,其廂體由一曳引鋼纜連接,由安裝在頂層的曳引輪和曳引電機(jī)拖動,電機(jī)的功率隨著曳引重量的不同大小不等。其主要的拖動及控制系統(tǒng)有: (1)外呼內(nèi)選系統(tǒng),外部呼叫信號和指示以及廂體內(nèi)選層和指示系統(tǒng); (2)平層換速系統(tǒng),電梯快速到達(dá)指定樓層之前切換為慢速并到達(dá)平層位置停車; (3)廂體狀態(tài)指示系統(tǒng),隨著顯示廂體所在位置; (4)開關(guān)門控制系統(tǒng),平層開門,關(guān)門行車; (5)安全保護(hù)系統(tǒng),含有上下限位、消防、滿載、門電鎖等功能; 電梯運(yùn)行的基本過程是:由外部呼叫信號給出呼叫,控制系統(tǒng)判斷廂體目前所處位置并與呼叫樓層進(jìn)行對照,同方向還是反方向。若反方向,則改變方向到呼叫層,如同方向,直接運(yùn)行到呼叫樓層。在方向上,以同方向呼叫優(yōu)先,且具有最遠(yuǎn)方向接車功能。廂體的運(yùn)行方式:啟動→慢速→快速,到達(dá)指定樓層之前則是快速→慢速→平層停車。在所有呼叫中,消防優(yōu)先級最高。一旦消防呼叫,電梯就近平層,然后直接返回基站,不在響應(yīng)任何外呼叫信號,只響應(yīng)內(nèi)選操作,以保證消防工作的使用。 2.2總體方案設(shè)計 2.2.1設(shè)計原理 設(shè)計采用AT89C51單片機(jī)作為核心,配以適當(dāng)接口作為輸出通道。之所以選用AT89C51單片機(jī)作為設(shè)計的核心,是因?yàn)槠湓谝恍K芯片上,集成了一個微型計算機(jī)的各個組成部分,包括一個八位的微處理器,數(shù)據(jù)和程序存儲器,4個并行的輸入∕輸出口,兩個定時∕記數(shù)器,完善的中斷控制系統(tǒng),一個全雙工的串行輸入∕輸出口,精確的時鐘產(chǎn)生電路和具有掉電保護(hù)的復(fù)位電路,而且該芯片是用靜態(tài)邏輯來設(shè)計的,是一種低功耗∕低電壓、高性能的八位單片機(jī),價格合理,可方便地應(yīng)用在各種控制領(lǐng)域[4]. 設(shè)計采用AT89C51單片機(jī)作為核心,配以適當(dāng)接口作為輸出通道。采用44按鍵矩陣開關(guān)電路作為外呼內(nèi)選呼叫控制,而后通過74LS48從串口驅(qū)動數(shù)碼管顯示樓層數(shù)。當(dāng)電梯到達(dá)所選層,電梯開門延時等待進(jìn)人并選層,然后延時關(guān)門執(zhí)行請求,若無請求則停在本層等待請求。軟件部分使用匯編語言,利用查詢方式來檢測用戶請求的按鍵信息,采用74LS245芯片驅(qū)動發(fā)光二極管[5]。 2.2.2設(shè)計方框圖 本設(shè)計方框圖如圖2-1所示,電路由復(fù)位電路復(fù)位后,電梯初始位置在一樓,通過軟件設(shè)置顯示電路顯示1,AT89C51將樓層感應(yīng)電路的來的數(shù)據(jù)通過74LS48驅(qū)動顯示電路顯示出來;如有用戶在廂外呼叫,經(jīng)過呼叫電路把信號輸入單片機(jī),由樓層感應(yīng)電路判斷電梯為上升還是下降狀態(tài),若方向一致則打開電梯門,用戶進(jìn)入后關(guān)門執(zhí)行操作。用戶通過選層電路把目的層告知AT89C51,控制電機(jī)把用戶送至目的層,而后系統(tǒng)等待下次呼叫。系統(tǒng)的正常工作由時鐘電路來保證,顯示電路實(shí)時顯示電梯所在樓層位置。 圖2-1 電路總體方框圖 2.3 硬件芯片的選擇 合理的硬件設(shè)計是一個設(shè)計成功的基石,所以在設(shè)計之初,我便把自己的主要任務(wù)集中于籌劃硬件的搭建工作,當(dāng)然其中需要兼顧軟件設(shè)計的需求。 由于本設(shè)計所模擬的樓層共有五層,其中所需要控制的器件較多,如每層都需有兩個上下的指示燈,電梯轎廂內(nèi)也需有去幾層的指示燈等,而現(xiàn)有單片機(jī)的管腳資源無法滿足需求,故第一步需要想法擴(kuò)展單片機(jī)的I/O口管腳資源。在此,我選擇了擴(kuò)展I/O口最典型的芯片82C55。其可把一組八位I/O管腳擴(kuò)展為PA、PB、PC三組管腳,并通過寄存器對各組管腳進(jìn)行配置,從而滿足了本次設(shè)計的要求。 考慮到電梯會有多個按鍵,而傳統(tǒng)的依據(jù)單片機(jī)自身的I/O口布局鍵盤的方法顯然也是不可行的,故本設(shè)計選擇了典型的鍵盤式按鍵,其重要意義不僅在于減輕了單片機(jī)I/O口的開支負(fù)擔(dān),而且可以代替單片機(jī)完成各個按鍵的鍵值編寫工作,單片機(jī)只要從其FIFO寄存器中直接讀取鍵值即可得知哪個按鍵被按下,進(jìn)而進(jìn)行相應(yīng)的操作。 另外,電路板上還有一些擴(kuò)展的子電路模塊,并考慮到電路板的面積與價格問題,一些芯片與二極管、電阻等用的是貼片封裝。 2.4軟件的使用 2.4.1電路圖制作軟件 proteus 7.5 sp3 Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。 Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是: ?。?)原理布圖 ?。?)PCB自動或人工布線 ?。?)SPICE電路仿真 革命性的特點(diǎn) (1)互動的電路仿真 用戶甚至可以實(shí)時采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真處理器及其外圍電路 可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型 加上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計開發(fā)環(huán)境。 2.4.2 C51的程序開發(fā)軟件Keil 單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。 Keil C51 軟件是眾多單片機(jī)應(yīng)用開發(fā)的優(yōu)秀軟件之一,它集編輯,編譯,仿真于一體,支持匯編,PLM 語言和 C 語言的程序設(shè)計,界面友好,易學(xué)易用 2.5本章小結(jié) 本章介紹了課題設(shè)計的總體方案,其中包括課題用到的部分軟件和硬件,還介紹了課題的基本方框圖 第三章系統(tǒng)的硬件設(shè)計 3.1單片機(jī)的最小系統(tǒng)模塊 3.1.1 AT89C51簡介 AT89C51是一種帶4字節(jié)FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)[6]。 外形及引腳排列如圖所示3-1 圖3-1AT89C51單片機(jī)的引腳排列 AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案[7]。 (1)單片機(jī)的主要特性: 與MCS-51 兼容,4K字節(jié)可編程FLASH存儲器,壽命:1000寫/擦循環(huán),數(shù)據(jù)保留時間:10年,全靜態(tài)工作:0Hz-24MHz,三級程序存儲器鎖定,1288位內(nèi)部RAM 32可編程I/O線,兩個16位定時器/計數(shù)器,5個中斷源,可編程串行通道,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時鐘電路[8] (2)單片機(jī)的管腳說明: VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下表所示: 口管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6[9]。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 (3)振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 3.1.2最小系統(tǒng)模塊 單片機(jī)是指一個集成在一塊芯片上的完整計算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機(jī)所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實(shí)時時鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。 單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。 在本設(shè)計中,最小系統(tǒng)應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路等。如圖3-2所示,晶振電路由C1與C2和晶振組成,晶振是給單片機(jī)提供工作信號脈沖的。它的速率就是單片機(jī)的工作速率,簡單地說,沒有晶振,就沒有時鐘周期,沒有時鐘周期,就無法執(zhí)行程序代碼,單片機(jī)就無法工作。并在晶振的兩引腳處接入兩個10pF-50pF的瓷片電容接地用來削減偕波對電路的穩(wěn)定性的影響。復(fù)位電路采取的為手動按鍵復(fù)位電路,由電容,電阻和開關(guān)RESET組成,當(dāng)單片機(jī)的復(fù)位引腳RESET出現(xiàn)2個機(jī)器周期以上的高電平時,單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。每次復(fù)位后,單片機(jī)的程序都會從第一條開始從新執(zhí)行。另外,還額外設(shè)計了濾波防干擾電路,電源先經(jīng)過它們再接入單片機(jī)的Vcc,可以有效的減少其中的雜波帶來的干擾。 圖3-2 單片機(jī)最小系統(tǒng)電路 3.2可編程I/O擴(kuò)展芯片82C55模塊 8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片[10],有3個8位并行I/O口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255可作為單片機(jī)與多種外設(shè)連接時的中間接口電路。其芯片與與單片機(jī)的連接方式如圖3-3所示。 圖3-3 8255與單片機(jī)得連接方式 D7~D0(data bus):三態(tài)、雙向數(shù)據(jù)線,與CPU數(shù)據(jù)總線連接,用來傳送數(shù)據(jù)。 ∕CS (chip select):片選信號線,低電平有效時,芯片被選中。 A1, A0(port address):地址線,用來選擇內(nèi)部端口。 ∕RD(read):讀出信號線,低電平有效時,允許數(shù)據(jù)讀出。 ∕WD (write):寫入信號線,低電平有效時,允許數(shù)據(jù)寫入。 RESET(reset):復(fù)位信號線,高電平有效時,將所有內(nèi)部寄存器(包括控制寄存器)清0。 PA7~PA0(port A):A口輸入/輸出信號線。 PB7~PB0(port B):B口輸入/輸出信號線。 PC7~PC0(port C):C口輸入/輸出信號線。 VCC:+5V電源。 GND:電源地線。 8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與CPU連接部分、與外設(shè)連接部分、控制部分。 1、與CPU連接部分 根據(jù)定義,8255能并行傳送8位數(shù)據(jù),所以其數(shù)據(jù)線為8根D0~D7。由于8255具有3個通道A、B、C,所以只要兩根地址線就能尋址A、B、C口及控制寄存器,故地址線為兩根A0~A1。此外CPU要對8255進(jìn)行讀、寫與片選操作,所以控制線為片選、復(fù)位、讀、寫信號。各信號的引腳編號如下: (1)數(shù)據(jù)總線DB:編號為D0~D7,用于8255與CPU傳送8位數(shù)據(jù)。 (2)地址總線AB:編號為A0~A1,用于選擇A、B、C口與控制寄存器。 (3)控制總線CB:片選信號∕CS、復(fù)位信號RST、寫信號∕WD、讀信號∕RD。當(dāng)CPU要對8255進(jìn)行讀、寫操作時,必須先向8255發(fā)片選信號∕CS選中8255芯片,然后發(fā)讀信號∕RD或?qū)懶盘枿MWD對8255進(jìn)行讀或?qū)憯?shù)據(jù)的操作。 2、與外設(shè)接口部分 根據(jù)定義,8255有3個通道A、B、C與外設(shè)連接,每個通道又有8根線與外設(shè)連接,所以8255可以用24根線與外設(shè)連接,若進(jìn)行開關(guān)量控制,則8255可同時控制24路開關(guān)。各通道的引腳編號如下: (1)A口:編號為PA0~PA7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。 (2)B口:編號為PB0~PB7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。 (3)C口:編號為PC0~PC7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù),當(dāng)8255工作于應(yīng)答I/O方式時,C口用于應(yīng)答信號的通信。 3、控制器 8255將3個通道分為兩組,即PA0~PA7與PC4~PC7組成A組,PB0~PB7與PC0~PC3組成B組。相應(yīng)的控制器也分為A組控制器與B組控制器,各組控制器的作用如下: (1)A組控制器:控制A口與上C口的輸入與輸出。 (2)B組控制器:控制B口與下C口的輸入與輸出。 3.3信號輸入電路 3.3.1內(nèi)外請求輸入電路 現(xiàn)以呼叫信號的輸入為例,來說明信號輸入及單片機(jī)識別原理.如圖3-4所示,采用PA口外接上拉電阻的并行輸入方式,來輸入外呼叫信號,本電路采用44矩陣鍵盤,行掃描法識別鍵值的原理,具體原理如下: 圖3-4矩陣式鍵盤輸入的電路圖 (1)判斷鍵盤中有無鍵 將全部行線PA0-PA3置低電平,然后檢測列線狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中,若所有列線均為高電平,則鍵盤中無鍵按下[20]。 (2)判斷閉合鍵所在位置,在確認(rèn)有鍵按下后,即可進(jìn)入確定閉合鍵的過程,其方法是,依次將行線置為低電平,即在置某根行線為低電平時,其他線為高電平。在確定某根行線位置為低電平后,在逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處得按鍵就是閉合的按鍵。S00-S04為一到五樓的電梯內(nèi)部呼叫請求按鍵,S05-S13為電梯外部請求按鍵。S00-S15的掃描鍵值分別為01H-0FFH. 3.3.2廂體位置模擬輸入電路 由于沒有電梯控制的硬件模型,只能用按鍵來模擬電梯到達(dá)位置的觸發(fā)信號。本電路采用獨(dú)立式按鍵非編碼鍵盤接口查詢方式,當(dāng)任何一個鍵按下時,與之相連的輸入數(shù)據(jù)線即被清0 而平時該線為1.要判斷是否有鍵按下,用單片機(jī)的位處理指令十分方便。這種鍵盤結(jié)構(gòu)的優(yōu)點(diǎn)是電路簡單;缺點(diǎn)是當(dāng)按鍵數(shù)較多時,要占用較多的I∕O口。 查詢方式鍵盤的處理程序比較簡單。只包括鍵查詢、鍵功能程序轉(zhuǎn)移,S16-S20分別為一樓都五樓的廂體位置到達(dá)觸發(fā)信號使用端,當(dāng)S16按下時,表明廂體已經(jīng)到達(dá)一樓,并使用鍵功能程序轉(zhuǎn)移到顯示電路,并發(fā)出數(shù)字1的字型碼,是是數(shù)碼管顯示1。其余功能按鍵均如此設(shè)置。 具體電路如圖3-5所示 圖3-5廂體位置模擬輸入電路電路圖 3.4信號模擬輸出電路 3.4.1樓層顯示電路 在實(shí)際中,廂外有五個和廂內(nèi)一個共六個數(shù)碼管顯示廂體位置樓層數(shù),顯示的數(shù)據(jù)時一致的。 顯示器是最常用的輸出設(shè)備,與單片機(jī)的應(yīng)用系統(tǒng)接口的顯示器主要是LED顯示器和LCD顯示器。 所謂的接口方式是指LED氣短數(shù)碼顯示器與單片機(jī)的連接方式。按照顯示代碼獲得方式的不同,可分為硬件譯碼、軟件譯碼方式。 本文采用硬件譯碼方式。硬件譯碼方式采用BCD譯碼器∕驅(qū)動器[11](如4511,74LS48)通過譯碼把一位BCD碼數(shù)翻譯為相應(yīng)的字型代碼,然后由驅(qū)動器來提供足夠的功率去驅(qū)動發(fā)光二極管。 硬件譯碼器一般都具有直接驅(qū)動LED的能力,且占用單片機(jī)的系統(tǒng)接口資源少(字形口只需4個口線),編程簡單,因此采用硬件譯碼方式的開支并不大。其缺點(diǎn)是顯示字形有限,通常只能顯示0~9十個字符,個別譯碼器可輸出其他特殊字符。本次設(shè)計只需要顯示0~5就可以了。具體電路如圖3-6所示。 圖3-6 樓層顯示電路的電路圖 3.4.2電梯外部請求顯示電路 電路如圖3-7所示,本電路采用74LS245加限流電阻驅(qū)動發(fā)光管,高電平有效,只要給單片機(jī)的P2口任意位置1,相應(yīng)的發(fā)光管就會亮,8個發(fā)光管從高到底依次為一樓到五樓的上下行請求顯示。 每個發(fā)光管顯示都是獨(dú)立的,只要外部請求按鍵按下,程序會置為或清零指令就可以隨意改變發(fā)光管的顯示狀態(tài)使相應(yīng)的發(fā)光管點(diǎn)亮。 要注意的是74LS245與發(fā)光管之間的限流電阻不能過大,更不能省略,一般選在200到300歐之間為宜。要是E非端與DIR端接低電平才能正常工作,所以本電路將其直接接地。 圖3-7電梯外部請求顯示電路 3.4.3報警部分 (1)超重報警 當(dāng)重力傳感器檢測到超重時,經(jīng)系統(tǒng)處理后會發(fā)出一個持續(xù)的高電平,使多諧振蕩器工作,最終驅(qū)動蜂鳴器工作。 (2)緊急報警 轎廂內(nèi)設(shè)緊急報警按鈕,當(dāng)電梯突然發(fā)生故障使轎箱內(nèi)的人被困時,可以通過按下緊急報警按鈕,使緊急報警燈亮同時發(fā)出音響信號,由于這個部分要求電梯的任何運(yùn)行狀況下都要有效,為保險起見,我們將此作為一個獨(dú)立的模塊。 附加:防沖頂和防撞底 我們在轎廂頂快接近豎井頂部和位置和轎廂底快接近豎井底部的位置也同樣放置反光片,用于對電梯進(jìn)行保護(hù)——防沖頂和防撞底。當(dāng)轎廂在超過規(guī)定的樓層內(nèi)感應(yīng)到光后,程序設(shè)定其馬上制動。具體電路和編著的程序和平層部分相差不大。 3.5單片機(jī)對芯片82C55的基本讀寫 與一般其他的芯片類似,對82C55芯片的操作,一般也即對其內(nèi)部寄存器的操作。其內(nèi)部寄存器分為兩類,一類為命令寄存器,另一類為數(shù)據(jù)寄存器。很明顯,由于82C55的功能為將一組單片機(jī)I/O口擴(kuò)展為三組I/O口,那么肯定要有三組數(shù)據(jù)寄存器,分別對應(yīng)著它的三組I/O口,即PA口,PB口與PC口[12],那么82C55芯片便有四個寄存器,正好可以用兩位的地址線進(jìn)行尋址(即管腳A0與A1)。其讀寫寄存器的流程如圖3-8所示。 圖3-8 讀寫寄存器流程圖 具體的說,其過程為:開始選中該芯片(低電平有效),而后設(shè)置好所要讀寫的寄存器的地址,也即設(shè)置好A0與A1的數(shù)值組合,若為讀寄存器,則讓單片機(jī)讀引腳P3^7為低電平,反之若為寫寄存器,則讓單片機(jī)寫引腳P3^6為低電平,然后把要讀或者寫的數(shù)據(jù)放到數(shù)據(jù)口P0口上(需要注意的是,當(dāng)單片機(jī)讀寄存器時,對于其自身來說,是輸入數(shù)據(jù),故此時需先讓P0口值為高電平0xff為下一步的輸入做準(zhǔn)備,而此流程圖的最后一步即為這種情況做準(zhǔn)備的),一段短短的穩(wěn)定時間后再讓讀引腳或者寫引腳為高電平,則在由低到高的跳變中,數(shù)據(jù)得到了轉(zhuǎn)移。然后再片選無效,以防以后的數(shù)據(jù)傳輸產(chǎn)生相互干擾。最后數(shù)據(jù)口P0置為0xff,為方便下次可能的輸入做準(zhǔn)備。 3.5.1芯片82C55的初始化 芯片82C55的邏輯構(gòu)造該芯片的邏輯構(gòu)造如圖3-9所示。 圖3-9 82C55邏輯構(gòu)造圖 1、三個并行輸入/輸出端口(端口A、端口B、端口C) 8255A有A、B、C三個并行輸入/輸出端口(簡稱為A口、B口、C口),其功能全部由程序設(shè)定,每個端口都有自己的特點(diǎn)。A口、B口通常作為獨(dú)立的I/O端口使用,C口也可以作為一般的I/O端口使用,但當(dāng)A口、B口作為應(yīng)答式的I/O口使用時,C口分別用來為A口、B口提供應(yīng)答控制信號[13]。 2、讀/寫控制邏輯[19] 讀/寫控制邏輯用于管理數(shù)據(jù)、控制字或狀態(tài)字的傳送,其控制信號有以下幾種: (1)∕CS片選信號,低電平有效允許8255A與CPU交換信息。 (2)∕RD讀信號,低電平有效允許CPU從8255A端口中讀取數(shù)據(jù)或狀態(tài)信息。 (3)∕WR寫信號,低電平有效允許CPU將數(shù)據(jù)、控制字寫入到8255A中。 (4) RESET,復(fù)位信號,高電平有效。清除8255A所有控制寄存器內(nèi)容,并將各端口置成輸入方式。 (5) A1、A0,8255A片內(nèi)端口尋址地址。 3、A組和B組控制電路 A組和B組控制電路接受讀/寫控制邏輯的信號和CPU送入的控制字,然后決定各端口的功能。A組控制電路控制A口和C口的高4位(PC7~PC4);B組控制電路控制B口和C口的低4位(PC3~PC0)。還可根據(jù)控制字的要求對C口的某位實(shí)現(xiàn)置0或置1的操作[18]。 4、數(shù)據(jù)總線緩沖器 數(shù)據(jù)總線緩沖器是一個雙向三態(tài)的8位緩沖器,可與系統(tǒng)的數(shù)據(jù)總線直接相連,實(shí)現(xiàn)CPU和8255A之間的信息傳送。 82C55芯片內(nèi)部有四個寄存器,即命令寄存器、PA口寄存器、PB口寄存器、PC口寄存器。其中,向命令中寫入數(shù)據(jù)可以控制芯片各擴(kuò)展口的工作方式。向后三者寄存器中寫入數(shù)據(jù),芯片會自動將其取出,并以高低電平的形式分布于各相應(yīng)管腳。并且,三組擴(kuò)展口在作為輸出時,均具有鎖存功能。 由于有四組口,故相應(yīng)的應(yīng)該有兩位地址來對其尋址。芯片上的A0、A1即為此而設(shè)計,當(dāng)A0=0,A1=0時,尋址的為PA口寄存器;當(dāng)A0=1,A1=0時,尋址的為PB口寄存器;當(dāng)A0=0,A1=1時,尋址的為PC口寄存器;當(dāng)A0=1,A1=1時,尋址的為命令(控制)寄存器。 3.5.2芯片82C55的工作方式 該芯片具有三種可選的工作方式,分別便于不同情況時供使用者以更為方便的選擇。現(xiàn)對其工作方式做一簡要介紹如下: 1、方式0—基本輸入輸出方式 (1) 方式0的工作特點(diǎn) 方式0稱為基本輸入輸出方式,該方式下可將3個數(shù)據(jù)端口劃分為4個獨(dú)立的部分:A口和B口作為兩個8位端口,C口的高4位和低4位可以用作兩個4位端口[17] (當(dāng)然也可以作為一個8位端口),各個端口都可以獨(dú)立用作輸入或輸出。其特性如下: 1. 任何端口都具有輸出及輸入功能。 2. 輸出時,各Port 均有鎖定功能,能將信號鎖定在最后一次的輸出狀態(tài)上。 3. 輸入無鎖定功能,數(shù)據(jù)收到后,端口上的信號將不會保留最后一次輸入的狀態(tài)。 4. 有2 個8 位端口(PA 和PB)及2 個4 位端口(PC0~PC3 和PC4~PC7)可供利用。 5. 共可組成16 種不同的輸出入狀態(tài)。 (2) 方式0的使用場合 方式0使用在無條件傳送和查詢式傳送兩種場合。 2、方式1—選通輸入輸出方式 (1) 方式1的工作特點(diǎn) 方式1是一種選通輸入輸出方式。在這種工作方式下,端口A、端口B和端口C被分為兩個組。端口A和端口B用作數(shù)據(jù)的輸入/輸出,端口C的一些引腳信號被規(guī)定為端口A、B的聯(lián)絡(luò)信號,這些聯(lián)絡(luò)信號和C口的各引腳保持固定的對應(yīng)關(guān)系,不能用程序改變。 1. A/B口輸入的聯(lián)絡(luò)信號[16] STB :輸入選通信號,低電平有效,外設(shè)輸入;當(dāng)該信號有效時,使8255的A/B口接收外設(shè)的8位數(shù)據(jù)。信號通過PC4/ A口、 PC2/ B口引入。 IBF:輸入滿信號,高電平有效,8255輸出;當(dāng)該信號有效時,表示8255已接收數(shù)據(jù)。信號通過PC5/ A口、 PC1/ B口引出。 INTR:中斷請求信號,高電平有效,8255輸出;當(dāng)該信號有效時, 8255向CPU申請中斷(讀取數(shù)據(jù)),信號通過PC3/ A口、 PC0/ B口引出。 INTE:中斷允許標(biāo)志,是否允許發(fā)出中斷申請( INTR );當(dāng)設(shè)置PC4=1( A口的標(biāo)志), PC2=1 ( B口的標(biāo)志)時,中斷允許。 2. A/B口輸出的聯(lián)絡(luò)信號 OBF :輸出滿信號,低電平有效, 8255輸出; 當(dāng)該信號有效時,通知外設(shè),A/B口的數(shù)據(jù)準(zhǔn)備好。信號通過PC7/ A口、 PC1/ B口引出。 ACK:外設(shè)回答信號,低電平有效;當(dāng)該信號有效時,表示外設(shè)已空閑。信號通過PC6/ A口、 PC2/ B口引入。 INTR:中斷請求信號,高電平有效,8255輸出;當(dāng)該信號有效時, 8255向CPU申請中斷(輸入數(shù)據(jù)),信號通過PC3/ A口、 PC0/ B口引出。 INTE:中斷允許標(biāo)志,是否允許發(fā)出中斷申請( INTR );當(dāng)設(shè)置PC6=1( A口的標(biāo)志), PC2=1 ( B口的標(biāo)志)時,中斷允許。 方式1的工作特點(diǎn)可歸納如下: 端口A和端口B均可工作在方式1輸入或輸出方式。 若端口A和端口B中只有一個工作在方式1,而另一個工作在方式0,則端口C中有3位作為方式1的聯(lián)絡(luò)信號,端口C其余5位均可工作在方式0的輸入或輸出方式[15]。 若端口A和端口B都工作在方式1,則C口中6位作其聯(lián)絡(luò)信號,剩下的2位還可工作在方式0的輸入輸出方式。 方式1有兩種用法: (1) 中斷方式。將兩個INTE置為1,A組和B組可以使用各自的INTR信號申請中斷。 (2) 查詢方式。微處理器通過讀端口C,可以查詢IBF、OBF#信號的當(dāng)前狀態(tài),決定是否立即進(jìn)行數(shù)據(jù)傳輸。 3、方式2—雙向輸入輸出方式 方式2只適用于端口A,是雙向的輸入輸出傳輸方式。在方式2,外設(shè)可以在A口的8位數(shù)據(jù)線上分時向8255A發(fā)送數(shù)據(jù)或從8255A接收數(shù)據(jù),但不能同時進(jìn)行。該方式需占用端口C的5位作為聯(lián)絡(luò)信號。端口A工作于方式2時,端口B可選方式0或方式1[14]。 3.6本章小結(jié) 本章介紹了組成電梯的各個模塊與所選擇的單片機(jī),還介紹了各個模塊的功能以及工作方式。只有選擇正確適當(dāng),整個系統(tǒng)才有可能按照我們的設(shè)計去運(yùn)行。 第四章系統(tǒng)的軟件設(shè)計 4.1軟件設(shè)計 從程序功能上來分,本設(shè)計的高層軟件程序大概可以分為以下幾類:一、運(yùn)行與決策函數(shù);二、中斷處理函數(shù);三、置位各狀態(tài)變量函數(shù);四、清除各狀態(tài)變量函數(shù)。 其中,第一類函數(shù)起作用于按鍵按下的時刻,當(dāng)有按鍵按下時,以中斷的方式發(fā)送給單片機(jī),此時,單片機(jī)即對程序中所用到的各個狀態(tài)變量進(jìn)行置位并且通過82C55點(diǎn)亮相關(guān)發(fā)光二極管,如置位按鍵所對應(yīng)的去向變量等,方便決策函數(shù)使用。第二類函數(shù)的功能恰好與第一類相反,這類函數(shù)起作用于電梯到達(dá)目標(biāo)樓層時,這時函數(shù)負(fù)責(zé)把相關(guān)發(fā)光二極管熄滅,并且及時清除相關(guān)狀態(tài)位,以免影響判別函數(shù)作出正確判斷。第三類函數(shù)是程序的核心。它直接負(fù)責(zé)管理電梯下一次所要到達(dá)的樓層,并且要基于短時間、高效率、人性化等原則。每當(dāng)電梯經(jīng)過一樓層時,此函數(shù)即會被調(diào)用,即為下一個電梯要停留的目標(biāo)樓層值。 而從程序的層次上來分,又可分為位于最底層的芯片內(nèi)部寄存器操作的基層程序和位于上層的應(yīng)用程序。 4.1.1電梯判決函數(shù) (1)電梯所處狀態(tài)的分類與判定 這是整個程序成功運(yùn)行的核心保證。在電梯經(jīng)過一個樓層時,就會自動調(diào)用該函數(shù),它的作用是基于短時間、高效率、人性化的基礎(chǔ)上,合理智能的對電梯的運(yùn)行進(jìn)行調(diào)度,結(jié)合實(shí)際情況,最終得出電梯下一個目標(biāo)停留樓層。 程序中將實(shí)際情況分為四種情況來判斷:電梯上行且是去送人(即電梯此時位于底層,而高層有人呼叫要上樓)、電梯上行且是去接人(即電梯此時位于底層,而高層有人呼叫要下樓)、電梯下行且是去送人(即電梯此時位于高層,而低層有人呼叫要下樓)、電梯下行且是去接人(即電梯此時位于高層,而低層有人呼叫要上樓)。 而這四種情況,也就包含了實(shí)際電梯中的絕大部分情況。情況不同,分析的方法也當(dāng)然不一樣。而首先,我們要了解電梯是如何得知此時它是上面四種的哪一種情況的呢? 這可以分為兩個步驟:第一判斷電梯是上行還是下行;第二,判斷是去接人還是去送人。當(dāng)然,第一個是最好判斷的,因?yàn)殡娞菰谶\(yùn)行時,有兩個與樓層有關(guān)的變量,一個為當(dāng)前所在樓層值,一個為目標(biāo)樓層值,當(dāng)電梯運(yùn)行時,會讓這兩個值進(jìn)行比較,若前者大于后者,就為下行,反之,當(dāng)前者小于后者,即為上行。 (2)電梯各情況下所對應(yīng)的處理方法 以電梯上行的兩種狀態(tài)為例。在實(shí)際應(yīng)用中,最簡單的情況莫過于電梯當(dāng)前為閑置狀態(tài),然后有一人按下按鍵呼叫,然后電梯便響應(yīng)呼叫。但是,實(shí)際情況往往比這復(fù)雜的多,在第一個人按下按鍵電梯運(yùn)行的過程中,還很有可能會有其他不同樓層的人按下不同的按鍵(上行或者下行)的情況發(fā)生。那么就必須得為電梯規(guī)定好一個特定的優(yōu)先級規(guī)則,讓其依據(jù)這個規(guī)則來運(yùn)行,以免亂作一團(tuán)。那么這個規(guī)則就必須要高效且人性化,在此,我們規(guī)定,當(dāng)電梯上行時,均不理會那些按下行按鍵的顧客。并且,若在上行過程中,也有人在某層按的是上行按鍵,但是電梯此時已經(jīng)走過了該層,那么電梯也絕對不會再選擇先下行接他。當(dāng)然,當(dāng)將高層上行的顧客送完后(此時一般來說電梯已經(jīng)處于高層了),電梯便會檢測下行按鍵,若更高層有人呼叫下行,則電梯會選擇先去響應(yīng)他們,然后再下行的過程中依次響應(yīng)按了下行處于等待中的顧客,最后這些顧客都送完后,再去相應(yīng)那些電梯上行過程中,處于比電梯低的樓層卻按了上行鍵的顧客。 簡單地說,若電梯處于上行狀態(tài),則在該過程中響應(yīng)不同顧客的優(yōu)先級(或者電梯響應(yīng)的先后順序)為:高層呼叫上行顧客>高層呼叫下行顧客>底層呼叫下行顧客>底層呼叫上行顧客。 4.1.2電梯運(yùn)行的主程序流程圖 電梯的運(yùn)行的基本過程是:由外部的呼叫信號給出呼叫,控制系統(tǒng)判斷電梯目前所處的位置并與呼叫樓層進(jìn)行對照,同方向還是反方向,若反方向,則改變方向到呼叫層.若同方向直接運(yùn)行到呼叫層。為了便于了解控制近況,本系統(tǒng)中設(shè)計了運(yùn)行狀態(tài)指示電路。如圖4-1所示 圖4-1電梯運(yùn)行的主程序圖 驅(qū)動輸出接口電路主要是電機(jī)主拖動及開關(guān)門電機(jī)控制.主引電機(jī)使用三相380V交流供電,其電機(jī)功率約為22KW左右.因此所使用的交流接觸器觸點(diǎn)電流較大,尤其在剛啟動時電流更大,觸頭引起的火花必然會對單片機(jī)的工作產(chǎn)生影響.為了防止這個影響的產(chǎn)生,在輸出電路中考慮了兩級隔離措施.首先用光電耦合器輸出將邏輯TTL電平轉(zhuǎn)換為直流5V電平的驅(qū)動電路,從而接通交流電動機(jī)工作。 圖4-2正常運(yùn)行程序段框圖 4.2 keilc的編程和匯編語言的程序 4.2.1 keilc編程的流程 第一步 建立專案 ,就是新建文件來保存模塊的組件和參數(shù)的選擇,以便以后的仿真,如圖4-3所示 圖4-3建立工程操作圖 第二步 選擇芯片,選擇與設(shè)計電路圖中相同的AT89C51單片機(jī),為了仿真時的參數(shù)相同,如圖4-4所示 第三步 編寫程序,將編寫好的程序另從為 .ASM格式的文件,將程序文件添加到新建的工程文件中,并更改設(shè)置調(diào)試時生成hex文件,如圖4-5所示。 圖4-4選擇芯片操作圖 第四步 proteus和keilc的聯(lián)調(diào),將KEILC中生成的HEX文件在PROTEUS中的單片機(jī)中打開就能實(shí)現(xiàn)單片機(jī)程序的同步運(yùn)行。 第五步實(shí)現(xiàn)電梯的部分功能的仿真。仿真時打開的程序就是電梯在實(shí)際運(yùn)行中的部分功能。 圖4-5生成hex文件操作圖 4.2.2 部分軟件功能的程序 (1)點(diǎn)亮led燈 ORG 00H ;按鍵燈 START: JNB P1.0,NEXT1 CLR P2.0 SJMP NEX1 NEXT1: SETB P2.0 NEX1: JNB P1.1,NEXT2 CLR P2.1 SJMP NEX2 NEXT2: SETB P2.1 NEX2: JNB P1.2,NEXT3 CLR P2.2 SJMP NEX3 NEXT3: SETB P2.2 NEX3: JNB P1.3,NEXT4 CLR P2.3 SJMP NEX4 NEXT4: SETB P2.3 NEX4: JNB P1.4,NXETT5 CLR P2.4 SJMP NEX5 NEXT5: SETB P2.4 NEX5: JNB P1.5 ,NEXT6 CLR P2.5 SJMP NEX6 NEXT6: SETB P2.5 NEX6: JNB P1.6 ,NEXT7 CLR P2.6 SJMP NEX7 NEXT7: SETB P2.6 NEX7: JNB P1.7- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
5 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 單片機(jī) 電梯 控制系統(tǒng) 設(shè)計
鏈接地址:http://kudomayuko.com/p-5836988.html