版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、綜合電子創(chuàng)新訓(xùn)練研究報(bào)告研究題目:CTS1600-1控制技術(shù)綜合試驗(yàn)院系名稱:專業(yè)名稱:學(xué)生姓名:指導(dǎo)教師:xxxx年xx月xx日xxxxxxxxxx目錄第一章緒論11.1 課題背景與目的11.2 課題研究方法1第二章電梯模型硬件設(shè)備22.1 實(shí)驗(yàn)單片機(jī)模型與接口定義22.1.1 實(shí)驗(yàn)用單片機(jī)22.1.2 單片機(jī)接口定義32.1.3 I/O接口DATA控制命令表42.2 電梯控制命令說明62.3 實(shí)驗(yàn)用電梯模型9第三章與電梯模型相關(guān)的實(shí)驗(yàn)程序103.1 數(shù)碼管連續(xù)顯示103.1.1 程序流程圖103.1.2 功能簡(jiǎn)介113.1.3 功能實(shí)現(xiàn)過程113.1.4 問題的解決及收獲113.2 外部按
2、鍵燈連續(xù)閃爍123.2.1 程序流程圖123.2.2 功能簡(jiǎn)介123.2.3 功能實(shí)現(xiàn)過程123.2.4 問題的解決及收獲133.3 鍵、燈、數(shù)碼管 143.8.1程序流程圖 281.1.2 功能簡(jiǎn)介141.1.3 功能實(shí)現(xiàn)過程141.1.4 問題的解決及收獲153.4 外部按鍵上下行163.4.1 程序流程圖163.4.2 功能簡(jiǎn)介173.4.3 功能實(shí)現(xiàn)過程173.4.4 問題的解決及收獲183.5 計(jì)算器193.5.1 程序流程圖193.5.2 功能簡(jiǎn)介213.5.3 功能實(shí)現(xiàn)過程213.5.4 問題的解決及收獲223.6 密碼鎖233.6.1 程序流程圖233.6.2 功能簡(jiǎn)介243.
3、6.3 實(shí)現(xiàn)功能過程243.6.4 問題的解決及收獲243.7 逐層停自動(dòng)開關(guān)門循環(huán)253.7.1 程序流程圖253.7.2 功能簡(jiǎn)介273.7.3 實(shí)現(xiàn)功能過程273.7.4 問題的解決及收獲273.8.2 功能簡(jiǎn)介293.8.3 實(shí)現(xiàn)功能過程293.8.4 問題的解決及收獲293.9外部按鍵電梯303.9.1 主程序303.9.2 開關(guān)門模塊313.9.3 上下行模塊323.9.4 LED模塊34第四章電梯模型完整控制程序364.1 完整控制程序(main函數(shù))364.1.1 功能說明364.1.2 功能實(shí)現(xiàn)過程374.1.3 問題的解決及收獲374.2 按鍵掃描模塊(getto函數(shù))38
4、4.2.1 功能簡(jiǎn)介384.2.2 問題的解決及收獲384.3 當(dāng)前層判斷模塊(getat函數(shù))384.3.1 功能簡(jiǎn)介384.3.2 問題的解決及收獲384.4 電梯門的選通、禁止模塊(DoorEnable函數(shù))384.4.1 功能簡(jiǎn)介384.4.2 問題的解決及收獲39#.5 電梯開關(guān)門模塊( openandclose 函數(shù)) 394.5.2 功能實(shí)現(xiàn)過程394.5.3 問題的解決及收獲39第五章總結(jié)與致謝415.1 總結(jié)415.2 致謝415.3 控制電梯模型相關(guān)程序42附錄一數(shù)碼管連續(xù)顯示42附錄二外部按鍵燈連續(xù)閃爍43附錄三外部按鍵逐個(gè)亮滅45附錄四鍵、燈、數(shù)碼管47附錄五外部按鍵上
5、下行49附錄六計(jì)算器51附錄七密碼鎖56附錄八逐層停開關(guān)門循環(huán)59附錄九可記錄順序逐層停自動(dòng)開關(guān)門64附錄十外部按鍵電梯70附錄十一完整電梯程序77圖目錄Figure 1 凌陽單片機(jī)2Figure 2 凌陽單片機(jī)接口定義3Figure 3 實(shí)驗(yàn)用電梯模型9Figure 4 數(shù)碼管連續(xù)顯示流程圖10Figure 5 外部按鍵燈連續(xù)閃爍流程圖12Figure 6 LED1to7流程圖13Figure 7 鍵、燈、數(shù)碼管流程圖14Figure 8 外部按鍵上下行流程圖16Figure 9 計(jì)算器數(shù)字掃描函數(shù)流程圖19Figure 10 計(jì)算器主函數(shù)流程圖20Figure 11 密碼鎖流程圖23Fig
6、ure 12 逐層停自動(dòng)開關(guān)門循環(huán)main函數(shù)25Figure 13 逐層停自動(dòng)開關(guān)門循環(huán)AtAndTo函數(shù)26Figure 14 逐層停自動(dòng)開關(guān)門循環(huán)OpenAndClose函數(shù)26Figure 15 可記錄順序逐層停自動(dòng)開關(guān)門28Figure 16 外部按鍵電梯主函數(shù)流程圖30Figure 17 外部按鍵電梯開關(guān)門函數(shù)流程圖31Figure 18 外部按鍵電梯上下行函數(shù)流程圖32Figure 19 外部按鍵電梯LED函數(shù)流程圖34Figure 20 外部按鍵電梯btLED函數(shù)流程圖35Figure 21 電梯完整程序主函數(shù)36Figure 22 電梯完整程序openandclose 函數(shù)流
7、程圖 39第一章緒論1.1 課題背景與目的現(xiàn)代社會(huì)中,電梯已經(jīng)成為不可缺少的運(yùn)輸設(shè)備。電梯的存在使得每幢高層建筑的交通更為便利。電梯控制技術(shù)的發(fā)展主要經(jīng)歷了三個(gè)階段:繼電器控制階段,微機(jī)控制階段,現(xiàn)場(chǎng)總線控制階段。隨著經(jīng)濟(jì)的高速發(fā)展,微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)控制技術(shù)也得到了迅速發(fā)展,交流變頻調(diào)速技術(shù)已經(jīng)進(jìn)入一個(gè)嶄新的時(shí)代,其應(yīng)用越來越廣。電梯是現(xiàn)代高層建筑的垂直交通工具,其設(shè)計(jì)要求穩(wěn)定性、安全性及高。隨著人們生活水平的不斷提高,對(duì)電梯的要求的也相應(yīng)提高,電梯得到了快速發(fā)展。電梯模型將機(jī)械和電氣兩方面有機(jī)地結(jié)合起來,充分體現(xiàn)了機(jī)電結(jié)合的特點(diǎn),同時(shí)微機(jī)控制即單片機(jī)控制的電梯在成本上較低,同時(shí)還
8、有著較高的精度,非常適合在學(xué)生機(jī)電實(shí)驗(yàn)方面得到廣泛的應(yīng)用,可以提高大家的編程能力,加深對(duì)單片機(jī)的理解和應(yīng)用,同時(shí)增強(qiáng)創(chuàng)新精神和團(tuán)隊(duì)合作精神。1.2 課題研究方法參照凌陽SPCE061AFF發(fā)的相關(guān)資料,加深對(duì)控制電梯模型的單片機(jī)的了解,進(jìn)行61板的相關(guān)實(shí)驗(yàn),掌握單片機(jī)實(shí)現(xiàn)基本功能的技術(shù)。對(duì)單片機(jī)編寫程序,以達(dá)到控制電梯模型的目的。0第二章電梯模型硬件設(shè)備2.1 實(shí)驗(yàn)單片機(jī)模型與接口定義2.1.1 實(shí)驗(yàn)用單片機(jī)實(shí)驗(yàn)用單片機(jī)為凌陽SPCE061儆控制器(簡(jiǎn)稱61板),是以凌陽16位單片機(jī)SPCE061的核心的精簡(jiǎn)開發(fā)-仿真-電路板。61板除了具備單片機(jī)最小系統(tǒng)電路外,還包括有電源電路、音頻電路、復(fù)
9、位電路等,采用電池供電,方便攜帶。SPCE061A是繼unSP?系列產(chǎn)品SPCE500A?之后凌陽科技推出的又一款16位結(jié)構(gòu)的微控制器。跟市面上常見的avr、51等單片機(jī)相比,這款單片機(jī)具有一個(gè)絕招:語言功能。與SPCE500M同的是,在存儲(chǔ)器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能,SPCE061A里只內(nèi)嵌32K字的閃存(FLASH。較高的處理速度使unSP?能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號(hào)。SPCE061左要包才S輸入/輸出端口、定時(shí)/計(jì)數(shù)器、數(shù)/模轉(zhuǎn)換、模/數(shù)轉(zhuǎn)換、申行設(shè)備輸入/輸出、通用異步串行接口、低電壓檢測(cè)和復(fù)位等部分,且內(nèi)置在線仿真電路ICE接口,較高的處
10、理速度使其能夠快速地處理復(fù)雜的數(shù)字信號(hào)。本電梯模型就是采用此單片機(jī)進(jìn)行程序編寫和實(shí)現(xiàn)電梯的運(yùn)行控制Figure 1 凌陽單片機(jī)2.1.2單片機(jī)接口定義實(shí)驗(yàn)用單片機(jī)接口定義如圖,其中A口為輸入,B口為輸出電梯內(nèi)按鍵各樓層按鍵+去二層去三層去四層一層上二層上二層下三層上10一+電梯上下運(yùn)行(1上0下)電梯運(yùn)行選通(1行0停)開關(guān)門運(yùn)行(1開0關(guān))開關(guān)門選通(1行0禁)各樓層按鍵燈一層上燈二層上燈二層下燈三層上燈20A0A8A1A9A2A10A3A11A4A12A5A13A6A14A7、A15實(shí)驗(yàn)單機(jī)B0書妾B8B1口B9B2B10B3B11B4B12B5B13B6B14B7B15三層下四層下一層到
11、達(dá)二層到達(dá)三層到達(dá)四層到達(dá)開門30關(guān)門十三層下燈四層下燈開門到位關(guān)門到位40各樓層按鍵電梯內(nèi)按鍵各樓層按鍵燈Figure 2凌陽單片機(jī)接口定義2.1.3I/O接口DATA空制命令表單片機(jī)A口DATA空制命令表A口(信號(hào)輸入)*P_IOA_Data接口編號(hào)電梯動(dòng)作0x0001A0去一層(內(nèi)部按鍵)0x0002A1去二層(內(nèi)部按鍵)0x0004A2去三層(內(nèi)部按鍵)0x0008A3去四層(內(nèi)部按鍵)0x0010A4一層上(外部按鍵)0x0020A5二層上(外部按鍵)0x0040A6二層卜(外部按鍵)0x0080A7三層上(外部按鍵)0x0100A8三層卜(外部按鍵)0x0200A9四層卜(外部按鍵
12、)0x0400A10一層到達(dá)(外部按鍵)0x0800A11二層到達(dá)(外部按鍵)0x1000A12三層到達(dá)(外部按鍵)0x2000A13四層到達(dá)(外部按鍵)0x4000A14開門(內(nèi)部按鍵)0x8000A15關(guān)門(內(nèi)部按鍵)單片機(jī)A口DATA空制命令表A口(信號(hào)輸入)*P_IOB_Data接口編號(hào)電梯動(dòng)作0x0001B0電梯上下運(yùn)行(1上0下)0x0002B1電梯運(yùn)行選通(1行0停)0x0004B2開關(guān)門運(yùn)行(1開0關(guān))0x0008B3開關(guān)門選通(1行0禁)0x0010B4一層上燈0x0020B5二層上燈0x0040B6二層卜燈0x0080B7三層上燈0x0100B8三層卜燈0x0200B9四層
13、卜燈0x0400B10開門到位0x0800B11關(guān)門到位0x1000B12數(shù)碼管0x2000B13數(shù)碼管0x4000B14數(shù)碼管0x8000B15單片機(jī)接口屬性設(shè)置:*P_IOA_Dir=0*P_IOA_Attrib=0*P_IOA_Data=0(設(shè)A0-A15口為輸入)*P_IOB_Dir=0xf3ffB0-B9 口為輸出,B10、 B11 口為輸入)*P_IOB_Attrib=0xf3ff*P_IOB_Data=0;2.2電梯控制命令說明1 .一層上按鈕按下,*P_IOA_Data輸入值為0x0010;使一層上按鍵燈亮起的命令為:*P_IOB_Data=0x0010,同時(shí)其它層按鍵燈熄滅;
14、如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0010|P_IOB_Data;2 .二層上按鈕按下,*P_IOA_Data輸入值為0x0020使二層上按鍵燈亮起的命令為:*P_IOB_Data=0x0020同時(shí)其它層按鍵燈熄滅;如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0020|P_IOB_Data;3 .二層下按鈕按下,*P_IOA_Data輸入值為0x0040使二層下按鍵燈亮起的命令為:*P_IOB_Data=0x0040時(shí)其它層按鍵燈熄滅;如果要使其它層按鍵燈不受此按鍵燈影響,
15、保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0040|P_IOB_Data;4 .三層上按鈕按下,*P_IOA_Data輸入值為0x0080使三層上按鍵燈亮起的命令為:*P_IOB_Data=0x0080;同時(shí)其它層按鍵燈熄滅;如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0080|P_IOB_Data;5 .三層下按鈕按下,*P_IOA_Data輸入值為0x0100,使三層下按鍵燈亮起的命令為:*P_IOB_Data=0x0100,同時(shí)其它層按鍵燈熄滅;如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)
16、為:*P_IOB_Data=0x0100|P_IOB_Data;6 .四層下按鈕按下,*P_IOA_Data輸入值為0x0200,使四層上按鍵燈亮起的命令為:*P_IOB_Data=0x0200,同時(shí)其它層按鍵燈熄滅;如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0200|P_IOB_Data;7 .電梯內(nèi)部開門按鈕按下,*P_IOA_Data輸入值為0x4000,使電梯開門的命令為:*P_IOB_Data=0x000c;8 .電梯內(nèi)部關(guān)門按鈕按下,*P_IOA_Data輸入值為0x8000;使電梯關(guān)門的命令為:*P_IOB_Data=0x
17、0008。我們?yōu)榱四軌蚝?jiǎn)化我們的程序,我們?cè)陬^文件define.h中定義了直觀易懂的單詞來表示數(shù)字指令,這樣使得編程過程更加容易直觀,并且使得程序的可讀性更強(qiáng),但是這種方法是在之前不斷地嘗試的基礎(chǔ)上才逐漸摸索出來的,因而在后來編寫的程序中普遍用到了這種方法,而在開始訓(xùn)練階段編寫的程序還往往是使用數(shù)字型的指令,具體的定義如下:#ifndef_DEFINE_h_#define_DEFINE_h_#defineIOA*P_IOA_Data#defineIOB*P_IOB_Data#defineuintunsignedint#defineucharunsignedchar#defineulonguns
18、ignedlong#definestop0x0000#definedown0x0002#defineup0x0003#definebt1up0x0010#definebt2up0x0020#definebt2down0x0040#definebt3up0x0080#definebt3down0x0100#definebt4down0x0200#definebtin10x0001#definebtin20x0002#definebtin30x0004#definebtin40x0008#definebtopen0x4000#definebtclose0x8000#defineopenok0x04
19、00#definecloseok0x0800#definedown0x0002#defineup0x0003#defineclose0x0008#defineopen0x000c#defineL10x1000#defineL20x2000#defineL30x3000#defineL40x4000#defineL1up0x0010#defineL2up0x0020#defineL2down0x0040#defineL3up0x0080#defineL3down0x0100#defineL4down0x0200#defineat10x0400#defineat20x0800#defineat30
20、x1000#defineat40x2000#endifdog方便使用:#includespce061A.h#includedingyi.hvoiddog()*P_Watchdog_Clear=0x0001;2.3實(shí)驗(yàn)用電梯模型v2-,叫稅X M叫機(jī)噩事.卜 Rftni& KAi丸9-丸邦笑hId X,蛆開 黑* 1L,* 12.饞VHi14.安全*!51 9ft IB- HMftin. Mftt信林*x *o21 *Di赧*tti :s fifli24.2L糜鼻11驚燈.H hat,那么電梯應(yīng)向上運(yùn)行,直到獲取的當(dāng)前值at=to之后,電梯停止運(yùn)行:if(toat)*P_IOB_Data=up;
21、*P_Watchdog_Clear=0x0001;若目標(biāo)層等于當(dāng)前層,即to=at,那么電梯停止運(yùn)行:if(to=at)*P_IOB_Data=stop;*P_Watchdog_Clear=0x0001;若目標(biāo)層小于當(dāng)前層,即toat,那么電梯應(yīng)向下運(yùn)行,直到獲取的當(dāng)前值at=to之后,電梯停止運(yùn)行:if(to:iArtiKlci出三性雷:|亮敢嗎管顯不占軟南M延出后我明廿晨以;:牯叱工匕。,仁敵洲“正遲岡線走 Z *pe riKJbe O 1+ 優(yōu)電仲L?jill X.1 t Inrl n l -ji 敏FTE用申,; 就因杵皿球?qū)拥?調(diào)用延退嗡弱此以At And。C味粉idAOjj+-AJ
22、Ll。出數(shù)電府F打11(And:ol,小駝LttJikAtAmlTu力困數(shù)Figure13逐層停自動(dòng)開關(guān)門循環(huán)AtAndTo函數(shù)Figure 14逐層停自動(dòng)開關(guān)門循環(huán) OpenAndClose函數(shù)3.7.2 功能簡(jiǎn)介程序初始化完成后,電梯自動(dòng)完成上下行以及開關(guān)門動(dòng)作,不斷循環(huán)。3.7.3 實(shí)現(xiàn)功能過程在這個(gè)程序中我們引入了一個(gè)指示上下行的變量shangxia,一層到位之后令該變量為1,指示電梯之后的運(yùn)行狀態(tài)為上行;當(dāng)四層到位之后令該變量為0,指示電梯之后的運(yùn)行狀態(tài)為下行。這樣電梯在二、三層進(jìn)行上下行的判斷時(shí),只需判斷現(xiàn)在指示電梯運(yùn)行狀態(tài)的shangxia則可以保證電梯的正常運(yùn)行。代碼詳見附錄八
23、3.7.4 問題的解決及收獲逐層停自動(dòng)開關(guān)門程序在前面諸多程序的鋪墊下相對(duì)比較容易,不同點(diǎn)在于在這個(gè)程序中定義了一個(gè)指示電梯先前運(yùn)動(dòng)狀態(tài)的變量,從而控制電梯現(xiàn)在時(shí)刻的上下行,這為之后的電梯完整程序打下了一定的基礎(chǔ)。Figure 15可記錄順序逐層停自動(dòng)開關(guān)門3.8可記錄順序逐層停自動(dòng)開關(guān)門3.8.1程序流程圖.in-?T1嘴定!D-3.8.2功能簡(jiǎn)介在程序初始化完成后,首先連續(xù)輸入目標(biāo)層數(shù),點(diǎn)擊確定按鍵之后,電梯按照之前按鍵設(shè)定的順序自動(dòng)運(yùn)行,完成上下行和相應(yīng)的開關(guān)門功能。3.8.3 實(shí)現(xiàn)功能過程代碼詳見附錄九3.8.4 問題的解決及收獲這個(gè)程序在實(shí)現(xiàn)的過程中我們借鑒了密碼鎖的相關(guān)經(jīng)驗(yàn),不同之
24、處在與之前的密碼鎖是有確定個(gè)數(shù)的輸入的,而現(xiàn)在的可記錄順序的逐層停開關(guān)門的輸入是不確定個(gè)數(shù)的,同時(shí)它還具備了清零和確定的選項(xiàng),但是它是把之前的密碼匹配部分改為了電梯的上下行和到達(dá)目標(biāo)層之后自動(dòng)開關(guān)門的功能,所以可記錄順序的逐層停自動(dòng)開關(guān)門程序是繼承了密碼鎖程序的一些特點(diǎn)的基礎(chǔ)上,在功能上又有所拓展和創(chuàng)新。3.9外部按鍵電梯3.9.1主程序3.9.1.1程序流程圖Figure 16外部按鍵電梯主函數(shù)流程圖3.9.3.2功能過程在程序初始化完成后,進(jìn)入AtAndTo函數(shù),判斷當(dāng)前層數(shù)和目標(biāo)層,之后進(jìn)入U(xiǎn)pAndDow函數(shù)通過對(duì)at與to的大小比較,判斷電梯的上下行,并將電梯送至目標(biāo)層,進(jìn)入Open
25、AndClose函數(shù)后進(jìn)行開關(guān)門操作。(代碼詳見附錄十)3.9.2 開關(guān)門模塊3.9.2.1程序流程圖電梯自動(dòng)開門,開門到位后,如果按下內(nèi)部當(dāng)從主函數(shù)進(jìn)入開關(guān)門模塊后,關(guān)門按鍵,電梯關(guān)門。3.9.2.3 實(shí)現(xiàn)功能過程當(dāng)從主函數(shù)進(jìn)入開關(guān)門模塊后,首先判斷at和to的值,如果二者相等且DoorEnable允許開門即為1,此時(shí)執(zhí)行開門動(dòng)作,當(dāng)開門到位且內(nèi)部關(guān)門按鍵按下后,電梯關(guān)門。3.9.3上下行模塊3.9.3.1程序流程圖Figure 18外部按鍵電梯上下行函數(shù)流程圖3.9.#.2 功能過程程序初始化完成后,若外部按鍵按下后,電梯運(yùn)行到目標(biāo)層。3.9.2.4 實(shí)現(xiàn)功能過程這個(gè)函數(shù)定義了一個(gè)指示當(dāng)前
26、所在層的變量at,以及一個(gè)指示目標(biāo)層的變量to,程序初始化完成后,給變量at賦上對(duì)應(yīng)的層數(shù)值,如若當(dāng)前所在層為2層:if(t&0x0800)=0x0800)/判斷當(dāng)前所在層數(shù),若當(dāng)前所在層數(shù)為2層at=2;/給變量at賦當(dāng)前層數(shù)值2*P_Watchdog_Clear=0x0001;掃描外部按鍵是否按下,若按下,則對(duì)變量to賦上對(duì)應(yīng)層數(shù)值,如若三層上或三層下按鍵被按下:if(t&0x0080)=0x0080)|(t&0x0100)=0x0100)/若三層上、三層下按鍵被按下to=3;/給變量to賦目標(biāo)層數(shù)為3*P_Watchdog_Clear=0x0001;進(jìn)行目標(biāo)層與當(dāng)前層的比較判斷,若目標(biāo)層
27、大于當(dāng)前層,即toat,那么電梯應(yīng)向上運(yùn)行,直到獲取的當(dāng)前值at=to之后,電梯停止運(yùn)行:if(toat)*P_IOB_Data=up;*P_Watchdog_Clear=0x0001;若目標(biāo)層等于當(dāng)前層,即to=at,那么電梯停止運(yùn)行:if(to=at)P_IOB_Data=stop;P_Watchdog_Clear=0x0001;若目標(biāo)層小于當(dāng)前層,即toat,那么電梯應(yīng)向下運(yùn)行,直到獲取的當(dāng)前值at=to之后,電梯停止運(yùn)行:if(toat)P_IOB_Data=down;P_Watchdog_Clear=0x0001;3.9.4LED模塊3.9.4.1 程序流程圖LEDO函數(shù)Figure
28、 19外部按鍵電梯LED函數(shù)流程圖ht【ED。函數(shù)3.9.4.2 功能過程程序初始化完成后,外部按鍵燈以及指示層數(shù)的數(shù)碼管根據(jù)現(xiàn)在電梯的運(yùn)行狀態(tài)正常顯示。3.9.4.3 實(shí)現(xiàn)功能過程當(dāng)外部六個(gè)按鍵按下后,外部按鍵的燈亮,電梯上部的LED燈顯示當(dāng)前運(yùn)行的所在層數(shù)。3.9.4.4 問題的解決及收獲在程序調(diào)試過程中,我們發(fā)現(xiàn)如果在電梯運(yùn)行的過程中,即電梯不處于某層到位的狀態(tài)時(shí),若按下電梯外部的按鍵后,電梯有可能會(huì)卡死在中間部位,并且導(dǎo)致電梯無法運(yùn)行,在發(fā)現(xiàn)這樣的問題之后,我們對(duì)程序進(jìn)行了修改,針對(duì)上下行部分,我們加入了使得電梯停止的條件,如果電梯沒有處于到位狀態(tài)的話就始終保持先前上行或下行的狀態(tài)不變
29、,從而使得問題得到了有效的解決。第四章電梯模型完整控制程序4.1 完整控制程序(main函數(shù))4.1.1 功能說明Ff?y ”層.開門Figure 21電梯完整程序主函數(shù)代碼見附錄4.1.2 功能實(shí)現(xiàn)過程在上下行的優(yōu)先級(jí)別判斷上,我們沒有使用以前的數(shù)組或者at和to大小判斷的方式,而是按照內(nèi)外部層數(shù)按鍵的個(gè)數(shù)分別定義了4個(gè)和6個(gè)變量,分別來指示目標(biāo)層數(shù),而何時(shí)選擇上下行這一問題,舉例如下:如果電梯目前處于二層,首先判斷電梯之前的運(yùn)行方向,如果電梯之前運(yùn)行方向向下,那么,若外部二層下按鍵或者內(nèi)部二層按鍵被按下,電梯執(zhí)行開門程序;若外部按鍵二層下被按下且外部按鍵一層上與內(nèi)部一層按鍵均未被按下,電梯
30、執(zhí)行開門程序。之后進(jìn)行上下行的判斷,如果電梯外部按鍵一層上或者內(nèi)部按鍵一層被按下,那么電梯下行至一層再做出判斷;如果電梯外部按鍵一層上或者內(nèi)部按鍵一層均未被按下,且三、四層按鍵至少有一個(gè)被按下之后,電梯上行至三層再做出判斷。如果電梯之前運(yùn)行方向向上,那門,如果外部二層上或者內(nèi)部二層按鍵被按下,電梯執(zhí)行開門程序;若外部按鍵二層下被按下,且三、四層均沒有按鍵被按下,那么電梯也執(zhí)行開門程序。之后進(jìn)行上下行的判斷,如果電梯三、四層有至少一個(gè)按鍵被按下之后,電梯上行至三層再做出判斷;如果電梯外部按鍵一層上被按下且三、四層都沒有按鍵被按下的情況先,電梯執(zhí)行下行動(dòng)作至一層再做出判斷。其它功能的實(shí)現(xiàn)主要通過主
31、函數(shù)調(diào)用其它函數(shù)實(shí)現(xiàn),例如開關(guān)門函數(shù),LED控制函數(shù),外部按鍵掃描函數(shù),獲取目標(biāo)層函數(shù)等等。4.1.3 問題的解決及收獲在電梯完整程序中,我們改變了以往c文件過多的特點(diǎn),盡量把一些判斷都放在了主函數(shù)中完成,這也造成了主函數(shù)比較復(fù)雜。4.2 按鍵掃描模塊(getto函數(shù))4.2.1 功能簡(jiǎn)介程序初始化完成后,隨時(shí)掃描內(nèi)外部按鍵從而獲得目標(biāo)層,并通過各層的標(biāo)志位將其記錄下來。4.2.2 問題的解決及收獲此次使用的獲取目標(biāo)層的函數(shù)雖與以往相同,但是由于實(shí)際的電梯會(huì)實(shí)時(shí)記錄電梯內(nèi)外按鍵的情況,同時(shí)在目標(biāo)層之后會(huì)把相應(yīng)的層數(shù)及方向清零并且對(duì)上下行做出判斷,所以在獲取目標(biāo)層與及時(shí)清除已到達(dá)層這一問題上思路
32、完全是嶄新的,而這部分主要是體現(xiàn)在主函數(shù)中,在此不做贅述。4.3 當(dāng)前層判斷模塊(getat函數(shù))4.3.1 功能簡(jiǎn)介當(dāng)程序初始化完成后,實(shí)時(shí)確定當(dāng)前所在層數(shù)。4.3.2 問題的解決及收獲或許當(dāng)前層數(shù)的模塊在前面使用也較多,但是在這一部分我們加入了一個(gè)判斷當(dāng)前上部LED指示的部分,即上部LED顯示當(dāng)前所在的層數(shù),并且通過此事state的狀態(tài)來判斷LED顯示部分箭頭的指向。4.4 電梯門的選通、禁止模塊(DoorEnable函數(shù))4.4.1 功能簡(jiǎn)介程序初始化完成后,根據(jù)電梯當(dāng)前的狀態(tài)判斷此時(shí)能否開門的一個(gè)標(biāo)志位,例如當(dāng)電梯某層的兩個(gè)按鍵同時(shí)按下且上面層數(shù)沒有按鍵被按下的情況下,只開門一次且清掉兩個(gè)按鍵的燈和相應(yīng)的標(biāo)志位。4.4.2 問題的解決及收獲在開關(guān)門選通的這一問題上,由于前期做過很多這方面的訓(xùn)練,所以解決起來比較容易,主要是保證它能夠在應(yīng)該可能需要開門的情況下該位是選通的,在不能開門的情況下該位一定要是禁止的。4.5 電梯開關(guān)門模塊(openandclose函數(shù))4.5.1 功能簡(jiǎn)介開門部分的實(shí)現(xiàn)相對(duì)較為簡(jiǎn)單,在這里僅對(duì)關(guān)門模塊進(jìn)行分析,流程圖如下:Figure22電梯完整程序openandclose函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年體檢科工作計(jì)劃二
- 2025年學(xué)校教務(wù)處工作計(jì)劃年度工作計(jì)劃
- 幼兒園讀書月活動(dòng)計(jì)劃
- 2025社區(qū)婦聯(lián)年度工作計(jì)劃
- 大學(xué)生新學(xué)期個(gè)人學(xué)習(xí)工作計(jì)劃
- 小學(xué)四年級(jí)體育教學(xué)計(jì)劃例文
- 小學(xué)五年級(jí)英語上冊(cè)教學(xué)工作計(jì)劃
- 2025年學(xué)校交通安全工作計(jì)劃范文
- 2020版 滬教版 高中音樂 必修4音樂編創(chuàng) 上篇《第二單元 音隨心動(dòng)》大單元整體教學(xué)設(shè)計(jì)2020課標(biāo)
- 合同案件觀點(diǎn)集成
- 運(yùn)動(dòng)員的入隊(duì)協(xié)議書
- 抗美援朝中國(guó)歷史教案五篇
- 阿爾茨海默病AD的影像學(xué)診療培訓(xùn)課件
- 2023年江西省公安機(jī)關(guān)警務(wù)輔助人員條例訓(xùn)練題庫115題及答案
- 跨境人民幣結(jié)算人行RCMIS商業(yè)銀行業(yè)務(wù)信息報(bào)送工作指引XXXX
- 石油企業(yè)QHSE管理體系存在的問題與對(duì)策2400字
- 培智六年級(jí)生活數(shù)學(xué)寒假作業(yè)
- 壓型鋼板底模砼樓承板施工交底培訓(xùn)課件
- 高血壓病人的護(hù)理
- 運(yùn)用PDCA提高患者身份識(shí)別正確率課件
- 部編版八年級(jí)上冊(cè)語文標(biāo)點(diǎn)符號(hào)考點(diǎn)匯總
評(píng)論
0/150
提交評(píng)論