計算機應(yīng)用畢業(yè)論文--電梯模型程序源代碼_第1頁
計算機應(yīng)用畢業(yè)論文--電梯模型程序源代碼_第2頁
計算機應(yīng)用畢業(yè)論文--電梯模型程序源代碼_第3頁
計算機應(yīng)用畢業(yè)論文--電梯模型程序源代碼_第4頁
計算機應(yīng)用畢業(yè)論文--電梯模型程序源代碼_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機應(yīng)用畢業(yè)論文-電梯模型程序源代碼 BUF1 EQU 20H ;S1-5 BUF2 EQU 21H ;PC1-5BUF3 EQU 22H ;PO1-8BUF4 EQU 23H ;FL1-5BUF5 EQU 24H ;PBO1-8LBUF1 EQU 25H ;NOW(S1-5) LBUF2 EQU 26H ;NOW(PC1-5) LBUF3 EQU 27H ;NOW(PO1-8)NOW EQU 28H ;現(xiàn)??课?NEXT0 EQU 29H ;下一??课籒EXT2 EQU 2AH ;暫存下一??课?FXTD EQU 2BH ;方向+電源(00000000向下走停下) ; (00000010向

2、上走停下) ; (00000001向下運行) ; (00000011向上運行) OK EQU 2CH ;(00可啟動,0FF不可啟動)INPUT EQU 0B000HOUTPUT EQU 0F000H S15 EQU 8000H PC15 EQU 9000HPO18 EQU 0A000HFL15 EQU 0C000HPBO18 EQU 0D000H CONTR EQU 0E000HORG 00H JMP START START:CALL RESERT ;復(fù)位 CALL SCAN ;掃描 ZZZ:CALL ANALYZ ;分析CALL CONTROL ;控制JMP ZZZ RESERT:MOV

3、SP, #30H ;置堆棧 MOV R7, #00H ;延時(保證8255A可靠復(fù)位)DJNZ R7, MOV DPTR, #INPUT ;設(shè)置8255A全輸入 MOV A, 10011011BMOVX DPTR,A MOV DPTR, #OUTPUT ;設(shè)置8255A全輸出 MOV A, 10000000B MOVX DPTR,A MOV R4, #32 ;清緩沖區(qū) MOV R0, #BUF1 CLEAR:MOV R0, #00H INC R0 DJNZ R4 , CLEARMOV TMOD, #11H ;設(shè)置TMINE0,TIME1工作于MODE1下MOV IE, #10000101B ;

4、INT0,INT1中斷使能MOV IP, #00H ;同優(yōu)先級MOV TCON, #00000101B ;下降沿觸發(fā)MOV DPTR, #CONTR ;電梯復(fù)位至一層MOV A, 01HMOVX DPTR,AMOV DPTR, #S15 NEXT1:MOVX A, DPTRANL A, 01H JZ NEXT1 MOV DPTR, #CONTR MOV FXTD, #02H MOV A, FXTD MOVX DPTR,A ;設(shè)置方向+電源MOV NOW, 01H ;設(shè)置現(xiàn)??縍ET SCAN:MOV DPTR, #S15 ;掃描電梯狀態(tài) MOVX A, DPTR MOV BUF1, A MOV

5、 DPTR, #FL15 ;輸出電梯狀態(tài) MOVX DPTR,A ORL LBUF1,A MOV DPTR, #PC15 ;掃描電梯內(nèi)部按鈕狀態(tài) MOVX A, DPTR MOV BUF2, AORL LBUF2,AMOV DPTR, #PO18 ;掃描電梯外部按鈕狀態(tài)MOVX A, DPTRMOV BUF3, AMOV DPTR, #PBO18 ;輸出按鈕表示燈MOVX DPTR,AMOV LBUF3,ARET ANALYZ:MOV A, LBUF2ADD A, LBUF3JNZ K1 ;無按鈕按下不分析 LJMP EXIT1 K1:MOV A, FXTD ANL A, #02HJNZ UP

