版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 摘要 電梯是標志現(xiàn)代物質(zhì)文明的垂直運輸工具、是機—電一體化的復雜運輸設(shè)備。它涉及電子技術(shù)、機械工程、電力電子技術(shù)、微機技術(shù)、電力拖動系統(tǒng)和土建工程等多個科學領(lǐng)域。目前電梯的生產(chǎn)情況和使用數(shù)量已成為一個國家現(xiàn)代化程度的標志之一。隨著現(xiàn)代化城市的高速發(fā)展,每天都有大量人流及物流需要輸送。為節(jié)約用地和適應(yīng)經(jīng)貿(mào)事業(yè)的發(fā)展,一幢幢高樓拔地而起,這些高層建筑的垂直運輸是一個突出問題,與人們的工作和生活緊密相關(guān)</p>
2、;<p> 8051是MCS-51系列單片機中的代表產(chǎn)品,它內(nèi)部集成了功能強大的中央處理器,包含了硬件乘除法器、21個專用控制寄存器、4kB的程序存儲器、128字節(jié)的數(shù)據(jù)存儲器、4組8位的并行口、兩個16位的可編程定時/計數(shù)器、一個全雙工的串行口以及布爾處理器。</p><p> MCS-51具有比較大的尋址空間,地址線寬達16條,即外部數(shù)據(jù)存儲器和程序存儲器的尋址范圍達216=64kB,這作為
3、單片機控制來說已是比較大的,這同時具備對I/O口的訪問能力。此外,MCS-51采用模塊化結(jié)構(gòu),可方便地增刪一個模塊就可引腳和指令兼容的新產(chǎn)品。從而容易使產(chǎn)品形成系列化。</p><p> 關(guān)鍵詞 電梯 單片機 匯編</p><p><b> 第一節(jié) 概述</b></p><p> MCS-51把微型計算機的主要部件都集成在一塊心片上,
4、使得數(shù)據(jù)傳送距離大大縮短,可靠性更高,運行速度更塊。由于屬于芯片化的微型計算機,各功能部件在芯片中的布局和結(jié)構(gòu)達最優(yōu)化,抗干擾能力加強,工作亦相對穩(wěn)定。因此,在工業(yè)測控系統(tǒng)中,使用單片機是最理想的選擇。單片機屬于典型的嵌入式系統(tǒng),所以它是低端控制系統(tǒng)最佳器件。</p><p><b> 設(shè)計要求:</b></p><p> 1)、不管電梯停在哪一層,可以響應(yīng)其他任
5、意一層的呼叫</p><p> 2)、電梯在上升過程中,響應(yīng)將經(jīng)過樓層或高出目的樓層的同向呼叫,??客环降乃x樓層,不響應(yīng)其他呼叫。</p><p> 3)、電梯在下降過程中,響應(yīng)將經(jīng)過樓層或低于目的樓層的同向呼叫,??客环较虻乃x樓層,不響應(yīng)其他呼叫。</p><p> 4)、電梯中途???,需延時一段時間,作為上下客時間,然后再繼續(xù)運行到最終目的地。&l
6、t;/p><p> 5)、電梯在上升或下降的過程中??科陂g,其上升或下降指示燈不滅。</p><p> 6)、如果無任何鍵按下,電梯不運行</p><p> 第二節(jié) 硬件系統(tǒng)的設(shè)計</p><p> 由于MCS-51集成了幾乎完善的8位中央處理單元,處理功能強,中央處理單元中集成了方便靈活的專用寄存器,硬件的加、減、乘、除法器和布爾處理機
7、及各種邏輯運算和轉(zhuǎn)移指令,這給應(yīng)用提供了極大的便利</p><p> 2.1、軟件硬件結(jié)合調(diào)試:</p><p> 8051中集成了完善的各種中斷源,用戶可十分方便地控制和使用其功能,使得它的應(yīng)用范圍加大可以說它可以滿足絕大部分的應(yīng)用場合。</p><p> 當把單片機應(yīng)用系統(tǒng)的試驗樣機裝配完畢以后,便可進入硬件調(diào)試階段,硬件調(diào)試一般按脫機檢查和聯(lián)機調(diào)試兩步進
8、行。</p><p> 脫機檢查就是根據(jù)硬件邏輯電路圖,用萬用表等工具檢查試驗樣機聯(lián)線的正確性與可靠性,其中對電源系統(tǒng)的極性、短路故障等問題要特別注意。要仔細地檢查硬件電路的地址總線、數(shù)據(jù)總線和控制總線是否有短路、開路或錯位情況;在電路檢查完成以后,可在不插入集成電路芯片的情況下加電檢查,確定一些點的電位是否正常;斷電后,再把集成電路芯片正確地插入各插座,然后加電,迅速地檢查各芯片是否有溫升異常,以及單片機和有
9、關(guān)接口電路的通電初始化狀態(tài)是否正確。在上述情況都正常后,便可進入硬件的聯(lián)機調(diào)試。值得注意的是,在加點情況下,不可拔插任何集成電路芯片。</p><p> 聯(lián)機調(diào)試就是把試驗樣機上的單片機和EPROM拔下,并將單片機開發(fā)裝置的仿真頭插入試驗樣機上的單片機插座上,這樣就將仿真器與單片機應(yīng)用系統(tǒng)兩者連接起來,構(gòu)成了聯(lián)機調(diào)試狀態(tài)。聯(lián)機調(diào)試時,首先分別接通開發(fā)裝置和試驗樣機的電源,在加電后,若開發(fā)裝置能正常工作,就說明試
10、驗樣機的地址總線、數(shù)據(jù)總線和控制總線無短路故障,否則應(yīng)再斷電檢查試驗樣機的線路,直到排除了鼓掌為止;聯(lián)機調(diào)試狀態(tài)下,還可使用開發(fā)裝置對試驗樣機進行全面的檢查,例如檢查讀寫結(jié)果、觀察試驗樣機I/O設(shè)備的狀態(tài)等,利用這些手段還可進一步檢查、排除試驗樣機的硬件故障(包含設(shè)計和工藝錯誤)。在試驗樣機中,常見的故障有元器件質(zhì)量低劣,開發(fā)裝置或試驗樣機接地不良,電壓波動大,單片機負載過重,線路短路或斷路以及設(shè)計工藝錯誤。</p>&l
11、t;p> 硬件電路如圖2-1:</p><p> 圖2-1 硬件電路圖</p><p> MCS-51的指令系統(tǒng)近乎完善,指令系統(tǒng)中包含了全面的數(shù)據(jù)傳送指令、完善的算術(shù)和邏輯運算指令、方便的邏輯操作和控制指令、對于編程來說,是相當靈活和方便的。</p><p> 對應(yīng)用程序進行排錯調(diào)試 就是對已經(jīng)進行過硬件檢查的試驗樣機和翻譯成機器碼的應(yīng)用程序,
12、還要進行聯(lián)合排錯和調(diào)試檢查。目前常用的排錯、調(diào)試方法有兩種,一是用單片機仿真開發(fā)裝置與試驗樣機聯(lián)機提供排錯、調(diào)試手段,具體的方法有單步運行、斷點運行、跟蹤運行、全速運行等。其中單步運行方法是使所編制的程序指令僅執(zhí)行一條就停止下來,檢查試驗樣機和應(yīng)用程序中的錯誤,然后再單步執(zhí)行下一條指令…;斷點運行方法是在程序中設(shè)置斷點,使得當程序執(zhí)行到斷點處時停止,供設(shè)計者檢查試驗樣機和應(yīng)用程序中的錯誤;跟蹤運行方法是應(yīng)用程序指令一條一條地執(zhí)行,開發(fā)裝
13、置攝取運行每一條指令的地址、單片機各部分數(shù)據(jù)、I/O端口等處信息,供調(diào)試者隨時停止程序,對各種信息進行檢查和修改;全速運行方法是實時地運行用戶程序,可以檢查用戶程序最終執(zhí)行結(jié)果。二是在IBM-PC機上創(chuàng)建一個模擬目標單片機的模擬環(huán)境,把編好的程序在這個模擬環(huán)境下運行,進而進行排錯和調(diào)試。該方法對單片機軟件的開發(fā)簡單易行,它不需要任何在線仿真器,也不需要調(diào)試樣機。</p><p> 2.2 MCS-51對系統(tǒng)環(huán)境
14、的要求:</p><p> MCS-51的開發(fā)環(huán)境要求較低,軟件資源十分豐富,硬件只需配備一臺PC,一臺仿真編程器即可實現(xiàn)產(chǎn)品開發(fā),我們在軟件方面采用匯編語言編寫代碼,在硬件方面我們使用個人電腦結(jié)合西安唐都科教儀器公司開發(fā)的TDN-MI單片機開發(fā)實驗系統(tǒng)。TDN-MI主要功能包括:程序的輸入、信息的保存、程序的運行和調(diào)試、以及應(yīng)用系統(tǒng)的仿真、程序的固化等。其中TDN-MI和個人PC之間采用RS232串行接口連接
15、。</p><p> 2.3硬件電路設(shè)計:</p><p> 硬件電路設(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等。</p><p> 對應(yīng)用系統(tǒng)進行擴
16、展與配置時,應(yīng)充分考慮如下的設(shè)計原則。</p><p> 1)、盡可能選擇典型電路,并符合單片機的常規(guī)使用要求。</p><p> 2)、擴展與配置的數(shù)量應(yīng)充分滿足應(yīng)用系統(tǒng)功能的要求并留有余地,以便能方便地進行功能擴展和進一步的開發(fā)。</p><p> 3)、應(yīng)充分結(jié)合軟件方案老考慮硬件結(jié)構(gòu)。</p><p> 4)、整個系統(tǒng)中的相關(guān)
17、器件應(yīng)盡可能做到性能匹配,如選用的晶振頻率較高時,就應(yīng)選擇存取速度較高的芯片。</p><p> 5)、應(yīng)重視整個系統(tǒng)的可靠性及抗干擾設(shè)計,如充分篩選芯片和器件,增加去耦電路,采取隔離和屏蔽等措施。 </p><p> 在此,我們的設(shè)計用到的硬件有:89C51,74LS1
18、64,數(shù)碼管,電容,二極管,電阻,等</p><p> 組成的單片機最小系統(tǒng)如圖2-2:</p><p> 圖2-2 單片機最小系統(tǒng)圖</p><p> 第三節(jié) 軟件系統(tǒng)的設(shè)計</p><p> 一些在此次電梯設(shè)計中用到的運行特征:</p><p><b> 1)、鍵位特征:</b>&
19、lt;/p><p> 外鍵:EEH,EDH,EBH,----上鍵值</p><p> DEH,DDH,DBH----下鍵值</p><p> 上鍵值特征:P2.0=1</p><p> 下................:P2.0=0</p><p> 內(nèi)鍵:77H,7BH,7DH,7EH</p>
20、<p><b> 2)、運行特征:</b></p><p> 正在執(zhí)行上,下程序特征:P2.3=1</p><p> 沒在執(zhí)行 :P2.3=0</p><p> 正在上行特征:P2.4=1</p><p> 正在下行 :P2.4=0</p><p>&l
21、t;b> 3)、取鍵特征:</b></p><p><b> KEYA:取外鍵值</b></p><p><b> KEYB:取內(nèi)鍵值</b></p><p> R2:電梯運行的終止層</p><p> R3:內(nèi)鍵或外鍵中斷層</p><p>
22、FLOORNOW:現(xiàn)在的樓層數(shù)</p><p><b> 4)、子程序代碼:</b></p><p> OPENOUT:按外鍵時的情況</p><p> OPENIN :按內(nèi)鍵時的情況</p><p> MAKER3:取按鍵所在的層-中斷層數(shù)值。</p><p> DISPL:由現(xiàn)在
23、層FLOORNOW運行到R2</p><p> DISPLA:先由現(xiàn)在層運行到R2,再到R3------上升</p><p> DISPLB:由現(xiàn)在層運行到R3,再到R2------下降</p><p> DISPLD:根據(jù)實際情況判斷。</p><p> DISPS:數(shù)碼管顯示樓層數(shù)</p><p> DI
24、SPLS:通過FLOOLNOW所在層燈的閃爍表示開關(guān)門。</p><p> :R2中的內(nèi)容和R3中的內(nèi)容互換</p><p> 主程序流程圖如圖3-1:</p><p> 圖3-1 主程序流程圖</p><p><b> 一:主程序:</b></p><p> DIN EQU P0.
25、0</p><p> CLK EQU P0.1</p><p> FLOORNOW EQU 35H</p><p> FLOORLAST EQU 45H</p><p> ORG 0000H ;初使化</p><p> LJMP START</p>&
26、lt;p><b> ORG 000BH</b></p><p> MOV R5,#200</p><p><b> CLR P2.6</b></p><p><b> PUSH ACC</b></p><p><b> PUSH PSW</b&g
27、t;</p><p> DJNZ R5,EXIT</p><p> LCALL KEYA</p><p> LCALL KEYB</p><p> JB P2.6,LP ;有鍵按下時跳到主程序,</p><p> EXIT:POP PSW ;無
28、鍵按下的返回</p><p><b> POP ACC</b></p><p><b> RETI</b></p><p> START:MOV R7,#00H ;數(shù)碼管顯0</p><p> CLR P2.3 ;無執(zhí)行</p>&l
29、t;p> MOV FLOORLAST,#01H</p><p> MOV FLOORNOW,#01H</p><p> MOV TMOD,#02H ;方式二</p><p> MOV IE,#82H</p><p> MOV TH0,#56H</p><p> MOV TL0,#56H&
30、lt;/p><p><b> SETB TR0</b></p><p> LCALL DISPS</p><p> LP:LCALL KEYA</p><p> LCALL KEYB</p><p><b> LJMP LP</b></p><p
31、> 二:外鍵盤查詢子程序 ---KEYA:</p><p> KEYA: MOV P1,#0FH </p><p> ;A1-A4輸出,B1-B4輸入</p><p><b> MOV A,P1</b></p><p> CJNE A,#0FH,K11 ;有
32、鍵按下</p><p> K10: AJMP K17 ;無鍵按下</p><p> K11: ACALL YAN ;延時去前沿抖動</p><p> MOV A,P1 ;再讀鍵盤狀況</p><p> CJNE A,#0FH,K12
33、 ;確有鍵按下</p><p><b> SJMP K10</b></p><p> K12: MOV B,A ;存行值</p><p> MOV P1,#0EFH ;按鍵在A?列,設(shè)鍵在A4列</p>&
34、lt;p><b> MOV A,P1</b></p><p> CJNE A,#0EFH,K13 </p><p> MOV P1,#0DFH ;設(shè)鍵在A3列</p><p> MOV A,P1</p><p> CJNE A,#0DFH,K13 &
35、lt;/p><p> MOV P1,#0BFH ;設(shè)鍵在A2列</p><p> MOV A,P1</p><p> CJNE A,#0BFH,K13 </p><p> MOV P1,#07FH ;設(shè)鍵在A1列</p><p>
36、 MOV A,P1</p><p> CJNE A,#07FH,K13 </p><p> AJMP K10 ;多鍵同時按下</p><p> K13: ANL A,#0F0H </p><p> ORL A,B ;拼裝
37、鍵值</p><p> MOV B,A ;暫存鍵值</p><p> MOV R1,#7H ;7個鍵</p><p> MOV R2,#00H ;鍵碼初值</p><p> MOV DPTR,#KEYATAB ;鍵碼表首地址</
38、p><p> K14: MOV A,R2</p><p> MOVC A,@A+DPTR ;從鍵值表中取鍵值</p><p> CJNE A,B,K16 ;鍵值比較</p><p> MOV P1,#0FH ;相等,則完成以下步驟</p><p>
39、 K15: MOV A,P1 </p><p> CJNE A,#0FH,K15 ;等鍵釋放</p><p> ACALL YAN ;延時去后沿抖動</p><p> MOV 31H,R2 ;得鍵碼</p><p><b> MOV
40、30H,B</b></p><p><b> MOV A,30H</b></p><p> ANL A,#0F0H ;高四位</p><p> CJNE A,#0E0H,K19</p><p> SETB P2.0 ;上行鍵特征&
41、lt;/p><p><b> AJMP K18</b></p><p> K19:CLR P2.0 ;下行鍵特征</p><p><b> SETB P2.1</b></p><p><b> AJMP K18</b></p>
42、;<p> K16: INC R2 ;不相等,到繼續(xù)訪問鍵值表</p><p> DJNZ R1,K14</p><p> AJMP K17 </p><p> K18:SETB P2.6 ;置有鍵按下時特征</p><p> LCALL O
43、PENOUT</p><p> K17: RET</p><p><b> KEYATAB:</b></p><p> DB 0EFH,0EEH,0EDH,0EBH</p><p> DB 0DEH,0DDH,0DBH</p><p> 三:內(nèi)鍵盤查詢子程序邏輯 ---KEYB:&
44、lt;/p><p> KEYB: MOV P1,#0FH ;A1-A4輸出,B1-B4輸入,</p><p> ;輸入者對應(yīng)鎖存先寫1</p><p><b> MOV A,P1</b></p><p> CJNE A,#0FH,L11 ;有鍵按下</p>
45、<p> L10: AJMP L17 ;無鍵按下</p><p> L11: ACALL YAN ;延時去前沿抖動</p><p> MOV P1,#0FH</p><p> MOV A,P1 ;再讀鍵盤狀況</p><
46、;p> CJNE A,#0FH,L12 ;確有鍵按下</p><p><b> SJMP L10</b></p><p> L12: MOV B,A ;存行值</p><p> MOV P1,#0EFH ;按鍵在A?列,設(shè)鍵在A4列</p
47、><p><b> MOV A,P1</b></p><p> CJNE A,#0EFH,L13 </p><p> MOV P1,#0DFH ;設(shè)鍵在A3列</p><p> MOV A,P1</p><p> CJNE A,#0DFH,L13
48、 </p><p> MOV P1,#0BFH ;設(shè)鍵在A2列</p><p> MOV A,P1</p><p> CJNE A,#0BFH,L13 </p><p> MOV P1,#07FH ;設(shè)鍵在A1列</p><p> MOV
49、 A,P1</p><p> CJNE A,#07FH,L13 </p><p> AJMP L10 ;多鍵同時按下</p><p> L13: ANL A,#0F0H </p><p> ORL A,B ;拼裝鍵值</
50、p><p> MOV B,A ;暫存鍵值</p><p> MOV R1,#5H ;16個鍵</p><p> MOV R2,#00H ;鍵碼初值</p><p> MOV DPTR,#KEYBTAB ;鍵碼表首地址(如圖6-9所
51、示編碼)</p><p> L14: MOV A,R2</p><p> MOVC A,@A+DPTR ;從鍵值表中取鍵值</p><p> CJNE A,B,L16 ;鍵值比較</p><p> MOV P1,#0FH ;相等,則完成以下步驟</
52、p><p> L15: MOV A,P1 </p><p> CJNE A,#0FH,L15 ;等鍵釋放</p><p> ACALL YAN ;延時去后沿抖動</p><p> MOV 41H,R2 ;得鍵碼</p&g
53、t;<p><b> CLR P2.1</b></p><p><b> AJMP L18</b></p><p> L16: INC R2 ;不相等,到繼續(xù)訪問鍵值表</p><p> DJNZ R1,L14</p><p>
54、 AJMP L17 ;多鍵同時按下</p><p> L18: SETB P2.6 ;置有鍵按下時特征</p><p> LCALL OPENIN</p><p><b> L17:RET</b></p><p><b> KE
55、YBTAB:</b></p><p> DB 0FFH,77H,7BH,7DH,7EH</p><p> 執(zhí)行有外鍵按下時流程圖3-2,3-3:</p><p> 圖3-2 無執(zhí)行流程圖</p><p> 3-3 正在執(zhí)行流程圖</p><p> 四:執(zhí)行有外鍵按下時子程序 ----OPENOU
56、T:</p><p> OPENOUT:JB P2.3,OUTLP ;正在執(zhí)行則跳轉(zhuǎn)</p><p> LCALL MAKER3 ;取中斷層</p><p><b> MOV A,R3</b></p><p><b> MOV R2,A</b></p>
57、<p> LJMP DISPL</p><p><b> RET</b></p><p> OUTLP:JB P2.0,OUTLP2 ;按的是下行鍵則跳轉(zhuǎn)</p><p> JNB P2.4,OUTLP3 ;正在上行則跳轉(zhuǎn)</p><p><
58、b> RET</b></p><p> OUTLP3:LCALL MAKER3 ;取中斷層</p><p> MOV A,FLOORNOW</p><p><b> MOV B,R3</b></p><p><b> DIV AB</b></p
59、><p> JNZ OUTLP4 ;中斷層小于現(xiàn)在層則跳轉(zhuǎn)</p><p><b> RET</b></p><p> OUTLP4:MOV A,R2</p><p><b> MOV B,R3</b></p><p><b> DIV
60、 AB</b></p><p> JZ OUTLP5 ;終止層小于中斷層則跳轉(zhuǎn)</p><p><b> MOV A,R2</b></p><p><b> XCH A,R3</b></p><p><b> MOV R2,A</b>
61、;</p><p> OUTLP5:LCALL DISPLB</p><p><b> RET</b></p><p> OUTLP2:JB P2.4,OUTLP6</p><p><b> RET</b></p><p> OUTLP6:MOV A,FLOORNO
62、W</p><p><b> MOV B,R3</b></p><p><b> DIV AB</b></p><p> JZ OUTLP7 ;現(xiàn)在層小于中斷層則跳轉(zhuǎn)</p><p> RET ;現(xiàn)在層小于中斷層則返
63、回</p><p> OUTLP7:MOV A,R2</p><p><b> MOV B,R3</b></p><p><b> DIV AB</b></p><p> JNZ OUTLP8 ;中斷層小于終止層則跳轉(zhuǎn)</p><p>&l
64、t;b> MOV A,R2</b></p><p><b> XCH A,R3</b></p><p><b> MOV R2,A</b></p><p> OUTLP8:LCALL DISPLA</p><p><b> RET</b></p
65、><p> 五:執(zhí)行有內(nèi)鍵按下時流程圖3-4:</p><p> 3-4 內(nèi)鍵按下流程圖</p><p> 執(zhí)行有外鍵按下時子程序:</p><p> OPENIN:JB P2.3,INLP ;正在運行則跳轉(zhuǎn)</p><p> LCALL MAKER3</p><p&g
66、t;<b> MOV A,R3</b></p><p><b> MOV R2,A</b></p><p> LCALL DISPL</p><p> INLP:LCALL MAKER3</p><p> LCALL DISPLD</p><p><b>
67、; RET</b></p><p> 取中斷層R3流程圖3-5:</p><p> 3-5 取中斷層流程圖</p><p> 六:取中斷層R3子程序:</p><p> MAKER3:JNB P2.1,MAKELP3 ;按內(nèi)鍵則跳轉(zhuǎn)</p><p> JB P2.0,
68、MAKELP1 ;按下行鍵則跳轉(zhuǎn)</p><p><b> MOV A,#8</b></p><p> SUBB A,31H</p><p> LJMP MAKELP2</p><p> MAKELP1:MOV A,#4</p><p> SUBB A,3
69、1H</p><p> MAKELP2:MOV R3,A</p><p> AJMP MAKELP4</p><p> MAKELP3:MOV R3,41H</p><p> MAKELP4:RET</p><p><b> DISPL子程序:</b></p><
70、;p> DISPL:MOV 32H,R2</p><p> MOV A,FLOORNOW</p><p> CJNE A,32H,LPL4 ;現(xiàn)在層是否等于終止層</p><p> MOV DPTR,#KEYTAB</p><p> MOV A,FLOORNOW</p>&l
71、t;p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p><p><b> MOV P3,A</b></p><p> MOV R7,FLOORNOW</p><p> LCALL DISPS ;數(shù)碼管顯示層數(shù)</p><p>
72、<b> AJMP LPL5</b></p><p> LPL4:MOV A,FLOORNOW</p><p><b> MOV B,R2</b></p><p><b> DIV AB</b></p><p> JNZ LPL1
73、;現(xiàn)在層大于終止層則跳轉(zhuǎn)</p><p> MOV DPTR,#KEYTAB</p><p> MOV A,FLOORNOW</p><p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p><p><b> MOV 50H,A</b></p><
74、;p> LPL2:MOV A,50H</p><p><b> MOV P3,A</b></p><p><b> SETB P2.3</b></p><p> RL A ;上升</p><p><b> SETB P2.4
75、</b></p><p><b> MOV 50H,A</b></p><p> MOV FLOORLAST,FLOORNOW</p><p> INC FLOORNOW</p><p><b> INC R7</b></p><p> LCALL DI
76、SPS ;數(shù)碼管顯示層數(shù)</p><p><b> MOV A,R2</b></p><p> LCALL LONGYAN</p><p> CJNE A,FLOORLAST,LPL2 ;是否到達終止層?</p><p> DEC FLOORNOW<
77、/p><p><b> CLR P2.3</b></p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時</p><p> LCALL DISPLS ;閃爍,表示關(guān)
78、門</p><p><b> RET</b></p><p> LPL1:MOV DPTR,#KEYTAB</p><p> MOV A,FLOORNOW</p><p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p><p><b
79、> MOV 50H,A</b></p><p> LPL3:MOV A,50H</p><p><b> MOV P3,A</b></p><p> SETB P2.3 ;設(shè)置正在運行狀態(tài)位</p><p> RR A
80、;下降</p><p> CLR P2.4 ;設(shè)置正在下降狀態(tài)位 </p><p><b> MOV 50H,A</b></p><p> MOV FLOORLAST,FLOORNOW</p><p> DEC FLOORNOW ;未到終止層則現(xiàn)
81、在層減一,繼續(xù)下降</p><p><b> DEC R7</b></p><p> LCALL DISPS ;數(shù)碼管顯示層數(shù)</p><p><b> MOV A,R2</b></p><p> LCALL LONGYAN</p><
82、p> CJNE A,FLOORLAST,LPL3 ;是否到達終止層</p><p> INC FLOORNOW ;到達終止層,回復現(xiàn)在層的層數(shù)</p><p> CLR P2.3 ;置無在運行狀態(tài)位</p><p> LPL5:LCALL DISPLS
83、 ;閃爍,表示開門</p><p> LCALL YAN ;延時</p><p> LCALL DISPLS ;閃爍,表示關(guān)門</p><p><b> SJMP $</b></p><p> DISPLA
84、子程序:</p><p> DISPLA:MOV DPTR,#KEYTAB</p><p> MOV A,FLOORNOW</p><p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p><p><b> MOV 50H,A</b></p>&l
85、t;p> LPLA1:MOV A,50H</p><p><b> MOV P3,A</b></p><p> SETB P2.3 ;設(shè)置正在運行狀態(tài)位</p><p><b> RL A</b></p><p> SETB P2.4于
86、 ;設(shè)置正在上升狀態(tài)位</p><p><b> MOV 50H,A</b></p><p> MOV FLOORLAST,FLOORNOW</p><p> INC FLOORNOW</p><p><b> INC R7</b></p>
87、<p> LCALL DISPS ;數(shù)碼管顯示層數(shù)</p><p><b> MOV A,R3</b></p><p> LCALL LONGYAN</p><p> CJNE A,FLOORLAST,LPLA1 ;現(xiàn)在層=中斷層?</p><p>
88、 DEC FLOORNOW ;恢復現(xiàn)在層數(shù)值</p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時</p><p> LCALL DISPLS
89、;閃爍,表示關(guān)門</p><p> LPLA2:MOV DPTR,#KEYTAB</p><p> INC FLOORNOW</p><p> MOV A,FLOORNOW </p><p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p>&
90、lt;p><b> MOV 50H,A</b></p><p> LPLA3:MOV A,50H</p><p><b> MOV P3,A</b></p><p> SETB P2.3 ;設(shè)置正在運行狀態(tài)位</p><p><b&
91、gt; RL A</b></p><p> SETB P2.4 ;設(shè)置正在上升狀態(tài)位</p><p><b> MOV 50H,A</b></p><p> MOV FLOORLAST,FLOORNOW</p><p> INC FLOORNOW<
92、;/p><p><b> INC R7</b></p><p> LCALL DISPS ;數(shù)碼管顯示層數(shù)</p><p><b> MOV A,R2</b></p><p> CJNE A,FLOORLAST,LPLA3 ;現(xiàn)在層=終止層?&
93、lt;/p><p> DEC FLOORNOW ;恢復現(xiàn)在層數(shù)值</p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時</p><p> LCALL DISPLS
94、 ;閃爍,表示關(guān)門</p><p> CLR P2.3 ;清除正在運行標志位</p><p><b> SJMP $</b></p><p> DISPLB子程序:</p><p> DISPLB:MOV DPTR,#KEYTAB&
95、lt;/p><p> MOV A,FLOORNOW</p><p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p><p><b> MOV 50H,A</b></p><p> LPLB1:MOV A,50H</p><p><b&g
96、t; MOV P3,A</b></p><p> SETB P2.3 ;設(shè)置正在運行狀態(tài)位</p><p> RR A ;下降</p><p> CLR P2.4 ;設(shè)置正在下降狀態(tài)位</p><p>&
97、lt;b> MOV 50H,A</b></p><p> MOV FLOORLAST,FLOORNOW</p><p> DEC FLOORNOW</p><p><b> DEC R7</b></p><p> LCALL DISPS ;數(shù)碼管顯示層數(shù)<
98、;/p><p><b> MOV A,R3</b></p><p> LCALL LONGYAN</p><p> CJNE A,FLOORLAST,LPLB1</p><p> INC FLOORNOW ;到達中斷層,回復現(xiàn)在層的層數(shù)</p><p> L
99、CALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時</p><p> LCALL DISPLS ;閃爍,表示關(guān)門</p><p> CLR P2.3 ;清除正在運行標
100、志位</p><p><b> SJMP $</b></p><p> LPLB2:MOV DPTR,#KEYTAB</p><p> MOV A,FLOORNOW</p><p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p><p>
101、<b> MOV 50H,A</b></p><p> LPLB3:MOV A,50H</p><p><b> MOV P3,A</b></p><p> SETB P2.3 ;設(shè)置正在運行狀態(tài)位</p><p><b> RR A<
102、/b></p><p> CLR P2.4 ;設(shè)置正在下降狀態(tài)位</p><p><b> MOV 50H,A</b></p><p> MOV FLOORLAST,FLOORNOW</p><p> DEC FLOORNOW</p><p>&
103、lt;b> DEC R7</b></p><p> LCALL DISPS ;數(shù)碼管顯示層數(shù)</p><p><b> MOV A,R2</b></p><p> LCALL LONGYAN</p><p> CJNE A,FLOORLAST,LPLB3
104、 ;是否到達終止層?</p><p> INC FLOORNOW ;到達終止層,回復現(xiàn)在層的層數(shù)</p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時</p><p>
105、; LCALL DISPLS ;閃爍,表示關(guān)門</p><p> CLR P2.3 ;清除正在運行標志位</p><p><b> SJMP $</b></p><p> 執(zhí)行DISPLD子程序流程圖3-6:</p><p>
106、 3-6 DISPLD子程序流程圖</p><p> 七:DISPLD子程序:</p><p> DISPLD:JB P2.4,LPLD ;正在上行則跳轉(zhuǎn)</p><p> MOV A,FLOORNOW</p><p><b> MOV B,R3</b></p><
107、p><b> DIV AB</b></p><p> JNZ LPLD1 ;現(xiàn)在層大于中斷層則跳轉(zhuǎn)</p><p> LCALL LPLD6 ;先下到R2,再上升到R3</p><p><b> RET</b></p><p>
108、; LPLD1:MOV A,R3</p><p><b> MOV B ,R2</b></p><p><b> DIV AB</b></p><p> JZ LPLD2 ;中斷層小于終止層則跳轉(zhuǎn)</p><p> LCALL DISPLB
109、 ;先下降到R3,再下降到R2</p><p><b> RET</b></p><p> LPLD2:MOV A,R3</p><p><b> XCH A,R2</b></p><p><b> MOV R3,A</b></p><p
110、> LCALL DISPLB ;中斷層大于終止層則跳轉(zhuǎn)</p><p><b> RET</b></p><p> LPLD:MOV A,FLOORNOW</p><p><b> MOV B ,R3</b></p><p><b> DIV AB&
111、lt;/b></p><p> JZ LPLD3 ;現(xiàn)在層小于中斷層則跳轉(zhuǎn)</p><p> LCALL LPLD7</p><p><b> RET</b></p><p> LPLD3:MOV A,R3</p><p><b> M
112、OV B,R2</b></p><p><b> DIV AB</b></p><p> JNZ LPLD4 ;中斷層大于終止層則跳轉(zhuǎn)</p><p> LCALL DISPLA ;中斷層小于終止層,先上升到R3,再上升到R2</p><p> LPLD
113、4:MOV A,R3</p><p> XCH A,R2 ;中斷層大于終止層則R3,R2互換</p><p><b> MOV R3,A</b></p><p> LCALL DISPLA ;先上升到R3,再上升到R2</p><p><b> SJM
114、P $</b></p><p> LPLD6: MOV DPTR,#KEYTAB</p><p> MOV A,FLOORNOW</p><p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p><p><b> MOV 50H,A</b></p>
115、<p> LPLD8:MOV A,50H</p><p><b> MOV P3,A</b></p><p> SETB P2.3 ;設(shè)置正在運行狀態(tài)位</p><p><b> RR A </b></p><p> CLR P2.4
116、 ;設(shè)置正在下降狀態(tài)位</p><p><b> MOV 50H,A</b></p><p> MOV FLOORLAST,FLOORNOW</p><p> DEC FLOORNOW</p><p><b> DEC R7 </b></p><p>
117、; LCALL DISPS ;數(shù)碼管顯示層數(shù) </p><p><b> MOV A,R2</b></p><p> LCALL LONGYAN</p><p> CJNE A,FLOORLAST,LPLD8 ;下到R2</p><p> INC FLOORNOW</p&g
118、t;<p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時</p><p> LCALL DISPLS ;閃爍,表示關(guān)門</p><p> MOV DPTR,#KEYTAB</p><p> MOV A
119、,FLOORNOW</p><p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p><p><b> MOV 50H,A</b></p><p> LPLD9:MOV A,50H</p><p><b> MOV P3,A</b></p>
120、<p> SETB P2.3 ;設(shè)置正在運行狀態(tài)位</p><p><b> RL A</b></p><p> SETB P2.4 ;設(shè)置正在上升狀態(tài)位</p><p><b> MOV 50H,A</b></p><p> MO
121、V FLOORLAST,FLOORNOW</p><p> INC FLOORNOW</p><p><b> INC R7</b></p><p> LCALL DISPS ;數(shù)碼管顯示層數(shù)</p><p><b> MOV A,R3</b></p>&
122、lt;p> LCALL LONGYAN</p><p> CJNE A,FLOORLAST,LPLD9 ;上到R3</p><p> DEC FLOORNOW;到達中斷層,回復現(xiàn)在層的層數(shù)</p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN
123、 ;延時</p><p> LCALL DISPLS ;閃爍,表示關(guān)門</p><p> CLR P2.3 ;清除正在運行位</p><p><b> SJMP $</b></p><p> LPLD7:MOV DPTR,#KEYTAB<
124、/p><p> MOV A,FLOORNOW</p><p> MOVC A,@A+DPTR ;取現(xiàn)在層的顯示二進制數(shù)值</p><p><b> MOV 50H,A</b></p><p> LPLD10:MOV A,50H</p><p><b> MOV P3,
125、A</b></p><p> SETB P2.3 ;設(shè)置正在運行狀態(tài)位</p><p><b> RL A</b></p><p> SETB P2.4 ;設(shè)置正在上升狀態(tài)位</p><p><b> MOV 50H,A<
126、/b></p><p> MOV FLOORLAST,FLOORNOW</p><p> INC FLOORNOW ;未到終止層則現(xiàn)在層加一,繼續(xù)上升</p><p><b> INC R7</b></p><p> LCALL DISPS ;數(shù)碼管顯示層數(shù)&l
127、t;/p><p><b> MOV A,R2</b></p><p> LCALL LONGYAN</p><p> CJNE A,FLOORLAST,LPLD10 ;上到R2</p><p> DEC FLOORNOW ;到達終止層,回復現(xiàn)在層的層數(shù)</p><p&g
128、t; LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時</p><p> LCALL DISPLS ;閃爍,表示關(guān)門</p><p> MOV DPTR,#KEYTAB</p><p> MOV A,FLOORN
129、OW</p><p> MOVC A,@A+DPTR</p><p><b> MOV 50H,A</b></p><p> LPLD11:MOV A,50H</p><p><b> MOV P3,A</b></p><p><b> RR A</
130、b></p><p><b> MOV 50H,A</b></p><p> MOV FLOORLAST,FLOORNOW</p><p> DEC FLOORNOW ;未到終止層則現(xiàn)在層減一,繼續(xù)下降 </p><p><b> DEC R7</b></p&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機畢業(yè)設(shè)計--單片機控制的led點陣顯示
- 單片機模擬電梯自動控制畢業(yè)設(shè)計
- 基于單片機控制電梯燈畢業(yè)設(shè)計
- 基于單片機模擬電梯設(shè)計
- 單片機畢業(yè)設(shè)計--汽車轉(zhuǎn)彎燈單片機控制
- 單片機課程設(shè)計-- 基于單片機的電梯控制系統(tǒng)
- 基于51單片機的模擬電梯控制系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計----單片機控制公交漢字顯示
- 基于單片機的電梯控制系統(tǒng)畢業(yè)設(shè)計
- 基于單片機的電梯控制系統(tǒng)畢業(yè)設(shè)計
- 單片機畢業(yè)設(shè)計---基于51系列的單片機日歷和時鐘顯示設(shè)計
- 基于單片機的電梯控制模擬系統(tǒng)設(shè)計
- 單片機畢業(yè)設(shè)計---單片機控制交通燈
- 畢業(yè)設(shè)計--基于單片機的電梯控制系統(tǒng)
- 基于單片機的電梯控制系統(tǒng)畢業(yè)設(shè)計
- 單片機畢業(yè)設(shè)計--基于單片機的電子時鐘
- 單片機畢業(yè)論文--基于單片機的led顯示屏設(shè)計
- 單片機畢業(yè)設(shè)計---基于單片機的恒溫控制器的設(shè)計
- 畢業(yè)設(shè)計--基于單片機的旋轉(zhuǎn)顯示系統(tǒng)
- 單片機畢業(yè)設(shè)計---基于單片機簡易計算機
評論
0/150
提交評論