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

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論