6、 ;轉(zhuǎn)向上狀態(tài)處理向下狀態(tài)處理 DOWN:JB NOW.1,A1JB NOW.2,A2JB NOW.3,A3JB NOW.4,A4 A1:MOV R0, #00000001B ;現(xiàn)??课?啟動前??课粸?層,可響應(yīng)向下去1層的命令JMP A0 A2:MOV R0, #00000011B ;3層,去2,1層的命令JMP A0 A3:MOV R0, #00000111B ;4層,去3,2,1層的命令JMP A0 A4:MOV R0, #00001111B ;5層,去4,3,2,1層的命令 A0:MOV A, LBUF2 ANL A, R0 ;存在的可響應(yīng)的向下的命令(內(nèi)部的) MOV R0, A

7、MOV A, #00H ;暫存在R0JB LBUF3.5,B1 ORL A, #00001000B ;外部有4層向下的命令 樓層 5 4 4 3 3 2 2 1 B1:JB LBUF3.3,B2 ; 方向 下 上 下 上 下 上 下 上 ORL A, #00000100B ;3層向下 LBUF3 7 6 5 4 3 2 1 0 B2:JB LBUF3.1,B3 ; NEXT 0 0 0 X X X X X ORL A, #00000010B ;2層向下 B3:ANL A, R0 ;得出向下的下一個??课籎B ACC.3,C1JB ACC.2,C2JB ACC.1,C3JB ACC.0,C4 C

8、1:MOV NEXT0, #00001000B ;下一??课粸?層JMP C0 C2:MOV NEXT0, #00000100B ;是3層JMP C0 C3:MOV NEXT0, #00000010B ;是2層 JMP C0 C4:MOV NEXT0, #00000001B ;是1層 C0:MOV A, NEXT0MOV NEXT2,AANL A, 0FFHJNZ EXIT1 ;有向下的命令結(jié)束->到控制,沒有執(zhí)行向上的命令 UP :JB NOW.0,D1 ;向上狀態(tài)處理JB NOW.1,D2 JB NOW.2,D3 JB NOW.3,D4 D1:MOV R0, #00011110B ;

9、現(xiàn)??课?啟動前??课粸?層,可響應(yīng)向下去2,3,4,5層的命令 JMP D0 D2:MOV R0, #00011100B ;2層,去3,4,5層的命令JMP D0 D3:MOV R0, #00011000B ;3層,去4,5層的命令 JMP D0 D4:MOV R0, #00010000B ;4層,去5層的命令 D0:MOV A, LBUF2 ;存在的可響應(yīng)的向上的命令(內(nèi)部的) ANL A, R0 ;暫存在R0MOV R0, A MOV A, #00H JNB LBUF3.2,E1 ORL A, #00000010B ;外部有2層向上的命令 E1:JNB LBUF3.4,E2 ORL A,

10、 #00000100B ;3層向上 E2:JNB LBUF3.6,E3 ORL A, #00001000B ;4層向上 E3:ANL A, R0 ;得出向上的下一個停靠位 JB ACC.1,F1 JB ACC.2,F2 JB ACC.3,F3JB ACC.4,F4 F1:MOV NEXT0, #00000010B ;下一??课粸?層 JMP XF0 F2:MOV NEXT0, #00000100B ;下一停靠位為3層JMP XF0 F3:MOV NEXT0, #00001000B ;下一停靠位為4層JMP XF0 F4:MOV NEXT0, #00010000B ;下一??课粸?層 XF0:M

11、OV A, NEXT0 MOV NEXT2,A ANL A, 0FFH JNZ EXIT1 LJMP DOWN ;沒有向上的命令執(zhí)行向下的命令,有向上的命令結(jié)束->到控制 EXIT1:RETCONTROL:MOV A, FXTD ANL A, 01H JNZ TOSTOP ;跳到停止?fàn)顟B(tài)下處理;TORUN: MOV A, OK ANL A, 0FFH ;可以啟動嗎? JZ K2 JMP EXIT2 K2:MOV A, NEXT0 ;有運行命令嗎? ANL A, 0FFH JNZ K3 JMP EXIT2 K3:MOV A, NEXT0 SUBB A, NOWJC DOWN1 ;下一??课?/p>

12、-現(xiàn)??课?lt;0,向下運行 ;UP1: MOV DPTR, #CONTR MOV FXTD, #00000011B MOV A, FXTDMOVX DPTR,A ;啟動向下 MOV NEXT0, A MOV NEXT0, #00H ;清 下一??课?JB ACC.3,G1 JB ACC.2,G2JB ACC.1,G3 G1:ANL LBUF3,#10111111B ;清4層向上的命令(外部的) JMP G0 G2:ANL LBUF3,#11101111B ;清3層向上的命令(外部的) JMP G0 G3:ANL LBUF3,#11111011B ;清2層向上的命令(外部的) G0:JMP

