版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告</p><p> 課程名稱:計算機控制系統(tǒng) </p><p> 設(shè)計題目:直流電機閉環(huán)調(diào)速</p><p> 院 系:電氣信息學(xué)院</p><p><b> 班 級:</b></p><p><b> 姓 名:&l
2、t;/b></p><p><b> 學(xué) 號:</b></p><p><b> 姓 名:</b></p><p><b> 學(xué) 號:</b></p><p><b> 姓 名:</b></p><
3、p><b> 學(xué) 號:</b></p><p><b> 指導(dǎo)教師: </b></p><p><b> 設(shè)計時間: </b></p><p><b> 摘要</b></p><p> 在電氣時代的今天,電動機在工農(nóng)業(yè)生產(chǎn)、人
4、們?nèi)粘I钪衅鹬种匾淖饔?。直流電機是最常見的一種電機,在各領(lǐng)域中得到廣泛的應(yīng)用。研究直流電機的控制和測量方法,對提高控制精度和響應(yīng)速度、節(jié)約能源等都具有重要意義。電機調(diào)速問題一直是自動化領(lǐng)域中比較重要的問題之一。不同領(lǐng)域?qū)τ陔姍C的調(diào)速性能有著不同的要求,因此,不同的調(diào)速方法有著不同的應(yīng)用場合。</p><p> 為了提高直流調(diào)速系統(tǒng)的動態(tài)、靜態(tài)性能,通常采用閉環(huán)控制系統(tǒng)(主要包括單閉環(huán)、雙閉環(huán))。而在對調(diào)
5、速指標(biāo)要求不高的場合,采用單閉環(huán)即可。閉環(huán)系統(tǒng)較之開環(huán)系統(tǒng)能自動偵測把輸出信號的一部分拉回到輸入端,與輸入信號相比較,其差值作為實際的輸入信號;能自動調(diào)節(jié)輸入量,能提高系統(tǒng)穩(wěn)定性。在對調(diào)速系統(tǒng)性能有較高要求的領(lǐng)域常利用直流電動機,但直流電動機開環(huán)系統(tǒng)穩(wěn)定性不能滿足要求,可利用轉(zhuǎn)速單閉環(huán)提高穩(wěn)態(tài)精度。</p><p> 本次課程設(shè)計利用軟件定時方式采用Intel 8255A可編程外設(shè)接口芯片唐都TD-PITC 實
6、驗系統(tǒng)上模擬直流電動機閉環(huán)調(diào)速系統(tǒng),A/D轉(zhuǎn)換器實現(xiàn)模擬信號到數(shù)字信號的轉(zhuǎn)換,設(shè)置電機轉(zhuǎn)速的給定值,通過PWM方式可實現(xiàn)電機轉(zhuǎn)速的調(diào)節(jié),LED燈顯示電機轉(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è)計方案……………………………………………………………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 實現(xiàn)兩位十進制數(shù)的顯示…………………………………………………6</p
9、><p> 3 硬件設(shè)計……………………………………………………………………………7</p><p> 3.1 接線圖………… …………………………………………………………7</p><p> 4 軟件設(shè)計……………………………………………………………………………8</p><p> 4.1 轉(zhuǎn)速調(diào)節(jié)程序設(shè)計框圖…………………………………
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> 參考文獻……………………………………………………………………………22</p><p> 1
12、控制系統(tǒng)總體設(shè)計方案</p><p> 本設(shè)計是利用PC微機一臺、TD-PIT實驗系統(tǒng)一套實現(xiàn)對直流電機轉(zhuǎn)速調(diào)節(jié)的應(yīng)用。</p><p> 編寫程序,用ADC0809完成模擬信號到數(shù)字信號的轉(zhuǎn)換。輸入模擬信號有A/D轉(zhuǎn)換單元可調(diào)電位器提供的0~5V,將其轉(zhuǎn)換后的數(shù)字信號讀入累加器,做為控制電機的給定轉(zhuǎn)速。用8255的B口作為直流電機的控制信號輸出口,通過對電機轉(zhuǎn)速反饋量的運算,調(diào)節(jié)控制
13、信號,達到控制電機勻速轉(zhuǎn)動的的作用。并將累加器中給定的轉(zhuǎn)速和當(dāng)前測量轉(zhuǎn)速顯示在屏幕上。再通過LED燈顯示出轉(zhuǎn)速的大小變化。</p><p> 整個程序設(shè)計過程分為基本功能實現(xiàn)階段,檢測程序階段,功能擴展和功能驗證及程序補充四個實驗階段。</p><p> 基本功能實驗階段,在“輕松編程”軟件中完成,主要完成各個子程序的調(diào)試;在檢測程序階段,在“輕松編程”軟件中通過編譯和鏈接,并反復(fù)檢查
14、沒有邏輯錯誤;調(diào)試結(jié)果正確以后在進行相應(yīng)的連接,將各個子模塊聯(lián)系起來功能擴展及程序的補充,在實驗室里完成,使用唐都硬件實驗箱,用TDPIT來編程實現(xiàn);功能驗證階段,在實驗室里完成。</p><p> 2 系統(tǒng)的組成及工作原理</p><p> 2.1 8255工作原理:</p><p> 本設(shè)計利用8255的A口作為輸出口,控制8個單色LED燈,來實現(xiàn)電機轉(zhuǎn)速
15、的大小調(diào)節(jié)。</p><p> 并行接口是以數(shù)據(jù)的字節(jié)為單位與I/O設(shè)備或被控制對象之間傳遞信息,CPU和接口之間的數(shù)據(jù)傳遞總是并行的,即可以同時進行傳遞8位,16位,32位等。8255可編程外圍接口芯片是具有A、B、C三個并行接口,+5V單電源供電,能在以下三種方式下工作:方式0—基本輸入/出方式、方式1—選通輸入/出方式、方式2—雙向選通工作方式。其控制字、內(nèi)部結(jié)構(gòu)圖和引腳圖見圖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的占空比決定輸出到直流電機的平均電壓.</p><p> PWM不是調(diào)節(jié)電流的.PWM的意思是脈寬調(diào)節(jié),也就是調(diào)節(jié)方波高電平和低電平的時
17、間比,一個20%占空比波形,會有20%的高電平時間和80%的低電平時間,而一個60%占空比的波形則具有60%的高電平時間和40%的低電平時間,占空比越大,高電平時間越長,則輸出的脈沖幅度越高,即電壓越高.如果占空比為0%,那么高電平時間為0,則沒有電壓輸出.如果占空比為100%,那么輸出全部電壓. 所以通過調(diào)節(jié)占空比,可以實現(xiàn)調(diào)節(jié)輸出電壓的目的,而且輸出電壓可以無級連續(xù)調(diào)節(jié).</p><p> 在使用PWM控
18、制的直流無刷電動機中,PWM控制有兩種方式: </p><p> (1)使用PWM信號,控制三極管的導(dǎo)通時間,導(dǎo)通的時間越長,那么做功的時間越長,電機的轉(zhuǎn)速就越高 (2)使用PWM控制信號控制三極管導(dǎo)通時間,改變控制電壓高低來實現(xiàn) </p><p> 直流電機單元由DC12V、1.1W的直流電機,小磁鋼,霍爾元件及輸出電路構(gòu)成。PWM示意圖如圖2-2-1所示。通過調(diào)節(jié)T1的脈沖寬度
19、,改變T1的占空比,從而改變輸出,達到改變直流電機轉(zhuǎn)速的目的</p><p> 圖2-2-1 PWM示意圖</p><p> 利用8255的PB0產(chǎn)生脈沖信號作為控制量,經(jīng)驅(qū)動電路驅(qū)動電機運轉(zhuǎn)?;魻枩y速元件輸出的脈沖信號記錄電機轉(zhuǎn)速構(gòu)成反饋量。在參數(shù)給定的情況下,經(jīng)PID運算,電機可在控制量的作用下,按PC機累加器給定的轉(zhuǎn)速運轉(zhuǎn)。通過PC的0號通道,設(shè)置為輸出1ms方波,作為采樣時鐘
20、,PB0產(chǎn)生PWM脈沖計時及轉(zhuǎn)速累加,系統(tǒng)總線上INTR中斷用于測量電機轉(zhuǎn)速。</p><p> 2.3 A\D轉(zhuǎn)換原理</p><p> 圖2-3-1 ADC0809外部管腳圖</p><p> 本設(shè)計用ADC0809完成模擬信號到數(shù)字信號的轉(zhuǎn)換。輸入模擬信號有A/D轉(zhuǎn)換單元可調(diào)電位器提供的0~5V,將其轉(zhuǎn)換后的數(shù)字信號讀入累加器,做為控制電機的給定轉(zhuǎn)速。&
21、lt;/p><p> 2.4 LED燈的工作原理:</p><p> LED燈顯示器有8個單色發(fā)光二極管構(gòu)成,在共陽極接法中,各二極管的陽極被連在一起,使用的時候要將它與+5V項鏈,而把各段的陰極連到器件的相應(yīng)引腳上。當(dāng)某的LED燈的引腳為低電平的時候,該燈工作。 圖2-4-1 LED燈管腳圖</p><p> 通過8255的A口信號
22、作為輸入信號,控制各燈的工作狀態(tài)。</p><p> 來顯示出此時電機轉(zhuǎn)速的大小變化。</p><p> 1.5 實現(xiàn)兩位十進制數(shù)的顯示:</p><p> 在計算機中,對數(shù)字的輸入和輸出是用二進制進行的,而在計算機內(nèi)部十進制數(shù)要轉(zhuǎn)換為二進制來表示,要實現(xiàn)兩位十進制數(shù)的顯示,必須將他們轉(zhuǎn)換為目前最普遍使用的字符編碼ASCII碼。</p><
23、p> 本設(shè)計中通過作除法,即拆分法,將兩位十進制AB轉(zhuǎn)換為A*10+B的形式,再通過A+30H與B+30H來轉(zhuǎn)換為ASCII碼,若溢出,加7運算。</p><p><b> 3 硬件設(shè)計</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對應(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 直流電機閉環(huán)接線圖</p><p&
25、gt; 直流電機閉環(huán)接線中,8255芯片的A口作為輸出信號與LED燈項連,即PA0-PA7與系統(tǒng)總線的XD0-XD7相連,同時與ADC0809的D0-D7相連;B口的PB0作為直流電機控制信號輸出口,經(jīng)驅(qū)動電路A口,與直流電機相連驅(qū)動電機運轉(zhuǎn);片選信號線接系統(tǒng)的IOY1,讀寫信號線分別對應(yīng)系統(tǒng)的XIO、RXIOW相連,其中,系統(tǒng)的中斷INTR引腳用于測量電機轉(zhuǎn)速與直流電機的HR引腳相連。</p><p><
26、;b> 4 軟件詳細設(shè)計</b></p><p> 4.1 轉(zhuǎn)速調(diào)節(jié)程序設(shè)計框圖:</p><p> 轉(zhuǎn)速調(diào)節(jié)主程序圖 (b)測速中斷處理程序圖</p><p> ?。╟)定時采樣中斷處理程序圖</p><p> 圖4-1-1轉(zhuǎn)速調(diào)節(jié)程序設(shè)計框圖</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è)計框圖寫出相應(yīng)程序,在“輕松編程”軟件中完成各個子程序的調(diào)試;通過編譯和鏈接,并反復(fù)檢查沒有邏輯錯誤;調(diào)試結(jié)果正確以后在進行相應(yīng)的連接,將各個子模塊聯(lián)系起來,由于
28、自己不具備硬件資源,所以調(diào)試的時候只能檢查程序本身的錯誤,經(jīng)過調(diào)試能顯示各個子程序的功能,同時嵌套有延時子程序,方便程序的調(diào)用,端口地址的選擇與確定,在實驗室里完成,具體程序設(shè)計如下:</p><p> INTR_IVADD EQU 0038H ;INTR對應(yīng)的中斷矢量地址</p><p> INTR_OCW1 EQU 21H ;INTR對
29、應(yīng)PC機內(nèi)部8259的OCW1地址</p><p> INTR_OCW2 EQU 20H ;INTR對應(yīng)PC機內(nèi)部8259的OCW2地址</p><p> INTR_IM EQU 0BFH ;INTR對應(yīng)的中斷屏蔽字</p><p> PCI_INTCSR EQU 0CC38H ;PCI卡
30、中斷控制寄存器地址</p><p> IOY0 EQU 0600H ;片選IOY0對應(yīng)的端口始地址</p><p> IOY1 EQU 0640H ;片選IOY0對應(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,'$' ;換行,回車</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 ? ;保存定時器0中斷處理程序入口段地址的變量</p><p> IP_BAK1 DW ? ;保存定時器0中斷處理程序入口偏移地址的變量</p><p> IM_BAK1 DB ? ;保存定時器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 ;回車,換行</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 ;保存定時器0中斷處理程序入口偏移地址</p><p> MOV AX,OFFSET TIMERISR</p><p> MOV ES:[DI],AX ;設(shè)置實驗定時中斷處理程序入口偏移地址&
47、lt;/p><p> ADD DI,2</p><p> MOV AX,ES:[DI]</p><p> MOV CS_BAK1,AX ;保存定時器0中斷處理程序入口段地址</p><p> MOV AX,SEG TIMERISR</p><p> MOV
48、 ES:[DI],AX ;設(shè)置實驗定時中斷處理程序入口段地址</p><p> IN AL,21H</p><p> MOV IM_BAK1,AL ;保存INTR原中斷屏蔽字</p><p> AND AL,0F7H</p><p> OUT 21H,AL ;打開定時
49、器0中斷屏蔽位</p><p> MOV DX,PCI_INTCSR ;初始化PCI卡中斷控制寄存器</p><p> MOV AX,1F00H ;向PCI_INTCSR中寫入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 ;打開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機定時器0,定時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 ;沒到則繼續(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 ;啟動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 ;電機的啟動值不能低于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 ;回車</p><p> MOV AH,02H</p><p> INT 21H</p><p> MOV AH,1 ;判斷是否有按鍵按下</p><p> INT 16H</p><p>
69、 JZ M1 ;無按鍵則跳回繼續(xù)等待,有則退出</p><p> EXIT: CLI</p><p> MOV AL,00H ;退出時停止電機運轉(zhuǎn)</p><p> MOV DX,MY8255_B</p><p> OUT DX,AL</p>
70、<p> MOV DX,PC8254_MODE ;恢復(fù)PC機定時器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ù)定時器0中斷處理程序入口偏移地址</p><p> MOV ES:[DI],AX</p><p> ADD DI,2</p><p> MOV AX,CS_BAK1 ;恢復(fù)定時器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 ;計算轉(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機內(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機定時器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 電機轉(zhuǎn)動</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 電機停止</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ù),則不需要求補碼</p><p> NEG R1 ;若偏差EK為負數(shù),則求偏差EK的補碼</p><p> EK1: MOV AX,R1 ;判斷偏差EK是否在積分分離
99、值的范圍內(nèi)</p><p> SUB AX,IBAND</p><p> JC II ;在積分分離值范圍內(nèi),則跳轉(zhuǎn)到II,計算積分項</p><p> MOV R3,00H ;若不在積分分離值范圍內(nèi),則將積分項清0</p><p> JMP DDD
100、 ;計算微分項</p><p> II: MOV AL,TS ;計算積分項,結(jié)果放在R3變量中(R3=EK*TS/KII)</p><p> MOV AH,00H ;其中TS和KII均為正數(shù),所以R3的正負由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 ;判斷積分項的正負</p><p> JZ DDD
102、 ;為正數(shù),則跳轉(zhuǎn)去計算微分項</p><p> NEG R3 ;為負數(shù),則將積分項的結(jié)果求補碼</p><p> DDD: TEST BEK,8000H ;判斷BEK的正負</p><p> JZ DDD1 ;為正數(shù),則BEK不變</p><p> N
103、EG BEK ;為負數(shù),則求BEK的補碼</p><p> DDD1: MOV AX,BEK ;計算微分項(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 ;將微分項縮小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 ;判斷微分項的正負
106、</p><p> JZ DD1 ;為正數(shù),則結(jié)果不需要求補碼</p><p> NEG R4 ;為負數(shù),則微分項結(jié)果R4求補碼</p><p> DD1: MOV AX,R3 ;積分項和微分項相加,結(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=積分項+微分項+AEK</p><p> JO L3</p><p> L5: MOV AX,R6 ;計算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 ;若為負溢出,則賦給賦極值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 ;若為負溢出,則賦給負極值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、軟件延時子程序</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 ;完成兩位十進制數(shù)顯示子程序</p><p> MOV DX,0</p><p> MOV BX,10 ;計算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,即為個位數(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> (1)確認(rèn)從PC機引出的兩根扁平電纜已經(jīng)連接在平臺上。</p><p> (2)首先運行CHECK程序,查看I/O空間始地址。</p><p> (3)利用查出的地址編寫程序,然后編譯連接。</p><p> ?。?)參照接線圖連接電
123、路。</p><p> (5)運行程序,調(diào)節(jié)電位器的大小,觀察電機的運行情況以及顯示在屏幕上的結(jié)果和LED燈的變化。</p><p><b> 5.2 結(jié)果分析:</b></p><p> A/D實現(xiàn)模擬信號轉(zhuǎn)換為數(shù)字信號,通過電位器調(diào)節(jié)輸入電壓(0~5V),改變輸出的數(shù)字信號,進而改變8255的給定信號(給定轉(zhuǎn)速),即通過改變PB0通道
124、輸出方波的占空比,實現(xiàn)PWM調(diào)速,改變脈沖的寬度。</p><p> 若占空比越大,高電平時間越長,則輸出的脈沖幅度越高,即電壓越高.根據(jù)直流電動機的機械特性,電機轉(zhuǎn)速與電壓呈正比變化。</p><p> 基本功能實驗階段,在“輕松編程”軟件中完成,主要完成各個子程序的調(diào)試;在檢測程序階段,在“輕松編程”軟件中通過編譯和鏈接,并反復(fù)檢查沒有邏輯錯誤;調(diào)試結(jié)果正確以后在進行相應(yīng)的連接,將
125、各個子模塊聯(lián)系起來,由于自己不具備硬件資源,所以調(diào)試的時候只能檢查程序本身的錯誤,經(jīng)過調(diào)試能顯示各個子程序的功能,同時嵌套有延時子程序,方便程序的調(diào)用,而端口地址的選擇與確定,只能在實驗室里完成,功能擴展及程序的補充,在實驗室里完成,使用唐都硬件實驗箱,用TDPIT來編程實現(xiàn),實驗的過程中,注意端口地址,要與硬件實驗箱上的匹配;功能驗證階段,實驗發(fā)現(xiàn)已經(jīng)編好的程序仍存在問題,其中菜單顯示和A/D轉(zhuǎn)換是好的,然而電機不轉(zhuǎn),LED燈也不能正
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 直流電機調(diào)速課程設(shè)計
- 直流電機閉環(huán)調(diào)速
- 雙閉環(huán)直流電機調(diào)速系統(tǒng)設(shè)計
- 運控課程設(shè)計---雙閉環(huán)直流電機調(diào)速系統(tǒng)設(shè)計
- 直流電機雙閉環(huán)系統(tǒng)課程設(shè)計
- 直流電機無極調(diào)速系統(tǒng)課程設(shè)計
- 電力電子課程設(shè)計-直流電機調(diào)速
- 課程設(shè)計--直流電機調(diào)速控制的設(shè)計
- 直流電動機調(diào)速系統(tǒng)課程設(shè)計---直流電機轉(zhuǎn)速電流雙閉環(huán)調(diào)速系統(tǒng)設(shè)計
- 雙閉環(huán)直流電機調(diào)速系統(tǒng)設(shè)計匯總
- 運動控制系統(tǒng)課程設(shè)計--雙閉環(huán)直流電機調(diào)速系統(tǒng)設(shè)計
- 運動控制系統(tǒng)課程設(shè)計--雙閉環(huán)直流電機調(diào)速系統(tǒng)設(shè)計
- 電機拖動課程設(shè)計--直流電機調(diào)速系統(tǒng)的設(shè)計
- 直流電機課程設(shè)計--直流電機控制系統(tǒng)設(shè)計
- 運動控制系統(tǒng)課程設(shè)計雙閉環(huán)直流電機調(diào)速系統(tǒng)設(shè)計
- 課程設(shè)計--直流電機調(diào)速控制系統(tǒng)設(shè)計
- 課程設(shè)計單閉環(huán)直流電機控制系統(tǒng)
- 微機課程設(shè)計---小直流電機調(diào)速控制設(shè)計
- 《protel應(yīng)用》課程設(shè)計基于pid算法的直流電機閉環(huán)調(diào)速系統(tǒng)
- 直流電機調(diào)速系統(tǒng)設(shè)計
評論
0/150
提交評論