版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《綜合電子創(chuàng)新訓(xùn)練》研究報告研究題目:CTS1600-1控制技術(shù)綜合試驗院系名稱:專業(yè)名稱:學(xué)生姓名:指導(dǎo)教師:xxxx年xx月xx日xxxxxxxxxx《綜合電子創(chuàng)新訓(xùn)練》研究報告V目錄第一章 緒論 11.1 課題背景與目的 11.2 課題研究方法 1第二章 電梯模型硬件設(shè)備 22.1實驗單片機模型與接口定義 22.1.1實驗用單片機 22.1.2單片機接口定義 32.1.3I/O接口DATA控制命令表 42.2電梯控制命令說明 62.3實驗用電梯模型 9第三章與電梯模型相關(guān)的實驗程序 103.1數(shù)碼管連續(xù)顯示 103.1.1程序流程圖 103.1.2功能簡介 113.1.3功能實現(xiàn)過程 113.1.4問題的解決及收獲 113.2外部按鍵燈連續(xù)閃爍 123.2.1程序流程圖 123.2.2功能簡介 123.2.3功能實現(xiàn)過程 123.2.4問題的解決及收獲 133.3鍵、燈、數(shù)碼管 143.3.1程序流程圖 143.3.2功能簡介 143.3.3功能實現(xiàn)過程 143.3.4問題的解決及收獲 153.4外部按鍵上下行 163.4.1程序流程圖 163.4.2功能簡介 173.4.3功能實現(xiàn)過程 173.4.4問題的解決及收獲 183.5計算器 193.5.1程序流程圖 193.5.2功能簡介 213.5.3功能實現(xiàn)過程 213.5.4問題的解決及收獲 223.6密碼鎖 233.6.1程序流程圖 233.6.2功能簡介 243.6.3實現(xiàn)功能過程 243.6.4問題的解決及收獲 243.7逐層停自動開關(guān)門循環(huán) 253.7.1程序流程圖 253.7.2功能簡介 273.7.3實現(xiàn)功能過程 273.7.4問題的解決及收獲 273.8可記錄順序逐層停自動開關(guān)門 283.8.1程序流程圖 283.8.2功能簡介 293.8.3實現(xiàn)功能過程 293.8.4問題的解決及收獲 293.9外部按鍵電梯 303.9.1主程序 303.9.2開關(guān)門模塊 313.9.3上下行模塊 323.9.4LED模塊 34第四章電梯模型完整控制程序 364.1完整控制程序(main函數(shù)) 364.1.1功能說明 364.1.2功能實現(xiàn)過程 374.1.3問題的解決及收獲 374.2按鍵掃描模塊(getto函數(shù)) 384.2.1功能簡介 384.2.2問題的解決及收獲 384.3當(dāng)前層判斷模塊(getat函數(shù)) 384.3.1功能簡介 384.3.2問題的解決及收獲 384.4電梯門的選通、禁止模塊(DoorEnable函數(shù)) 384.4.1功能簡介 384.4.2問題的解決及收獲 394.5電梯開關(guān)門模塊(openandclose函數(shù)) 394.5.1功能簡介 394.5.2功能實現(xiàn)過程 394.5.3問題的解決及收獲 39第五章總結(jié)與致謝 415.1總結(jié) 415.2致謝 41附錄控制電梯模型相關(guān)程序 42附錄一數(shù)碼管連續(xù)顯示 42附錄二外部按鍵燈連續(xù)閃爍 43附錄三外部按鍵逐個亮滅 45附錄四鍵、燈、數(shù)碼管 47附錄五外部按鍵上下行 49附錄六計算器 51附錄七密碼鎖 56附錄八逐層停開關(guān)門循環(huán) 59附錄九可記錄順序逐層停自動開關(guān)門 64附錄十外部按鍵電梯 70附錄十一完整電梯程序 77
圖目錄TOC\h\z\c"Figure"Figure1凌陽單片機 2Figure2凌陽單片機接口定義 3Figure3實驗用電梯模型 9Figure4數(shù)碼管連續(xù)顯示流程圖 10Figure5外部按鍵燈連續(xù)閃爍流程圖 12Figure6LED1to7流程圖 13Figure7鍵、燈、數(shù)碼管流程圖 14Figure8外部按鍵上下行流程圖 16Figure9計算器數(shù)字掃描函數(shù)流程圖 19Figure10計算器主函數(shù)流程圖 20Figure11密碼鎖流程圖 23Figure12逐層停自動開關(guān)門循環(huán)main函數(shù) 25Figure13逐層停自動開關(guān)門循環(huán)AtAndTo函數(shù) 26Figure14逐層停自動開關(guān)門循環(huán)OpenAndClose函數(shù) 26Figure15可記錄順序逐層停自動開關(guān)門 28Figure16外部按鍵電梯主函數(shù)流程圖 30Figure17外部按鍵電梯開關(guān)門函數(shù)流程圖 31Figure18外部按鍵電梯上下行函數(shù)流程圖 32Figure19外部按鍵電梯LED函數(shù)流程圖 34Figure20外部按鍵電梯btLED函數(shù)流程圖 35Figure21電梯完整程序主函數(shù) 36Figure22電梯完整程序openandclose函數(shù)流程圖 39PAGE110/89緒論課題背景與目的現(xiàn)代社會中,電梯已經(jīng)成為不可缺少的運輸設(shè)備。電梯的存在使得每幢高層建筑的交通更為便利。電梯控制技術(shù)的發(fā)展主要經(jīng)歷了三個階段:繼電器控制階段,微機控制階段,現(xiàn)場總線控制階段。隨著經(jīng)濟的高速發(fā)展,微電子技術(shù)、計算機技術(shù)和自動控制技術(shù)也得到了迅速發(fā)展,交流變頻調(diào)速技術(shù)已經(jīng)進入一個嶄新的時代,其應(yīng)用越來越廣。電梯是現(xiàn)代高層建筑的垂直交通工具,其設(shè)計要求穩(wěn)定性、安全性及高。隨著人們生活水平的不斷提高,對電梯的要求的也相應(yīng)提高,電梯得到了快速發(fā)展。電梯模型將機械和電氣兩方面有機地結(jié)合起來,充分體現(xiàn)了機電結(jié)合的特點,同時微機控制即單片機控制的電梯在成本上較低,同時還有著較高的精度,非常適合在學(xué)生機電實驗方面得到廣泛的應(yīng)用,可以提高大家的編程能力,加深對單片機的理解和應(yīng)用,同時增強創(chuàng)新精神和團隊合作精神。課題研究方法參照凌陽SPCE061A開發(fā)的相關(guān)資料,加深對控制電梯模型的單片機的了解,進行61板的相關(guān)實驗,掌握單片機實現(xiàn)基本功能的技術(shù)。對單片機編寫程序,以達到控制電梯模型的目的。
電梯模型硬件設(shè)備2.1實驗單片機模型與接口定義2.1.1實驗用單片機實驗用單片機為凌陽SPCE061A微控制器(簡稱61板),是以凌陽16位單片機SPCE061A為核心的精簡開發(fā)-仿真-電路板。61板除了具備單片機最小系統(tǒng)電路外,還包括有電源電路、音頻電路、復(fù)位電路等,采用電池供電,方便攜帶。SPCE061A是繼u’nSP?系列產(chǎn)品SPCE500A等之后凌陽科技推出的又一款16位結(jié)構(gòu)的微控制器。跟市面上常見的avr、51等單片機相比,這款單片機具有一個絕招:語言功能。與SPCE500A不同的是,在存儲器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能,SPCE061A里只內(nèi)嵌32K字的閃存(FLASH)。較高的處理速度使u’nSP?能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號。SPCE061A主要包括輸入/輸出端口、定時/計數(shù)器、數(shù)/模轉(zhuǎn)換、模/數(shù)轉(zhuǎn)換、串行設(shè)備輸入/輸出、通用異步串行接口、低電壓檢測和復(fù)位等部分,且內(nèi)置在線仿真電路ICE接口,較高的處理速度使其能夠快速地處理復(fù)雜的數(shù)字信號。本電梯模型就是采用此單片機進行程序編寫和實現(xiàn)電梯的運行控制。FigureSEQFigure\*ARABIC1凌陽單片機2.1.2單片機接口定義A0A8A1A9A2A10A3A11A4A12A5A13A0A8A1A9A2A10A3A11A4A12A5A13A6A14A7A15B0B8B1B9B2B10B3B11B4B12B5B13B6B14B7B15各樓層按鍵+ —各樓層按鍵電梯內(nèi)按鍵去一層 三層下電梯內(nèi)按鍵去二層 四層下去三層 一層到達去四層 二層到達各樓層按鍵一層上 三層到達各樓層按鍵電梯內(nèi)按鍵二層上 四層到達電梯內(nèi)按鍵3010二層下 開門3010實驗單片機接口三層上 關(guān)門實驗單片機接口+ —各樓層按鍵燈— +各樓層按鍵燈電梯上下運行(1上0下) 三層下燈電梯運行選通(1行0停) 四層下燈開關(guān)門運行(1開0關(guān)) 開門到位開關(guān)門選通(1行0禁) 關(guān)門到位各樓層按鍵燈一層上燈 各樓層按鍵燈二層上燈 4020二層下燈 4020三層上燈 — —FigureSEQFigure\*ARABIC2凌陽單片機接口定義2.1.3I/O接口DATA控制命令表單片機A口DATA控制命令表A口(信號輸入)*P_IOA_Data接口編號電梯動作0x0001A0去一層(內(nèi)部按鍵)0x0002A1去二層(內(nèi)部按鍵)0x0004A2去三層(內(nèi)部按鍵)0x0008A3去四層(內(nèi)部按鍵)0x0010A4一層上(外部按鍵)0x0020A5二層上(外部按鍵)0x0040A6二層下(外部按鍵)0x0080A7三層上(外部按鍵)0x0100A8三層下(外部按鍵)0x0200A9四層下(外部按鍵)0x0400A10一層到達(外部按鍵)0x0800A11二層到達(外部按鍵)0x1000A12三層到達(外部按鍵)0x2000A13四層到達(外部按鍵)0x4000A14開門(內(nèi)部按鍵)0x8000A15關(guān)門(內(nèi)部按鍵)
單片機A口DATA控制命令表A口(信號輸入)*P_IOB_Data接口編號電梯動作0x0001B0電梯上下運行(1上0下)0x0002B1電梯運行選通(1行0停)0x0004B2開關(guān)門運行(1開0關(guān))0x0008B3開關(guān)門選通(1行0禁)0x0010B4一層上燈0x0020B5二層上燈0x0040B6二層下燈0x0080B7三層上燈0x0100B8三層下燈0x0200B9四層下燈0x0400B10開門到位0x0800B11關(guān)門到位0x1000B12數(shù)碼管0x2000B13數(shù)碼管0x4000B14數(shù)碼管0x8000B15單片機接口屬性設(shè)置:*P_IOA_Dir=0*P_IOA_Attrib=0*P_IOA_Data=0(設(shè)A0-A15口為輸入)*P_IOB_Dir=0xf3ff*P_IOB_Attrib=0xf3ff(設(shè)B0-B9口為輸出,B10、B11口為輸入)*P_IOB_Data=0;2.2電梯控制命令說明一層上按鈕按下,*P_IOA_Data輸入值為0x0010;
使一層上按鍵燈亮起的命令為:*P_IOB_Data=0x0010,同時其它層按鍵燈熄滅;
如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0010|P_IOB_Data;二層上按鈕按下,*P_IOA_Data輸入值為0x0020
使二層上按鍵燈亮起的命令為:*P_IOB_Data=0x0020同時其它層按鍵燈熄滅;
如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0020|P_IOB_Data;二層下按鈕按下,*P_IOA_Data輸入值為0x0040
使二層下按鍵燈亮起的命令為:*P_IOB_Data=0x0040時其它層按鍵燈熄滅;
如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0040|P_IOB_Data;三層上按鈕按下,*P_IOA_Data輸入值為0x0080
使三層上按鍵燈亮起的命令為:*P_IOB_Data=0x0080;同時其它層按鍵燈熄滅;
如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0080|P_IOB_Data;三層下按鈕按下,*P_IOA_Data輸入值為0x0100,
使三層下按鍵燈亮起的命令為:*P_IOB_Data=0x0100,同時其它層按鍵燈熄滅;
如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0100|P_IOB_Data;四層下按鈕按下,*P_IOA_Data輸入值為0x0200,
使四層上按鍵燈亮起的命令為:*P_IOB_Data=0x0200,同時其它層按鍵燈熄滅;
如果要使其它層按鍵燈不受此按鍵燈影響,保持原來的狀態(tài),則輸入的命令應(yīng)為:*P_IOB_Data=0x0200|P_IOB_Data;電梯內(nèi)部開門按鈕按下,*P_IOA_Data輸入值為0x4000,
使電梯開門的命令為:*P_IOB_Data=0x000c;電梯內(nèi)部關(guān)門按鈕按下,*P_IOA_Data輸入值為0x8000;
使電梯關(guān)門的命令為:*P_IOB_Data=0x0008。我們?yōu)榱四軌蚝喕覀兊某绦?,我們在頭文件define.h中定義了直觀易懂的單詞來表示數(shù)字指令,這樣使得編程過程更加容易直觀,并且使得程序的可讀性更強,但是這種方法是在之前不斷地嘗試的基礎(chǔ)上才逐漸摸索出來的,因而在后來編寫的程序中普遍用到了這種方法,而在開始訓(xùn)練階段編寫的程序還往往是使用數(shù)字型的指令,具體的定義如下:#ifndef __DEFINE_h__#define __DEFINE_h__#defineIOA*P_IOA_Data#defineIOB*P_IOB_Data#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlong#definestop0x0000#definedown0x0002#defineup0x0003#definebt1up0x0010#definebt2up0x0020#definebt2down0x0040#definebt3up0x0080#definebt3down0x0100#definebt4down0x0200#definebtin10x0001#definebtin20x0002#definebtin30x0004#definebtin40x0008#definebtopen0x4000#definebtclose0x8000#defineopenok0x0400#definecloseok0x0800#definedown0x0002#defineup0x0003#defineclose0x0008#defineopen0x000c#defineL10x1000#defineL20x2000#defineL30x3000#defineL40x4000#defineL1up0x0010#defineL2up0x0020#defineL2down0x0040#defineL3up0x0080#defineL3down0x0100#defineL4down0x0200#defineat10x0400#defineat20x0800#defineat30x1000#defineat40x2000#endif同時由于看門狗在程序中頻繁出現(xiàn),故定義看門狗函數(shù)dog方便使用:#include"spce061A.h"#include"dingyi.h"voiddog(){ *P_Watchdog_Clear=0x0001;}2.3實驗用電梯模型FigureFigureSEQFigure\*ARABIC3實驗用電梯模型
第三章與電梯模型相關(guān)的實驗程序3.1數(shù)碼管連續(xù)顯示3.1.1程序流程圖FigureSEQFigure\*ARABIC4數(shù)碼管連續(xù)顯示流程圖3.1.2功能簡介程序初始化完成后,數(shù)碼管從0連續(xù)變化到7,再從7連續(xù)變化到1。3.1.3功能實現(xiàn)過程通過定義一個指示當(dāng)前數(shù)碼管顯示數(shù)值的變量,以該變量為循環(huán)條件,每次循環(huán)結(jié)束后變量自動加1,即指示下一個數(shù)碼管顯示數(shù)值,并且通過延時函數(shù)使得輸出持續(xù)一段時間一邊觀察現(xiàn)象。(代碼詳見附錄一)3.1.4問題的解決及收獲該程序較為簡單,但是通過該程序我們對軟件的運行、調(diào)試有了初步的認識,對采集輸入數(shù)據(jù)、設(shè)置輸出命令的基本方法的認識更加清晰直觀,同時對控制命令部分有了更加深刻的了解。
3.2外部按鍵燈連續(xù)閃爍3.2.1程序流程圖FigureSEQFigure\*ARABIC5外部按鍵燈連續(xù)閃爍流程圖3.2.2功能簡介程序初始化完成后,外部按鍵燈連續(xù)閃爍,即從一層上燈到四層下等逐個亮,并不斷循環(huán)。3.2.3功能實現(xiàn)過程定義一個整形變量,通過該變量對6(外部按鍵一共有6個燈,可按順序定義六個燈分別為0,1,2,3,4,5)取余的結(jié)構(gòu)判斷應(yīng)該哪一個燈亮,同時通過延時函數(shù)使得輸出得到持續(xù)。(代碼詳見附錄二)3.2.4問題的解決及收獲這個程序的思路非常好,但是在邏輯上需要通過取余這種方法實現(xiàn),有些復(fù)雜,可以將代碼直接描述為外部按鍵逐個燈亮這樣也可以實現(xiàn),我們用這種思路寫了一個讓外部按鍵的燈逐個亮且保持,直到所有的燈都亮了之后,再逐個燈滅的程序,代碼見附錄三,程序流程圖如下:FigureSEQFigure\*ARABIC6LED1to7流程圖
3.3鍵、燈、數(shù)碼管3.3.1程序流程圖FigureSEQFigure\*ARABIC7鍵、燈、數(shù)碼管流程圖3.3.2功能簡介程序運行后,按下電梯外部按鍵之后該層外部按鍵的燈亮,同時數(shù)碼管顯示按下的層數(shù),等待下一次輸入。3.3.3功能實現(xiàn)過程程序初始化完成后,開始掃描是否有按鍵按下,若接收到外部某一按鍵按下信號后,那么該層按鍵的燈亮,并且數(shù)碼管顯示對應(yīng)的層數(shù)。(代碼見附錄四)
現(xiàn)以一層上按鍵被按下舉例:
if((t&0x0010)==0x0010)//如果一層上按鍵被按下{*P_IOB_Data=0x1011;//輸出為一層上按鍵燈亮且數(shù)碼管顯示1 *P_Watchdog_Clear=0x0001; }3.3.4問題的解決及收獲通過該程序,我們對多個部件的共同控制方法有了非常清晰的認識,在61中只需要將需要共同控制的部分的數(shù)字指令相加即可形成共同協(xié)調(diào)控制。
3.4外部按鍵上下行3.4.1程序流程圖FigureSEQFigure\*ARABIC8外部按鍵上下行流程圖3.4.2功能簡介程序運行后,當(dāng)按下電梯外部按鍵后,電梯從當(dāng)前層運行至目標(biāo)層后停止,等待下一次輸入。3.4.3功能實現(xiàn)過程首先程序定義了一個指示當(dāng)前所在層的變量at,以及一個指示目標(biāo)層的變量to,程序初始化完成后,給變量at賦上對應(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; }掃描外部按鍵是否按下,若按下,則對變量to賦上對應(yīng)層數(shù)值,
如若三層上或三層下按鍵被按下:if(((t&0x0080)==0x0080)||((t&0x0100)==0x0100))//若三層上、三層下按鍵被按//下{ to=3;//給變量to賦目標(biāo)層數(shù)為3 *P_Watchdog_Clear=0x0001; }進行目標(biāo)層與當(dāng)前層的比較判斷,
若目標(biāo)層大于當(dāng)前層,即to>at,那么電梯應(yīng)向上運行,直到獲取的當(dāng)前值at=to之后,電梯停止運行:if(to>at) { *P_IOB_Data=up; *P_Watchdog_Clear=0x0001; }若目標(biāo)層等于當(dāng)前層,即to=at,那么電梯停止運行:if(to==at) { *P_IOB_Data=stop; *P_Watchdog_Clear=0x0001; }若目標(biāo)層小于當(dāng)前層,即to<at,那么電梯應(yīng)向下運行,直到獲取的當(dāng)前值at=to之后,電梯停止運行:if(to<at) { *P_IOB_Data=down; *P_Watchdog_Clear=0x0001; }代碼詳見附錄五3.4.4問題的解決及收獲對數(shù)據(jù)采集系統(tǒng)以及程序的運行方式有了更加深刻的認識,系統(tǒng)的輸入的數(shù)據(jù)有一部分是可以持續(xù)的,而有一部分只是一個短暫的脈沖,比如說像開門到位或者關(guān)門到位這樣的輸入就可以是持續(xù)的信號,但外部按鍵這樣的輸入只能是一個脈沖信號,像這種信號就需要通過在這種脈沖信號產(chǎn)生的瞬間給另外一個自己定義的變量賦上相關(guān)信息的值這樣的方式來保存這種信息;在加有*P_Watchdog_Clear=0x0001的情況下,程序是以非??斓乃俣仍谝槐橐槐榈淖哒麄€代碼部分,在沒有加看門狗的情況下,程序在運行一段時間之后會從頭初始化后繼續(xù)運行。
3.5計算器3.5.1程序流程圖FigureSEQFigure\*ARABIC9計算器數(shù)字掃描函數(shù)流程圖FigureSEQFigure\*ARABIC10計算器主函數(shù)流程圖3.5.2功能簡介程序初始化完成后,一層上按鍵按下后,電梯門打開,內(nèi)部層數(shù)按鍵1、2、3、4分別對應(yīng)數(shù)字1、2、3、4,四層上、三層上、三層下分別對應(yīng)加法、減法和乘法,首先按下內(nèi)部兩個按鍵分別對應(yīng)數(shù)學(xué)符號前后兩個數(shù)字,在電梯上部的LED顯示屏上顯示按下的數(shù)字,然后再按下加減乘符號,則在電梯上部的LED顯示屏上顯示計算結(jié)果,若答案在顯示范圍之內(nèi),即在0到7的范圍正確顯示,如果超出這個范圍,則01閃爍。3.5.3功能實現(xiàn)過程程序初始化完成后,通過掃描內(nèi)部按鍵,獲取兩個數(shù)字作為即將進行數(shù)學(xué)計算的輸入,而這兩個數(shù)字的輸入又靠一個標(biāo)志位i實現(xiàn),當(dāng)清零按下之后或者在初始化完成后還沒有進行輸入的情況下,i標(biāo)志位為0等待輸入,當(dāng)采集進來一個數(shù)據(jù)之后,i標(biāo)志位自動加1,之后當(dāng)i==1的情況下在采集進來第二個數(shù)據(jù),例如第一個按鍵按下內(nèi)部按鍵1,則該部分代碼如下:
while(i==0){ if((IOA&btin1)==btin1) { num1=1; i++; IOB=0x1000; DelayMs(100); dog();}第二次按下內(nèi)部按鍵3,則該部分代碼如下: while(i==0) if((IOA&btin3)==btin3) { num2=3; i++; IOB=0x3000; dog(); }之后在進行運算法則的選擇,分別有加、減、乘三種,在按下運算法則的選擇按鍵后,數(shù)碼管顯示最終的答案,如果運算結(jié)果沒有超出顯示范圍的話那么就正常顯示答案,如若超出了正常的顯示范圍,那么這個時候出現(xiàn)01閃爍以提示超出了運算范圍。代碼詳見附錄六3.5.4問題的解決及收獲計算器是我們比較有特色的一個程序,程序在實現(xiàn)上雖然比較簡單,但是讓我們對系統(tǒng)輸入和輸出的理解更加深刻,尤其是在幫助我們理解如何完成按鍵的實時掃描、并且記錄相關(guān)數(shù)據(jù)這兩點上起到非常重要的作用,比如說對外部案件的處理上,人手動按下外部按鍵的時間要比CPU掃過整個程序的時間來說長得多,這樣如果沒有延時函數(shù)作用而且又使用數(shù)組記錄輸入數(shù)據(jù)的情況下,可能會導(dǎo)致數(shù)組的溢出,從而達不到每次記錄一個數(shù)據(jù)輸入的目的。
3.6密碼鎖3.6.1程序流程圖FigureSEQFigure\*ARABIC11密碼鎖流程圖3.6.2功能簡介程序初始化完成后,若電梯門沒有關(guān)上則電梯門關(guān)閉,等待外部按鍵輸入,若密碼輸入正確則開門。3.6.3實現(xiàn)功能過程在這一部分我們引入了兩個數(shù)組對密碼是否相同進行判斷,一個是程序初始化完成后的正確密碼,另外一個就是我們輸入的密碼,這個密碼是通過當(dāng)程序運行后,掃描外部按鍵的情況,對外部按鍵進行順序記錄,最終對外部按鍵輸入的密碼與真實密碼進行逐位比對,若每一位均相同,那么執(zhí)行開門動作,如果不相同,則不開門。代碼詳見附錄七3.6.4問題的解決及收獲密碼鎖程序的代碼編寫過程中我們使用了數(shù)組進行數(shù)據(jù)的采集和記錄,所以這樣我們又遇到了之前在編寫計算器程序中遇到的問題,在按下按鍵之后數(shù)組溢出不能滿足之前預(yù)定的要求,因而我們加入的延時函數(shù)以改進之前的程序,但是在這個過程中由于延時時間不是很好控制,所以也做了很多次嘗試之后才最終確定了一個相對比較合適的時間常數(shù),基本上可以滿足正常速度的密碼輸入,從這一點上來說,通過編寫密碼鎖程序讓我們對61單片機的了解更加深入細致,以前總會遇到編譯通過但是運行之后總會出現(xiàn)很多問題而且我們總是感覺無從下手的這種情況,但是完成密碼鎖程序之后,隨著我們對單片機的了解更加深入,在程序運行之后,我們經(jīng)過簡單地調(diào)試一般就可以找到在那些環(huán)節(jié)的判斷或者邏輯是存在不合理之處,使得我們的效率提高了很多。
3.7逐層停自動開關(guān)門循環(huán)3.7.1程序流程圖FigureSEQFigure\*ARABIC12逐層停自動開關(guān)門循環(huán)main函數(shù)FigureSEQFigure\*ARABIC13逐層停自動開關(guān)門循環(huán)AtAndTo函數(shù)FigureSEQFigure\*ARABIC14逐層停自動開關(guān)門循環(huán)OpenAndClose函數(shù)3.7.2功能簡介程序初始化完成后,電梯自動完成上下行以及開關(guān)門動作,不斷循環(huán)。3.7.3實現(xiàn)功能過程在這個程序中我們引入了一個指示上下行的變量shangxia,一層到位之后令該變量為1,指示電梯之后的運行狀態(tài)為上行;當(dāng)四層到位之后令該變量為0,指示電梯之后的運行狀態(tài)為下行。這樣電梯在二、三層進行上下行的判斷時,只需判斷現(xiàn)在指示電梯運行狀態(tài)的shangxia則可以保證電梯的正常運行。代碼詳見附錄八3.7.4問題的解決及收獲逐層停自動開關(guān)門程序在前面諸多程序的鋪墊下相對比較容易,不同點在于在這個程序中定義了一個指示電梯先前運動狀態(tài)的變量,從而控制電梯現(xiàn)在時刻的上下行,這為之后的電梯完整程序打下了一定的基礎(chǔ)。
3.8可記錄順序逐層停自動開關(guān)門3.8.1程序流程圖FigureSEQFigure\*ARABIC15可記錄順序逐層停自動開關(guān)門3.8.2功能簡介在程序初始化完成后,首先連續(xù)輸入目標(biāo)層數(shù),點擊確定按鍵之后,電梯按照之前按鍵設(shè)定的順序自動運行,完成上下行和相應(yīng)的開關(guān)門功能。3.8.3實現(xiàn)功能過程代碼詳見附錄九3.8.4問題的解決及收獲這個程序在實現(xiàn)的過程中我們借鑒了密碼鎖的相關(guān)經(jīng)驗,不同之處在與之前的密碼鎖是有確定個數(shù)的輸入的,而現(xiàn)在的可記錄順序的逐層停開關(guān)門的輸入是不確定個數(shù)的,同時它還具備了清零和確定的選項,但是它是把之前的密碼匹配部分改為了電梯的上下行和到達目標(biāo)層之后自動開關(guān)門的功能,所以可記錄順序的逐層停自動開關(guān)門程序是繼承了密碼鎖程序的一些特點的基礎(chǔ)上,在功能上又有所拓展和創(chuàng)新。
3.9外部按鍵電梯3.9.1主程序3.9.1.1程序流程圖FigureSEQFigure\*ARABIC16外部按鍵電梯主函數(shù)流程圖3.9.1.2功能過程在程序初始化完成后,進入AtAndTo函數(shù),判斷當(dāng)前層數(shù)和目標(biāo)層,之后進入UpAndDown函數(shù)通過對at與to的大小比較,判斷電梯的上下行,并將電梯送至目標(biāo)層,進入OpenAndClose函數(shù)后進行開關(guān)門操作。(代碼詳見附錄十)3.9.2開關(guān)門模塊3.9.2.1程序流程圖FigureSEQFigure\*ARABIC17外部按鍵電梯開關(guān)門函數(shù)流程圖3.9.2.2功能過程當(dāng)從主函數(shù)進入開關(guān)門模塊后,電梯自動開門,開門到位后,如果按下內(nèi)部關(guān)門按鍵,電梯關(guān)門。3.9.2.3實現(xiàn)功能過程當(dāng)從主函數(shù)進入開關(guān)門模塊后,首先判斷at和to的值,如果二者相等且DoorEnable允許開門即為1,此時執(zhí)行開門動作,當(dāng)開門到位且內(nèi)部關(guān)門按鍵按下后,電梯關(guān)門。3.9.3上下行模塊3.9.3.1程序流程圖FigureSEQFigure\*ARABIC18外部按鍵電梯上下行函數(shù)流程圖3.9.3.2功能過程程序初始化完成后,若外部按鍵按下后,電梯運行到目標(biāo)層。3.9.3.3實現(xiàn)功能過程這個函數(shù)定義了一個指示當(dāng)前所在層的變量at,以及一個指示目標(biāo)層的變量to,程序初始化完成后,給變量at賦上對應(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; }掃描外部按鍵是否按下,若按下,則對變量to賦上對應(yīng)層數(shù)值,
如若三層上或三層下按鍵被按下:if(((t&0x0080)==0x0080)||((t&0x0100)==0x0100))//若三層上、三層下按鍵被按下 { to=3;//給變量to賦目標(biāo)層數(shù)為3 *P_Watchdog_Clear=0x0001; }進行目標(biāo)層與當(dāng)前層的比較判斷,
若目標(biāo)層大于當(dāng)前層,即to>at,那么電梯應(yīng)向上運行,直到獲取的當(dāng)前值at=to之后,電梯停止運行:if(to>at) { *P_IOB_Data=up; *P_Watchdog_Clear=0x0001; }若目標(biāo)層等于當(dāng)前層,即to=at,那么電梯停止運行:if(to==at) { *P_IOB_Data=stop; *P_Watchdog_Clear=0x0001; }若目標(biāo)層小于當(dāng)前層,即to<at,那么電梯應(yīng)向下運行,直到獲取的當(dāng)前值at=to之后,電梯停止運行:if(to<at) { *P_IOB_Data=down; *P_Watchdog_Clear=0x0001; }3.9.4LED模塊3.9.4.1程序流程圖FigureSEQFigure\*ARABIC19外部按鍵電梯LED函數(shù)流程圖FigureSEQFigure\*ARABIC20外部按鍵電梯btLED函數(shù)流程圖3.9.4.2功能過程程序初始化完成后,外部按鍵燈以及指示層數(shù)的數(shù)碼管根據(jù)現(xiàn)在電梯的運行狀態(tài)正常顯示。3.9.4.3實現(xiàn)功能過程當(dāng)外部六個按鍵按下后,外部按鍵的燈亮,電梯上部的LED燈顯示當(dāng)前運行的所在層數(shù)。3.9.4.4問題的解決及收獲在程序調(diào)試過程中,我們發(fā)現(xiàn)如果在電梯運行的過程中,即電梯不處于某層到位的狀態(tài)時,若按下電梯外部的按鍵后,電梯有可能會卡死在中間部位,并且導(dǎo)致電梯無法運行,在發(fā)現(xiàn)這樣的問題之后,我們對程序進行了修改,針對上下行部分,我們加入了使得電梯停止的條件,如果電梯沒有處于到位狀態(tài)的話就始終保持先前上行或下行的狀態(tài)不變,從而使得問題得到了有效的解決。第四章電梯模型完整控制程序4.1完整控制程序(main函數(shù))4.1.1功能說明FigureSEQFigure\*ARABIC21電梯完整程序主函數(shù)代碼見附錄十一4.1.2功能實現(xiàn)過程在上下行的優(yōu)先級別判斷上,我們沒有使用以前的數(shù)組或者at和to大小判斷的方式,而是按照內(nèi)外部層數(shù)按鍵的個數(shù)分別定義了4個和6個變量,分別來指示目標(biāo)層數(shù),而何時選擇上下行這一問題,舉例如下:
如果電梯目前處于二層,首先判斷電梯之前的運行方向,如果電梯之前運行方向向下,那么,若外部二層下按鍵或者內(nèi)部二層按鍵被按下,電梯執(zhí)行開門程序;若外部按鍵二層下被按下且外部按鍵一層上與內(nèi)部一層按鍵均未被按下,電梯執(zhí)行開門程序。
之后進行上下行的判斷,如果電梯外部按鍵一層上或者內(nèi)部按鍵一層被按下,那么電梯下行至一層再做出判斷;如果電梯外部按鍵一層上或者內(nèi)部按鍵一層均未被按下,且三、四層按鍵至少有一個被按下之后,電梯上行至三層再做出判斷。如果電梯之前運行方向向上,那門,如果外部二層上或者內(nèi)部二層按鍵被按下,電梯執(zhí)行開門程序;若外部按鍵二層下被按下,且三、四層均沒有按鍵被按下,那么電梯也執(zhí)行開門程序。
之后進行上下行的判斷,如果電梯三、四層有至少一個按鍵被按下之后,電梯上行至三層再做出判斷;如果電梯外部按鍵一層上被按下且三、四層都沒有按鍵被按下的情況先,電梯執(zhí)行下行動作至一層再做出判斷。其它功能的實現(xiàn)主要通過主函數(shù)調(diào)用其它函數(shù)實現(xiàn),例如開關(guān)門函數(shù),LED控制函數(shù),外部按鍵掃描函數(shù),獲取目標(biāo)層函數(shù)等等。4.1.3問題的解決及收獲在電梯完整程序中,我們改變了以往c文件過多的特點,盡量把一些判斷都放在了主函數(shù)中完成,這也造成了主函數(shù)比較復(fù)雜。4.2按鍵掃描模塊(getto函數(shù))4.2.1功能簡介程序初始化完成后,隨時掃描內(nèi)外部按鍵從而獲得目標(biāo)層,并通過各層的標(biāo)志位將其記錄下來。4.2.2問題的解決及收獲此次使用的獲取目標(biāo)層的函數(shù)雖與以往相同,但是由于實際的電梯會實時記錄電梯內(nèi)外按鍵的情況,同時在目標(biāo)層之后會把相應(yīng)的層數(shù)及方向清零并且對上下行做出判斷,所以在獲取目標(biāo)層與及時清除已到達層這一問題上思路完全是嶄新的,而這部分主要是體現(xiàn)在主函數(shù)中,在此不做贅述。4.3當(dāng)前層判斷模塊(getat函數(shù))4.3.1功能簡介當(dāng)程序初始化完成后,實時確定當(dāng)前所在層數(shù)。4.3.2問題的解決及收獲或許當(dāng)前層數(shù)的模塊在前面使用也較多,但是在這一部分我們加入了一個判斷當(dāng)前上部LED指示的部分,即上部LED顯示當(dāng)前所在的層數(shù),并且通過此事state的狀態(tài)來判斷LED顯示部分箭頭的指向。4.4電梯門的選通、禁止模塊(DoorEnable函數(shù))4.4.1功能簡介程序初始化完成后,根據(jù)電梯當(dāng)前的狀態(tài)判斷此時能否開門的一個標(biāo)志位,例如當(dāng)電梯某層的兩個按鍵同時按下且上面層數(shù)沒有按鍵被按下的情況下,只開門一次且清掉兩個按鍵的燈和相應(yīng)的標(biāo)志位。4.4.2問題的解決及收獲在開關(guān)門選通的這一問題上,由于前期做過很多這方面的訓(xùn)練,所以解決起來比較容易,主要是保證它能夠在應(yīng)該可能需要開門的情況下該位是選通的,在不能開門的情況下該位一定要是禁止的。4.5電梯開關(guān)門模塊(openandclose函數(shù))4.5.1功能簡介開門部分的實現(xiàn)相對較為簡單,在這里僅對關(guān)門模塊進行分析,流程圖如下:FigureSEQFigure\*ARABIC22電梯完整程序openandclose函數(shù)流程圖4.5.2功能實現(xiàn)過程4.5.3問題的解決及收獲針對開門環(huán)節(jié),由于考慮到真實電梯在開門過程中,電梯可以保持持續(xù)開門的狀態(tài),但是如果在關(guān)門過程中,為保證安全,在電梯內(nèi)部按下開門鍵,或者電梯外部當(dāng)前層被按下的情況下,電梯應(yīng)該是可以立即停止關(guān)門動作從而進行開門動作以保證安全或者外部有人要進入電梯的需求。在面對這個問題是我們一度遇到了很多困難,不知道如何實現(xiàn)在關(guān)門動作進行的過程中如何來實現(xiàn)外部當(dāng)前層按鍵按下后可以保證電梯轉(zhuǎn)而執(zhí)行開門動作,最后進過深入的思考之后,我們引入了一個變量k,使得如果按下的按鍵所指示的層數(shù)后,我們給變量k賦值為1,在當(dāng)k==1或者內(nèi)部開門按鍵被按下的時候,終止之前的關(guān)門動作,轉(zhuǎn)而執(zhí)行開門動作,直到開門到位。在開關(guān)門問題上我們還遇到了另外一個問題,如在上行過程中,三層的上下均被按下,且四層的按鍵又均未被按下的情況下,由于每次只能開門動作清掉一個標(biāo)志位,而導(dǎo)致電梯會自動開關(guān)兩次門,為了解決這一問題我們引入了一個doorenable變量,該變量作為是否進入開關(guān)門程序的條件之一,同時在進入開關(guān)門函數(shù)之后,令該變量無效,而只有再次上行或者下行之后再令該變量有效,從而解決了這樣一個問題。
第五章總結(jié)與致謝5.1總結(jié)本電梯模型的控制程序采用凌陽SPCES061A單片機設(shè)計編寫完成。前期,我們通過編制電梯相關(guān)小程序熟悉單片機的基本編程技術(shù)。設(shè)計和制作該電梯模型的控制程序提升了我們的動手和動腦的積極性,鍛煉了團隊合作能力。同時這也是機電結(jié)合方面的優(yōu)秀實例,是我們對控制理論和機電結(jié)合方面的知識有了更深入的認識和了解。5.2致謝感謝xx老師和xx老師在綜合電子創(chuàng)新訓(xùn)練過程中給予的大力幫助與支持,讓我們在創(chuàng)新實習(xí)的過程中得到了充分的鍛煉和提高。感謝工程訓(xùn)練中心提供的場地與實驗設(shè)備的支持。最后也要感謝我們小團隊的所有成員的共同努力,感謝其他同學(xué)的幫助,讓我們在創(chuàng)新實習(xí)中共同進步、共同提高。
附錄控制電梯模型相關(guān)程序附錄一數(shù)碼管連續(xù)顯示#include"spce061A.h"#include"define.h"voidmain(){ *P_IOA_Dir=0; *P_IOA_Attrib=0; *P_IOA_Data=0; *P_IOB_Dir=0xf3ff; *P_IOB_Attrib=0xf3ff; *P_IOB_Data=0; inti,j; while(1) { IOB=0x0001; for(i=0,i<=7,i++) { DelayMs(100); IOB=IOB+0x1000; } IOB=0x7000; for(j=0;j<=7;j++) { DelayMs(100); IOB=IOB+0x1000; } }}
附錄二外部按鍵燈連續(xù)閃爍#include"spce061A.h"#include"define.h"intBTLED,LED;inti=1;voidDelayMs(uintt){ while(t--) { uintj; for(j=0;j<200;j++) {dog();} }}voidmain(){ *P_IOA_Dir=0; *P_IOA_Attrib=0; *P_IOA_Data=0; *P_IOB_Dir=0xf3ff; *P_IOB_Attrib=0xf3ff; *P_IOB_Data=0; while(1) { switch(i){ case1: { IOB=L1up+L1;i=((i+1)%6);DelayMs(100);dog();break; } case2: { IOB=L2down+L2;i=((i+1)%6);DelayMs(100);dog();break; } case3: { IOB=L2up+L2;i=((i+1)%6);DelayMs(100);dog();break; } case4: { IOB=L3down+L3;i=((i+1)%6);DelayMs(100);dog();break; } case5: { IOB=L3up+L3;i=((i+1)%6);DelayMs(100);dog();break; } case0: { IOB=L4down+L4;i=((i+1)%6);DelayMs(100);dog();break; } } }}
附錄三外部按鍵逐個亮滅#include"spce061A.h"#include"define.h"voidDelayMs(uintt){ while(t--) { uintj; for(j=0;j<500;j++) {} }}voidmain(){ *P_IOA_Dir=0; *P_IOA_Attrib=0; *P_IOA_Data=0; *P_IOB_Dir=0xf3ff; *P_IOB_Attrib=0xf3ff; *P_IOB_Data=0; while(1) { IOB=L1up+L1;DelayMs(100);dog(); IOB=L1up+L2down+L2;DelayMs(100);dog(); IOB=L1up+L2down+L2up+L2;DelayMs(100);dog(); IOB=L1up+L2down+L2up+L3down+L3;DelayMs(100);dog(); IOB=L1up+L2down+L2up+L3down+L3up+L3;DelayMs(100);dog(); IOB=L1up+L2down+L2up+L3down+L3up+L4down+L4;DelayMs(100);dog(); IOB=L1up+L2down+L2up+L3down+L3up+L3;DelayMs(100);dog(); IOB=L1up+L2down+L2up+L3down+L3;DelayMs(100);dog(); IOB=L1up+L2down+L2up+L2;DelayMs(100);dog(); IOB=L1up+L2down+L2;DelayMs(100);dog(); IOB=L1up+L1;DelayMs(100);dog(); IOB=L1;DelayMs(100);dog(); }}
附錄四鍵、燈、數(shù)碼管#include"spce061A.h"voidmain(){ intinput,t=0,m=0; *P_IOA_Dir=0; *P_IOA_Attrib=0; *P_IOA_Data=0; *P_IOB_Dir=0xf3ff; *P_IOB_Attrib=0xf3ff; *P_IOB_Data=0; while(1) { t=*P_IOA_Data; if((t&0x0010)==0x0010) { *P_IOB_Data=0x1011; *P_Watchdog_Clear=0x0001; } if((t&0x0020)==0x0020) { *P_IOB_Data=0x2021; *P_Watchdog_Clear=0x0001; } if((t&0x0040)==0x0040) { *P_IOB_Data=0x2040; *P_Watchdog_Clear=0x0001; } if((t&0x0080)==0x0080) { *P_IOB_Data=0x3081; *P_Watchdog_Clear=0x0001; } if((t&0x0100)==0x0100) { *P_IOB_Data=0x3100; *P_Watchdog_Clear=0x0001; } if((t&0x0200)==0x0200) { *P_IOB_Data=0x4200; *P_Watchdog_Clear=0x0001; } *P_Watchdog_Clear=0x0001; }}
附錄五外部按鍵上下行#include"spce061A.h"#defineup0x0003#definedown0x0002#definestop0x0000#definestopandopen0x000c#defineclose0x0008voidmain(){ intinput,t=0,s=0; intat,to; *P_IOA_Dir=0; *P_IOA_Attrib=0; *P_IOA_Data=0; *P_IOB_Dir=0xf3ff; *P_IOB_Attrib=0xf3ff; *P_IOB_Data=0; while(1) { t=*P_IOA_Data; s=*P_IOB_Data; if((t&0x0800)==0x0800) { at=2; *P_Watchdog_Clear=0x0001; } if((t&0x1000)==0x1000) { at=3; *P_Watchdog_Clear=0x0001; } if((t&0x2000)==0x2000) { at=4; *P_Watchdog_Clear=0x0001; } if((t&0x0400)==0x0400) { at=1; *P_Watchdog_Clear=0x0001; } if((t&0x0010)==0x0010) { to=1; *P_Watchdog_Clear=0x0001; } if(((t&0x0020)==0x0020)||((t&0x0040)==0x0040)) { to=2; *P_Watchdog_Clear=0x0001; } if(((t&0x0080)==0x0080)||((t&0x0100)==0x0100)) { to=3; *P_Watchdog_Clear=0x0001; } if((t&0x0200)==0x0200) { to=4; *P_Watchdog_Clear=0x0001; } if(to>at) { *P_IOB_Data=up; *P_Watchdog_Clear=0x0001; } if(to==at) { *P_IOB_Data=stop; *P_Watchdog_Clear=0x0001; } if(to<at) { *P_IOB_Data=down; *P_Watchdog_Clear=0x0001; }}}
附錄六計算器#include"spce061A.h"#include"Define.h"voidDelayMs(uintt){ while(t--) { uintj; for(j=0;j<500;j++) {} }}intnum1=0,num2=0;intresult=0;inti=0;k=0;intGetnum(){ while(i==0) { if((IOA&btin1)==btin1) { num1=1; i++; IOB=0x1000; DelayMs(100); dog(); } if((IOA&btin2)==btin2) { num1=2; i++; IOB=0x2000; DelayMs(100); dog(); } if((IOA&btin3)==btin3) { num1=3; i++; IOB=0x3000; DelayMs(100); dog(); } if((IOA&btin4)==btin4) { num1=4; i++; IOB=0x4000; DelayMs(100); dog(); } dog(); } while(i==1) { if((IOA&btin1)==btin1) { num2=1; i++; IOB=0x1000; dog(); } if((IOA&btin2)==btin2) { num2=2; i++;
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年教師與貧困學(xué)生結(jié)對幫扶計劃
- 全國人教版信息技術(shù)八年級下冊第一單元第3課《作點》說課稿
- Unit 6 Meet my family Part C(說課稿)-2024-2025學(xué)年人教PEP版英語四年級上冊
- 2025年房地產(chǎn)銷售下半年工作計劃范文
- 習(xí)作:變形記 說課稿-2024-2025學(xué)年語文六年級上冊統(tǒng)編版
- 習(xí)作:《游-》(說課稿)-2023-2024學(xué)年語文四年級下冊統(tǒng)編版
- 2025年小學(xué)體育老師工作計劃
- 2025幼兒園后勤工作計劃范文參考
- 2025年金融業(yè)務(wù)員工作計劃
- 2025年教師個人繼續(xù)教育學(xué)習(xí)計劃2
- 閱讀理解(專項訓(xùn)練)-2024-2025學(xué)年湘少版英語六年級上冊
- 民用無人駕駛航空器產(chǎn)品標(biāo)識要求
- 2024年醫(yī)院產(chǎn)科工作計劃例文(4篇)
- 2024-2025學(xué)年九年級英語上學(xué)期期末真題復(fù)習(xí) 專題09 單詞拼寫(安徽專用)
- 中國音樂史與名作賞析智慧樹知到期末考試答案章節(jié)答案2024年山東師范大學(xué)
- 區(qū)域地質(zhì)及礦區(qū)地質(zhì)圖清繪規(guī)程
- 10套深藍色商務(wù)醫(yī)院科室組織架構(gòu)PPT圖表合集
- DB44∕T 1784-2015 木本園林植物修剪技術(shù)規(guī)程
- 青年心理學(xué)第六講(人際關(guān)系與溝通)
- 核醫(yī)學(xué)科PDCA案例
- ABB斷路器參數(shù)調(diào)試講義
評論
0/150
提交評論