13、K4 DOWN1:MOV DPTR, #CONTR MOV FXTD, #00000001B MOV A, FXTDMOVX DPTR,A ;啟動向上MOV A, NEXT0MOV NEXT0,#00H ;清 下一停靠位 JB ACC.3,H1JB ACC.2,H2JB ACC.1,H3 H1:ANL LBUF3,#11011111B ;清4層向下的命令(外部的)JMP H0 H2:ANL LBUF3,#11110111B ;清3層向下的命令(外部的)JMP H0 H3:ANL LBUF3,#11111101B ;清2層向下的命令(外部的) H0:JMP K4 K4:CPL AANL LBUF

14、2,A ;清內(nèi)部的命令MOV OK, 0FFH ;設(shè)置不可以啟動TOSTOP:MOV A, NEXT2SUBB A, LBUF1 JZ STOP1 ;到下一??课涣藛??沒有跳出再->掃描JMP EXIT2 STOP1:MOV DPTR, #CONTRANL FXTD, #11111110B ;保留方向MOV A, FXTDMOVX DPTR,A ;停下電梯MOV A, LBUF1SUBB A, #00010000B ;到5層了嗎? JZ CHANG1 SUBB A, #00000001B ;到1層了嗎?JZ CHANG2 JMP K5CHANG1:MOV FXTD, #00000000B

15、 ;到了轉(zhuǎn)變下次的運行方向JMP K5 CHANG2:MOV FXTD,#00000010B ;到了轉(zhuǎn)變下次的運行方向 K5:CALL DELAY1 ;啟動延時 EXIT2:RET DELAY1:MOV R3, #40 ;延時2秒SETB TR0 AGAIN:MOV TH0, (65535-50000)/256MOV TL0, (65535-50000) MOD 256 LOOP2:JBC TF0, LOOP1JMP LOOP2 LOOP1 JNZ R3, AGAIN CLR TR0 MOV OK, #00H ;設(shè)置可以啟動RET END-王棟loading.2006-2-4計算機應(yīng)用畢業(yè)論文

16、電梯模型 電梯模型目錄前言第一章 MCS-51概述1.1 8051/8255A簡介及功能特點1.2 MCS-51對系統(tǒng)環(huán)境的要求1.3 MCS-51的技術(shù)指標(biāo)第二章 電梯模型總體設(shè)計2.1系統(tǒng)需求分析2.2系統(tǒng)設(shè)計目標(biāo)2.3電梯模型開發(fā)步驟2.4硬件電路設(shè)計2.5系統(tǒng)流程圖2.6軟件程序設(shè)計2.7軟件硬件結(jié)合調(diào)試第三章 個人模塊的實現(xiàn)3.1我的任務(wù) 第四章 小結(jié)附錄 參考文獻 (老師評語)前 言在與時俱進的今天,科技的發(fā)展讓人類的生活發(fā)生了翻天覆地的變化,電子硬件技術(shù)發(fā)展一日千里,從8086/8088到今天的P4超線程,讓我們早已習(xí)慣了現(xiàn)代化的生活。至從單片機進入我國,比較有影響的是INTEL

17、的NCS-48系列和Zilog公司的Z80系列,經(jīng)過多年來,單片機已發(fā)展到16位(甚至更高)。今天單片機主要應(yīng)用于智能產(chǎn)品、智能儀表、數(shù)控型控制機、智能接口等諸多自動化控制領(lǐng)域,已經(jīng)形成了計算機領(lǐng)域的一個重要分支。隨著人類生活節(jié)奏的加快,以及人類對自動化的需求,電梯以成為高層建筑的必備設(shè)施,人們每天乘坐電梯給生活工作帶來了許多方便。我們設(shè)計的電梯模型在硬件方面采用當(dāng)前流行的MCS-51/8051。利用它的輸入輸出、定時器和中斷等功能,結(jié)合一些門電路和外部光柵隔離原器件,8255A擴展輸入輸出端口,控制一個24V電源驅(qū)動的5層電梯模型,實現(xiàn)真實的電梯運行、??亢烷_門、關(guān)門及關(guān)門及時響應(yīng)防止落人,

