![小型直流電機(jī)閉環(huán)調(diào)速系統(tǒng)PID控制器設(shè)計 -CSU_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/dee4ac33-99d3-4892-9582-f0a728ab1fb6/dee4ac33-99d3-4892-9582-f0a728ab1fb61.gif)
![小型直流電機(jī)閉環(huán)調(diào)速系統(tǒng)PID控制器設(shè)計 -CSU_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/dee4ac33-99d3-4892-9582-f0a728ab1fb6/dee4ac33-99d3-4892-9582-f0a728ab1fb62.gif)
![小型直流電機(jī)閉環(huán)調(diào)速系統(tǒng)PID控制器設(shè)計 -CSU_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/dee4ac33-99d3-4892-9582-f0a728ab1fb6/dee4ac33-99d3-4892-9582-f0a728ab1fb63.gif)
![小型直流電機(jī)閉環(huán)調(diào)速系統(tǒng)PID控制器設(shè)計 -CSU_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/dee4ac33-99d3-4892-9582-f0a728ab1fb6/dee4ac33-99d3-4892-9582-f0a728ab1fb64.gif)
![小型直流電機(jī)閉環(huán)調(diào)速系統(tǒng)PID控制器設(shè)計 -CSU_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/dee4ac33-99d3-4892-9582-f0a728ab1fb6/dee4ac33-99d3-4892-9582-f0a728ab1fb65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、微機(jī)原理課程設(shè)計報告 小型直流電機(jī)閉環(huán)調(diào)速系統(tǒng) PID 控制設(shè)計(限 2-3人設(shè)計題目:_學(xué) 院:_專業(yè)班級:姓 名:學(xué) 號:指導(dǎo)老師:目錄一、 實(shí)驗(yàn)設(shè)計要求 -2二、控制系統(tǒng)總體設(shè)計方案 -3三、系統(tǒng)框圖 -4四、程序流程圖 - -4-5五、 重要單元的介紹 -5-9六、硬件連接圖 - -9-10七、系統(tǒng)連接圖 -11八、調(diào)試及結(jié)果 - -11-12九、程序代碼 - -13-31十、心得體會 -32 十一、參考文獻(xiàn) -33一、設(shè)計要求:1、設(shè)計基于 80x86微機(jī)接口控制電路;2、分別用 C 語言和匯編語言編程完成硬件接口功能設(shè)計;3、程序功能要求:電機(jī)速度由按鍵分段給定或電位器連續(xù)給定,計
2、算 機(jī)屏幕和數(shù)碼管同步跟蹤顯示當(dāng)前給定速度和電機(jī)實(shí)際運(yùn)行速度, 實(shí)現(xiàn) PID 參數(shù)在線顯示和修改。二、 控制系統(tǒng)總體設(shè)計方案本設(shè)計是利用 PC 微機(jī)一臺、 TD-PIT 實(shí)驗(yàn)系統(tǒng)一套實(shí)現(xiàn)對直流電機(jī)轉(zhuǎn)速調(diào)節(jié) 的應(yīng)用。編寫程序,用 ADC0809完成模擬信號到數(shù)字信號的轉(zhuǎn)換。輸入模擬信號有 A/D轉(zhuǎn)換單元可調(diào)電位器提供的 05V, 將其轉(zhuǎn)換后的數(shù)字信號讀入累加器, 做為 控制電機(jī)的給定轉(zhuǎn)速。用 8255的 B 口作為直流電機(jī)的控制信號輸出口,通過對 電機(jī)轉(zhuǎn)速反饋量的運(yùn)算, 調(diào)節(jié)控制信號, 達(dá)到控制電機(jī)勻速轉(zhuǎn)動的的作用。 并將 累加器中給定的轉(zhuǎn)速和當(dāng)前測量轉(zhuǎn)速顯示在屏幕上。 再通過 LED 燈顯示出
3、轉(zhuǎn)速的 大小變化。整個程序設(shè)計過程分為基本功能實(shí)現(xiàn)階段, 檢測程序階段, 功能擴(kuò)展和功能 驗(yàn)證及程序補(bǔ)充四個實(shí)驗(yàn)階段?;竟δ軐?shí)驗(yàn)階段,在“輕松編程”軟件中完成,主要完成各個子程序的調(diào) 試;在檢測程序階段,在“輕松編程”軟件中通過編譯和鏈接,并反復(fù)檢查沒有 邏輯錯誤; 調(diào)試結(jié)果正確以后在進(jìn)行相應(yīng)的連接, 將各個子模塊聯(lián)系起來功能擴(kuò) 展及程序的補(bǔ)充, 在實(shí)驗(yàn)室里完成, 使用唐都硬件實(shí)驗(yàn)箱, 用 TDPIT 來編程實(shí)現(xiàn); 功能驗(yàn)證階段 , 在實(shí)驗(yàn)室里完成。由于程序中要用到中斷,但是在 windows 下不 能使用中斷,所以必須在 dos 環(huán)境下才能進(jìn)行程序的調(diào)試。三、系統(tǒng)框圖 四、程序流程圖 主程
4、序流程圖 中斷服務(wù)子程序流程圖五、 重要單元的介紹5.1 8255工作原理:本設(shè)計利用 8255的 A 口作為輸出口,控制 8個單色 LED 燈,來實(shí)現(xiàn)電機(jī)轉(zhuǎn) 速的大小調(diào)節(jié)。并行接口是以數(shù)據(jù)的字節(jié)為單位與 I/O設(shè)備或被控制對象之間傳遞信息, CPU 和接口之間的數(shù)據(jù)傳遞總是并行的,即可以同時進(jìn)行傳遞 8位, 16位, 32位等。 8255可編程外圍接口芯片是具有 A 、 B 、 C 三個并行接口, +5V單電源供電, 能在以下三種方式下工作:方式 0基本輸入 /出方式、方式 1選通輸入 /出方 式、方式 2雙向選通工作方式。其控制字、內(nèi)部結(jié)構(gòu)圖和引腳圖見圖 1-1-1、 圖 1-1-2.圖
5、1-1-1 8255控制字 圖 1-1-2 8255內(nèi)部結(jié)構(gòu)圖和引腳圖5.2 轉(zhuǎn)速調(diào)節(jié)原理:PWM的占空比決定輸出到直流電機(jī)的平均電壓 .PWM 不是調(diào)節(jié)電流的 .PWM 的意思是脈寬調(diào)節(jié) , 也就是調(diào)節(jié)方波高電平和低 電平的時間比 , 一個 20%占空比波形 , 會有 20%的高電平時間和 80%的低電平時間, 而一個 60%占空比的波形則具有 60%的高電平時間和 40%的低電平時間 , 占空比越 大 , 高電平時間越長 , 則輸出的脈沖幅度越高 , 即電壓越高 . 如果占空比為 0%,那 么高電平時間為 0, 則沒有電壓輸出 . 如果占空比為 100%,那么輸出全部電壓 . 所以通過調(diào)節(jié)
6、占空比 , 可以實(shí)現(xiàn)調(diào)節(jié)輸出電壓的目的 , 而且輸出電壓可以無級連 續(xù)調(diào)節(jié) .在使用 PWM 控制的直流無刷電動機(jī)中, PWM 控制有兩種方式:(1使用 PWM 信號,控制三極管的導(dǎo)通時間,導(dǎo)通的時間越長,那么做功 的時間越長,電機(jī)的轉(zhuǎn)速就越高(2使用 PWM 控制信號控制三極管導(dǎo)通時間,改變控制電壓高低來實(shí)現(xiàn) 直流電機(jī)單元由 DC12V 、 1.1W 的直流電機(jī), 小磁鋼, 霍爾元件及輸出電路構(gòu) 成。 PWM 示意圖如圖 1-1-3所示。通過調(diào)節(jié) T1的脈沖寬度,改變 T1的占空比, 從而改變輸出,達(dá)到改變直流電機(jī)轉(zhuǎn)速的目的 圖 1-1-3 PWM示意圖利用 8255的 PB 0產(chǎn)生脈沖信號
7、作為控制量,經(jīng)驅(qū)動電路驅(qū)動電機(jī)運(yùn)轉(zhuǎn)。霍 爾測速元件輸出的脈沖信號記錄電機(jī)轉(zhuǎn)速構(gòu)成反饋量。 在參數(shù)給定的情況下, 經(jīng) PID 運(yùn)算,電機(jī)可在控制量的作用下,按 PC 機(jī)累加器給定的轉(zhuǎn)速運(yùn)轉(zhuǎn)。通過 PC 的 0號通道,設(shè)置為輸出 1ms 方波,作為采樣時鐘, PB 0產(chǎn)生 PWM 脈沖計時及轉(zhuǎn) 速累加,系統(tǒng)總線上 INTR 中斷用于測量電機(jī)轉(zhuǎn)速。5.3 AD轉(zhuǎn)換原理 圖 1-1-4 ADC0809外部管腳圖本設(shè)計用 ADC0809完成模擬信號到數(shù)字信號的轉(zhuǎn)換。輸入模擬信號有 A/D轉(zhuǎn)換單元可調(diào)電位器提供的 05V,將其轉(zhuǎn)換后的數(shù)字信號讀入累加器,做為控 制電機(jī)的給定轉(zhuǎn)速。_5.4 LED燈的工作原
8、理:LED 燈顯示器有 8個單色發(fā)光二極管構(gòu)成,在共陽極接法中,各二極管的 陽極被連在一起,使用的時候要將它與 +5V項(xiàng)鏈,而把各段的陰極連到器件的 相 應(yīng) 引 腳 上 。 當(dāng) 某 的 LED 燈 的 引 腳 為 低 電 平 的 時 候 , 該 燈 工 作 。 圖 1-1-5 LED燈管腳圖通過 8255的 A 口信號作為輸入信號,控制各燈的工作狀態(tài)。來顯示出此時電機(jī)轉(zhuǎn)速的大小變化六、硬件連接圖6.1 單元接線圖: 圖 1-1-5 AD轉(zhuǎn)換接線圖ADC轉(zhuǎn)換單元中, D0-D7分別與系統(tǒng)總線的 XD0-XD7對應(yīng)相連, WRRD 、 CLK 分別與系統(tǒng)總 線 XIOW 、 XIOR 、 CLK
9、相 連 , 片 選 引 腳 與 系 統(tǒng) IOY0相連, A 、 B 、 C 接 地, IN0接 +5V直流電壓源,1-1-6所示。 圖 1-1-6 直流電機(jī)閉環(huán)接線圖直流電機(jī)閉環(huán)接線中, 8255芯片的 A 口作為輸出信號與 LED 燈項(xiàng)連, 即 PA0-PA7與系統(tǒng)總線的 XD0-XD7相連 , 同時與 ADC0809的 D0-D7相連; B 口的 PB0作為直 流電機(jī)控制信號輸出口, 經(jīng)驅(qū)動電路 A 口, 與直流電機(jī)相連驅(qū)動電機(jī)運(yùn)轉(zhuǎn); 片選 信號線接系統(tǒng)的 IOY1,讀寫信號線分別對應(yīng)系統(tǒng)的 XIO 、 RXIOW 相連,其中 , 系 統(tǒng)的中斷 INTR 引腳用于測量電機(jī)轉(zhuǎn)速與直流電機(jī)的
10、HR 引腳相連。 七、系統(tǒng)連線圖 八、調(diào)試及結(jié)果8.1 調(diào)試步驟:(1確認(rèn)從 PC 機(jī)引出的兩根扁平電纜已經(jīng)連接在平臺上。(2首先運(yùn)行 CHECK 程序,查看 I/O空間始地址。(3利用查出的地址編寫程序,然后編譯連接。(4參照接線圖連接電路。(5 運(yùn)行程序, 調(diào)節(jié)電位器的大小, 觀察電機(jī)的運(yùn)行情況以及顯示在屏幕上的 結(jié)果和 LED 燈的變化。9.2 結(jié)果分析:A/D實(shí)現(xiàn)模擬信號轉(zhuǎn)換為數(shù)字信號,通過電位器調(diào)節(jié)輸入電壓(05V ,改 變輸出的數(shù)字信號,進(jìn)而改變 8255的給定信號(給定轉(zhuǎn)速 ,即通過改變 PB0通道輸出方波的占空比,實(shí)現(xiàn) PWM 調(diào)速,改變脈沖的寬度。若占空比越大 , 高電平時間
11、越長 , 則輸出的脈沖幅度越高 , 即電壓越高 . 根據(jù) 直流電動機(jī)的機(jī)械特性,電機(jī)轉(zhuǎn)速與電壓呈正比變化?;竟δ軐?shí)驗(yàn)階段,在“輕松編程”軟件中完成,主要完成各個子程序的調(diào) 試;在檢測程序階段,在“輕松編程”軟件中通過編譯和鏈接,并反復(fù)檢查沒有 邏輯錯誤; 調(diào)試結(jié)果正確以后在進(jìn)行相應(yīng)的連接, 將各個子模塊聯(lián)系起來, 由于 自己不具備硬件資源, 所以調(diào)試的時候只能檢查程序本身的錯誤, 經(jīng)過調(diào)試能顯 示各個子程序的功能, 同時嵌套有延時子程序, 方便程序的調(diào)用, 而端口地址的 選擇與確定,只能在實(shí)驗(yàn)室里完成,功能擴(kuò)展及程序的補(bǔ)充,在實(shí)驗(yàn)室里完成, 使用唐都硬件實(shí)驗(yàn)箱,用 TDPIT 來編程實(shí)現(xiàn),實(shí)
12、驗(yàn)的過程中,注意端口地址,要 與硬件實(shí)驗(yàn)箱上的匹配;功能驗(yàn)證階段,實(shí)驗(yàn)發(fā)現(xiàn)已經(jīng)編好的程序仍存在問題, 其中菜單顯示和 A/D轉(zhuǎn)換是好的,然而電機(jī)不轉(zhuǎn), LED 燈也不能正確的顯示電機(jī) 的轉(zhuǎn)速 (即相應(yīng)的速度對應(yīng)的相應(yīng)的等不能正常顯示 針對原來的程序及老師給 的要求進(jìn)行修改, 并添加了一個判斷是否有按鍵輸入的子程序通過調(diào)整不同的速 度后來實(shí)現(xiàn)任意狀態(tài)下的按鍵停止。九、程序代碼*根據(jù) CHECK 配置信息修改下列符號值 * INTR_IVADD EQU 01CCH ;INTR對應(yīng)的中斷矢量地址INTR_OCW1 EQU 0A1H ;INTR對應(yīng) PC 機(jī)內(nèi)部 8259的 OCW1地 址INTR_O
13、CW2 EQU 0A0H ;INTR對應(yīng) PC 機(jī)內(nèi)部 8259的 OCW2地 址INTR_IM EQU 0F7H ;INTR對應(yīng)的中斷屏蔽字PCI_INTCSR EQU 0EC38H ;PCI卡中斷控制寄存器地址IOY0 EQU 0C400H ;片選 IOY0對應(yīng)的端口始地址IOY1 EQU 0C440HIOY2 EQU 0C480HIOY3 EQU 0C4C0H;* MY8255_A EQU IOY0+00H*4 ;8255的 A 口地址MY8255_B EQU IOY0+01H*4 ;8255的 B 口地址MY8255_C EQU IOY0+02H*4 ;8255的 C 口地址MY825
14、5_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址PC8254_COUNT0 EQU 40H ;PC機(jī)內(nèi) 8254定時器 0端口地址 PC8254_MODE EQU 43H ;PC機(jī)內(nèi) 8254控制寄存器端口地址AD0809 EQU IOY1+00HSTACK1 SEGMENT STACKDW 64 DUP(?TOP LABEL WORDSTACK1 ENDSDATA SEGMENTTABLE1 DB 'Assumed Fan Speed:(/s','$' ;字符串變量TABLE2 DB 'Current Fan Speed:(/s&
15、#39;,'$' ;字符串變量ENT DB ' ','$' ;換行,回車 CS_BAK DW ? ;保存 INTR 原中斷處理程序入口段地址 的變量IP_BAK DW ? ;保存 INTR 原中斷處理程序入口偏移地 址的變量IM_BAK DB ? ;保存 INTR 原中斷屏蔽字的變量CS_BAK1 DW ? ;保存定時器 0中斷處理程序入口段地址 的變量IP_BAK1 DW ? ;保存定時器 0中斷處理程序入口偏移地 址的變量IM_BAK1 DB ? ;保存定時器 0中斷屏蔽字的變量DTABLE DB 3FH,06H,5BH,4FH,66H,6D
16、H,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;鍵 值表, 0F 對應(yīng)的 7段數(shù)碼管的TS DB 14H ;采樣周期SPEC DW ? ;轉(zhuǎn)速給定值IBAND DW 0060H ;積分分離值KPP DW 1060H ;比例系數(shù)KII DW 0010H ;積分系數(shù)KDD DW 0020H ;微分系數(shù)YK DW ?CK DB ?VADD DW ?ZV DB ?ZVV DB ?TC DB ?FPWM DB ?CK_1 DB ?EK_1 DW ?AEK_1 DW ?BEK DW ?AAAA DB ?VAA DB ?BBB DB ?VBB DB ?MARK DB ?
17、R0 DW ?R1 DW ?R2 DW ?R3 DW ?R4 DW ?R5 DW ?R6 DW ?R7 DB ?R8 DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,3000H ;建立緩沖區(qū),存放要顯示的鍵值 MOV AL,00H ;先初始化鍵值為 0MOV SI,ALMOV SI+1,ALMOV SI+2,ALMOV SI+3,ALMOV DI,3001H; MOV DX,OFFSET TABLE1 ;顯示字符串 1; MOV AH,09H; INT 21H; MOV AX,SP
18、EC ;顯示給定值; CALL DECSHOW; MOV DX,OFFSET ENT ;回車,換行; MOV AH,09H; INT 21H; MOV DX,OFFSET TABLE2 ;顯示字符串 2; MOV AH,09H; INT 21HCLIMOV AX,0000HMOV ES,AXMOV DI,0020HMOV AX,ES:DIMOV IP_BAK1,AX ;保存定時器 0中斷處理程序入口偏移地址 MOV AX,OFFSET TIMERISRMOV ES:DI,AX ;設(shè)置實(shí)驗(yàn)定時中斷處理程序入口偏移地址 ADD DI,2MOV AX,ES:DIMOV CS_BAK1,AX ;保存定
19、時器 0中斷處理程序入口段地址 MOV AX,SEG TIMERISRMOV ES:DI,AX ;設(shè)置實(shí)驗(yàn)定時中斷處理程序入口段地址IN AL,21HMOV IM_BAK1,AL ;保存 INTR 原中斷屏蔽字AND AL,0F7HOUT 21H,AL ;打開定時器 0中斷屏蔽位MOV DX,PCI_INTCSR ;初始化 PCI 卡中斷控制寄存器MOV AX,1F00H ;向 PCI_INTCSR中寫入 003F1F00H OUT DX,AXADD DX,2MOV AX,003FHOUT DX,AXMOV DI,INTR_IVADDMOV AX,ES:DIMOV IP_BAK,AX ;保存
20、INTR 原中斷處理程序入口偏移地址 MOV AX,OFFSET MYISRMOV ES:DI,AX ;設(shè)置當(dāng)前中斷處理程序入口偏移地址ADD DI,2MOV AX,ES:DIMOV CS_BAK,AX ;保存 INTR 原中斷處理程序入口段地址 MOV AX,SEG MYISRMOV ES:DI,AX ;設(shè)置當(dāng)前中斷處理程序入口段地址MOV DX,INTR_OCW1IN AL,DXMOV IM_BAK,AL ;保存 INTR 原中斷屏蔽字AND AL,INTR_IMOUT DX,AL ;打開 INTR 的中斷屏蔽位MOV AL,00HMOV DX,AD0809 ;啟動 A/D轉(zhuǎn)換OUT DX
21、,ALMOV VADD,0000H ;變量的初始化MOV ZV,00HMOV ZVV,00HMOV CK,00HMOV YK,0000HMOV CK_1,00HMOV EK_1,0000HMOV AEK_1,0000HMOV BEK,0000HMOV BBB,00HMOV VBB,00HMOV R0,0000HMOV R1,0000HMOV R2,0000HMOV R3,0000HMOV R4,0000HMOV R5,0000HMOV R6,0000HMOV R7,00HMOV R8,0000HMOV MARK,00HMOV FPWM,01HMOV AAAA,7FHMOV VAA,7FHMOV
22、 TC,00HMOV AL,80H ;初始化 8255MOV DX,MY8255_MODEOUT DX,ALMOV AL,00HMOV DX,MY8255_BOUT DX,ALMOV DX,PC8254_MODE ;初始化 PC 機(jī)定時器 0,定時 1ms MOV AL,36HOUT DX,ALMOV DX,PC8254_COUNT0MOV AL,8FHOUT DX,ALMOV AL,04HOUT DX,ALSTIM1: MOV AL,TS ;判斷采樣周期到否?SUB AL,TC;JNC M1 ;沒到則繼續(xù)等待; MOV DX,OFFSET TABLE1 ;顯示字符串 1; MOV AH,09
23、H; INT 21HMOV AL,00HMOV DX,AD0809 ;啟動 A/D轉(zhuǎn)換OUT DX,ALCALL DALLYMOV DX,AD0809 ;讀出轉(zhuǎn)換結(jié)果IN AL,DXMOV CL,00HCMP AL,CLJS B2MOV CL,3chCMP CL,ALJS B2JMP B3B1: MOV AL,00HJMP B3B2: MOV AL,3cHB3: MOV DI,OFFSET SPECMOV DI,ALMOV AX,DICALL DECSHOWCALL SHOW1MOV DX,OFFSET ENT ;回車,換行MOV AH,09HINT 21H; MOV DX,OFFSET TA
24、BLE2 ;顯示字符串 2; MOV AH,09H; INT 21HMOV TC,00H ;采樣周期到,將采樣周期變量清 0 MOV AL,ZVVMOV AH,00HMOV YK,AX ;得到反饋量 YKCALL PID ;調(diào)用 PID 子程序,得到控制量 CKMOV AL,CK ;把控制量轉(zhuǎn)化成 PWM 輸出SUB AL,80HJC IS0MOV AAAA,ALJMP COUIS0: MOV AL,10H ;電機(jī)的啟動值不能低于 10H MOV AAAA,ALCOU: MOV AL,7FHSUB AL,AAAAMOV BBB,ALMOV AX,YK ;將反饋值 YK 送到屏幕顯示CALL D
25、ECSHOWMOV DL,0DH ;回車MOV AH,02HINT 21HMOV AH,1 ;判斷是否有按鍵按下INT 16HJZ M1 ;無按鍵則跳回繼續(xù)等待,有則退出EXIT: CLIMOV AL,00H ;退出時停止電機(jī)運(yùn)轉(zhuǎn)MOV DX,MY8255_BOUT DX,ALMOV DX,PC8254_MODE ;恢復(fù) PC 機(jī)定時器 0狀態(tài)MOV AL,36HOUT DX,ALMOV DX,PC8254_COUNT0MOV AL,00HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,PCI_INTCSR ;恢復(fù) PCI 卡中斷控制寄存器MOV AX,0000HOUT
26、DX,AXMOV AX,0000H ;恢復(fù) INTR 原中斷矢量MOV ES,AXMOV DI,INTR_IVADDMOV AX,IP_BAK ;恢復(fù) INTR 原中斷處理程序入口偏移地址 MOV ES:DI,AXADD DI,2MOV AX,CS_BAK ;恢復(fù) INTR 原中斷處理程序入口段地址 MOV ES:DI,AXMOV DX,INTR_OCW1 ;恢復(fù) INTR 原中斷屏蔽寄存器的屏蔽字 MOV AL,IM_BAKOUT DX,ALMOV DI,0020HMOV AX,IP_BAK1 ;恢復(fù)定時器 0中斷處理程序入口偏移地址 MOV ES:DI,AXADD DI,2MOV AX,C
27、S_BAK1 ;恢復(fù)定時器 0中斷處理程序入口段地址 MOV ES:DI,AXMOV AL,IM_BAK1OUT 21H,AL ;恢復(fù)屏蔽字STIMOV AX,4C00HINT 21HMYISR PROC NEAR ;系統(tǒng)總線 INTR 中斷處理程序21PUSH AXPUSH CXPUSH DXMOV AX,DATAMOV DS,AXMOV AL,MARKCMP AL,01HJZ IN1MOV MARK,01HJMP IN2IN1: MOV MARK,00H ;計算轉(zhuǎn)速VV: MOV DX,0000HMOV AX,03E8HMOV CX,VADDCMP CX,0000HJZ MM1DIV CX
28、MM: MOV ZV,ALMOV VADD,0000HMM1: MOV AL,ZVMOV ZVV,ALIN2: MOV DX,PCI_INTCSR ;清 PCI 卡控制寄存器標(biāo)志位SUB DX,19HIN AL,DXMOV DX,PCI_INTCSRADD DX,2MOV AX,003FHOUT DX,AXMOV DX,INTR_OCW2 ;向 PC 機(jī)內(nèi)部 8259發(fā)送中斷結(jié)束命令 MOV AL,20H22OUT DX,ALMOV AL,20HOUT 20H,ALPOP DXPOP CXPOP AXIRETMYISR ENDPTIMERISR PROC NEAR ;PC機(jī)定時器 0中斷處理程
29、序 PUSH AXPUSH CXPUSH DXMOV AX,DATAMOV DS,AXINC TC ;采樣周期變量加 1CALL KJCLCCMP MARK,01HJC TT1INC VADDCMP VADD,0700H ;轉(zhuǎn)速值溢出,賦極值JC TT1MOV VADD,0700HMOV MARK,00HTT1: MOV AL,20H ;中斷結(jié)束,發(fā) EOI 命令 OUT 20H,ALPOP DXPOP CXPOP AX23IRETTIMERISR ENDPKJ PROC NEAR ;PWM子程序PUSH AXCMP FPWM,01H ;PWM為 1,產(chǎn)生 PWM 的高電平 JNZ TEST2
30、CMP VAA,00HJNZ ANOT0MOV FPWM,02HMOV AL,BBBCLCRCR AL,01HMOV VBB,ALJMP TEST2ANOT0: DEC VAAMOV AL, 01H ;PB0=1 電機(jī)轉(zhuǎn)動MOV DX, MY8255_BOUT DX,ALTEST2: CMP FPWM,02H ;PWM為 2,產(chǎn)生 PWM 的低電平 JNZ OUTTCMP VBB,00HJNZ BNOT0MOV FPWM,01HMOV AL,AAAACLCRCR AL,01HMOV VAA,ALJMP OUTT24BNOT0: DEC VBBMOV AL,00H ;PB0=0 電機(jī)停止MOV
31、DX,MY8255_BOUT DX,ALOUTT: POP AXRETKJ ENDPPID: MOV AX,SPEC ;PID子程序SUB AX,YK ;求偏差 EKMOV R0,AXMOV R1,AXSUB AX,EK_1MOV R2,AXSUB AX,AEK_1 ;求 BEKMOV BEK,AXMOV R8,AXMOV AX,R1 ;求偏差變化量 AEKMOV EK_1,AXMOV AX,R2MOV AEK_1,AXTEST R1,8000HJZ EK1 ;若偏差 EK 為正數(shù),則不需要求補(bǔ)碼 NEG R1 ;若偏差 EK 為負(fù)數(shù),則求偏差 EK 的補(bǔ)碼 EK1: MOV AX,R1 ;判
32、斷偏差 EK 是否在積分分離值的范圍內(nèi) SUB AX,IBANDJC II ;在積分分離值范圍內(nèi),則跳轉(zhuǎn)到 II 計算積分項(xiàng) MOV R3,00H ;若不在積分分離值范圍內(nèi),則將積分項(xiàng)清 0 JMP DDD ;計算微分項(xiàng)II: MOV AL,TS ;計算積分項(xiàng),結(jié)果放在 R3變量中 (R3=EK*TS/KIIMOV AH,00H ;其中 TS 和 KII 均為正數(shù),所以 R3的正負(fù)由 EK 決定25MUL CXMOV CX,KIIDIV CXMOV R3,AXTEST R0,8000H ;判斷積分項(xiàng)的正負(fù)JZ DDD ;為正數(shù),則跳轉(zhuǎn)去計算微分項(xiàng)NEG R3 ;為負(fù)數(shù),則將積分項(xiàng)的結(jié)果求補(bǔ)碼
33、DDD: TEST BEK,8000H ;判斷 BEK 的正負(fù)JZ DDD1 ;為正數(shù),則 BEK 不變NEG BEK ;為負(fù)數(shù),則求 BEK 的補(bǔ)碼DDD1: MOV AX,BEK ;計算微分項(xiàng) (R4=KDD*BEK/8TS MOV CX,KDDMUL CXPUSH AXPUSH DXMOV AL,TSMOV AH,00H ;將微分項(xiàng)縮小 8倍,防止溢出MOV CX,0008HMUL CXMOV CX,AXPOP DXPOP AXDIV CXMOV R4,AXTEST R8,8000H ;判斷微分項(xiàng)的正負(fù)JZ DD1 ;為正數(shù),則結(jié)果不需要求補(bǔ)碼NEG R4 ;為負(fù)數(shù),則微分項(xiàng)結(jié)果 R4求
34、補(bǔ)碼 DD1: MOV AX,R3 ;積分項(xiàng)和微分項(xiàng)相加,結(jié)果放在 R5變量中 ADD AX,R4MOV R5,AXJO L9 ;判斷溢出L2: MOV AX,R5ADD AX,R2MOV R6,AX ;R6=R5+R2=積分項(xiàng) +微分項(xiàng) +AEKL5: MOV AX,R6 ;計算 KPP*R6MOV CX,KPPIMUL CXMOV CX,1000HIDIV CXMOV CX,AXRCL AH,01H ;判斷溢出,溢出賦極值PUSHFRCR AL,01HPOPFJC LLL1CMP CH,00HJZ LLL2MOV AL,7FHJMP LLL2LLL1: CMP CH,0FFHJZ LLL2
35、MOV AL,80HLLL2: MOV R7,AL ;CK=CK_1+CKADD AL,CK_1JO L8L18: MOV CK_1,ALADD AL,80HMOV CK,ALRETL8: TEST R7,80H ;CK溢出處理程序JNZ L17MOV AL,7FH ;若為正溢出,則賦給正極值 7FH JMP L18L17: MOV AL,80H ;若為負(fù)溢出,則賦給賦極值 80H JMP L18L9: TEST R3,8000HJNZ L1MOV R5,7FFFH ;若為正溢出,則賦給正極值 7FFFHL1: MOV R5,8000H ;若為負(fù)溢出,則賦給負(fù)極值 8000H JMP L2L3
36、: TEST R2,8000HJNZ L4MOV R6,7FFFHJMP L5L4: MOV R6,8000HJMP L5DECSHOW PROC NEAR ;完成兩位十進(jìn)制數(shù)顯示子程序 MOV DX,0MOV BX,10 ;計算 AX/10DIV BXADD AL,30H ;商 +30H,即為十位數(shù) ASCII 碼MOV AH,0EHINT 10HADD DL,30H ;余 +30H,即為個位數(shù) ASCII 碼 MOV AH,2INT 21HRETDECSHOW ENDPSHOW1 PROC NEAR;BEGIN: CALL DIS ; 顯示刷新;CALL CLEAR ; 清屏;JMP GE
37、TKEY1;INT 16H;JZ BEGIN;QUIT: MOV AX,4C00H ;返回到 DOS; INT 21H;GETKEY1:CALL DIS ;顯示刷新;CALL DALLY1; CALL DALLY1; CALL CLEAR ;清屏; JMP GETKEY2;GETKEY2:MOV CH,0FEH; MOV CL,00H ;設(shè)置當(dāng)前檢測的是第幾列;COLUM: MOV AL,CH; MOV DX,MY8255_C; OUT DX,AL;CLEAR PRC NEAR;MOV DX,MY8255_A ;段位置 0 即可清除數(shù)碼管顯示 ;MOV AL,00H;OUT DX,AL;RET
38、;CLEAR ENDP;RET;MOV AX,SPEC;DIS PROC NEAR ;顯示鍵值子程序MOV AX,SPECMOV DX,0MOV BX,10 ;計算 AX/10DIV BXMOV SI,3001HMOV SI,AL ;在緩沖區(qū)存入十位數(shù)字MOV SI-1,DL ;在緩沖區(qū)存入個位數(shù)字PUSH AXMOV SI,3000HMOV DL,0FDHMOV AL,DLMOV CX,2AGAIN: PUSH DX;CALL DALLY1MOV DX,MY8255_COUT DX,AL ;設(shè)置 X1X4,選通一個數(shù)碼管 MOV AL,SI ;取出緩沖區(qū)中所放個位數(shù)值 MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AXMOV AL,BX ;求得數(shù)字對應(yīng)數(shù)碼管的段位值 MOV DX,MY8255_AOUT DX,AL ;寫入數(shù)碼管 ADpCALL DALLY1MOV AL,00H;取出緩沖區(qū)中所放個位數(shù)值OUT DX,ALINC SI;取十位數(shù) ?POP DX ;判斷是否顯示完?MOV AL,DL ;顯示完,返回ROR AL,1MOV DL,ALLOOP AGAIN ;未顯示完,跳回繼續(xù)OUT1: POP AX;DIS;RETRET SHOW1 ENDP DAL
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代物流信息系統(tǒng)建設(shè)中的標(biāo)準(zhǔn)化問題
- 掛繩高空作業(yè)施工方案
- 拆除臨時用電施工方案
- 生態(tài)文明教育在校園的實(shí)踐與推廣
- 現(xiàn)代企業(yè)綜合管理能力提升及領(lǐng)導(dǎo)力培訓(xùn)方案研究報告
- 國慶節(jié)營銷活動方案模板
- 2023三年級語文上冊 第一單元 習(xí)作:猜猜他是誰說課稿 新人教版
- Unit 2 AnimaIs Lesson 1 Enjoy the story(說課稿)-2024-2025學(xué)年北師大版(三起)英語五年級上冊
- 2024秋八年級物理上冊 第1章 機(jī)械運(yùn)動 第2節(jié) 運(yùn)動的描述說課稿2(新版)新人教版
- 2025仿石漆施工合同
- 白宮-人工智能行業(yè):美國人工智能權(quán)利法案藍(lán)圖(英譯中)
- 營口市大學(xué)生??紝U锌荚囌骖}2022
- 典范英語8-15Here comes trouble原文翻譯
- 六安市葉集化工園區(qū)污水處理廠及配套管網(wǎng)一期工程環(huán)境影響報告書
- 運(yùn)動技能學(xué)習(xí)與控制課件第一章運(yùn)動技能學(xué)習(xí)與控制概述
- 固體廢棄物檢查記錄
- 工程設(shè)計費(fèi)取費(fèi)標(biāo)準(zhǔn)
- 2023年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫含答案解析
- CAPP教學(xué)講解課件
- 自然環(huán)境的服務(wù)功能課件 高中地理人教版(2019)選擇性必修3
- 小耳畸形課件
評論
0/150
提交評論