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