18、電梯位置顯示,電梯內(nèi)外部按鈕響應(yīng)顯示等全部基本功能,軟件采用MCS-51匯編語言,連接、仿真調(diào)試采用TDN-MI單片機開發(fā)實驗系統(tǒng),設(shè)計使用了MCS-51單片機強大的功能,以及單片機的擴展能力,充分體現(xiàn)了單片機在各種領(lǐng)域的實用價值。我們設(shè)計小組共三人,王棟、曹中科、黃炯安。我們把總體任務(wù)劃分為三個設(shè)計模塊,硬件電路設(shè)計,軟件程序設(shè)計,軟件硬件結(jié)合調(diào)試,經(jīng)過團隊合作共同努力,最后完成整個電梯模型設(shè)計。在此要感謝李順增老師!我們能夠完成本次設(shè)計與第一章MCS-51概述1.1 8051/8255A簡介及功能特點 (一)8051 8051是MCS-51系列單片機中的代表產(chǎn)品,它內(nèi)部集成了功能強大的中央

19、處理器,包含了硬件乘除法器、21個專用控制寄存器、4kB的程序存儲器、128字節(jié)的數(shù)據(jù)存儲器、4組8位的并行口、兩個16位的可編程定時/計數(shù)器、一個全雙工的串行口以及布爾處理器。 MCS-51具有比較大的尋址空間,地址線寬達16條,即外部數(shù)據(jù)存儲器和程序存儲器的尋址范圍達216=64kB,這作為單片機控制來說已是比較大的,這同時具備對I/O口的訪問能力。此外,MCS-51采用模塊化結(jié)構(gòu),可方便地增刪一個模塊就可引腳和指令兼容的新產(chǎn)品。從而容易使產(chǎn)品形成系列化。 由于MCS-51集成了幾乎完善的8位中央處理單元,處理功能強,中央處理單元中集成了方便靈活的專用寄存器,硬件的加、減、乘、除法器和布爾

20、處理機及各種邏輯運算和轉(zhuǎn)移指令,這給應(yīng)用提供了極大的便利。 MCS-51的指令系統(tǒng)近乎完善,指令系統(tǒng)中包含了全面的數(shù)據(jù)傳送指令、完善的算術(shù)和邏輯運算指令、方便的邏輯操作和控制指令、對于編程來說,是相當(dāng)靈活和方便的。 MCS-51單片機的工作頻率為2-12MHz,當(dāng)振蕩頻率為12MHz時,一個機器周期為1us,這個速度應(yīng)該說是比較快的。 8051中集成了完善的各種中斷源,用戶可十分方便地控制和使用其功能,使得它的應(yīng)用范圍加大可以說它可以滿足絕大部分的應(yīng)用場合。 MCS-51把微型計算機的主要部件都集成在一塊心片上,使得數(shù)據(jù)傳送距離大大縮短,可靠性更高,運行速度更塊。由于屬于芯片化的微型計算機,各

21、功能部件在芯片中的布局和結(jié)構(gòu)達最優(yōu)化,抗干擾能力加強,工作亦相對穩(wěn)定。因此,在工業(yè)測控系統(tǒng)中,使用單片機是最理想的選擇。單片機屬于典型的嵌入式系統(tǒng),所以它是低端控制系統(tǒng)最佳器件。(二)8255A Intel8255A是一種通用的可編程并行I/O接口芯片,也是應(yīng)用最廣泛的并行I/O接口芯片。 8255A的結(jié)構(gòu) 8255A由4部分組成: (1)數(shù)據(jù)總線緩沖器 (2)三個8位端口PA、PB、PC,其中PC口可分為兩個4位端口,可分別同端口A和端口B,配合使用,可以用作控制信號輸出等。 (3)A組和B組的控制電路。 (4)讀/寫控制邏輯。 8255A有三種工作方式:方式0、方式1和方式2。 (1):方

