版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 摘要 電梯是標(biāo)志現(xiàn)代物質(zhì)文明的垂直運(yùn)輸工具、是機(jī)—電一體化的復(fù)雜運(yùn)輸設(shè)備。它涉及電子技術(shù)、機(jī)械工程、電力電子技術(shù)、微機(jī)技術(shù)、電力拖動(dòng)系統(tǒng)和土建工程等多個(gè)科學(xué)領(lǐng)域。目前電梯的生產(chǎn)情況和使用數(shù)量已成為一個(gè)國(guó)家現(xiàn)代化程度的標(biāo)志之一。隨著現(xiàn)代化城市的高速發(fā)展,每天都有大量人流及物流需要輸送。為節(jié)約用地和適應(yīng)經(jīng)貿(mào)事業(yè)的發(fā)展,一幢幢高樓拔地而起,這些高層建筑的垂直運(yùn)輸是一個(gè)突出問題,與人們的工作和生活緊密相關(guān)</p>
2、;<p> 8051是MCS-51系列單片機(jī)中的代表產(chǎn)品,它內(nèi)部集成了功能強(qiáng)大的中央處理器,包含了硬件乘除法器、21個(gè)專用控制寄存器、4kB的程序存儲(chǔ)器、128字節(jié)的數(shù)據(jù)存儲(chǔ)器、4組8位的并行口、兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器、一個(gè)全雙工的串行口以及布爾處理器。</p><p> MCS-51具有比較大的尋址空間,地址線寬達(dá)16條,即外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器的尋址范圍達(dá)216=64kB,這作為
3、單片機(jī)控制來(lái)說已是比較大的,這同時(shí)具備對(duì)I/O口的訪問能力。此外,MCS-51采用模塊化結(jié)構(gòu),可方便地增刪一個(gè)模塊就可引腳和指令兼容的新產(chǎn)品。從而容易使產(chǎn)品形成系列化。</p><p> 關(guān)鍵詞 電梯 單片機(jī) 匯編</p><p><b> 第一節(jié) 概述</b></p><p> MCS-51把微型計(jì)算機(jī)的主要部件都集成在一塊心片上,
4、使得數(shù)據(jù)傳送距離大大縮短,可靠性更高,運(yùn)行速度更塊。由于屬于芯片化的微型計(jì)算機(jī),各功能部件在芯片中的布局和結(jié)構(gòu)達(dá)最優(yōu)化,抗干擾能力加強(qiáng),工作亦相對(duì)穩(wěn)定。因此,在工業(yè)測(cè)控系統(tǒng)中,使用單片機(jī)是最理想的選擇。單片機(jī)屬于典型的嵌入式系統(tǒng),所以它是低端控制系統(tǒng)最佳器件。</p><p><b> 設(shè)計(jì)要求:</b></p><p> 1)、不管電梯停在哪一層,可以響應(yīng)其他任
5、意一層的呼叫</p><p> 2)、電梯在上升過程中,響應(yīng)將經(jīng)過樓層或高出目的樓層的同向呼叫,停靠同一方的所選樓層,不響應(yīng)其他呼叫。</p><p> 3)、電梯在下降過程中,響應(yīng)將經(jīng)過樓層或低于目的樓層的同向呼叫,停靠同一方向的所選樓層,不響應(yīng)其他呼叫。</p><p> 4)、電梯中途??浚柩訒r(shí)一段時(shí)間,作為上下客時(shí)間,然后再繼續(xù)運(yùn)行到最終目的地。&l
6、t;/p><p> 5)、電梯在上升或下降的過程中??科陂g,其上升或下降指示燈不滅。</p><p> 6)、如果無(wú)任何鍵按下,電梯不運(yùn)行</p><p> 第二節(jié) 硬件系統(tǒng)的設(shè)計(jì)</p><p> 由于MCS-51集成了幾乎完善的8位中央處理單元,處理功能強(qiáng),中央處理單元中集成了方便靈活的專用寄存器,硬件的加、減、乘、除法器和布爾處理機(jī)
7、及各種邏輯運(yùn)算和轉(zhuǎn)移指令,這給應(yīng)用提供了極大的便利</p><p> 2.1、軟件硬件結(jié)合調(diào)試:</p><p> 8051中集成了完善的各種中斷源,用戶可十分方便地控制和使用其功能,使得它的應(yīng)用范圍加大可以說它可以滿足絕大部分的應(yīng)用場(chǎng)合。</p><p> 當(dāng)把單片機(jī)應(yīng)用系統(tǒng)的試驗(yàn)樣機(jī)裝配完畢以后,便可進(jìn)入硬件調(diào)試階段,硬件調(diào)試一般按脫機(jī)檢查和聯(lián)機(jī)調(diào)試兩步進(jìn)
8、行。</p><p> 脫機(jī)檢查就是根據(jù)硬件邏輯電路圖,用萬(wàn)用表等工具檢查試驗(yàn)樣機(jī)聯(lián)線的正確性與可靠性,其中對(duì)電源系統(tǒng)的極性、短路故障等問題要特別注意。要仔細(xì)地檢查硬件電路的地址總線、數(shù)據(jù)總線和控制總線是否有短路、開路或錯(cuò)位情況;在電路檢查完成以后,可在不插入集成電路芯片的情況下加電檢查,確定一些點(diǎn)的電位是否正常;斷電后,再把集成電路芯片正確地插入各插座,然后加電,迅速地檢查各芯片是否有溫升異常,以及單片機(jī)和有
9、關(guān)接口電路的通電初始化狀態(tài)是否正確。在上述情況都正常后,便可進(jìn)入硬件的聯(lián)機(jī)調(diào)試。值得注意的是,在加點(diǎn)情況下,不可拔插任何集成電路芯片。</p><p> 聯(lián)機(jī)調(diào)試就是把試驗(yàn)樣機(jī)上的單片機(jī)和EPROM拔下,并將單片機(jī)開發(fā)裝置的仿真頭插入試驗(yàn)樣機(jī)上的單片機(jī)插座上,這樣就將仿真器與單片機(jī)應(yīng)用系統(tǒng)兩者連接起來(lái),構(gòu)成了聯(lián)機(jī)調(diào)試狀態(tài)。聯(lián)機(jī)調(diào)試時(shí),首先分別接通開發(fā)裝置和試驗(yàn)樣機(jī)的電源,在加電后,若開發(fā)裝置能正常工作,就說明試
10、驗(yàn)樣機(jī)的地址總線、數(shù)據(jù)總線和控制總線無(wú)短路故障,否則應(yīng)再斷電檢查試驗(yàn)樣機(jī)的線路,直到排除了鼓掌為止;聯(lián)機(jī)調(diào)試狀態(tài)下,還可使用開發(fā)裝置對(duì)試驗(yàn)樣機(jī)進(jìn)行全面的檢查,例如檢查讀寫結(jié)果、觀察試驗(yàn)樣機(jī)I/O設(shè)備的狀態(tài)等,利用這些手段還可進(jìn)一步檢查、排除試驗(yàn)樣機(jī)的硬件故障(包含設(shè)計(jì)和工藝錯(cuò)誤)。在試驗(yàn)樣機(jī)中,常見的故障有元器件質(zhì)量低劣,開發(fā)裝置或試驗(yàn)樣機(jī)接地不良,電壓波動(dòng)大,單片機(jī)負(fù)載過重,線路短路或斷路以及設(shè)計(jì)工藝錯(cuò)誤。</p>&l
11、t;p> 硬件電路如圖2-1:</p><p> 圖2-1 硬件電路圖</p><p> MCS-51的指令系統(tǒng)近乎完善,指令系統(tǒng)中包含了全面的數(shù)據(jù)傳送指令、完善的算術(shù)和邏輯運(yùn)算指令、方便的邏輯操作和控制指令、對(duì)于編程來(lái)說,是相當(dāng)靈活和方便的。</p><p> 對(duì)應(yīng)用程序進(jìn)行排錯(cuò)調(diào)試 就是對(duì)已經(jīng)進(jìn)行過硬件檢查的試驗(yàn)樣機(jī)和翻譯成機(jī)器碼的應(yīng)用程序,
12、還要進(jìn)行聯(lián)合排錯(cuò)和調(diào)試檢查。目前常用的排錯(cuò)、調(diào)試方法有兩種,一是用單片機(jī)仿真開發(fā)裝置與試驗(yàn)樣機(jī)聯(lián)機(jī)提供排錯(cuò)、調(diào)試手段,具體的方法有單步運(yùn)行、斷點(diǎn)運(yùn)行、跟蹤運(yùn)行、全速運(yùn)行等。其中單步運(yùn)行方法是使所編制的程序指令僅執(zhí)行一條就停止下來(lái),檢查試驗(yàn)樣機(jī)和應(yīng)用程序中的錯(cuò)誤,然后再單步執(zhí)行下一條指令…;斷點(diǎn)運(yùn)行方法是在程序中設(shè)置斷點(diǎn),使得當(dāng)程序執(zhí)行到斷點(diǎn)處時(shí)停止,供設(shè)計(jì)者檢查試驗(yàn)樣機(jī)和應(yīng)用程序中的錯(cuò)誤;跟蹤運(yùn)行方法是應(yīng)用程序指令一條一條地執(zhí)行,開發(fā)裝
13、置攝取運(yùn)行每一條指令的地址、單片機(jī)各部分?jǐn)?shù)據(jù)、I/O端口等處信息,供調(diào)試者隨時(shí)停止程序,對(duì)各種信息進(jìn)行檢查和修改;全速運(yùn)行方法是實(shí)時(shí)地運(yùn)行用戶程序,可以檢查用戶程序最終執(zhí)行結(jié)果。二是在IBM-PC機(jī)上創(chuàng)建一個(gè)模擬目標(biāo)單片機(jī)的模擬環(huán)境,把編好的程序在這個(gè)模擬環(huán)境下運(yùn)行,進(jìn)而進(jìn)行排錯(cuò)和調(diào)試。該方法對(duì)單片機(jī)軟件的開發(fā)簡(jiǎn)單易行,它不需要任何在線仿真器,也不需要調(diào)試樣機(jī)。</p><p> 2.2 MCS-51對(duì)系統(tǒng)環(huán)境
14、的要求:</p><p> MCS-51的開發(fā)環(huán)境要求較低,軟件資源十分豐富,硬件只需配備一臺(tái)PC,一臺(tái)仿真編程器即可實(shí)現(xiàn)產(chǎn)品開發(fā),我們?cè)谲浖矫娌捎脜R編語(yǔ)言編寫代碼,在硬件方面我們使用個(gè)人電腦結(jié)合西安唐都科教儀器公司開發(fā)的TDN-MI單片機(jī)開發(fā)實(shí)驗(yàn)系統(tǒng)。TDN-MI主要功能包括:程序的輸入、信息的保存、程序的運(yùn)行和調(diào)試、以及應(yīng)用系統(tǒng)的仿真、程序的固化等。其中TDN-MI和個(gè)人PC之間采用RS232串行接口連接
15、。</p><p> 2.3硬件電路設(shè)計(jì):</p><p> 硬件電路設(shè)計(jì)一般包括兩個(gè)部分的內(nèi)容:一是擴(kuò)展單片機(jī)芯片內(nèi)部單元的功能,如ROM、RAM、定時(shí)/記數(shù)器、I/O接口線等的容量不滿足應(yīng)用系統(tǒng)的要求時(shí),就需要設(shè)計(jì)相應(yīng)的功能擴(kuò)展電路;二是根據(jù)應(yīng)用系統(tǒng)的功能要求配置一定的外部設(shè)備,如鍵盤、顯示器、打印機(jī)、A/A、D/A等。</p><p> 對(duì)應(yīng)用系統(tǒng)進(jìn)行擴(kuò)
16、展與配置時(shí),應(yīng)充分考慮如下的設(shè)計(jì)原則。</p><p> 1)、盡可能選擇典型電路,并符合單片機(jī)的常規(guī)使用要求。</p><p> 2)、擴(kuò)展與配置的數(shù)量應(yīng)充分滿足應(yīng)用系統(tǒng)功能的要求并留有余地,以便能方便地進(jìn)行功能擴(kuò)展和進(jìn)一步的開發(fā)。</p><p> 3)、應(yīng)充分結(jié)合軟件方案老考慮硬件結(jié)構(gòu)。</p><p> 4)、整個(gè)系統(tǒng)中的相關(guān)
17、器件應(yīng)盡可能做到性能匹配,如選用的晶振頻率較高時(shí),就應(yīng)選擇存取速度較高的芯片。</p><p> 5)、應(yīng)重視整個(gè)系統(tǒng)的可靠性及抗干擾設(shè)計(jì),如充分篩選芯片和器件,增加去耦電路,采取隔離和屏蔽等措施。 </p><p> 在此,我們的設(shè)計(jì)用到的硬件有:89C51,74LS1
18、64,數(shù)碼管,電容,二極管,電阻,等</p><p> 組成的單片機(jī)最小系統(tǒng)如圖2-2:</p><p> 圖2-2 單片機(jī)最小系統(tǒng)圖</p><p> 第三節(jié) 軟件系統(tǒng)的設(shè)計(jì)</p><p> 一些在此次電梯設(shè)計(jì)中用到的運(yùn)行特征:</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)、運(yùn)行特征:</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:電梯運(yùn)行的終止層</p><p> R3:內(nèi)鍵或外鍵中斷層</p><p>
22、FLOORNOW:現(xiàn)在的樓層數(shù)</p><p><b> 4)、子程序代碼:</b></p><p> OPENOUT:按外鍵時(shí)的情況</p><p> OPENIN :按內(nèi)鍵時(shí)的情況</p><p> MAKER3:取按鍵所在的層-中斷層數(shù)值。</p><p> DISPL:由現(xiàn)在
23、層FLOORNOW運(yùn)行到R2</p><p> DISPLA:先由現(xiàn)在層運(yùn)行到R2,再到R3------上升</p><p> DISPLB:由現(xiàn)在層運(yùn)行到R3,再到R2------下降</p><p> DISPLD:根據(jù)實(shí)際情況判斷。</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 ;有鍵按下時(shí)跳到主程序,</p><p> EXIT:POP PSW ;無(wú)
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 ;無(wú)執(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 ;無(wú)鍵按下</p><p> K11: ACALL YAN ;延時(shí)去前沿抖動(dòng)</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 ;多鍵同時(shí)按下</p><p> K13: ANL A,#0F0H </p><p> ORL A,B ;拼裝
37、鍵值</p><p> MOV B,A ;暫存鍵值</p><p> MOV R1,#7H ;7個(gè)鍵</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 ;延時(shí)去后沿抖動(dòng)</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 ;置有鍵按下時(shí)特征</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> ;輸入者對(duì)應(yīng)鎖存先寫1</p><p><b> MOV A,P1</b></p><p> CJNE A,#0FH,L11 ;有鍵按下</p>
45、<p> L10: AJMP L17 ;無(wú)鍵按下</p><p> L11: ACALL YAN ;延時(shí)去前沿抖動(dòng)</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 ;多鍵同時(shí)按下</p><p> L13: ANL A,#0F0H </p><p> ORL A,B ;拼裝鍵值</
50、p><p> MOV B,A ;暫存鍵值</p><p> MOV R1,#5H ;16個(gè)鍵</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 ;延時(shí)去后沿抖動(dòng)</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 ;多鍵同時(shí)按下</p><p> L18: SETB P2.6 ;置有鍵按下時(shí)特征</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í)行有外鍵按下時(shí)流程圖3-2,3-3:</p><p> 圖3-2 無(wú)執(zhí)行流程圖</p><p> 3-3 正在執(zhí)行流程圖</p><p> 四:執(zhí)行有外鍵按下時(shí)子程序 ----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)鍵按下時(shí)流程圖3-4:</p><p> 3-4 內(nèi)鍵按下流程圖</p><p> 執(zhí)行有外鍵按下時(shí)子程序:</p><p> OPENIN:JB P2.3,INLP ;正在運(yùn)行則跳轉(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)在層的顯示二進(jì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)在層的顯示二進(jì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 ;是否到達(dá)終止層?</p><p> DEC FLOORNOW<
77、/p><p><b> CLR P2.3</b></p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時(shí)</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)在層的顯示二進(jì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è)置正在運(yùn)行狀態(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 ;是否到達(dá)終止層</p><p> INC FLOORNOW ;到達(dá)終止層,回復(fù)現(xiàn)在層的層數(shù)</p><p> CLR P2.3 ;置無(wú)在運(yùn)行狀態(tài)位</p><p> LPL5:LCALL DISPLS
83、 ;閃爍,表示開門</p><p> LCALL YAN ;延時(shí)</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)在層的顯示二進(jì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è)置正在運(yùn)行狀態(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 ;恢復(fù)現(xiàn)在層數(shù)值</p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時(shí)</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)在層的顯示二進(jì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è)置正在運(yùn)行狀態(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 ;恢復(fù)現(xiàn)在層數(shù)值</p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時(shí)</p><p> LCALL DISPLS
94、 ;閃爍,表示關(guān)門</p><p> CLR P2.3 ;清除正在運(yùn)行標(biāo)志位</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)在層的顯示二進(jì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è)置正在運(yùn)行狀態(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 ;到達(dá)中斷層,回復(fù)現(xiàn)在層的層數(shù)</p><p> L
99、CALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時(shí)</p><p> LCALL DISPLS ;閃爍,表示關(guān)門</p><p> CLR P2.3 ;清除正在運(yùn)行標(biāo)
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)在層的顯示二進(jì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è)置正在運(yùn)行狀態(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、 ;是否到達(dá)終止層?</p><p> INC FLOORNOW ;到達(dá)終止層,回復(fù)現(xiàn)在層的層數(shù)</p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時(shí)</p><p>
105、; LCALL DISPLS ;閃爍,表示關(guān)門</p><p> CLR P2.3 ;清除正在運(yùn)行標(biāo)志位</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)在層的顯示二進(jì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è)置正在運(yùn)行狀態(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 ;延時(shí)</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)在層的顯示二進(jì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è)置正在運(yùn)行狀態(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;到達(dá)中斷層,回復(fù)現(xiàn)在層的層數(shù)</p><p> LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN
123、 ;延時(shí)</p><p> LCALL DISPLS ;閃爍,表示關(guān)門</p><p> CLR P2.3 ;清除正在運(yùn)行位</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)在層的顯示二進(jì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è)置正在運(yùn)行狀態(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 ;到達(dá)終止層,回復(fù)現(xiàn)在層的層數(shù)</p><p&g
128、t; LCALL DISPLS ;閃爍,表示開門</p><p> LCALL YAN ;延時(shí)</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. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)畢業(yè)設(shè)計(jì)--單片機(jī)控制的led點(diǎn)陣顯示
- 單片機(jī)模擬電梯自動(dòng)控制畢業(yè)設(shè)計(jì)
- 基于單片機(jī)控制電梯燈畢業(yè)設(shè)計(jì)
- 基于單片機(jī)模擬電梯設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)--汽車轉(zhuǎn)彎燈單片機(jī)控制
- 單片機(jī)課程設(shè)計(jì)-- 基于單片機(jī)的電梯控制系統(tǒng)
- 基于51單片機(jī)的模擬電梯控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----單片機(jī)控制公交漢字顯示
- 基于單片機(jī)的電梯控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的電梯控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于51系列的單片機(jī)日歷和時(shí)鐘顯示設(shè)計(jì)
- 基于單片機(jī)的電梯控制模擬系統(tǒng)設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)---單片機(jī)控制交通燈
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的電梯控制系統(tǒng)
- 基于單片機(jī)的電梯控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)--基于單片機(jī)的電子時(shí)鐘
- 單片機(jī)畢業(yè)論文--基于單片機(jī)的led顯示屏設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)的恒溫控制器的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的旋轉(zhuǎn)顯示系統(tǒng)
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)簡(jiǎn)易計(jì)算機(jī)
評(píng)論
0/150
提交評(píng)論