版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 計(jì)算機(jī)控制技術(shù) 課程設(shè)計(jì)(論文)</p><p> 題目: 大功率電機(jī)運(yùn)行狀態(tài)計(jì)算機(jī)監(jiān)測系統(tǒng) </p><p> 課程設(shè)計(jì)(論文)任務(wù)及評語</p><p> 院(系):電氣工程學(xué)院 教研室:自動化 </p><p> 注:成績:平時(shí)
2、20% 論文質(zhì)量60% 答辯20% 以百分制計(jì)算</p><p><b> 目 錄</b></p><p> 第1章 電機(jī)運(yùn)行系統(tǒng)監(jiān)控系統(tǒng)設(shè)計(jì)2</p><p> 1.1 整體系統(tǒng)結(jié)構(gòu)概括2</p><p> 第2章 系統(tǒng)硬件設(shè)計(jì)3</p><p> 2.1單片機(jī)最小系
3、統(tǒng)設(shè)計(jì)3</p><p> 2.2電壓傳感器模塊電路4</p><p> 2.3電流傳感器模塊電路5</p><p> 2.4溫度傳感器模塊電路5</p><p> 2.5旋轉(zhuǎn)編碼器模塊7</p><p> 2.6鍵盤模塊電路8</p><p><b> 2.7
4、報(bào)警模塊8</b></p><p><b> 2.8顯示模塊9</b></p><p> 第3章 系統(tǒng)軟件設(shè)計(jì)12</p><p> 3.1程序流程12</p><p> 3.2各模塊程序設(shè)計(jì)13</p><p> 3.2.1 3路AD模擬采樣程序13</p
5、><p> 3.2.2 1路脈沖累加程序14</p><p> 3.2.3 4個(gè)獨(dú)立鍵盤程序14</p><p> 3.2.4 矩陣鍵盤程序15</p><p> 3.2.5 LCD12864顯示程序16</p><p> 3.2.6 系統(tǒng)整體設(shè)計(jì)總結(jié)20</p><p> 第
6、4章 設(shè)計(jì)總結(jié)21</p><p><b> 參考文獻(xiàn)22</b></p><p><b> 摘 要</b></p><p> 根據(jù)任務(wù)書相關(guān)要求可知,本次課設(shè)結(jié)束設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)包含:單片機(jī)(核心處理器)、電壓傳感器模塊、電流傳感器模塊、溫度傳感器模塊定子電壓、速度檢測模塊、報(bào)警模塊、鍵盤輸入模塊及液晶顯示模塊
7、。定子電流、繞組溫度、電機(jī)轉(zhuǎn)速,設(shè)計(jì)如上狀態(tài)的四種傳感器,并將狀態(tài)信號送入單片機(jī)中進(jìn)行監(jiān)測和識別,完成單片機(jī)最小工作系統(tǒng)設(shè)計(jì)及鍵盤輸入給定設(shè)計(jì),完成監(jiān)測系統(tǒng)的報(bào)警設(shè)計(jì)及狀態(tài)顯示器設(shè)計(jì)。由上述要求可知,所涉及的程序結(jié)求,選取了飛思卡爾公司的XS128 16位單片機(jī)作為核心處理器,此處理器優(yōu)點(diǎn)存儲空間大、I/0口豐富、集成8路高速AD轉(zhuǎn)換模塊、功能完善。運(yùn)行速度、計(jì)算速度等遠(yuǎn)遠(yuǎn)超過C51系列單片機(jī),而且此款單片機(jī)的浮點(diǎn)數(shù)運(yùn)算表現(xiàn)能力也十分優(yōu)
8、越,開發(fā)平臺完整,編程語言為C、C++語言,易于理解與編程。且此款單片機(jī)有功耗較小、壽命長等優(yōu)點(diǎn)。</p><p> 關(guān)鍵詞:XS128;單片機(jī);C;C++</p><p> 第1章 電機(jī)運(yùn)行系統(tǒng)監(jiān)控系統(tǒng)設(shè)計(jì)</p><p> 1.1 整體系統(tǒng)結(jié)構(gòu)概括</p><p> 根據(jù)任務(wù)書相關(guān)要求可知,本次課設(shè)結(jié)束設(shè)計(jì)的系統(tǒng)所能達(dá)到的要求如下
9、:</p><p> ?。?)電機(jī)運(yùn)行狀態(tài):定子電壓、定子電流、繞組溫度、電機(jī)轉(zhuǎn)速。</p><p> ?。?)設(shè)計(jì)如上狀態(tài)的四種傳感器,并將狀態(tài)信號送入單片機(jī)中進(jìn)行監(jiān)測和識別。</p><p> ?。?)完成單片機(jī)最小工作系統(tǒng)設(shè)計(jì)及鍵盤輸入給定設(shè)計(jì)。</p><p> ?。?)完成監(jiān)測系統(tǒng)的報(bào)警設(shè)計(jì)及狀態(tài)顯示器設(shè)計(jì)。</p>
10、<p> 由上述要求可知,所涉及的程序結(jié)構(gòu)包含:單片機(jī)(核心處理器)、電壓傳感器模塊、電流傳感器模塊、溫度傳感器模塊、速度檢測模塊、報(bào)警模塊、鍵盤輸入模塊及液晶顯示模塊。由此可以設(shè)計(jì)如圖1.0系統(tǒng)框圖。</p><p><b> 圖1.0系統(tǒng)框圖</b></p><p> 第2章 系統(tǒng)硬件設(shè)計(jì)</p><p> 2.1單片機(jī)最
11、小系統(tǒng)設(shè)計(jì)</p><p> 要求對定子電壓進(jìn)行檢測,電機(jī)參數(shù)為:額定功率225KW、額定電壓380V、額定電流400A、額定轉(zhuǎn)速1479r/min。根據(jù)網(wǎng)上提供的資料電機(jī)材料的絕緣的溫度等級分為 A級、 E級 、B級 、F級、 H級。對應(yīng)的性能參考溫度(℃) 80 、95 、100 、120 、145。所以需要設(shè)計(jì)電壓檢測、電流檢測、溫度檢測及轉(zhuǎn)速檢測實(shí)時(shí)將相關(guān)數(shù)據(jù)反饋給單片機(jī),經(jīng)單片機(jī)控制后將數(shù)據(jù)實(shí)時(shí)顯示在
12、LCD液晶顯示器上面并提供操作者進(jìn)行參考監(jiān)視電機(jī)的運(yùn)行狀態(tài),當(dāng)任何一個(gè)參數(shù)指標(biāo)超過額定值時(shí)警報(bào)模塊開始運(yùn)行,提醒操作者此時(shí)電機(jī)運(yùn)行狀態(tài)為非正常狀態(tài)以關(guān)閉電機(jī)進(jìn)行電機(jī)保護(hù)。</p><p> 根據(jù)課設(shè)要求,選取了飛思卡爾公司的XS128 16位單片機(jī)作為核心處理器,此處理器優(yōu)點(diǎn)存儲空間大、I/0口豐富、集成8路高速AD轉(zhuǎn)換模塊、功能完善。運(yùn)行速度、計(jì)算速度等遠(yuǎn)遠(yuǎn)超過C51系列單片機(jī),而且此款單片機(jī)的浮點(diǎn)數(shù)運(yùn)算表現(xiàn)
13、能力也十分優(yōu)越,開發(fā)平臺完整,編程語言為C、C++語言,易于理解與編程。且此款單片機(jī)有功耗較小、壽命長等優(yōu)點(diǎn)。</p><p> XS128CPU可運(yùn)行在40MHz總線頻率上,有ECC模塊,1個(gè)SPI模塊,8路16位計(jì)數(shù)器,1個(gè)CAN總線模塊,4路外部事件觸發(fā)中斷輸入端口,2個(gè)SCI串行通信模塊支持LIN總線,8路PWM,16路8位、10位、12位AD轉(zhuǎn)換時(shí)間3us,112管腳LQFP貼片封裝。圖2.0為滿足系
14、統(tǒng)要求設(shè)計(jì)的XS128最小系統(tǒng)原理圖。</p><p> 圖2.0最小系統(tǒng)原理圖</p><p> XS128最小系統(tǒng)版實(shí)物圖如圖2.1所示</p><p><b> 圖2.1實(shí)物圖</b></p><p> 2.2電壓傳感器模塊電路</p><p> 根據(jù)課設(shè)要求,需要監(jiān)測定子電壓。所
15、以可以設(shè)計(jì)簡單模擬電壓傳感器,輸出信號為0~5V模擬信號,電流為毫安級別。此傳感器電路的模擬信號輸出端可以直接與單片機(jī)的AD轉(zhuǎn)換端相連,通過中央處理器CPU進(jìn)行AD轉(zhuǎn)換,將結(jié)果傳遞給CPU后進(jìn)行數(shù)據(jù)計(jì)算,并輸出響應(yīng)的結(jié)果。電壓傳感器的電路如圖2.2所示。</p><p> 圖2.2電壓傳感器的電路</p><p> 根據(jù)電壓傳感器模塊的原理圖可以得到相應(yīng)的計(jì)算公式,Vout連接中央處理
16、器CPU的AD端口,電壓變化為0~5V,當(dāng)Vout=5V時(shí),根據(jù)串聯(lián)電路分壓定理可以得出此時(shí)輸入Vin為400V,則當(dāng)前情況下定子電壓為400V,同樣當(dāng)Vout=3V時(shí),Vin為240V。所以可以得出Vin=(Vout/1000)*80000,通過檢測Vout就可以知道對應(yīng)的定子電壓值。</p><p> 2.3電流傳感器模塊電路</p><p> 根據(jù)課設(shè)要求,需要監(jiān)測定子電流。所以
17、可以設(shè)計(jì)簡單模擬電流傳感器,輸出信號為0~5V模擬信號,電流為毫安級別。此傳感器電路的模擬信號輸出端可以直接與單片機(jī)的AD轉(zhuǎn)換端相連,通過中央處理器CPU進(jìn)行AD轉(zhuǎn)換,將結(jié)果傳遞給CPU后進(jìn)行數(shù)據(jù)計(jì)算,并輸出響應(yīng)的結(jié)果。電流傳感器的電路如圖2.3所示。</p><p> 圖2.3電流傳感器的電路</p><p> 根據(jù)電流傳感器模塊的原理圖可以得到相應(yīng)的計(jì)算公式,Vout電壓變化為0~
18、5V。根據(jù)電路圖可以得出Vout=[Vin*R3/(R1+1)(R2+R3)]*R4,通過檢測Vout就可以知道對應(yīng)的定子電流值。</p><p> 2.4溫度傳感器模塊電路</p><p> 根據(jù)資料,電機(jī)材料的絕緣的溫度等級分為 A級、 E級 、B級 、F級、 H級。對應(yīng)的性能參考溫度(℃) 80 、95 、100 、120 、145。不同的材料電機(jī)的性能溫度是不一樣的,所以必須針
19、對不同電機(jī)進(jìn)行工作運(yùn)行溫度監(jiān)測。這里采用的是熱敏電阻設(shè)計(jì)成的溫度傳感器模塊進(jìn)行實(shí)時(shí)溫度檢測,并將檢測結(jié)果以模擬信號的形式傳送給XS128的AD端口。圖2.4為熱敏電阻實(shí)物圖。</p><p> 圖2.4熱敏電阻實(shí)物圖</p><p> 圖2.5為熱敏電阻的溫度特性曲線,由該圖可以看出,熱敏電阻的溫度特性曲線近似于一次函數(shù)的曲線,所以溫度與電阻比近似為線性關(guān)系,可以將熱敏電阻設(shè)計(jì)的溫度傳
20、感器模塊的A0口連接至XS128的AD端口檢測計(jì)算機(jī)端的開發(fā)平臺AD端口的轉(zhuǎn)換結(jié)果可以判斷出此時(shí)的溫度,多次測量后可以求出線性比例系數(shù)。</p><p> 圖2.5熱敏電阻的溫度特性曲線</p><p> 本系統(tǒng)設(shè)計(jì)要求可以設(shè)計(jì)出溫度傳感器模塊,原理圖如圖2.6所示。該模塊可以同時(shí)輸出模擬信號以及數(shù)字開關(guān)信號,調(diào)節(jié)電位計(jì)可以改變該模塊感知溫度的靈敏度。</p><p
21、> 圖2.6溫度傳感器原理圖</p><p> 圖2.7熱敏電阻溫度傳感器模塊實(shí)物圖</p><p> 2.5旋轉(zhuǎn)編碼器模塊</p><p> 此檢測系統(tǒng)的電機(jī)額定轉(zhuǎn)速低于1500轉(zhuǎn),所以我們可以采用400線(即單位時(shí)間400脈沖)的旋轉(zhuǎn)編碼器進(jìn)行實(shí)時(shí)速度的測量,用支架將編碼器固定在電機(jī)傳動軸附近,將旋轉(zhuǎn)編碼器的轉(zhuǎn)子與被測對象的轉(zhuǎn)子通過齒輪咬合,使旋轉(zhuǎn)
22、編碼器與電機(jī)同時(shí)運(yùn)動。則旋轉(zhuǎn)編碼器產(chǎn)生的脈沖信號通過導(dǎo)線連接到XS128獨(dú)有的脈沖累加器端口PT7,則可以實(shí)時(shí)對脈沖信號進(jìn)行累加計(jì)算,通過多次試驗(yàn)采樣確定額定轉(zhuǎn)速時(shí)單片機(jī)PT7口所采集的脈沖數(shù)的數(shù)值,則通過if語句條件限定可以最終達(dá)到超出額定值報(bào)警的功能。圖2.8為旋轉(zhuǎn)編碼器的實(shí)物圖。</p><p> 圖2.8旋轉(zhuǎn)編碼器的實(shí)物圖</p><p><b> 2.6鍵盤模塊電路
23、</b></p><p> 為了完善系統(tǒng)的功能可以適應(yīng)更多的場合應(yīng)用次系統(tǒng),所以設(shè)計(jì)鍵盤輸入電路,可以供使用者在使用前根據(jù)個(gè)人需求進(jìn)行報(bào)警定子電壓、報(bào)警定子電流、報(bào)警工作溫度、報(bào)警轉(zhuǎn)速等設(shè)置,為了方便操作,本系統(tǒng)采用的是4個(gè)獨(dú)立功能按鍵與4×4矩陣數(shù)字按鍵組成。4×4矩陣數(shù)字鍵盤原理圖如圖2.9所示,4個(gè)獨(dú)立鍵盤原理圖如圖2.10所示,實(shí)物圖如圖2.11所示。</p>
24、<p> 圖2.94×4矩陣數(shù)字鍵盤原理圖</p><p> 圖2.10 獨(dú)立鍵盤原理圖 圖2.11實(shí)物圖</p><p><b> 2.7報(bào)警模塊</b></p><p> 為了跟好的提醒使用者當(dāng)前電機(jī)的運(yùn)行狀態(tài),設(shè)計(jì)了如圖2.12的蜂鳴器報(bào)警電路,電
25、路結(jié)構(gòu)十分簡單通過XS128的I/0口控制蜂鳴器的工作狀態(tài)。</p><p> 圖2.12蜂鳴器報(bào)警電路</p><p><b> 2.8顯示模塊</b></p><p> 根據(jù)第一章的系統(tǒng)設(shè)計(jì),本系統(tǒng)采用的顯示模塊為LCD12864ZW液晶顯示模塊(帶字庫版本)圖2.13、表2.0為12864的外擴(kuò)尺寸介紹。</p>&l
26、t;p> 圖2.13LCD12864ZW液晶顯示模塊</p><p> 表2.012864的外擴(kuò)尺寸介紹</p><p> 12864的引腳說明:</p><p> XS128的I/0引腳豐富所以連接LCD12864的時(shí)候可以采用并行連接。</p><p> 12864的時(shí)序說明:</p><p>
27、第3章 系統(tǒng)軟件設(shè)計(jì)</p><p><b> 3.1 程序流程</b></p><p> 系統(tǒng)上電后首先應(yīng)該對各個(gè)應(yīng)用模塊進(jìn)行初始化,初始化完畢后對鍵盤輸入模塊進(jìn)行掃描輸入,使用者可以根據(jù)的實(shí)際需求進(jìn)行定子電壓、定子電流、工作溫度、工作轉(zhuǎn)速的報(bào)警值進(jìn)行設(shè)置,在顯示模塊LCD12864ZW上顯示對應(yīng)的數(shù)據(jù)。鍵盤設(shè)定結(jié)束后系統(tǒng)開始工作,進(jìn)行3路AD采樣及1路脈沖累加
28、計(jì)數(shù)處理,對應(yīng)的處理結(jié)果和操作者設(shè)置的值做比較如果小于設(shè)置報(bào)警值,則系統(tǒng)不作出行為,繼續(xù)采樣;若大于設(shè)定報(bào)警值,則系統(tǒng)會跳到報(bào)警步驟,報(bào)警后若使用者不消除報(bào)警(即關(guān)閉電機(jī)或者手動降低電機(jī)相關(guān)工作參數(shù))則系統(tǒng)會持續(xù)的報(bào)警直至使用者消除報(bào)警為止。設(shè)計(jì)的系統(tǒng)流程圖如圖3.0所示。</p><p><b> 圖3.0系統(tǒng)流程圖</b></p><p> XS128對應(yīng)的編
29、程文件如下:</p><p> /*******************頭文件**********************/</p><p> #include <hidef.h> </p><p> #include "derivative.h" </p><p> /**********
30、*總線時(shí)鐘倍頻設(shè)置此次設(shè)置為48MHZ***********/</p><p> void SetBusCLK_48M(void)</p><p><b> { </b></p><p> CLKSEL=0x00; </p><p> PLLCTL_PLLON=1; </p><p>
31、 SYNR=0XC0 | 0X05; </p><p> REFDV=0X80 | 0X01; </p><p> POSTDIV=0X00; </p><p> _asm(nop); </p><p> _asm(nop); </p><p> while(0==CRGFLG_LOCK);//鎖相環(huán)鎖定 &
32、lt;/p><p> CLKSEL_PLLSEL=1;//選定外部時(shí)鐘</p><p><b> }</b></p><p> 3.2 各模塊程序設(shè)計(jì)</p><p> 3.2.1 3路AD模擬采樣程序</p><p> /************** AD模塊初始化程序**********
33、*********/</p><p> void ADC_Init(void)</p><p> { ATD0CTL0=0x07;</p><p> ATD0CTL1=0xc0; </p><p> ATD0CTL2=0x40; </p><p> ATD0CTL3=0xB0; <
34、;/p><p> ATD0CTL4=0xa8; </p><p> ATD0CTL5=0x30; </p><p> ATD0DIEN=0x00; </p><p><b> }</b></p><p> /**************** AD模塊采樣程序***
35、****************/</p><p> void lightAverage(void)</p><p> { ulong V_Realsum=0,I_Realsum=0,Tem_Realsum =0;int i;</p><p> for(i=1;i<=50;i++) //算數(shù)平均值濾波法</p><p>
36、{ while(!ATD0STAT0_SCF); //等待轉(zhuǎn)換完成</p><p><b> //累加求和// </b></p><p> V_Realsum += ATD0DR0;</p><p> I_Realsum += ATD0DR1;</p><p> Tem_Realsum += ATD0DR2;
37、</p><p><b> }</b></p><p> V_Real = V_Realsum/50;</p><p> I_Real= I_Realsumsum/50;</p><p> Tem_Real=Tem_Realsum/50; </p><p><b> }<
38、/b></p><p> 3.2.2 1路脈沖累加程序</p><p> /****************PIT模塊初始化*******************/</p><p> void PIT_Init(void) </p><p> { PITCFLMT_PITE=0; </p><
39、p> PITCE_PCE0=1; </p><p> PITMTLD0=199; </p><p> PITLD0=159; </p><p> PITINTE_PINTE0=1; </p><p> PITCFLMT_PITE=1; </p><p>
40、;<b> }</b></p><p> /****************中斷脈沖計(jì)數(shù)*******************/</p><p> #pragma CODE_SEG __NEAR_SEG NON_BANKED </p><p> void interrupt 8 Timer0_Onput(void) </p>
41、<p><b> { s++;</b></p><p> TFLG1 |= 0x02; </p><p><b> }</b></p><p> #pragma CODE_SEG DEFAULT</p><p> 3.2.3 4個(gè)獨(dú)立鍵盤程序</p><
42、p> /******************獨(dú)立鍵盤程序******************/</p><p> void KeyProcess()</p><p> { if(K1==0) </p><p> {Delay_ms(10);//延時(shí)去抖</p><p
43、><b> if(K1==0)</b></p><p> { while(!K1); </p><p><b> }</b></p><p><b> }</b></p><p> if(K2==0)
44、 </p><p> {Delay_ms(10);//延時(shí)去抖</p><p><b> if(K2==0)</b></p><p> { while(!K2); </p><p><b> }</b></p>
45、<p><b> }</b></p><p> if(K3==0) </p><p><b> {</b></p><p> Delay_ms(10); //延時(shí)去抖</p><p> if(K3==0)
46、 </p><p><b> {</b></p><p> while(!K3);//等待K3鍵釋放</p><p><b> }</b></p><p><b> }</b></p>
47、<p> if(K4==0)//K4鍵是確認(rèn)鍵</p><p><b> {</b></p><p> Delay_ms(10);//延時(shí)去抖</p><p><b> if(K4==0)</b></p><p> {while(!K4);//等待K4鍵釋放&l
48、t;/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 3.2.4 矩陣鍵盤程序</p><p> /******************矩陣鍵盤程序**********
49、********/</p><p> void keyscan()</p><p> { //需提前定義XS123PB4~PB7口作為絕陣鍵盤的接受I/0口//</p><p> // scan1為PB口定義變量//</p><p> if((scan1&0xf0)!=0xf0) //判鍵是否按下&l
50、t;/p><p> { delayms(30); //延時(shí)30ms</p><p> if((scan1&0xf0)!=0xf0) //二次判鍵是否按下</p><p> { POPTB=0x0f;</p><p> scan2= POPTB;</p><
51、p> keycode=scan1|scan2; //組合成鍵編 for(j=0;j<=15;j++)</p><p><b> {</b></p><p> if(keycode== key_code[j]) </p><p><b> { key=j;</b></p>
52、;<p> return(key);</p><p><b> }</b></p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p>
53、 else POPTB =0xff;</p><p> return (16);</p><p><b> }</b></p><p> Void keydown(void)</p><p><b> { </b></p><p> POPTB =0xf0;&
54、lt;/p><p> if((POPTB &0xf0)!=0xf0)</p><p><b> {</b></p><p> keyscan();</p><p><b> }</b></p><p><b> }</b></p>
55、;<p> 3.2.5 LCD12864顯示程序</p><p> /******************顯示程序******************/</p><p> //定義顯示數(shù)組//</p><p> uchar const IC_DAT[]={"電機(jī)運(yùn)行狀態(tài)監(jiān)測"};</p><p>
56、 uchar const IC_DAT1[]={"V: V I: A"};</p><p> uchar const IC_DAT2[]={"工作溫度: ℃"};</p><p> uchar const IC_DAT3[]={"工作轉(zhuǎn)速: R"}; </p><p> /**
57、**************** LCD12864初始化程序*****************/</p><p> void initina2(void) </p><p><b> {</b></p><p> delay(40); //大于40MS的延時(shí)程序</p>
58、<p> PSB=1; //設(shè)置為8BIT并口工作模式</p><p> delay(1); //延時(shí)</p><p> RES=0; //復(fù)位</p><p> delay(1); //延時(shí)</p><p&g
59、t; RES=1; //復(fù)位置高</p><p> delay(10);</p><p> TransferData(0x36,0); </p><p> delay(100); //大于100uS的延時(shí)程序</p><p> TransferData(0x36,0);
60、 </p><p> delay(37); ////大于37uS的延時(shí)程序</p><p> TransferData(0x3E,0); </p><p> delay(100); //大于100uS的延時(shí)程序</p><p> TransferData(0x01,0);
61、 //CLEAR SCREEN</p><p> delay(100); //大于100uS的延時(shí)程序</p><p><b> }</b></p><p> void initinal(void) //LCD字庫初始化程序</p><p><b> {&
62、lt;/b></p><p> delay(40); //大于40MS的延時(shí)程序</p><p> PSB=1; //設(shè)置為8BIT并口工作模式</p><p> delay(1); //延時(shí)</p><p> RES=0;
63、 //復(fù)位</p><p> delay(1); //延時(shí)</p><p> RES=1; //復(fù)位置高</p><p> delay(10);</p><p> TransferData(0x30,0); </p><p&g
64、t; delay(100); //大于100uS的延時(shí)程序</p><p> TransferData(0x30,0); //Function Set</p><p> delay(37); ////大于37uS的延時(shí)程序</p><p> TransferData(0x08,0); //Display on
65、 Control</p><p> delay(100); //大于100uS的延時(shí)程序</p><p> TransferData(0x10,0); </p><p> delay(100); //大于100uS的延時(shí)程序</p><p> TransferData(
66、0x0C,0); </p><p> delay(100); //大于100uS的延時(shí)程序</p><p> TransferData(0x01,0); //Display Clear</p><p> delay(10); //大于10mS的延時(shí)程序</p><p>
67、; TransferData(0x06,0); </p><p> delay(100); //大于100uS的延時(shí)程序</p><p><b> }</b></p><p> /*****************傳送指令程序*********************/</p>
68、<p> void TransferData(char data1,char DI) </p><p><b> {</b></p><p><b> WRD=0;</b></p><p><b> RS=DI;</b></p><p><b&
69、gt; delay(1);</b></p><p> P0=data1; </p><p><b> E=1;</b></p><p><b> delay(1);</b></p><p><b> E=0;</b></p>
70、;<p><b> }</b></p><p> /***************字符位置顯示程序*******************/</p><p> void lcd_mesg(unsigned char const *adder1)</p><p><b> {</b></p>
71、;<p> unsigned char i;</p><p> TransferData(0x80,0); </p><p> delay(100);</p><p> for(i=0;i<16;i++) //32</p><p><b> {</b></p>
72、<p> TransferData(*adder1,1);</p><p><b> adder1++;</b></p><p><b> }</b></p><p><b> }</b></p><p> void lcd_mesg1(unsigne
73、d char const *adder1) </p><p> { unsigned char i;</p><p> TransferData(0x90,0); </p><p> delay(100);</p><p> for(i=0;i<16;i++) //32</p><p>&
74、lt;b> {</b></p><p> TransferData(*adder1,1);</p><p><b> adder1++;</b></p><p><b> }</b></p><p><b> }</b></p><
75、;p> void lcd_mesg2(unsigned char const *adder1) </p><p> { unsigned char i;</p><p> TransferData(0x88,0); </p><p> delay(100);</p><p> for(i=0;i<
76、16;i++) //32</p><p><b> {</b></p><p> TransferData(*adder1,1);</p><p><b> adder1++;</b></p><p><b> }</b></p><p><
77、;b> }</b></p><p> void lcd_mesg3(unsigned char const *adder1) </p><p> { unsigned char i;</p><p> TransferData(0x98,0); </p><p> delay(100);</p&
78、gt;<p> for(i=0;i<16;i++)</p><p><b> {</b></p><p> TransferData(*adder1,1);</p><p><b> adder1++;</b></p><p><b> }</b&g
79、t;</p><p><b> }</b></p><p> void DisplayGraphic(unsigned char const *adder)</p><p><b> {</b></p><p><b> int i,j;</b></p>
80、<p> //*******顯示上半屏內(nèi)容設(shè)置*******//</p><p> for(i=0;i<32;i++) </p><p><b> { </b></p><p> TransferData((0x80 + i),0); </p><p> Tr
81、ansferData(0x80,0); </p><p> for(j=0;j<16;j++)</p><p><b> {</b></p><p> TransferData(*adder,1);</p><p><b> adder++;</b></p>&
82、lt;p><b> }</b></p><p><b> } </b></p><p> //*******顯示下半屏內(nèi)容設(shè)置*******//</p><p> for(i=0;i<32;i++) </p><p><b> {<
83、/b></p><p> TransferData((0x80 + i),0); </p><p> TransferData(0x88,0); </p><p> for(j=0;j<16;j++)</p><p><b> {</b></p><p>
84、TransferData(*adder,1);</p><p><b> adder++;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p&
85、gt; 3.2.6 系統(tǒng)程序整體設(shè)計(jì)總結(jié)</p><p> 系統(tǒng)整體設(shè)計(jì)比較復(fù)雜。但是系統(tǒng)按照功能可分成幾個(gè)模塊,針對各個(gè)模塊進(jìn)行硬件設(shè)計(jì)、軟件編程就比較簡單,將復(fù)雜的程序簡單化,以上為幾個(gè)模塊的部分編程程序,XS128編程采用的是C語言或C++語言,以上部分程序?yàn)镃語言編程所成。</p><p><b> 第4章 設(shè)計(jì)總結(jié)</b></p><
86、;p> 本課設(shè)針對大功率電動機(jī)運(yùn)行狀態(tài)監(jiān)控計(jì)算機(jī)系統(tǒng)設(shè)計(jì),提出了用XS128單片機(jī)控制整個(gè)電機(jī)運(yùn)行狀態(tài)監(jiān)控的方法。整個(gè)系統(tǒng)按照功能分為傳感器模塊、顯示模塊、鍵盤模塊、報(bào)警模塊及相關(guān)電路組成。</p><p> 本系統(tǒng)在設(shè)計(jì)時(shí)首先設(shè)計(jì)電壓傳感器、電流傳感器、溫度傳感器、速度傳感器采集物理參數(shù)轉(zhuǎn)化為模擬信號,然后通過A/D轉(zhuǎn)換器轉(zhuǎn)換成XS128單片機(jī)可識別的數(shù)字信號,將其送入XS128單片機(jī)中進(jìn)行處理,隨后
87、將數(shù)據(jù)傳送至顯示模塊再進(jìn)行與設(shè)定報(bào)警值進(jìn)行比較,單片機(jī)會賦予執(zhí)行結(jié)構(gòu)相關(guān)行為。系統(tǒng)可以完成課程設(shè)計(jì)的設(shè)計(jì)要求。</p><p> 此次設(shè)計(jì)涉及單片機(jī)、傳感器、C語言、數(shù)字電路、模擬電路等相關(guān)知識。知識涉及量廣,我在此次課程設(shè)計(jì)中學(xué)到了很多知識,通過圖書館查閱資料和網(wǎng)上查閱資料學(xué)到了許多課本上并沒有介紹的專業(yè)相關(guān)知識。</p><p><b> 參考文獻(xiàn)</b>&l
88、t;/p><p> [1] 章德龍.單元機(jī)組集控運(yùn)行.北京:中國電力出版社,1993:</p><p> [2] 劉吉臻.協(xié)調(diào)控制與給水全程控制.北京:中國電力出版社,1995:83-85</p><p> [3] 李遵基.熱工自動控制系統(tǒng).北京:中國電力出版社,1997:</p><p> [4] 張玉鐸.王滿稼.熱工自動控制系統(tǒng).北京
89、:水利電力出版社,1985:</p><p> [5] 趙潤林.單片機(jī)原理與應(yīng)用教程.北京:北京大學(xué)出版社,2005:14-16</p><p> [6] 劉剛.單片機(jī)原理及應(yīng)用.北京:中國林業(yè)出版社,2006:5-23.</p><p> [7] 吳勤勤.控制儀表及裝置.北京:化學(xué)工業(yè)出版社,2002:40-105</p><p>
90、 [8] 吳永生.單片機(jī)與熱工測量及儀表.北京中國電力出版社,1995:242-249</p><p> [9] 鄭學(xué)堅(jiān).微型計(jì)算機(jī)原理及應(yīng)用.北京:清華大學(xué)出版社,2004:137-151</p><p> [10] 謝劍英.微型計(jì)算機(jī)控制技術(shù).北京:國防工業(yè)出版社,2001:45-55</p><p> [11] 陳章龍.實(shí)用單片機(jī)大全.哈爾濱:黑龍江科學(xué)
91、技術(shù)出版社,1989:</p><p> [12] 龐仕高.中國電子雜志 [J].1998.6 :</p><p> [13] 鄧星鐘.單片機(jī)PID控制[M].華中科技大學(xué)出版社,2002.5:</p><p> [14] XS128中文系統(tǒng)手冊 [M].飛思卡爾公司,2002.6: </p><p> [15] 廖常初.單片機(jī)編程及
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)課程設(shè)計(jì)
- vf計(jì)算機(jī)課程設(shè)計(jì)
- 計(jì)算機(jī)課程設(shè)計(jì)報(bào)告
- 基于組態(tài)軟件的大功率電機(jī)運(yùn)行狀態(tài)監(jiān)測系統(tǒng)設(shè)計(jì)
- 計(jì)算機(jī)課程設(shè)計(jì)----銷售管理系統(tǒng)
- 計(jì)算機(jī)課程設(shè)計(jì)---冒泡排序
- 電加熱爐計(jì)算機(jī)溫度測控系統(tǒng)設(shè)計(jì)-計(jì)算機(jī)課程設(shè)計(jì)
- 計(jì)算機(jī)課程設(shè)計(jì)--人事管理系統(tǒng)
- 計(jì)算機(jī)課程分析
- 計(jì)算機(jī)課程設(shè)計(jì)----實(shí)用網(wǎng)絡(luò)考試系統(tǒng)
- 微型計(jì)算機(jī)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)課程設(shè)計(jì)---二相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 微型計(jì)算機(jī)課程設(shè)計(jì)--數(shù)據(jù)采集系統(tǒng)
- 計(jì)算機(jī)課程設(shè)計(jì)——水箱水位控制系統(tǒng)設(shè)計(jì)
- 計(jì)算機(jī)課程設(shè)計(jì)---直流電機(jī)速度控制
- 計(jì)算機(jī)課件
- 中學(xué)計(jì)算機(jī)課程的教學(xué)設(shè)計(jì)
- 計(jì)算機(jī)課程設(shè)計(jì)--交通燈模擬控制
- 大功率速調(diào)管的計(jì)算機(jī)模擬方法研究.pdf
- 計(jì)算機(jī)運(yùn)算
評論
0/150
提交評論