22、式0基本輸入/輸出 在此工作方式下,每個口都作為基本的輸入輸出口,C口的高4位和低4位以及A口和B口都可獨立地設(shè)置為輸入口和輸出口。在此工作方式下:輸出的數(shù)據(jù)被鎖存,而輸入的數(shù)據(jù)不被鎖存。(2):方式1選通輸入/輸出 此工作方式下,三個端口分為A、B兩組,A、B兩個口仍用作數(shù)據(jù)輸入輸出口,而C口分成兩部分,分別作為A口和B口的聯(lián)絡(luò)信號。在8255A中,聯(lián)絡(luò)信號是3位,兩個數(shù)據(jù)口,共用去C口的6位,剩余的兩位仍可作為數(shù)據(jù)位使用。 (3):方式2雙向選通輸入/輸出 此工作方式只限于A組使用,它用A口的8位數(shù)據(jù)線,用C口的5位進行聯(lián)絡(luò)。工作時輸入輸出都能被鎖存。當(dāng)A口工作在方式2時,B口可以在方式0

23、或方式1工作。 8255A的初始化 在使用8255A時,首先要由CPU對8255A寫入控制命令字。 有兩種控制命令字:方式選擇控制字和C口按位置位/復(fù)位控制字。 8255A的各種工作方式都要由控制命令字來設(shè)定,這個設(shè)置過程稱為初始化。(三)周邊電路元器件 8255A 1.2 MCS-51對系統(tǒng)環(huán)境的要求 MCS-51的開發(fā)環(huán)境要求較低,軟件資源十分豐富,硬件只需配備一臺PC,一臺仿真編程器即可實現(xiàn)產(chǎn)品開發(fā),我們在軟件方面采用匯編語言編寫代碼,在硬件方面我們使用個人電腦結(jié)合西安唐都科教儀器公司開發(fā)的TDN-MI單片機開發(fā)實驗系統(tǒng)。TDN-MI主要功能包括:程序的輸入、信息的保存、程序的運行和調(diào)試

24、、以及應(yīng)用系統(tǒng)的仿真、程序的固化等。其中TDN-MI和個人PC之間采用RS232串行接口連接。1.3 MCS-51技術(shù)指標(biāo)第二章 電梯模型總體設(shè)計2.1 系統(tǒng)需求分析電梯模型設(shè)計的最終目的是模擬真實電梯。因此,設(shè)計的關(guān)鍵之一是要詳細地了解真實的電梯所有功能,還有電梯有關(guān)方便乘客的人性化設(shè)計之處。圍繞以上要求完成模型設(shè)計。需求分析:1每次電梯啟動時電梯可靠停留至底層;2安全、可靠、準(zhǔn)確的運送乘客到達目標(biāo)樓層;3可響應(yīng)當(dāng)前所有乘客的指令,合理安排所有乘客及時到達目標(biāo)樓層;4當(dāng)電梯關(guān)門過程中乘客可自行控制電梯門打開,防止有落人現(xiàn)象;5隨時反映電梯所處樓層及運行趨勢,及時反映乘客的指令被響應(yīng);6當(dāng)電梯

25、出現(xiàn)事故時,故障導(dǎo)向安全;22 系 統(tǒng) 設(shè) 計 目 標(biāo)系統(tǒng)目標(biāo)是總體設(shè)計的根據(jù),是系統(tǒng)設(shè)計實現(xiàn)的前提。1. 第一次電梯啟動時,電梯自動復(fù)位至底層;2. 在每次電梯運行前,自行檢查門是否可靠關(guān)閉,方可啟動,電梯停止時自行檢測可靠到達目標(biāo)樓層,方可開門;3. 電梯自動響應(yīng)電梯內(nèi)部和外部樓層乘客的指令,根據(jù)當(dāng)前運行趨勢,正確安排乘客到達目標(biāo)樓層,杜絕乘客指令不響應(yīng)的現(xiàn)象;4. 當(dāng)電梯到達可靠目標(biāo)樓層時,自動開門,無乘客進入時自動關(guān)門,繼續(xù)運行,關(guān)門后延時0.5秒,在此過程中電梯內(nèi)外部乘客可控制開關(guān)門,防止落人現(xiàn)象;5. 電梯到達相應(yīng)樓層時,點亮所在樓層指示燈,樓層外乘客按下按鈕時點亮按鈕指示燈,告之

