直流電機閉環(huán)調(diào)速課程設(shè)計_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論