機(jī)械畢業(yè)設(shè)計1356四層樓電梯自動控制系統(tǒng)的設(shè)計說明書.doc_第1頁
機(jī)械畢業(yè)設(shè)計1356四層樓電梯自動控制系統(tǒng)的設(shè)計說明書.doc_第2頁
機(jī)械畢業(yè)設(shè)計1356四層樓電梯自動控制系統(tǒng)的設(shè)計說明書.doc_第3頁
機(jī)械畢業(yè)設(shè)計1356四層樓電梯自動控制系統(tǒng)的設(shè)計說明書.doc_第4頁
機(jī)械畢業(yè)設(shè)計1356四層樓電梯自動控制系統(tǒng)的設(shè)計說明書.doc_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1 畢業(yè)設(shè)計說明書目錄 第一章 引言 2 第二章 設(shè)計要求 2 第三章 設(shè)計方案 3 第四章 硬件設(shè)計 5 4.1 單片機(jī) 5 4.2 各樓層電梯間電路 9 4.3 電梯間電路 12 4.4 控制臺電路 13 4.5 單片機(jī)電路 16 4.6 電路 PCB 圖 17 第五章 軟件設(shè)計 19 5.1 簡易控制方案 19 5.2 進(jìn)一步控制 方 案 22 5.2.1 控制邏輯流程圖 22 5.2.2 說明 25 5.2.3 參考程序 26 第六章 軟硬件系統(tǒng)的調(diào)試 31 6.1 軟件調(diào)試 31 6.2 硬件調(diào)試 32 第七章 結(jié)束語 33 畢業(yè)設(shè)計總結(jié) 34 參考文獻(xiàn) 36 2 電梯控制系統(tǒng)模型 摘 要 :本論文主要介紹的是電梯自動控制模型, 硬件部分 我們使用的是單片機(jī)及外圍電路組成高度為四層樓的電梯控制系統(tǒng)。單片機(jī)采用 AT89C51,晶體振蕩器選 6MHz, C51、 C52為 30uF瓷片電容與晶體振蕩器形成時鐘電路。電 容 C53、電阻 R51、 R52和按鍵 RESET 構(gòu)成上電復(fù)位和手動復(fù)位電路。 軟件部分采用了兩種控制方案 ,簡易控制方案只是簡單的電梯上升下降 ,在各樓層短暫停留。而進(jìn)一步控制方案則考慮各樓層的信號請求 ,以完成各樓層的升降控制。該系統(tǒng)具有 工作穩(wěn)定,操作簡單等優(yōu)點。 關(guān)鍵詞 :電梯 , AT89C51單片機(jī) , 共陰極數(shù)碼管 , CD4511譯碼器,發(fā)光二極管 第一章 引言 據(jù)國外有關(guān)資料介紹 ,公元前 2800 年在古代埃及 ,為了建筑當(dāng)時的金字塔 ,曾使用過由人力驅(qū)動的升降機(jī)械。公元 1765 年瓦特發(fā)明了蒸汽機(jī)之后 ,1858 年美國研制 出以蒸汽為動力 ,并通過皮帶轉(zhuǎn)動和蝸輪減速裝置驅(qū)動的電梯。 1878 年英國的阿姆斯特郎發(fā)明了水壓梯。并隨著水壓梯的發(fā)展 ,淘汰了蒸汽梯。后來又出現(xiàn)了采用液壓泵和控制閥以及直接柱塞式和側(cè)柱塞式結(jié)構(gòu)的液壓梯 ,這種掖壓梯至今仍為人們所采用。但是, 電梯得以興盛發(fā)展的原因在于采用了電力作為動力來源 .。 在 20 世紀(jì)初 ,美國奧梯斯電梯公司首先使用直流電動機(jī)作為動力 ,生產(chǎn)出以槽輪式驅(qū)動的直流電梯 ,從而為今天的高速度 ,高行程電梯的發(fā)展奠定了基礎(chǔ)。 20世紀(jì)30 年代美國紐約市的 102 層摩天大樓建成 ,美國奧梯斯電梯公司為這座大樓制造和安裝 了 74臺速度為 6.0MS的電梯。 從此以后 ,電梯這個產(chǎn)品 ,一直在日新月異的發(fā)展著 .目前電梯產(chǎn)品 ,不但規(guī)格品種多 ,自動化強(qiáng) ,而且安全可靠 ,乘坐舒服 .近幾年來 ,隨著電子工業(yè)的發(fā)展 ,微處理機(jī)和電子計算機(jī)已成功的應(yīng)用到電梯的電氣控制系統(tǒng)中去 ,采用無觸點元件的電梯電氣控制系統(tǒng)已開始批量生產(chǎn)。 第二章 設(shè)計要求 采用 AT89C51單片機(jī)及外圍電路組成高度為四層樓的電梯控制系統(tǒng) 。 電梯內(nèi)電路由 FS1、 FS2、 FS3 和 FS4 四個發(fā)光二極管作為指示燈,電梯模型上電后,電梯的起始位置為一樓,等待控制臺 Start按鍵按下,數(shù)碼 管顯示“ 1”。當(dāng) Start按鍵按下后,電梯開始向上運(yùn)動,控制臺的上升指示燈 UP亮。 2s后到達(dá)二樓,數(shù)碼管顯示“ 2”并在二樓停留 5s,然后繼續(xù)上升。每層樓停留 5s,直到四樓。在四樓停留 5s 后開始下降,控制臺的指示燈 DOWN 亮。每層樓停 5s,直到一樓。然后重復(fù)上述過程。如果在一個上下循環(huán)中按下過 Stop鍵 ,電梯下降到一樓后停止工作。直到再次按下 Start鍵后重新恢復(fù)工作 3 第三章 設(shè)計方案 電梯控制系統(tǒng)由各層樓的電梯間電路、電梯內(nèi)電路和控制臺電路三部分組成。電梯在各樓層的定位本應(yīng)采用行程開關(guān),考慮到模型的操 作性,采用延時控制。相鄰樓層間升降設(shè)定為 2S。 1)各樓層的電梯間電路 二、三層的電路間均有“上升”和“下降”選擇按鍵,一樓只有“上升”按鍵,四樓只有“下降”按鍵,每個按鍵配一只發(fā)光二極管,作為指示燈。 2)電梯內(nèi)部電路 目標(biāo)樓層 1 4選擇按鍵配又相應(yīng)的指示燈。 3)控制臺電路 ( 1)兩個按鍵用于手動控制。控制電路的“開始運(yùn)行”和“停止運(yùn)行” ( 2)兩個指示燈,分別指示電梯的升降情況。 ( 3)一只數(shù)碼管,用于顯示電梯當(dāng)前所在的樓層。 4)控制方案 ( 1)簡單控制方案 (見圖 1) 工作原理:控制臺按下 START 鍵后,通過 AT89C51 單片機(jī)的控制使得電梯運(yùn)行,該系統(tǒng)中電梯運(yùn)行時不受各樓層的控制和影響 往復(fù)運(yùn)動,只有在控制臺按下 STOP 鍵后,電梯降到一樓停止,等待控制臺再次啟動。該系統(tǒng)使用數(shù)碼管顯示當(dāng)前樓層。 圖 1 簡易方案系統(tǒng)工作原理框圖電梯降到一樓停止控制臺啟動電梯單片機(jī)譯碼器數(shù)碼管顯示電梯動作控制臺停止電梯 4 ( 2)進(jìn)一步控制方案 (見圖 2) 工作原理:工作臺啟動電梯,單片機(jī)檢測各樓層信號請求控制電梯運(yùn)動,電梯動作完成后數(shù)碼管顯示所在樓層,同時單片機(jī)再次檢測各樓層請求信號,使的電梯再次動作,直到控制臺停止電梯,電梯降到一樓后停止,等待控制臺再次啟動 電梯。 圖 2 進(jìn)一步控制系統(tǒng)工作原理框圖電梯動作電梯降到一樓停止控制臺停止電梯數(shù)碼管顯示譯碼器單片機(jī)各樓層請求信號控制臺啟動電梯 5 第四章 硬件設(shè)計 4.1 單片機(jī) 采用 AT89C51單片機(jī)及外圍電路組成高度為四層樓的電梯控制系統(tǒng) 。 AT89c51是一種低功耗高性能的 8位單片機(jī),片內(nèi)帶有一個 4k字節(jié)的 flash可編擦除只讀存儲器 (perom),它采用了 cmos工藝和 atmel公司的高密度非易失性存儲器 (nuram)技術(shù),而且其輸出引腳和指令系統(tǒng)和 mcu_51系列單片機(jī)兼容。片內(nèi)的 flash存儲器允許在系統(tǒng)內(nèi)可改編程序或用常規(guī)的非易失性的存儲器編程器來編程。同時已具有三級程序存儲器保密的性能。 在眾多的 51 系列單片機(jī)中,要算 atmei 公司的 at89c51 更實用,因為它不僅和 mcu_51系列單片機(jī)指令、管腳完全兼容,而且其片內(nèi)的 4k 程序存儲器是 flash工藝的,這種下藝的存儲器用戶可以用電的方式瞬間擦除、改寫。所以說這種單片機(jī)對開發(fā)設(shè)備的要求很低,開發(fā)時間也大大縮短。寫入單片機(jī)的程序還可以加密,這又很好地保護(hù)了所有者的勞動成果。 6 管腳說明 VCC:供電電壓。 GND:接地。 P0口: P0口為一個 8位漏級開路雙向 I/O口,每腳可吸收 8TTL門電流。當(dāng) P1口的管腳第一次寫 1時,被定義為高阻輸入。 P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在 FIASH編程時, P0 口作為原碼輸入口,當(dāng) FIASH進(jìn)行校驗時, P0輸出原碼,此時 P0外部必須被拉高。 P1口: P1口是一個內(nèi)部提供上拉電阻的 8位雙向 I/O口, P1口緩沖器能接收輸出 4TTL門電流。 P1口管腳寫入 1后,被內(nèi)部上拉為高,可用作輸入, P1口被外部下拉為低 電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在 FLASH編程和校驗時, 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編程和校驗時接收高八位地址信號和控制信號。 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口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持 RST腳兩個機(jī)器周期的高電平時間。 7 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在 FLASH編程期間,此引腳用于輸入編程脈沖。在平時, ALE端以不變的頻率周期輸出正脈沖信號,此頻率 為振蕩器頻率的 1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(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:來自反向振蕩器的輸出。 單片機(jī)的基本組成如圖 3所示 8 圖 3 下面簡要說明各部分組成 1、 中央處理器 單片機(jī)的中央處理器是單片機(jī)的核心,完成運(yùn)算和控制操作,中央處理器主要包括運(yùn)算器和控制器兩部分。 2、 存儲器 單片機(jī)內(nèi)部的存儲器分為程序存儲器和數(shù)據(jù)存儲器。 3、外圍接口電路 CPU與外部設(shè)備的信息交換都是通過接口電路來進(jìn)行。 AT89C51單片機(jī)的外圍接口電路主要包括: 4 個可編程并行 I/O 口, 1 個可編程串行口, 2 個 16 位的可編程定時器以及中斷系統(tǒng)等。 4、時鐘振蕩電路 時鐘振蕩電路是 CPU 所需要的各種定時控制信號的必備單元。 CPU 只有在時序信號和控制信號的協(xié)調(diào)下工作,才能執(zhí)行各種指令。 振蕩器和時鐘電路 程序儲存器( 4KB) 數(shù)據(jù)儲存器( 128 字節(jié)) 兩個 16 位 定時器計數(shù)器 中斷 控制 內(nèi)部中斷 總線擴(kuò)展控制器 并行可編程 I/O 口 可編程串行口 外部中斷 擴(kuò)展控制 P0 P1 P2 P3 RXD TXD 外 時鐘源 外部事件計數(shù) AT89C51 單片機(jī)的基本組成 9 4.2 各樓層電 梯間電路 如圖 4 所示, R52、 R55、 R56、 R59、 R60 和 R62 是上拉電阻,其作用是保證按鍵未按下時,端口 P1.0 P1.5 為高電平。當(dāng)按鍵按下時,端口 P1.0 P1.5 通過按鍵接地,使得P1.0 P1.5 變?yōu)榈碗娖?。電?C51 C56 的作用是消除抖動和抗干擾。各樓層電梯間的升降選擇按鍵均于單片機(jī) P1 口連接,上升按鍵的 P1.0 P1.2 連接。下降按鍵與 P1 口的P1.3 P1.5 連接,即由 P1 口可以讀出電梯間升、降按鍵的狀態(tài)。每個上升、下降按鍵均有一只發(fā)光二極管作為指示燈與之配合,發(fā)光二極管與 P0 口的 P0.0 P0.5 連接。每個發(fā)光二極管通過一只阻值為 470的限流電阻接電源( Vcc),這樣流經(jīng)發(fā)光二極管的電流均為7.5mA,有適當(dāng)?shù)牧炼?,同時單片機(jī)的端口在不加驅(qū)動的情況下可以承受 。 一層 10 二層 三層 11 四層 圖 4 電梯間電路 12 4.3電梯內(nèi)電路 電梯內(nèi)電路如圖 5所示,四個目標(biāo)樓層選擇按鍵 F1、 F2、 F3、 F4和四個與 之配合的發(fā)光二極管作為指示燈,即 FS1、 FS2、 FS3 和 FS4。按鍵與 P3 口的 P3.0 P3.3 連接,指示燈與 P2口的 P2.0 P2.3相連。上拉電阻 R11 R14和電容 C11 C14的作用同上。 圖 5 電梯內(nèi)電路 13 4.4 控制臺電路 控制臺電路如圖 6所示。發(fā)光二極管 Power是電源指示燈,用以顯示供電是否正常。 DISP是 0.5in(英寸)共陰極數(shù)碼管,用來顯示當(dāng)前樓層。采用 CD4511作譯碼器,經(jīng) R31 R37(阻值為 470)對數(shù)碼管限 流。 UP、 DOWN兩只發(fā)光管用來顯示電梯運(yùn)行的方向。 CD4511是 BCD-鎖存 /七段譯碼 /驅(qū)動器: 有燈測試功能;以反相器作輸出級,用以驅(qū)動 LED 或數(shù)碼管;具有消隱輸入;顯示數(shù) 6時, a=0,顯示 9時, d=0。 1-B,2-C,3-LT(為燈測試輸入端) ,4-BI(數(shù)據(jù)輸入端) ,5-LE(鎖存使能,鎖存輸入使能) ,6-D,7-A,8-VSS(電源負(fù)極)( A, B, C, D 為門電路的輸入端)9-e,10-d,11-c,12-b,13-a,14-g,15-f, 16-vdd(電源正極 )( a,b,c,d,e,f,g 為譯碼輸出;顯示字符端輸出,連接數(shù)碼管的相應(yīng)腳) 14 CD4511 功能表 十進(jìn)制 或功能 輸 入 BI 輸 出 字 型 LE LT D C B A a b c d e f g 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 消 隱 鎖 定 燈 測 試 1 1 1 0 0 1 0 0 0 0 0 0 0 鎖定在上一個 LE=0時 1 1 1 1 1 1 1 15 圖 6 控制臺電路 16 4.5 單片機(jī)電路 單片機(jī)電路如圖 7 所示,單片機(jī)采用 AT89C51,晶體振蕩器選 6MHz, C51、 C52 為 30uF瓷片電容與晶體振蕩器形成時鐘電路。電容 C53、電阻 R51、 R52和按鍵 RESET 構(gòu)成上電復(fù)位和手動復(fù)位電路。 外部接線圖見附圖 1。 圖 7 單片機(jī)電路 17 4.6、電路板 PCB圖 圖 8所示電路板 PCB 圖的頂層和底層。 圖 8 電梯模型 PCB 圖(頂面) 18 圖 8 電梯模型 PCB 圖 (底面 ) 19 第五章 軟件設(shè)計 5.1簡易控制 方案 ( 1)電梯模型上電后,電梯的起始位置為一樓,等待控制臺 Start 按鍵按下,數(shù)碼管顯示“ 1”。 ( 2)當(dāng) Start按鍵按下后,電梯開始向上運(yùn)動,控制臺的上升指示燈 UP亮。 2s后到達(dá)二樓,數(shù)碼管顯示“ 2”并在二樓停留 5s,然后繼續(xù)上升。每層樓停留 5s,直到四樓。在四樓停留 5s后開始下降,控制臺的指示燈 DOWN亮。每層樓停 5s,直到一樓。然后重復(fù)上述過程。 (3)如果在一個上下循環(huán)中按下過 Stop 鍵 ,電梯下降到一樓后停止工作。直到再次按下Start 鍵后重新恢復(fù)工作。 ( 4) 5s 定時由定時器 T0 和 R2 一起完成 。 T0 定時 100ms,每 100ms 中斷一次。在中斷服務(wù)程序中將 R2加 1。當(dāng) R2加到 50時,中斷了 50次, 50 100ms=5s,即完成 5s定時。 ( 5)定時器 T1 定時 10ms。每 10s 中斷一次,在中斷服務(wù)程序中檢查一次 Stop 鍵是否按下,如果按下停止 T1計時( TR1=0),并將 R3置為非 0(程序中間 R3寫 #0FFH)。電梯下降到一樓是檢查 R3中的內(nèi)容,如果不是 0就停止工作。 ( 6)參考程序 ORG 0000H AJMP START ORG 000BH AJMP TIME ORG 001BH AJMP TIME1 START: MOV TMOD, 11H MOV IE,#8AH MOV TH0,#3CH ;定時 MOV TL0, #0B0H MOV TH1, 0ECH ;定時 MOV TL1, #78H SETB TR0 SETB TR1 MOV SP, #6FH 20 Q1: SETB P0.6 ;下降指示燈滅 SETB P0.7 ;上升指示燈滅 MOV R3, MOV P3,#1FH ;數(shù)碼管顯示 JB P1.7, ;等待開始工作指令 SETB P0.6 Q2: CLR P0.7 ;上升指示燈亮 ACALL DLY ;上升 SETB P0.7 ;到達(dá)二層,上升指示燈滅 MOV P3, 2FH ;數(shù)碼管顯示 MOV R2, ;定時開始 CJNZ R2, 50, ;等待延時 CLR P0.7 ;到,繼續(xù)上升 ACALL DLY ;上升 SETB P0.7 ;到達(dá)三層,上升指示燈滅 MOV P3, #3FH ;數(shù) 碼管顯示 MOV R2, #0 ;定時開始 DJNZ R2, #50, $ ;等待延時 CLR P0. ;到,繼續(xù)上升 ACALL DLY ;上升 SETB P0.7 ;到達(dá)四層,上升指示燈滅 MOV P3, #4FH ;數(shù)碼管顯示 4 MOV R2, #0 ;定時開始 DJNZ R2, #50, $ ;等待延時 21 CLR P0.6 ;到,開始下降,下降指示燈亮 ACALL DLY ;下降 SETB P0.6 ;達(dá)到三層,下降指示燈滅 MOV P3, #3FH ;數(shù)碼管顯示 MOV R2, ;定時開始 CJNZ R2, 50, ;等待 5延時 CLR P0.6 ; 5到,繼續(xù)下降,下降指示燈亮 ACALL DLY ;下降 2 SETB P0.6 ;達(dá)到二層,下降指示燈滅 MOV P3, #2FH ;數(shù)碼管顯示 MOV R2, ;定時開始 CJNZ R2, 50, ;等待延時 CLR P0.6 ;到,開始下降,下降指示燈亮 ACALL DLY ;下降 SETB P0.6 ;達(dá)到 一 層,下降指示燈滅 MOV P3, #1FH ;數(shù)碼管顯示 1 MOV R2, ;定時開始 CJNZ R2, 50, ;等待延時 CJNZ R3,#0,Q3 AJMP Q2 ; R3=0轉(zhuǎn)到 Q2開始新的循環(huán) AJMP Q2 ; R3 0 轉(zhuǎn) Q停止工作 ;定時器中斷服務(wù)程序:定時,為計數(shù)器 TIME: MOV TH0, #3CH MOV TL0, #0B0H 22 INC R2 RET1 ;定時器中斷服務(wù)程序;記錄 Stop鍵是否曾經(jīng)按下過, R3作為標(biāo)志 TIME: JB P1.6, TIME11 MOV R3, #0FFH CLR TH1 TIME11: RET1 DLY: MOV R4, #200 DLY1: MOV R5, #250 DJNZ R5, $ DJNZ R4, DLY1 RET END 23 5.2進(jìn)一步控制方案 5.2.1控制邏輯流程圖如圖 9和圖 10所示。 24 三、四 樓有請求? 圖 9 主程序流程 N Y Y N Y N Y N Y N Y N 初始化 在一樓 P 1 . 7 = 0 二、三、四 樓有請求? 上升到達(dá)二樓 本 樓 層 是 請 求 目 標(biāo) ? 停留 5s 上升到達(dá)三樓 本樓層請求目標(biāo)? 停留 5s 四樓有請求? 開始到達(dá)四樓 R3=0? 停留 5S 下降到達(dá)一樓 一樓有請求? 停留 5S 本樓層是 請求目標(biāo)? 下降到達(dá)二樓 一、二樓有請求? 停留 5S 本樓層是否請求目標(biāo)? 下降到達(dá)三樓 一、二、三樓有請求 停留 5S 開始 25 圖 10 定時器 T1中斷程序流程 開始 Stop 按下? 取得電梯間上升請求,并刷新指示燈 取得電梯間下降請求,并刷新指示燈 取得電梯內(nèi)目標(biāo)樓層請求,并刷新指示燈 返回 讀取所有按鍵 標(biāo)志 R3 置非 0 數(shù) 清除全部電梯間上升請求 清除全部電梯間下降請求 清除全部電梯內(nèi)目標(biāo)樓層請求 修改讀入的按鍵狀態(tài)使之只有電梯內(nèi)目標(biāo)為一樓 并關(guān)閉 T1,不再讀取按鍵 26 5.2.2說明 存儲單元分配 20H 電梯間上升請求; 20H.0 1樓; 20H.1 2樓; 20H.2 3 樓; 20H.3 4樓。 21H 電梯下降請求: 21H.0 1樓; 21H.1 2樓; 21H.2 3 樓; 21H.3 4樓。 22H 電梯內(nèi)目標(biāo)樓層請求: 22H.0 1樓; 22H.1 2樓; 22H.2 3 樓; 22H.3 4樓。 20H 22H: 0=無請求; 1=有請求。 堆線棧底: 70H單元。 T1中斷服務(wù)程序中 6EH 單元包袱累加器 A的內(nèi)容。 30H、 31H單元分別臨時存放 P1、 P3按鍵狀態(tài)。 32H作為單元按鍵及指示燈處理的中間單元。 R3作為 Stop鍵曾經(jīng)下過的記錄。 上電之后,系統(tǒng)一直等待,當(dāng) Start鍵按下后開始工作。 如果按下 Stop鍵,強(qiáng)制電梯直接下降到一樓,然后電梯停止工作。直到再次按下 Start鍵后重新恢復(fù)工作。 中斷服務(wù)程序每 10ms 一次檢查所有按鍵狀態(tài),并記錄在相應(yīng)存儲單元,同時控制相應(yīng)指示燈。 定時器 T0定時 100ms, R2作為 5s定時的計數(shù)器。 T0每中斷一次 R2 加 1,當(dāng) R2=50時,5s 計時完成。 27 5.2.3參考程序 ORG 0000H AJMP START ORG 0000BH AJMP TIME1 START: MOV TMOD, #11H MOV IE, #8AH MOV TH0, 3CH ;定時 100ms MOV TL0, #0B0H MOV TH1, #0ECH ;定時 10ms MOV TL1, #78H SETB TR0 MOV SP, #6FH S1: CLR P0.6 CLR P0.7 MOV R3, #0 MOV P3, #1F ;數(shù)碼管顯示“ 1” JB P1.7, ;等待開始工作指令 SETB P0.6 SETB TR1 ;啟動 T1 ; 10ms 一次讀取按鍵 UP1: MOV A, 20H ;目前在一樓 ORL A, 21H ;取得 1樓請求情況 ORL A, 22H ANL A, #0EH JZ UP1 ;無請求,則等待 CLR P0.7 ;上升指示燈亮 ACALL DLY ;上升 2s 28 UP2: MOV P3, #2FH ;到達(dá) 2樓,數(shù)碼管顯示“ 2” JB 20H.1, UP21 ;是 2 樓電梯間的上升請求,轉(zhuǎn) UP21 JB 22H.1, U ;是電梯內(nèi)目標(biāo) 2樓請求,轉(zhuǎn) UP21 SJMP UP22 UP21: CLR 20H.1 ;清 2 樓電梯間上升請求標(biāo)志位 CLR 22H.1 ;清電梯內(nèi)目標(biāo) 2樓請求標(biāo)志位 SETB P0.7 ;上升指示燈滅 MOV R2, #0 ; 5s定時開始 CNJE R2, #50, ;等待 5s延時 UP22: MOV A, 20H ORL A, 21H ORL A, 22H ANL A, #0CH ;取得 2樓請求情況 JNZ UP23 AJMP DOWN22 ; 2 樓無請求,轉(zhuǎn) 2樓下降 UP23: CLR P0.7 ;上升指示燈亮 ACALL DLY ;上升 2s UP3: MOV P3, #3FH ;到達(dá) 3樓,數(shù)碼管顯示“ 3” JB 20H.2, UP31 ;是 3樓電梯間的上升請求,轉(zhuǎn) UP31 JB 22H.2, UP31 ;是電梯內(nèi)目標(biāo)樓請求,轉(zhuǎn) UP31 SJMP R2, #50, UP31: CLR 20H.1 ;清 3樓電梯間上升請求標(biāo)志位 CLR 22H.1 ;清電梯內(nèi)目標(biāo) 3樓請求標(biāo)志位 SETB P0.7 ;上升指示燈滅 MOV R2, #0 ; 5s 定時開始 CJNZ R2, #50, ;等待 5s延時 UP32: MOV A, 20H 29 ORL A, 21H ORL A, 22H ANL A, #O8H ;取得 3樓請求情況 JNZ UP33 AJMP DOWN32 ; 3 樓無請求,轉(zhuǎn) 3樓下降 UP33: CLR P0.7 ;上升指示燈亮 ACALL DLY ;上升 2s UP4: CLR 20H.3 ;清 4樓電梯間下降請求標(biāo)志位 CLR 22H.3 ;清電梯內(nèi)目 標(biāo) 4樓請求標(biāo)志位 SETB P0.7 ;上升指示燈滅 MOV R2, #0 ; 5s 定時開始 CJNZ R2, #50, ;等待 5s延時 UD4: MOV A, 20H ORG A, 21H ORG A, 22H ANL A, #07H ;取得 4的請求情況 JNZ DOWN4 AJMP UD4 DOWN4: CLR P0.6 ;下降指示燈亮 ACALL DLY ;下降 2s DOWN3: MOV P3, #3FH ;到達(dá) 3樓,數(shù)碼管顯示“ 3” JB 21H.2, DOWN31 ;是 3樓電梯間的下降請求,轉(zhuǎn) DOWN31 JB 22H.2, DOWN31 ;是電梯內(nèi)目標(biāo) 3樓請求,轉(zhuǎn) DOWN31 SJMP DOWN32 DOWN31: CLR 21H.2 ;清 3 樓電梯間下降請求標(biāo)志位 CLR 22H.2 ;清電梯內(nèi)目標(biāo) 3樓請求標(biāo)志位 SETB P0.6 ;下降指示燈滅 30 MOV R2, #0 ; 5s定時開始 CJNZ R2, #50, ;等待 5s延時 DOWN32: MOV A, 20H ORL A, 21H ORL A, 22H ANL A, #03H ;取得樓請求情況 JNZ DOWN33 AJMP UP32 ; 3樓請求,轉(zhuǎn) 3樓上升 DOWN33: CLR P0.6 ;下降指示燈亮 ACALL DLY DOWN2: MOV P3, #2FH ;到達(dá) 2樓,數(shù)碼管顯示“ 2” JB 21H.1, DOWN21 ;是 2樓電梯間的下降請求,轉(zhuǎn) DOWN21 JB 22H.1, DOWN22 ;是電梯內(nèi)目標(biāo) 3樓請求,轉(zhuǎn) DOWN21 SJMP DOWN22 DOWN21: CLR 21H.1 ;清 2 樓電梯間下降請求標(biāo)志位 CLR 22H.1 ;清電梯內(nèi)目標(biāo) 2樓請求標(biāo)志位 SETB P0.6 ;下降指示燈滅 MOV R2, #0 ; 5s定時開始 CJNE R2, #50, ;等待 5s延時 DOWN22: MOV A, 20H ORL A, 21H ORL A, 22H ANL A, #01H ;取得 2樓請求情況 JNZ DOWN23 AJMP UP22 ;無樓請求,轉(zhuǎn) 2樓上升 DOWN23: CLR P0.6 ;下降指示燈 亮 31 ACALL DLY DOWN1: CLR P3, #1FH ;到達(dá) 1樓,數(shù)碼管顯示“ 1” DOWN11: CLR 21H.0 ;清電梯內(nèi)目標(biāo) 1樓請求標(biāo)志位 SETB P0.6 ;下降指示燈滅 MOV R2, #0 ; 5s定時開始 CJNZ R2, #50, ;等待 5s延時 CJNZ R3, #0, DOWN12 ; Stop 鍵是否按下過 AJMP UP1 DOWN12: CLR P0.6 ;若 Stop 鍵按下過,轉(zhuǎn) S1停止工作 CLR P0.7 AJMP S1 ;定時器 T0中斷服務(wù)程序; 5s計時 TIME: MOV TH0, #3CH MOV TL0, #0B0H INC R2 ; R2 計數(shù)器 RETI ;定時器 T1中斷服務(wù)程序;按鍵狀態(tài)檢查 TIME1: MOV TH1, #0ECH ;每 10ms檢查一次按鍵 MOV TL1, #78H MOV 6EH, A MOV 30H, P1 ;讀入所有按 鍵狀態(tài) MOV 31H, P3 JB P1.6, TIME11 ;若 Stop鍵按下,則正常運(yùn)行 MOV R3, #0FFH ; Stop 鍵按下,標(biāo)志 R3置非 0數(shù) 32 MOV 20H, #0 ;清除全部電梯間上升請求 MOV 21H, #0 ;清除全部電梯間下降請求 MOV 22H, #0 ;清除全部電梯內(nèi)目標(biāo)樓層請求 MOV 30H, #0FFH ;修改讀入的按鍵狀態(tài),使之為 MOV 31H, #0FEH ;電梯內(nèi)目標(biāo)為一樓 CLR TR1 ;開關(guān)閉 T1,不再讀取按鍵 TIME11: MOV A, 30H CPL A ANL A, #07H ;取得電梯間上升請求 ORL 20H, A MOV A, 20H ;取得上升指示燈狀態(tài) CPL A ANL A, #07H MOV 32H, A MOV A, 30H CPL A ANL A, #38H ;取得電椅間下降請求 RR A RR A ORL 21H, A MOV A, 21H CPL A ANL A, #0EH RL A RL A ORL 32H, A MOV A, P0 ANL A, #0C0H ORL A, 32H ;刷新上升、下降請求指示燈 33 MOV A, 31H ANL A, #0FH ;取得電梯內(nèi)目標(biāo)樓層請求 ORL 22H, A MOV A, 22H CPL A MOV P2, A ;刷新電 梯內(nèi)目標(biāo)樓層指示燈 TIME12: MOV A, 6EH RET1 ; 2s延時程序 DLY: MOV R5, #20 DLYI: MOV R6, #100 DLY2: MOV R7, #250 DJNZ R7, DJNZ R6, DLY2 DJNZ R5, DLY1 RET END 34 第六章 軟硬件系統(tǒng)的調(diào)試 6.1 軟件調(diào)試 軟件調(diào)試的任務(wù)是利用開發(fā)工具進(jìn)行在線仿真調(diào)試,發(fā)現(xiàn)和糾正程序錯誤,同時也能發(fā)現(xiàn)硬件故障。 程序的調(diào)試應(yīng)一個模塊一個模塊地進(jìn)行,首先單獨調(diào)試各功能子程序,檢驗程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各子程序連接起來總調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊間能否正確傳遞參數(shù),特別要注意各子程序的現(xiàn)場保護(hù)與恢復(fù)。調(diào)試的基本步驟如下: (1) 用仿真器修改顯示緩沖區(qū)內(nèi)容,屏蔽拆字程 序,調(diào)試動態(tài)掃描顯示功能。例如將DISP0DISP5 單元置為“ 012345”,應(yīng)能在 LED 上從左到右顯示“ 012345”。若顯示不正確,可在 DISP子程序相應(yīng)位置設(shè)置斷點調(diào)試檢查。然后用仿真器修改計時緩沖區(qū)內(nèi)容,調(diào)用拆字程序,調(diào)試顯示模塊 DISPLAY。例如,將 HOUR、 MIN、 SEC 單元置為“ 123456”,檢查是否能正確顯示“ 12: 34: 56”。若顯示不正確,應(yīng)在 SEPA 子程序相應(yīng)位置設(shè)置斷點,調(diào)試檢查。 (2) 運(yùn)行主程序調(diào)試計時模塊,不按下任何鍵,檢查是否能從由 00: 00: 00開始正確計時。 若 不能正確計時則應(yīng)在定時器中斷服務(wù)子程序中設(shè)置斷點,檢查 HOUR、 MIN、 SEC、 MSEC單元是否隨斷點運(yùn)行而變化。然后屏蔽緩沖區(qū)初始化部分,用仿真器修改計時緩沖區(qū)內(nèi)容為23: 58: 48,運(yùn)行主程序(不按下任何鍵),檢驗?zāi)芊裾_進(jìn)位。 (3) 調(diào)試鍵盤掃描模塊 KEYSCAN,先用延時 10ms 子程序代替顯示子程序延時消抖,在求取鍵號后設(shè)置斷點,中斷后觀察 A 累加器中的鍵號是否正確;然后恢復(fù)用顯示子程序延時消抖,檢驗與 DISPLAY模塊能否正確連接。 (4) 調(diào)試時間設(shè)置 /鬧鐘定時模塊 MODIFY。首先屏蔽 COMB子程序,單獨調(diào)試鍵盤設(shè)置模塊 KEYIN,觀察顯示緩沖區(qū) DISP0DISP5 單元的內(nèi)容是否隨鍵入的鍵號改變,以及鍵號能否在 LED 上顯示。然后屏蔽 KEYIN 子程序,單獨調(diào)試合字模塊 COMB,分別將 R1 設(shè)置為時間設(shè)置緩沖區(qū)和鬧鐘值寄存區(qū)的首地址,修改顯示緩沖區(qū)內(nèi)容,程序運(yùn)行后查看時間設(shè)置緩沖區(qū)HOUR、 MIN、 SEC單元和鬧鐘值寄存區(qū) AHOUR、 AMIN、 ASEC單元內(nèi)容是否正確。最后聯(lián)調(diào) MODIFY模塊。 (5) 運(yùn)行主程序聯(lián)調(diào),檢查能否用鍵盤修改當(dāng)前時間以及設(shè)置鬧鐘,能否正確計時、啟鬧、停鬧。 35 6.2硬件調(diào)試 6.2.1 狀態(tài)燈顯示測試 當(dāng)電路連接完畢后,將寫好的測試程序刷寫到芯片內(nèi),分別給端口送高電平和低電平,通電即可檢測。 6.2.2 數(shù)碼管的測試 將串口的和電路板上的接口連接,將寫好的測試程序刷寫到芯片內(nèi),開電源即可測試。 6.2.3 整體電路測試 系統(tǒng)上電,刷寫好程序即可開始測試,觀測一個周期燈的顯示狀態(tài)是否正常,同時觀察倒計的計數(shù)是否正常。 36 第七章 結(jié)束語 本設(shè)計基本上達(dá)到了設(shè)計目的 。 利用通用 譯碼器 和 單片機(jī) 實現(xiàn)了對電梯的控制,通過合理的設(shè)備選型、 參數(shù)設(shè)置和軟件設(shè)計,提高了電梯運(yùn)行的可靠勝,改善了電梯運(yùn)行的舒適感,并節(jié)約了電能。 通過本次設(shè)計,我的知識領(lǐng)域得到進(jìn)一步擴(kuò)展,專業(yè)技能得到進(jìn)一步提高,同時增強(qiáng)了分析和解決工程實際的綜合能力。另外,也培養(yǎng)了自己嚴(yán)肅認(rèn)真的科學(xué)態(tài)度和嚴(yán)謹(jǐn)求實的工作作風(fēng)。 本次設(shè)計還存在一些不足之處,例如 :本設(shè)計是按樓層定高設(shè)計的,而實際每一樓層高度是不一定相等的,因此,設(shè)計時應(yīng)考慮樓層間距自學(xué)習(xí)功能。但由于時間有限,本人沒有考慮。另外,由于實際條件的限制,本設(shè)計 只 能進(jìn)行 簡單 調(diào)試,這也是不足之處。當(dāng)然,設(shè)計中肯定還有其他不足和紙漏 之處,請各位專家和老師指正。 37 第八章 畢業(yè) 設(shè)計 總結(jié) 時間飛逝,轉(zhuǎn)眼間就到了畢業(yè)答辯的時間,此時的心情很是奇怪 ,既緊張又興奮 ,興奮的是幾個月的辛苦成果終于到了驗收的時候了 ,緊張的是不知道畢業(yè)答辯會是什么樣子 。到目前為止,我依舊沒有太多的把握,只能全力以赴;回想幾個月的設(shè)計過程還真是懷念?。‰m說是苦了一點,但苦中有甜啊,其中自己查閱了

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論