26、乘客指令以被響應(yīng);6. 當(dāng)電梯到達頂層或底層時,自動改變運行趨勢, 2.4硬件電路設(shè)計硬件電路設(shè)計一般包括兩個部分的內(nèi)容:一是擴展單片機芯片內(nèi)部單元的功能,如ROM、RAM、定時/記數(shù)器、I/O接口線等的容量不滿足應(yīng)用系統(tǒng)的要求時,就需要設(shè)計相應(yīng)的功能擴展電路;二是根據(jù)應(yīng)用系統(tǒng)的功能要求配置一定的外部設(shè)備,如鍵盤、顯示器、打印機、A/A、D/A等。(一)對應(yīng)用系統(tǒng)進行擴展與配置時,應(yīng)充分考慮如下的設(shè)計原則。1盡可能選擇典型電路,并符合單片機的常規(guī)使用要求。2擴展與配置的數(shù)量應(yīng)充分滿足應(yīng)用系統(tǒng)功能的要求并留有余地,以便能方便地進行功能擴展和進一步的開發(fā)。3應(yīng)充分結(jié)合軟件方案老考慮硬件結(jié)構(gòu)。4整個

27、系統(tǒng)中的相關(guān)器件應(yīng)盡可能做到性能匹配,如選用的晶振頻率較高時,就應(yīng)選擇存取速度較高的芯片。5應(yīng)重視整個系統(tǒng)的可靠性及抗干擾設(shè)計,如充分篩選芯片和器件,增加去耦電路,采取隔離和屏蔽等措施。(二)電梯模型結(jié)構(gòu) (三)電梯模型連線及端口功能INPUT 00接傳感器SI1輸出S1(第五層到達信號); INPUT 01接傳感器SI2輸出S2(第四層到達信號); INPUT 02接傳感器SI3輸出S3(第三層到達信號); INPUT 03接傳感器SI4輸出S4(第二層到達信號) INPUT 04接傳感器SI5輸出S5(第一層到達信號)INPUT 05接(第五層請求下)按鍵PB1輸出插孔PO8; INPUT

28、 06接(第四層請求上)按鍵PB2輸出插孔PO7; INPUT 07接(第四層請求下)按鍵PB3輸出插孔PO6; INPUT 08接(第三層請求上)按鍵PB4輸出插孔PO5; INPUT 09接(第三層請求下)按鍵PB5輸出插孔PO4; INPUT 10接(第二層請求上)按鍵PB6輸出插孔PO3; INPUT 11接(第二層請求下)按鍵PB7輸出插孔PO2;INPUT 12接(第一層請求上)按鍵PB8輸出插孔PO1; INPUT 13接(到第五層) 按鍵 5 輸出插孔 PC5; INPUT 14接(到第四層) 按鍵 4 輸出插孔 PC4; INPUT 15接(到第三層) 按鍵 3 輸出插孔 P

29、C3; INPUT 16接(到第二層) 按鍵 2 輸出插孔 PC2; INPUT 17接(到第一層) 按鍵 1 輸出插孔 PC1; INPUT 18接(關(guān)門信號) 按鍵 PK1 輸出插孔 PK1; INPUT 19接(開門信號) 按鍵 PG1 輸出插孔 PG1; OUTPUT 00接第五層到達指示燈FL5; OUTPUT 01接第四層到達指示燈FL4; OUTPUT 02接第三層到達指示燈FL3; OUTPUT 03接第二層到達指示燈FL2; OUTPUT 04接第一層到達指示燈FL1; OUTPUT 06接電機啟、停(電梯啟、停) TD; OUTPUT 07接電機正、反轉(zhuǎn)(電梯升、降)ZF;

30、 OUTPUT 08接(第五層請求下)指示燈PBO1;OUTPUT 09接(第四層請求上)指示燈PBO2; OUTPUT 010接(第四層請求下)指示燈PBO3; OUTPUT 011接(第三層請求上)指示燈PBO4; OUTPUT 012接(第三層請求下)指示燈PBO5; OUTPUT 013接(第二層請求上)指示燈PBO6; OUTPUT 014接(第二層請求下)指示燈PBO7; OUTPUT 015接(第一層請求上)指示燈PBO8;(五)硬件功能實現(xiàn)1、利用8051的P0連接2個8255A作為數(shù)據(jù)線輸入,輸出使用,其中第一個8255A工作于全輸入工作方式,第2個8255A工作于全輸出工作

31、方式。2、利用8051的P2.4、P2.5、P2.6、P2.7進行部分編址,配合與非門74LS08和74LS04連接于8255A的A0、A1、/CS、/RD或/WR片選2個8255A。地址編碼如下:(部分選址 線選)P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.08XXX 1 0 0 0 X X X X9XXX 1 0 0 1 X X X XAXXX 1 0 1 0 X X X XBXXX 1 0 1 1 X X X XCXXX 1 1 0 0 X X X XDXXX 1 1 0 1 X X X XEXXX 1 1 1 0 X X X XFXXX 1 1 1 1

