版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p> 課程名稱:計(jì)算機(jī)控制系統(tǒng) </p><p> 設(shè)計(jì)題目:直流電機(jī)閉環(huán)調(diào)速</p><p> 院 系:電氣信息學(xué)院</p><p><b> 班 級(jí):</b></p><p><b> 姓 名:&l
2、t;/b></p><p><b> 學(xué) 號(hào):</b></p><p><b> 姓 名:</b></p><p><b> 學(xué) 號(hào):</b></p><p><b> 姓 名:</b></p><
3、p><b> 學(xué) 號(hào):</b></p><p><b> 指導(dǎo)教師: </b></p><p><b> 設(shè)計(jì)時(shí)間: </b></p><p><b> 摘要</b></p><p> 在電氣時(shí)代的今天,電動(dòng)機(jī)在工農(nóng)業(yè)生產(chǎn)、人
4、們?nèi)粘I钪衅鹬种匾淖饔谩V绷麟姍C(jī)是最常見(jiàn)的一種電機(jī),在各領(lǐng)域中得到廣泛的應(yīng)用。研究直流電機(jī)的控制和測(cè)量方法,對(duì)提高控制精度和響應(yīng)速度、節(jié)約能源等都具有重要意義。電機(jī)調(diào)速問(wèn)題一直是自動(dòng)化領(lǐng)域中比較重要的問(wèn)題之一。不同領(lǐng)域?qū)τ陔姍C(jī)的調(diào)速性能有著不同的要求,因此,不同的調(diào)速方法有著不同的應(yīng)用場(chǎng)合。</p><p> 為了提高直流調(diào)速系統(tǒng)的動(dòng)態(tài)、靜態(tài)性能,通常采用閉環(huán)控制系統(tǒng)(主要包括單閉環(huán)、雙閉環(huán))。而在對(duì)調(diào)
5、速指標(biāo)要求不高的場(chǎng)合,采用單閉環(huán)即可。閉環(huán)系統(tǒng)較之開(kāi)環(huán)系統(tǒng)能自動(dòng)偵測(cè)把輸出信號(hào)的一部分拉回到輸入端,與輸入信號(hào)相比較,其差值作為實(shí)際的輸入信號(hào);能自動(dòng)調(diào)節(jié)輸入量,能提高系統(tǒng)穩(wěn)定性。在對(duì)調(diào)速系統(tǒng)性能有較高要求的領(lǐng)域常利用直流電動(dòng)機(jī),但直流電動(dòng)機(jī)開(kāi)環(huán)系統(tǒng)穩(wěn)定性不能滿足要求,可利用轉(zhuǎn)速單閉環(huán)提高穩(wěn)態(tài)精度。</p><p> 本次課程設(shè)計(jì)利用軟件定時(shí)方式采用Intel 8255A可編程外設(shè)接口芯片唐都TD-PITC 實(shí)
6、驗(yàn)系統(tǒng)上模擬直流電動(dòng)機(jī)閉環(huán)調(diào)速系統(tǒng),A/D轉(zhuǎn)換器實(shí)現(xiàn)模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換,設(shè)置電機(jī)轉(zhuǎn)速的給定值,通過(guò)PWM方式可實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的調(diào)節(jié),LED燈顯示電機(jī)轉(zhuǎn)速的大小狀態(tài)。</p><p> 關(guān)鍵字:閉環(huán)調(diào)速、inter 8255A、A/D轉(zhuǎn)換器、PWM、LED</p><p><b> 目 錄</b></p><p>
7、<b> 摘要</b></p><p> 1 控制系統(tǒng)總體設(shè)計(jì)方案……………………………………………………………3</p><p> 2 系統(tǒng)的組成及工作原理……………………………………………………………4</p><p> 2.1 8255工作原理……………………………………………………………4</p><p>
8、; 2.2 轉(zhuǎn)速調(diào)節(jié)原理………………………………………………………………5</p><p> 2.3 A/D轉(zhuǎn)換原理………………………………………………………………5</p><p> 2.4 LED燈的工作原理…………………………………………………………6</p><p> 2.5 實(shí)現(xiàn)兩位十進(jìn)制數(shù)的顯示…………………………………………………6</p
9、><p> 3 硬件設(shè)計(jì)……………………………………………………………………………7</p><p> 3.1 接線圖………… …………………………………………………………7</p><p> 4 軟件設(shè)計(jì)……………………………………………………………………………8</p><p> 4.1 轉(zhuǎn)速調(diào)節(jié)程序設(shè)計(jì)框圖…………………………………
10、…………………8</p><p> 4.2 主程序流程圖………………………………………………………………9</p><p> 4.3 程序清單…………………………………………………………………10</p><p> 5 調(diào)試及結(jié)果………………………………………………………………………21</p><p> 5.1 調(diào)試步驟………………
11、…………………………………………………21</p><p> 5.2結(jié)果分析……………………………………………………………………21</p><p> 5.2結(jié)論…………………………………………………………………………21</p><p> 參考文獻(xiàn)……………………………………………………………………………22</p><p> 1
12、控制系統(tǒng)總體設(shè)計(jì)方案</p><p> 本設(shè)計(jì)是利用PC微機(jī)一臺(tái)、TD-PIT實(shí)驗(yàn)系統(tǒng)一套實(shí)現(xiàn)對(duì)直流電機(jī)轉(zhuǎn)速調(diào)節(jié)的應(yīng)用。</p><p> 編寫(xiě)程序,用ADC0809完成模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換。輸入模擬信號(hào)有A/D轉(zhuǎn)換單元可調(diào)電位器提供的0~5V,將其轉(zhuǎn)換后的數(shù)字信號(hào)讀入累加器,做為控制電機(jī)的給定轉(zhuǎn)速。用8255的B口作為直流電機(jī)的控制信號(hào)輸出口,通過(guò)對(duì)電機(jī)轉(zhuǎn)速反饋量的運(yùn)算,調(diào)節(jié)控制
13、信號(hào),達(dá)到控制電機(jī)勻速轉(zhuǎn)動(dòng)的的作用。并將累加器中給定的轉(zhuǎn)速和當(dāng)前測(cè)量轉(zhuǎn)速顯示在屏幕上。再通過(guò)LED燈顯示出轉(zhuǎn)速的大小變化。</p><p> 整個(gè)程序設(shè)計(jì)過(guò)程分為基本功能實(shí)現(xiàn)階段,檢測(cè)程序階段,功能擴(kuò)展和功能驗(yàn)證及程序補(bǔ)充四個(gè)實(shí)驗(yàn)階段。</p><p> 基本功能實(shí)驗(yàn)階段,在“輕松編程”軟件中完成,主要完成各個(gè)子程序的調(diào)試;在檢測(cè)程序階段,在“輕松編程”軟件中通過(guò)編譯和鏈接,并反復(fù)檢查
14、沒(méi)有邏輯錯(cuò)誤;調(diào)試結(jié)果正確以后在進(jìn)行相應(yīng)的連接,將各個(gè)子模塊聯(lián)系起來(lái)功能擴(kuò)展及程序的補(bǔ)充,在實(shí)驗(yàn)室里完成,使用唐都硬件實(shí)驗(yàn)箱,用TDPIT來(lái)編程實(shí)現(xiàn);功能驗(yàn)證階段,在實(shí)驗(yàn)室里完成。</p><p> 2 系統(tǒng)的組成及工作原理</p><p> 2.1 8255工作原理:</p><p> 本設(shè)計(jì)利用8255的A口作為輸出口,控制8個(gè)單色LED燈,來(lái)實(shí)現(xiàn)電機(jī)轉(zhuǎn)速
15、的大小調(diào)節(jié)。</p><p> 并行接口是以數(shù)據(jù)的字節(jié)為單位與I/O設(shè)備或被控制對(duì)象之間傳遞信息,CPU和接口之間的數(shù)據(jù)傳遞總是并行的,即可以同時(shí)進(jìn)行傳遞8位,16位,32位等。8255可編程外圍接口芯片是具有A、B、C三個(gè)并行接口,+5V單電源供電,能在以下三種方式下工作:方式0—基本輸入/出方式、方式1—選通輸入/出方式、方式2—雙向選通工作方式。其控制字、內(nèi)部結(jié)構(gòu)圖和引腳圖見(jiàn)圖1-1-1、圖1-1-2.&
16、lt;/p><p> 圖2-1-1 8255控制字</p><p> 圖2-1-2 8255內(nèi)部結(jié)構(gòu)圖和引腳圖</p><p> 2.2 轉(zhuǎn)速調(diào)節(jié)原理:</p><p> PWM的占空比決定輸出到直流電機(jī)的平均電壓.</p><p> PWM不是調(diào)節(jié)電流的.PWM的意思是脈寬調(diào)節(jié),也就是調(diào)節(jié)方波高電平和低電平的時(shí)
17、間比,一個(gè)20%占空比波形,會(huì)有20%的高電平時(shí)間和80%的低電平時(shí)間,而一個(gè)60%占空比的波形則具有60%的高電平時(shí)間和40%的低電平時(shí)間,占空比越大,高電平時(shí)間越長(zhǎng),則輸出的脈沖幅度越高,即電壓越高.如果占空比為0%,那么高電平時(shí)間為0,則沒(méi)有電壓輸出.如果占空比為100%,那么輸出全部電壓. 所以通過(guò)調(diào)節(jié)占空比,可以實(shí)現(xiàn)調(diào)節(jié)輸出電壓的目的,而且輸出電壓可以無(wú)級(jí)連續(xù)調(diào)節(jié).</p><p> 在使用PWM控
18、制的直流無(wú)刷電動(dòng)機(jī)中,PWM控制有兩種方式: </p><p> ?。?)使用PWM信號(hào),控制三極管的導(dǎo)通時(shí)間,導(dǎo)通的時(shí)間越長(zhǎng),那么做功的時(shí)間越長(zhǎng),電機(jī)的轉(zhuǎn)速就越高 (2)使用PWM控制信號(hào)控制三極管導(dǎo)通時(shí)間,改變控制電壓高低來(lái)實(shí)現(xiàn) </p><p> 直流電機(jī)單元由DC12V、1.1W的直流電機(jī),小磁鋼,霍爾元件及輸出電路構(gòu)成。PWM示意圖如圖2-2-1所示。通過(guò)調(diào)節(jié)T1的脈沖寬度
19、,改變T1的占空比,從而改變輸出,達(dá)到改變直流電機(jī)轉(zhuǎn)速的目的</p><p> 圖2-2-1 PWM示意圖</p><p> 利用8255的PB0產(chǎn)生脈沖信號(hào)作為控制量,經(jīng)驅(qū)動(dòng)電路驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)。霍爾測(cè)速元件輸出的脈沖信號(hào)記錄電機(jī)轉(zhuǎn)速構(gòu)成反饋量。在參數(shù)給定的情況下,經(jīng)PID運(yùn)算,電機(jī)可在控制量的作用下,按PC機(jī)累加器給定的轉(zhuǎn)速運(yùn)轉(zhuǎn)。通過(guò)PC的0號(hào)通道,設(shè)置為輸出1ms方波,作為采樣時(shí)鐘
20、,PB0產(chǎn)生PWM脈沖計(jì)時(shí)及轉(zhuǎn)速累加,系統(tǒng)總線上INTR中斷用于測(cè)量電機(jī)轉(zhuǎn)速。</p><p> 2.3 A\D轉(zhuǎn)換原理</p><p> 圖2-3-1 ADC0809外部管腳圖</p><p> 本設(shè)計(jì)用ADC0809完成模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換。輸入模擬信號(hào)有A/D轉(zhuǎn)換單元可調(diào)電位器提供的0~5V,將其轉(zhuǎn)換后的數(shù)字信號(hào)讀入累加器,做為控制電機(jī)的給定轉(zhuǎn)速。&
21、lt;/p><p> 2.4 LED燈的工作原理:</p><p> LED燈顯示器有8個(gè)單色發(fā)光二極管構(gòu)成,在共陽(yáng)極接法中,各二極管的陽(yáng)極被連在一起,使用的時(shí)候要將它與+5V項(xiàng)鏈,而把各段的陰極連到器件的相應(yīng)引腳上。當(dāng)某的LED燈的引腳為低電平的時(shí)候,該燈工作。 圖2-4-1 LED燈管腳圖</p><p> 通過(guò)8255的A口信號(hào)
22、作為輸入信號(hào),控制各燈的工作狀態(tài)。</p><p> 來(lái)顯示出此時(shí)電機(jī)轉(zhuǎn)速的大小變化。</p><p> 1.5 實(shí)現(xiàn)兩位十進(jìn)制數(shù)的顯示:</p><p> 在計(jì)算機(jī)中,對(duì)數(shù)字的輸入和輸出是用二進(jìn)制進(jìn)行的,而在計(jì)算機(jī)內(nèi)部十進(jìn)制數(shù)要轉(zhuǎn)換為二進(jìn)制來(lái)表示,要實(shí)現(xiàn)兩位十進(jìn)制數(shù)的顯示,必須將他們轉(zhuǎn)換為目前最普遍使用的字符編碼ASCII碼。</p><
23、p> 本設(shè)計(jì)中通過(guò)作除法,即拆分法,將兩位十進(jìn)制AB轉(zhuǎn)換為A*10+B的形式,再通過(guò)A+30H與B+30H來(lái)轉(zhuǎn)換為ASCII碼,若溢出,加7運(yùn)算。</p><p><b> 3 硬件設(shè)計(jì)</b></p><p><b> 3.1 接線圖:</b></p><p> 圖3-1-1 A\D轉(zhuǎn)換接線圖</p
24、><p> ADC轉(zhuǎn)換單元中,D0-D7分別與系統(tǒng)總線的XD0-XD7對(duì)應(yīng)相連,WR、RD、CLK分別與系統(tǒng)總線的XIOW、XIOR、CLK相連,片選引腳與系統(tǒng)IOY0相連,A、B、C接地,IN0接+5V直流電壓源,如圖 3-1-1所示。 </p><p> 圖3-1-2 直流電機(jī)閉環(huán)接線圖</p><p&
25、gt; 直流電機(jī)閉環(huán)接線中,8255芯片的A口作為輸出信號(hào)與LED燈項(xiàng)連,即PA0-PA7與系統(tǒng)總線的XD0-XD7相連,同時(shí)與ADC0809的D0-D7相連;B口的PB0作為直流電機(jī)控制信號(hào)輸出口,經(jīng)驅(qū)動(dòng)電路A口,與直流電機(jī)相連驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn);片選信號(hào)線接系統(tǒng)的IOY1,讀寫(xiě)信號(hào)線分別對(duì)應(yīng)系統(tǒng)的XIO、RXIOW相連,其中,系統(tǒng)的中斷INTR引腳用于測(cè)量電機(jī)轉(zhuǎn)速與直流電機(jī)的HR引腳相連。</p><p><
26、;b> 4 軟件詳細(xì)設(shè)計(jì)</b></p><p> 4.1 轉(zhuǎn)速調(diào)節(jié)程序設(shè)計(jì)框圖:</p><p> 轉(zhuǎn)速調(diào)節(jié)主程序圖 (b)測(cè)速中斷處理程序圖</p><p> ?。╟)定時(shí)采樣中斷處理程序圖</p><p> 圖4-1-1轉(zhuǎn)速調(diào)節(jié)程序設(shè)計(jì)框圖</p><p&
27、gt; 4.2 主程序流程圖:</p><p> 圖4-2-1主程序流程圖</p><p><b> 4.3 程序清單:</b></p><p> 根據(jù)主程序流程圖和轉(zhuǎn)速調(diào)節(jié)設(shè)計(jì)框圖寫(xiě)出相應(yīng)程序,在“輕松編程”軟件中完成各個(gè)子程序的調(diào)試;通過(guò)編譯和鏈接,并反復(fù)檢查沒(méi)有邏輯錯(cuò)誤;調(diào)試結(jié)果正確以后在進(jìn)行相應(yīng)的連接,將各個(gè)子模塊聯(lián)系起來(lái),由于
28、自己不具備硬件資源,所以調(diào)試的時(shí)候只能檢查程序本身的錯(cuò)誤,經(jīng)過(guò)調(diào)試能顯示各個(gè)子程序的功能,同時(shí)嵌套有延時(shí)子程序,方便程序的調(diào)用,端口地址的選擇與確定,在實(shí)驗(yàn)室里完成,具體程序設(shè)計(jì)如下:</p><p> INTR_IVADD EQU 0038H ;INTR對(duì)應(yīng)的中斷矢量地址</p><p> INTR_OCW1 EQU 21H ;INTR對(duì)
29、應(yīng)PC機(jī)內(nèi)部8259的OCW1地址</p><p> INTR_OCW2 EQU 20H ;INTR對(duì)應(yīng)PC機(jī)內(nèi)部8259的OCW2地址</p><p> INTR_IM EQU 0BFH ;INTR對(duì)應(yīng)的中斷屏蔽字</p><p> PCI_INTCSR EQU 0CC38H ;PCI卡
30、中斷控制寄存器地址</p><p> IOY0 EQU 0600H ;片選IOY0對(duì)應(yīng)的端口始地址</p><p> IOY1 EQU 0640H ;片選IOY0對(duì)應(yīng)的端口始地址</p><p> MY8255_A EQU IOY0+00H*4 ;8255的A口地址</p&g
31、t;<p> MY8255_B EQU IOY0+01H*4 ;8255的B口地址</p><p> MY8255_C EQU IOY0+02H*4 ;8255的C口地址</p><p> MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址</p><p> AD0809
32、 EQU IOY1+00H ;AD0809的端口地址</p><p> STACK1 SEGMENT STACK</p><p> DW 64 DUP(?)</p><p> TOP LABEL WORD</p><p> STACK1 ENDS</p><p&
33、gt; DATA SEGMENT</p><p> TABLE1 DB 'Assumed Fan Speed:(/s)',0AH,0DH,'$' ;字符串變量</p><p> TABLE2 DB 'Current Fan Speed:(/s)',0AH,0DH,'$' ;字符串變量&l
34、t;/p><p> ENT DB 0AH,0DH,'$' ;換行,回車(chē)</p><p> CS_BAK DW ? ;保存INTR原中斷處理程序入口段地址的變量</p><p> IP_BAK DW ? ;保存INTR原中斷處理程序入口偏移地址的變量</p><p> IM_B
35、AK DB ? ;保存INTR原中斷屏蔽字的變量</p><p> CS_BAK1 DW ? ;保存定時(shí)器0中斷處理程序入口段地址的變量</p><p> IP_BAK1 DW ? ;保存定時(shí)器0中斷處理程序入口偏移地址的變量</p><p> IM_BAK1 DB ? ;保存定時(shí)器0中斷屏蔽字的變量&
36、lt;/p><p> TS DB 14H ;采樣周期</p><p> SPEC DW 55 ;轉(zhuǎn)速給定值</p><p> IBAND DW 0060H ;積分分離值</p><p> KPP DW 1060H
37、 ;比例系數(shù)</p><p> KII DW 0010H ;積分系數(shù)</p><p> KDD DW 0020H ;微分系數(shù)</p><p> YK DW ?</p><p> CK DB ?</p><
38、;p> VADD DW ?</p><p> ZV DB ?</p><p> ZVV DB ?</p><p> TC DB ?</p><p> FPWM DB ?</p><p> CK_1 D
39、B ?</p><p> EK_1 DW ?</p><p> AEK_1 DW ?</p><p> BEK DW ?</p><p> AAAA DB ?</p><p> VAA DB ?</p><
40、p> BBB DB ?</p><p> VBB DB ?</p><p> MARK DB ?</p><p> R0 DW ?</p><p> R1 DW ?</p><p> R2 DW ?</p&g
41、t;<p> R3 DW ?</p><p> R4 DW ?</p><p> R5 DW ?</p><p> R6 DW ?</p><p> R7 DB ?</p><p> R8 DW ?
42、</p><p> DATA ENDS</p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,DS:DATA</p><p> START: MOV AX,DATA</p><p> MOV DS,AX</p><p
43、> MOV DX,OFFSET TABLE1 ;顯示字符串1</p><p> MOV AH,09H</p><p> INT 21H</p><p> MOV AX,SPEC ;顯示給定值</p><p> CALL DECSHOW&
44、lt;/p><p> MOV DX,OFFSET ENT ;回車(chē),換行</p><p> MOV AH,09H</p><p> INT 21H</p><p> MOV DX,OFFSET TABLE2 ;顯示字符串2</p><p>
45、 MOV AH,09H</p><p> INT 21H</p><p><b> CLI</b></p><p> MOV AX,0000H</p><p> MOV ES,AX</p><p> MOV DI,0020H&l
46、t;/p><p> MOV AX,ES:[DI]</p><p> MOV IP_BAK1,AX ;保存定時(shí)器0中斷處理程序入口偏移地址</p><p> MOV AX,OFFSET TIMERISR</p><p> MOV ES:[DI],AX ;設(shè)置實(shí)驗(yàn)定時(shí)中斷處理程序入口偏移地址&
47、lt;/p><p> ADD DI,2</p><p> MOV AX,ES:[DI]</p><p> MOV CS_BAK1,AX ;保存定時(shí)器0中斷處理程序入口段地址</p><p> MOV AX,SEG TIMERISR</p><p> MOV
48、 ES:[DI],AX ;設(shè)置實(shí)驗(yàn)定時(shí)中斷處理程序入口段地址</p><p> IN AL,21H</p><p> MOV IM_BAK1,AL ;保存INTR原中斷屏蔽字</p><p> AND AL,0F7H</p><p> OUT 21H,AL ;打開(kāi)定時(shí)
49、器0中斷屏蔽位</p><p> MOV DX,PCI_INTCSR ;初始化PCI卡中斷控制寄存器</p><p> MOV AX,1F00H ;向PCI_INTCSR中寫(xiě)入003F1F00H</p><p> OUT DX,AX</p><p> ADD D
50、X,2</p><p> MOV AX,003FH</p><p> OUT DX,AX</p><p> MOV DI,INTR_IVADD</p><p> MOV AX,ES:[DI]</p><p> MOV IP_BAK,AX ;保存I
51、NTR原中斷處理程序入口偏移地址</p><p> MOV AX,OFFSET MYISR</p><p> MOV ES:[DI],AX ;設(shè)置當(dāng)前中斷處理程序入口偏移地址</p><p> ADD DI,2</p><p> MOV AX,ES:[DI]</p>&l
52、t;p> MOV CS_BAK,AX ;保存INTR原中斷處理程序入口段地址</p><p> MOV AX,SEG MYISR</p><p> MOV ES:[DI],AX ;設(shè)置當(dāng)前中斷處理程序入口段地址</p><p> MOV DX,INTR_OCW1</p><p&g
53、t; IN AL,DX</p><p> MOV IM_BAK,AL ;保存INTR原中斷屏蔽字</p><p> AND AL,INTR_IM</p><p> OUT DX,AL ;打開(kāi)INTR的中斷屏蔽位</p><p> MOV VADD,0000
54、H ;變量的初始化</p><p> MOV ZV,00H</p><p> MOV ZVV,00H</p><p> MOV CK,00H</p><p> MOV YK,0000H</p><p> MOV CK_1,00H</p>
55、<p> MOV EK_1,0000H</p><p> MOV AEK_1,0000H</p><p> MOV BEK,0000H</p><p> MOV BBB,00H</p><p> MOV VBB,00H</p><p>
56、 MOV R0,0000H</p><p> MOV R1,0000H</p><p> MOV R2,0000H</p><p> MOV R3,0000H</p><p> MOV R4,0000H</p><p> MOV R5,
57、0000H</p><p> MOV R6,0000H</p><p> MOV R7,00H</p><p> MOV R8,0000H</p><p> MOV MARK,00H</p><p> MOV FPWM,01H</p>
58、<p> MOV AAAA,7FH</p><p> MOV VAA,7FH</p><p> MOV TC,00H</p><p> MOV AL,80H ;初始化8255</p><p> MOV DX,MY8255_MODE</p>
59、<p> OUT DX,AL</p><p> MOV AL,00H</p><p> MOV DX,MY8255_B</p><p> OUT DX,AL</p><p> MOV DX,MY8255_A</p><p> OUT
60、 DX,AL</p><p> MOV DX,PC8254_MODE ;初始化PC機(jī)定時(shí)器0,定時(shí)1ms</p><p> MOV AL,36H</p><p> OUT DX,AL</p><p> MOV DX,PC8254_COUNT0</p>
61、<p> MOV AL,8FH</p><p> OUT DX,AL</p><p> MOV AL,04H</p><p> OUT DX,AL</p><p><b> STI</b></p><p> M1: MOV
62、 AL,TS ;判斷采樣周期到否?</p><p> SUB AL,TC</p><p> JNC M1 ;沒(méi)到則繼續(xù)等待</p><p> MOV TC,00H ;采樣周期到,將采樣周期變量清0</p><p> MOV AL,ZVV&
63、lt;/p><p> MOV AH,00H</p><p> MOV YK,AX ;得到反饋量YK</p><p> LOOP1: MOV DX,AD0809 ;啟動(dòng)A/D轉(zhuǎn)換</p><p> OUT DX,AL</p><p> CALL
64、 DALLY</p><p> MOV DX,AD0809 ;讀出轉(zhuǎn)換結(jié)果</p><p> IN AL,DX</p><p> MOV DX,MY8255_A ;將結(jié)果顯示于LED</p><p> OUT DX,AL</p><p> MOV
65、 BL,AL</p><p> MOV BH,AL</p><p> CALL PID ;調(diào)用PID子程序,得到控制量CK</p><p> MOV AL,CK ;把控制量轉(zhuǎn)化成PWM輸出</p><p> SUB AL,80H</p>&l
66、t;p> JC IS0</p><p> MOV AAAA,AL</p><p> JMP COU</p><p> IS0: MOV AL,10H ;電機(jī)的啟動(dòng)值不能低于10H</p><p> MOV AAAA,AL</p><p
67、> COU: MOV AL,7FH</p><p> SUB AL,AAAA</p><p> MOV BBB,AL</p><p> MOV AX,YK ;將反饋值YK送到屏幕顯示</p><p> CALL DECSHOW</p><
68、;p> MOV DL,0DH ;回車(chē)</p><p> MOV AH,02H</p><p> INT 21H</p><p> MOV AH,1 ;判斷是否有按鍵按下</p><p> INT 16H</p><p>
69、 JZ M1 ;無(wú)按鍵則跳回繼續(xù)等待,有則退出</p><p> EXIT: CLI</p><p> MOV AL,00H ;退出時(shí)停止電機(jī)運(yùn)轉(zhuǎn)</p><p> MOV DX,MY8255_B</p><p> OUT DX,AL</p>
70、<p> MOV DX,PC8254_MODE ;恢復(fù)PC機(jī)定時(shí)器0狀態(tài)</p><p> MOV AL,36H</p><p> OUT DX,AL</p><p> MOV DX,PC8254_COUNT0</p><p> MOV AL
71、,00H</p><p> OUT DX,AL</p><p> MOV AL,00H</p><p> OUT DX,AL</p><p> MOV DX,PCI_INTCSR ;恢復(fù)PCI卡中斷控制寄存器</p><p> MOV
72、 AX,0000H</p><p> OUT DX,AX</p><p> MOV AX,0000H ;恢復(fù)INTR原中斷矢量</p><p> MOV ES,AX</p><p> MOV DI,INTR_IVADD</p><p> MOV
73、 AX,IP_BAK ;恢復(fù)INTR原中斷處理程序入口偏移地址</p><p> MOV ES:[DI],AX</p><p> ADD DI,2</p><p> MOV AX,CS_BAK ;恢復(fù)INTR原中斷處理程序入口段地址</p><p> MOV ES:[DI],
74、AX</p><p> MOV DX,INTR_OCW1 ;恢復(fù)INTR原中斷屏蔽寄存器的屏蔽字</p><p> MOV AL,IM_BAK</p><p> OUT DX,AL</p><p> MOV DI,0020H</p><p>
75、 MOV AX,IP_BAK1 ;恢復(fù)定時(shí)器0中斷處理程序入口偏移地址</p><p> MOV ES:[DI],AX</p><p> ADD DI,2</p><p> MOV AX,CS_BAK1 ;恢復(fù)定時(shí)器0中斷處理程序入口段地址</p><p> MOV E
76、S:[DI],AX</p><p> MOV AL,IM_BAK1</p><p> OUT 21H,AL ;恢復(fù)屏蔽字</p><p><b> STI</b></p><p> MOV AX,4C00H</p><p> INT
77、 21H</p><p> MYISR PROC NEAR ;系統(tǒng)總線INTR中斷處理程序</p><p> PUSH AX</p><p> PUSH CX</p><p> PUSH DX</p><p> MOV AX,DATA<
78、;/p><p> MOV DS,AX</p><p> MOV AL,MARK</p><p> CMP AL,01H</p><p> JZ IN1</p><p> MOV MARK,01H</p><p> JMP
79、 IN2</p><p> IN1: MOV MARK,00H ;計(jì)算轉(zhuǎn)速</p><p> VV: MOV DX,0000H</p><p> MOV AX,03E8H</p><p> MOV CX,VADD</p><p> CMP
80、 CX,0000H</p><p> JZ MM1</p><p> DIV CX</p><p> MM: MOV ZV,AL</p><p> MOV VADD,0000H</p><p> MM1: MOV AL,ZV</p&g
81、t;<p> MOV ZVV,AL</p><p> IN2: MOV DX,PCI_INTCSR ;清PCI卡控制寄存器標(biāo)志位</p><p> SUB DX,19H</p><p> IN AL,DX</p><p> MOV DX
82、,PCI_INTCSR</p><p> ADD DX,2</p><p> MOV AX,003FH</p><p> OUT DX,AX</p><p> MOV DX,INTR_OCW2 ;向PC機(jī)內(nèi)部8259發(fā)送中斷結(jié)束命令</p><p
83、> MOV AL,20H</p><p> OUT DX,AL</p><p> MOV AL,20H</p><p> OUT 20H,AL</p><p> POP DX</p><p> POP CX</p>
84、<p> POP AX</p><p><b> IRET</b></p><p> MYISR ENDP</p><p> TIMERISR PROC NEAR ;PC機(jī)定時(shí)器0中斷處理程序</p><p> PUSH AX</p>&
85、lt;p> PUSH CX</p><p> PUSH DX</p><p> MOV AX,DATA</p><p> MOV DS,AX</p><p> INC TC ;采樣周期變量加1</p><p> CALL
86、 KJ</p><p><b> CLC</b></p><p> CMP MARK,01H</p><p> JC TT1</p><p> INC VADD</p><p> CMP VADD,0700H ;轉(zhuǎn)速值溢出,賦極值&l
87、t;/p><p> JC TT1</p><p> MOV VADD,0700H</p><p> MOV MARK,00H</p><p> TT1: MOV AL,20H ;中斷結(jié)束,發(fā)EOI命令</p><p> OUT 20H,AL
88、</p><p> POP DX</p><p> POP CX</p><p> POP AX</p><p><b> IRET</b></p><p> TIMERISR ENDP</p><p> KJ PROC
89、 NEAR ;PWM子程序</p><p> PUSH AX</p><p> CMP FPWM,01H ;PWM為1,產(chǎn)生PWM的高電平</p><p> JNZ TEST2</p><p> CMP VAA,00H</p><p>
90、 JNZ ANOT0</p><p> MOV FPWM,02H</p><p> MOV AL,BBB</p><p><b> CLC</b></p><p> RCR AL,01H</p><p> MOV VBB,AL&
91、lt;/p><p> JMP TEST2</p><p> ANOT0: DEC VAA</p><p> MOV AL, 01H ;PB0=1 電機(jī)轉(zhuǎn)動(dòng)</p><p> MOV DX, MY8255_B</p><p> OUT DX,AL
92、</p><p> TEST2: CMP FPWM,02H ;PWM為2,產(chǎn)生PWM的低電平</p><p> JNZ OUTT</p><p> CMP VBB,00H</p><p> JNZ BNOTO</p><p> MOV FPW
93、M,01H</p><p> MOV AL,AAAA</p><p><b> CLC</b></p><p> RCR AL,01H</p><p> MOV VAA,AL</p><p> JMP OUTT</p><
94、;p> BNOT0: DEC VBB</p><p> MOV AL,00H ;PB0=0 電機(jī)停止</p><p> MOV DX,MY8255_B</p><p> OUT DX,AL</p><p> OUTT: POP AX</p>
95、<p><b> RET</b></p><p><b> KJ ENDP</b></p><p> PID: MOV AX,BX ;PID子程序</p><p> SUB AX,YK ;求偏差EK</p><p> MOV
96、 R0,AX</p><p> MOV R1,AX</p><p> SUB AX,EK_1</p><p> MOV R2,AX</p><p> SUB AX,AEK_1 ;求BEK</p><p> MOV BEK,AX<
97、/p><p> MOV R8,AX</p><p> MOV AX,R1 ;求偏差變化量AEK</p><p> MOV EK_1,AX</p><p> MOV AX,R2</p><p> MOV AEK_1,AX</p>
98、<p> TEST R1,8000H</p><p> JZ EK1 ;若偏差EK為正數(shù),則不需要求補(bǔ)碼</p><p> NEG R1 ;若偏差EK為負(fù)數(shù),則求偏差EK的補(bǔ)碼</p><p> EK1: MOV AX,R1 ;判斷偏差EK是否在積分分離
99、值的范圍內(nèi)</p><p> SUB AX,IBAND</p><p> JC II ;在積分分離值范圍內(nèi),則跳轉(zhuǎn)到II,計(jì)算積分項(xiàng)</p><p> MOV R3,00H ;若不在積分分離值范圍內(nèi),則將積分項(xiàng)清0</p><p> JMP DDD
100、 ;計(jì)算微分項(xiàng)</p><p> II: MOV AL,TS ;計(jì)算積分項(xiàng),結(jié)果放在R3變量中(R3=EK*TS/KII)</p><p> MOV AH,00H ;其中TS和KII均為正數(shù),所以R3的正負(fù)由EK決定</p><p> MOV CX,R1</p><p>
101、 MUL CX</p><p> MOV CX,KII</p><p> DIV CX</p><p> MOV R3,AX</p><p> TEST R0,8000H ;判斷積分項(xiàng)的正負(fù)</p><p> JZ DDD
102、 ;為正數(shù),則跳轉(zhuǎn)去計(jì)算微分項(xiàng)</p><p> NEG R3 ;為負(fù)數(shù),則將積分項(xiàng)的結(jié)果求補(bǔ)碼</p><p> DDD: TEST BEK,8000H ;判斷BEK的正負(fù)</p><p> JZ DDD1 ;為正數(shù),則BEK不變</p><p> N
103、EG BEK ;為負(fù)數(shù),則求BEK的補(bǔ)碼</p><p> DDD1: MOV AX,BEK ;計(jì)算微分項(xiàng)(R4=KDD*BEK/8TS)</p><p> MOV CX,KDD</p><p> MUL CX</p><p> PUSH AX<
104、;/p><p> PUSH DX</p><p> MOV AL,TS</p><p> MOV AH,00H ;將微分項(xiàng)縮小8倍,防止溢出</p><p> MOV CX,0008H</p><p> MUL CX</p><
105、;p> MOV CX,AX</p><p> POP DX</p><p> POP AX</p><p> DIV CX</p><p> MOV R4,AX</p><p> TEST R8,8000H ;判斷微分項(xiàng)的正負(fù)
106、</p><p> JZ DD1 ;為正數(shù),則結(jié)果不需要求補(bǔ)碼</p><p> NEG R4 ;為負(fù)數(shù),則微分項(xiàng)結(jié)果R4求補(bǔ)碼</p><p> DD1: MOV AX,R3 ;積分項(xiàng)和微分項(xiàng)相加,結(jié)果放在R5變量中</p><p> ADD
107、 AX,R4</p><p> MOV R5,AX</p><p> JO L9 ;判斷溢出</p><p> L2: MOV AX,R5</p><p> ADD AX,R2</p><p> MOV R6,AX
108、 ;R6=R5+R2=積分項(xiàng)+微分項(xiàng)+AEK</p><p> JO L3</p><p> L5: MOV AX,R6 ;計(jì)算KPP*R6</p><p> MOV CX,KPP</p><p> IMUL CX</p><p> MOV
109、 CX,1000H</p><p> IDIV CX</p><p> MOV CX,AX</p><p> RCL AH,01H ;判斷溢出,溢出賦極值</p><p><b> PUSHF</b></p><p> RCR
110、 AL,01H</p><p><b> POPF</b></p><p> JC LLL1</p><p> CMP CH,00H</p><p> JZ LLL2</p><p> MOV AL,7FH</p>&l
111、t;p> JMP LLL2</p><p> LLL1: CMP CH,0FFH</p><p> JZ LLL2</p><p> MOV AL,80H</p><p> LLL2: MOV R7,AL ;CK=CK_1+CK</p>
112、<p> ADD AL,CK_1</p><p> JO L8</p><p> L18: MOV CK_1,AL</p><p> ADD AL,80H</p><p> MOV CK,AL</p><p><b> R
113、ET</b></p><p> L8: TEST R7,80H ;CK溢出處理程序</p><p> JNZ L17</p><p> MOV AL,7FH ;若為正溢出,則賦給正極值7FH</p><p> JMP L18</p><
114、p> L17: MOV AL,80H ;若為負(fù)溢出,則賦給賦極值80H</p><p> JMP L18</p><p> L9: TEST R3,8000H</p><p> JNZ L1</p><p> MOV R5,7FFFH ;若為正溢出,
115、則賦給正極值7FFFH</p><p> JMP L2</p><p> L1: MOV R5,8000H ;若為負(fù)溢出,則賦給負(fù)極值8000H</p><p> JMP L2</p><p> L3: TEST R2,8000H</p><p> JN
116、Z L4</p><p> MOV R6,7FFFH</p><p> JMP L5</p><p> L4: MOV R6,8000H</p><p> JMP L5</p><p> DALLY PROC NEAR ;
117、軟件延時(shí)子程序</p><p> PUSH CX</p><p> PUSH AX</p><p> MOV CX,4000H</p><p> D1: MOV AX,0600H</p><p> D2: DEC AX</p><
118、p> JNZ D2</p><p> LOOP D1</p><p> POP AX</p><p> POP CX</p><p><b> RET</b></p><p> DALLY ENDP</p><p
119、> DECSHOW PROC NEAR ;完成兩位十進(jìn)制數(shù)顯示子程序</p><p> MOV DX,0</p><p> MOV BX,10 ;計(jì)算AX/10</p><p> DIV BX</p><p> ADD AL,30H
120、 ;商+30H,即為十位數(shù)ASCII碼</p><p> MOV AH,0EH</p><p> INT 10H</p><p> ADD DL,30H ;余+30H,即為個(gè)位數(shù)ASCII碼</p><p> MOV AH,2</p><p> INT
121、 21H</p><p><b> RET</b></p><p> DECSHOW ENDP</p><p> CODE ENDS</p><p> END START</p><p><b> 5 調(diào)試及結(jié)果</b></p>
122、;<p><b> 5.1 調(diào)試步驟:</b></p><p> ?。?)確認(rèn)從PC機(jī)引出的兩根扁平電纜已經(jīng)連接在平臺(tái)上。</p><p> (2)首先運(yùn)行CHECK程序,查看I/O空間始地址。</p><p> (3)利用查出的地址編寫(xiě)程序,然后編譯連接。</p><p> ?。?)參照接線圖連接電
123、路。</p><p> ?。?)運(yùn)行程序,調(diào)節(jié)電位器的大小,觀察電機(jī)的運(yùn)行情況以及顯示在屏幕上的結(jié)果和LED燈的變化。</p><p><b> 5.2 結(jié)果分析:</b></p><p> A/D實(shí)現(xiàn)模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),通過(guò)電位器調(diào)節(jié)輸入電壓(0~5V),改變輸出的數(shù)字信號(hào),進(jìn)而改變8255的給定信號(hào)(給定轉(zhuǎn)速),即通過(guò)改變PB0通道
124、輸出方波的占空比,實(shí)現(xiàn)PWM調(diào)速,改變脈沖的寬度。</p><p> 若占空比越大,高電平時(shí)間越長(zhǎng),則輸出的脈沖幅度越高,即電壓越高.根據(jù)直流電動(dòng)機(jī)的機(jī)械特性,電機(jī)轉(zhuǎn)速與電壓呈正比變化。</p><p> 基本功能實(shí)驗(yàn)階段,在“輕松編程”軟件中完成,主要完成各個(gè)子程序的調(diào)試;在檢測(cè)程序階段,在“輕松編程”軟件中通過(guò)編譯和鏈接,并反復(fù)檢查沒(méi)有邏輯錯(cuò)誤;調(diào)試結(jié)果正確以后在進(jìn)行相應(yīng)的連接,將
125、各個(gè)子模塊聯(lián)系起來(lái),由于自己不具備硬件資源,所以調(diào)試的時(shí)候只能檢查程序本身的錯(cuò)誤,經(jīng)過(guò)調(diào)試能顯示各個(gè)子程序的功能,同時(shí)嵌套有延時(shí)子程序,方便程序的調(diào)用,而端口地址的選擇與確定,只能在實(shí)驗(yàn)室里完成,功能擴(kuò)展及程序的補(bǔ)充,在實(shí)驗(yàn)室里完成,使用唐都硬件實(shí)驗(yàn)箱,用TDPIT來(lái)編程實(shí)現(xiàn),實(shí)驗(yàn)的過(guò)程中,注意端口地址,要與硬件實(shí)驗(yàn)箱上的匹配;功能驗(yàn)證階段,實(shí)驗(yàn)發(fā)現(xiàn)已經(jīng)編好的程序仍存在問(wèn)題,其中菜單顯示和A/D轉(zhuǎn)換是好的,然而電機(jī)不轉(zhuǎn),LED燈也不能正
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ī)調(diào)速課程設(shè)計(jì)
- 直流電機(jī)閉環(huán)調(diào)速
- 雙閉環(huán)直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)
- 運(yùn)控課程設(shè)計(jì)---雙閉環(huán)直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)
- 直流電機(jī)雙閉環(huán)系統(tǒng)課程設(shè)計(jì)
- 直流電機(jī)無(wú)極調(diào)速系統(tǒng)課程設(shè)計(jì)
- 電力電子課程設(shè)計(jì)-直流電機(jī)調(diào)速
- 課程設(shè)計(jì)--直流電機(jī)調(diào)速控制的設(shè)計(jì)
- 直流電動(dòng)機(jī)調(diào)速系統(tǒng)課程設(shè)計(jì)---直流電機(jī)轉(zhuǎn)速電流雙閉環(huán)調(diào)速系統(tǒng)設(shè)計(jì)
- 雙閉環(huán)直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)匯總
- 運(yùn)動(dòng)控制系統(tǒng)課程設(shè)計(jì)--雙閉環(huán)直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)
- 運(yùn)動(dòng)控制系統(tǒng)課程設(shè)計(jì)--雙閉環(huán)直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)
- 電機(jī)拖動(dòng)課程設(shè)計(jì)--直流電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)
- 直流電機(jī)課程設(shè)計(jì)--直流電機(jī)控制系統(tǒng)設(shè)計(jì)
- 運(yùn)動(dòng)控制系統(tǒng)課程設(shè)計(jì)雙閉環(huán)直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)--直流電機(jī)調(diào)速控制系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)單閉環(huán)直流電機(jī)控制系統(tǒng)
- 微機(jī)課程設(shè)計(jì)---小直流電機(jī)調(diào)速控制設(shè)計(jì)
- 《protel應(yīng)用》課程設(shè)計(jì)基于pid算法的直流電機(jī)閉環(huán)調(diào)速系統(tǒng)
- 直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論