32、X X X X3、利用8051的TIME0、TIME1工作于MODE1-16位的定時,TIME0定時2秒,TIME1定時0.5秒。4、利用8051的INT0、INT1的2個外部中斷,設(shè)置為下降沿觸發(fā),其中INT0連接外部輸入PK1,INT1連接外部輸入PG1。5、利用光柵隔離輸入、輸出24V電壓控制電梯模型動作。2.5 系統(tǒng)流程圖 2.6 軟件程序設(shè)計對MCS-51單片機的應(yīng)用開發(fā),除了必須保證硬件電路的正確連接以外,更重要的工作是進行軟件的開發(fā)。單片機同其他微型計算機一樣,如果沒有軟件的支持,所設(shè)計車的試驗樣機就沒有任何用途。而同一臺試驗樣機之所以也能應(yīng)用于不同的場合,不僅是因為它所連接的外

33、圍設(shè)備不同,更重要的是因為支持它工作的軟件不同。在開發(fā)應(yīng)用時,應(yīng)掌握一定的程序設(shè)計原則和開發(fā)方法。軟件的設(shè)計原則:設(shè)計一個好的應(yīng)用軟件,必須充分考慮如下的一些設(shè)計原則。(1) 軟件在結(jié)構(gòu)上應(yīng)清晰、簡潔、流程合理。(2) 各功能子程序應(yīng)實現(xiàn)模塊化、子程序化,以便于調(diào)試、連接、移植和修改。(3) 程序存儲區(qū)、數(shù)據(jù)存儲區(qū)應(yīng)合理規(guī)劃,做到既節(jié)約內(nèi)存容量,又方便操作。(4) 運行狀態(tài)應(yīng)實現(xiàn)標(biāo)志化管理,對各功能程序的運行狀態(tài)、運行結(jié)果以及運行要求都要設(shè)置狀態(tài)標(biāo)志以便查詢。(5) 對需要特殊抗干擾的應(yīng)用系統(tǒng)應(yīng)采用軟件抗干擾措施,以提高系統(tǒng)的可靠性。(6)如有必要可增加加密措施,以保護自身的合法的知識產(chǎn)權(quán)權(quán)利

34、(二)初始化部分流程圖 初始化部分代碼:BUF1 EQU 20H ;S1-5 BUF2 EQU 21H ;PC1-5BUF3 EQU 22H ;PO1-8BUF4 EQU 23H ;FL1-5BUF5 EQU 24H ;PBO1-8LBUF1 EQU 25H ;NOW(S1-5) LBUF2 EQU 26H ;NOW(PC1-5) LBUF3 EQU 27H ;NOW(PO1-8)NOW EQU 28H ;現(xiàn)停靠位 NEXT0 EQU 29H ;下一??课籒EXT2 EQU 2AH ;暫存下一??课?FXTD EQU 2BH ;方向+電源(00000000向下走停下)(00000010向上走停

35、下) ;(00000001向下運行) (00000011向上運行) OK EQU 2CH ;(00可啟動,0FF不可啟動)INPUT EQU 0B000HOUTPUT EQU 0F000H S15 EQU 8000H PC15 EQU 9000HPO18 EQU 0A000HFL15 EQU 0C000HPBO18 EQU 0D000H CONTR EQU 0E000HRESERT: MOV SP, #30H ;置堆棧 MOV R7, #00H ;延時(保證8255A可靠復(fù)位)DJNZ R7, MOV DPTR, #INPUT ;設(shè)置8255A全輸入 MOV A, 10011011BMOVX

36、DPTR,A MOV DPTR, #OUTPUT ;設(shè)置8255A全輸出 MOV A, 10000000B MOVX DPTR,A MOV R4, #32 ;清緩沖區(qū) MOV R0, #BUF1 CLEAR:MOV R0, #00H INC R0 DJNZ R4 , CLEARMOV TMOD, #11H ;設(shè)置TMINE0,TIME1工作于MODE1下MOV IE, #10000101B ;INT0,INT1中斷使能MOV IP, #00H ;同優(yōu)先級MOV TCON, #00000101B ;下降沿觸發(fā)MOV DPTR, #CONTR ;電梯復(fù)位至一層MOV A, 01HMOVX DPTR

37、,AMOV DPTR, #S15 NEXT1:MOVX A, DPTRANL A, 01H JZ NEXT1 MOV DPTR, #CONTR MOV FXTD, #02H MOV A, FXTD MOVX DPTR,A ;設(shè)置方向+電源MOV NOW, 01H ;設(shè)置現(xiàn)停靠RET(三)掃描部分流程圖2掃描部分代碼SCAN:MOV DPTR, #S15 ;掃描電梯狀態(tài) MOVX A, DPTR MOV BUF1, A MOV DPTR, #FL15 ;輸出電梯狀態(tài) MOVX DPTR,A ORL LBUF1,A MOV DPTR, #PC15 ;掃描電梯內(nèi)部按鈕狀態(tài) MOVX A, DPTR

38、MOV BUF2, AORL LBUF2,AMOV DPTR, #PO18 ;掃描電梯外部按鈕狀態(tài)MOVX A, DPTRMOV BUF3, AMOV DPTR, #PBO18 ;輸出按鈕表示燈MOVX DPTR,AMOV LBUF3,ARET (四)分析部分流程圖分析部分代碼ANALYZ:MOV A, LBUF2ADD A, LBUF3JNZ K1 ;無按鈕按下不分析 LJMP EXIT1 K1:MOV A, FXTD ANL A, #02HJNZ UP ;轉(zhuǎn)向上狀態(tài)處理向下狀態(tài)處理 DOWN:JB NOW.1,A1JB NOW.2,A2JB NOW.3,A3JB NOW.4,A4 A1:M

39、OV R0, #00000001B ;現(xiàn)??课?啟動前??课粸?層,可響應(yīng)向下去;1層的命令JMP A0 A2:MOV R0, #00000011B ;3層,去2,1層的命令JMP A0 A3:MOV R0, #00000111B ;4層,去3,2,1層的命令JMP A0 A4:MOV R0, #00001111B ;5層,去4,3,2,1層的命令 A0:MOV A, LBUF2 ANL A, R0 ;存在的可響應(yīng)的向下的命令(內(nèi)部的) MOV R0, A MOV A, #00H ;暫存在R0JB LBUF3.5,B1 ORL A,#00001000B ;外部有4層向下的命令 樓層 5 4 4

40、 3 3 2 2 1B1:JB LBUF3.3,B2 ; 方向 下 上 下 上 下 上 下 上 ORL A,#00000100B ;3層向下 LBUF3 7 6 5 4 3 2 1 0 B2:JB LBUF3.1,B3 ; NEXT 0 0 0 X X X X X ORL A, #00000010B ;2層向下 B3:ANL A, R0 ;得出向下的下一個??课籎B ACC.3,C1JB ACC.2,C2JB ACC.1,C3JB ACC.0,C4 C1:MOV NEXT0, #00001000B ;下一停靠位為4層JMP C0 C2:MOV NEXT0, #00000100B ;是3層JMP

41、 C0 C3:MOV NEXT0, #00000010B ;是2層 JMP C0 C4:MOV NEXT0, #00000001B ;是1層 C0:MOV A, NEXT0MOV NEXT2,AANL A, 0FFHJNZ EXIT1 ;有向下的命令結(jié)束->到控制,沒有執(zhí)行向上的命令 UP :JB NOW.0,D1 ;向上狀態(tài)處理JB NOW.1,D2 JB NOW.2,D3 JB NOW.3,D4 D1:MOV R0, #00011110B ;現(xiàn)??课?啟動前??课粸?層,可響應(yīng);向下去2,3,4,5層的命令 JMP D0 D2:MOV R0, #00011100B ;2層,去3,4,5層的命令JMP D0 D3:MOV R0, #00011000B ;3層,去4,5層的命令 JMP D0 D4:MOV R0, #00010000B ;4層,去5層的命令 D0:MOV A, LBUF2 ;存在的可響應(yīng)的向上的命令(內(nèi)部的) ANL A, R0 ;暫存在R0MOV R0, A MOV A, #00H JNB LBUF3.2,E1 ORL A, #00000010B ;外部有2層向上的命令 E1:JNB LBUF3.4,E2 ORL A, #00000100B ;3層向上 E2:JNB LBUF3.6

溫馨提示

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

評論

0/150

提交評論