版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、.include 240 x.h ; 寄存器地址.global _c_int0 ;全局化標號;-以下定義變量-ST0 .set 0 ;狀態(tài)寄存器ST0ST1 .set 1 ;狀態(tài)寄存器ST1.bss TEMP,1 ;臨時變量.bss SET_F,1 ;頻率調(diào)節(jié)比,Q16格式(值為0-1,對應0-50Hz).bss F_OMEGA,1 ;頻率調(diào)節(jié)比-角頻率轉換率,Q5格式.bss OMEGA,1 ;調(diào)制波角頻率,Q5格式.bss SET_V,1 ;參考電壓,Q14格式.bss MAX_V,1 ;最大參考電壓幅值1/ ,Q14格式.bss T_SAMPLE,1 ;采樣周期,Q24格式.bss TH
2、ETA_H,1 ;參考電壓相位角高字,Q12格式.bss THETA_L,1 ;參考電壓相位角低字,Q12格式.bss THETA_R,1 ;相位角的圓整值,Q12格式.bss THETA_M,1 ;相位查表值(0-90度),Q12格式.bss THETA_I,1 ;相角查表索引,Q9格式.bss SS,1 ;SIN符號,Q0格式.bss SC,1 ;COS符號,Q0格式.bss SIN_INDX,1 ;SIN表索引,Q0格式.bss SIN_ENTRY,1 ;SIN表入口地址.bss SIN_END,1 ;SIN表結束地址.bss SIN_THETA,1 ;SIN值,Q14格式.bss CO
3、S_THETA,1 ;COS值,Q14格式.bss UA,1 ;參考電壓D軸分量UA,Q12格式.bss UB,1 ;參考電壓Q軸分量UB,Q12格式.bss THETA_S,1 ;-扇區(qū)數(shù)轉換系數(shù),Q15格式.bss SECTOR,1 ;參考電壓所在的扇區(qū)數(shù),Q0格式.bss THETA_90,1 ;90度,Q12格式.bss THETA_180,1 ;180度,Q12格式.bss THETA_270,1 ;270度,Q12格式.bss THETA_360,1 ;360度,Q12格式.bss DEC_MS,24 ;6個逆陣,Q14格式.bss T1_PERIODS,1 ;定時器1周期值,Q5
4、格式.bss CMP_1,1 ;第1基本矢量,Q0格式.bss CMP_2,1 ;第2基本矢量,Q0格式.bss CMP_0,1 ;0基本矢量/2,Q0格式.bss FIRST_TOG,1 ;存放第一次比較匹配的比較器地址.bss SEC_TOG,1 ;存放第二次比較匹配的比較器地址.bss ACCH,1 ;ACC高字保存單元.bss ACCL,1 ;ACC低字保存單元.bss AR0_SAVE,1 ;AR0保存單元.bss P_HI,1 ;P寄存器高字保存單元.bss P_LO,1 ;P寄存器低字保存單元;- CONTEXT段,定義保護現(xiàn)場數(shù)據(jù)區(qū)-ST0_SAVE .usect .conte
5、xt,1 ;狀態(tài)寄存器ST0保存單元ST1_SAVE .usect .context,1 ;狀態(tài)寄存器ST1保存單元;- 定義主向量段-.sect .vectors ;定義主向量段RESET B _c_int0 ;地址0000H,復位,優(yōu)先級1INT1 B PHANTOM ;地址0002H,INT1,優(yōu)先級4INT2 B _C_INT2 ;地址0004H,INT2,優(yōu)先級5INT3 B PHANTOM ;地址0006H,INT3,優(yōu)先級6INT4 B PHANTOM ;地址0008H,INT4,優(yōu)先級7INT5 B PHANTOM ;地址000AH,INT5,優(yōu)先級8INT6 B PHANTO
6、M ;地址000CH,INT6,優(yōu)先級9RESERVED B PHANTOM ;地址000EH,測試,優(yōu)先級10SW_INT8 B PHANTOM ;地址0010H,自定義軟中斷SW_INT9 B PHANTOM ;地址0012H,自定義軟中斷SW_INT10 B PHANTOM ;地址0014H,自定義軟中斷SW_INT11 B PHANTOM ;地址0016H,自定義軟中斷SW_INT12 B PHANTOM ;地址0018H,自定義軟中斷SW_INT13 B PHANTOM ;地址001AH,自定義軟中斷SW_INT14 B PHANTOM ;地址001CH,自定義軟中斷SW_INT15
7、 B PHANTOM ;地址001EH,自定義軟中斷SW_INT16 B PHANTOM ;地址0020H,自定義軟中斷TRAP B PHANTOM ;地址0022H,TRAP矢量NMI B PHANTOM ;地址0024H,NMI,優(yōu)先級3EMU_TRAP B PHANTOM ;地址0026H,仿真Trap,優(yōu)先級2SW_INT20 B PHANTOM ;地址0028H,自定義軟中斷SW_INT21 B PHANTOM ;地址002AH,自定義軟中斷SW_INT22 B PHANTOM ;地址002CH,自定義軟中斷SW_INT23 B PHANTOM ;地址002EH,自定義軟中斷SW_I
8、NT24 B PHANTOM ;地址0030H,自定義軟中斷SW_INT25 B PHANTOM ;地址0032H,自定義軟中斷SW_INT26 B PHANTOM ;地址0034H,自定義軟中斷SW_INT27 B PHANTOM ;地址0036H,自定義軟中斷SW_INT28 B PHANTOM ;地址0038H,自定義軟中斷SW_INT29 B PHANTOM ;地址003AH,自定義軟中斷SW_INT30 B PHANTOM ;地址003CH,自定義軟中斷SW_INT31 B PHANTOM ;地址003EH,自定義軟中斷;- 定義子向量段-.sect .pvecs ;定義子向量段PV
9、ECTORS B PHANTOM ;偏移地址0000HB PHANTOM ;偏移地址0001HB PHANTOM ;偏移地址0002HB PHANTOM ;偏移地址0003HB PHANTOM ;偏移地址0004HB PHANTOM ;偏移地址0005HB PHANTOM ;偏移地址0006HB PHANTOM ;偏移地址0007HB PHANTOM ;偏移地址0008HB PHANTOM ;偏移地址0009HB PHANTOM ;偏移地址000AHB PHANTOM ;偏移地址000BHB PHANTOM ;偏移地址000CHB PHANTOM ;偏移地址000DHB PHANTOM ;偏移
10、地址000EHB PHANTOM ;偏移地址000FHB PHANTOM ;偏移地址0010HB PHANTOM ;偏移地址0011HB PHANTOM ;偏移地址0012HB PHANTOM ;偏移地址0013HB PHANTOM ;偏移地址0014HB PHANTOM ;偏移地址0015HB PHANTOM ;偏移地址0016HB PHANTOM ;偏移地址0017HB PHANTOM ;偏移地址0018HB PHANTOM ;偏移地址0019HB PHANTOM ;偏移地址001AHB PHANTOM ;偏移地址001BHB PHANTOM ;偏移地址001CHB PHANTOM ;偏移
11、地址001DHB PHANTOM ;偏移地址001EHB PHANTOM ;偏移地址001FHB PHANTOM ;偏移地址0020HB PHANTOM ;偏移地址0021HB PHANTOM ;偏移地址0022HB PHANTOM ;偏移地址0023HB PHANTOM ;偏移地址0024HB PHANTOM ;偏移地址0025HB PHANTOM ;偏移地址0026HB PHANTOM ;偏移地址0027HB PHANTOM ;偏移地址0028HB T1UF_ISR ;偏移地址0029HB PHANTOM ;偏移地址002AHB PHANTOM ;偏移地址002BHB PHANTOM ;偏
12、移地址002CHB PHANTOM ;偏移地址002DHB PHANTOM ;偏移地址002EHB PHANTOM ;偏移地址002FHB PHANTOM ;偏移地址0030HB PHANTOM ;偏移地址0031HB PHANTOM ;偏移地址0032HB PHANTOM ;偏移地址0033HB PHANTOM ;偏移地址0034HB PHANTOM ;偏移地址0035HB PHANTOM ;偏移地址0036HB PHANTOM ;偏移地址0037HB PHANTOM ;偏移地址0038HB PHANTOM ;偏移地址0039HB PHANTOM ;偏移地址003AHB PHANTOM ;偏
13、移地址003BHB PHANTOM ;偏移地址003CHB PHANTOM ;偏移地址003DHB PHANTOM ;偏移地址003EHB PHANTOM ;偏移地址003FHB PHANTOM ;偏移地址0040HB PHANTOM ;偏移地址0041H;-以下是主程序-.text;-系統(tǒng)初始化程序-_c_int0SETC INTM ; 禁止中斷CLRC CNF ;B0為數(shù)據(jù)存儲區(qū)LDP #224SPLK #0000001000000100B,SCSR1 ;CLKIN 10M,CLKOUT 20MSPLK #68H,WDCR ;不用看門狗LDP #225LACC MCRAOR #0FC0H
14、;設置PWM1-6引腳SACL MCRA;-中斷初始化程序-LDP #0SPLK #0FFH,IFR ; 清所有系統(tǒng)中斷標志SPLK #00000010B,IMR ; 開INT2中斷LDP #232SPLK #0FFFH,EVAIFRA ; 清事件管理器A所有中斷標志SPLK #0FH,EVAIFRBSPLK #0FH,EVAIFRCSPLK #0200H,EVAIMRA ; 開T1下溢中斷SPLK #0,EVAIMRB ; 屏蔽所有中斷SPLK #0,EVAIMRC ; 屏蔽所有中斷;-初始化事件管理器A程序-SPLK #500,T1PR ; T1周期值=50 us/50ns/2=500SP
15、LK #500,CMPR1 ; 占空比初值 0%SPLK #500,CMPR2SPLK #500,CMPR3SPLK #0000011001100110B,ACTRA ; 引腳PWM1,3,5高有效,2,4,6低有效SPLK #01F4H,DBTCONA ; 死區(qū)時間1*32*50ns=1.6usSPLK #1000001000000000B,COMCONA ;允許比較,不用硬件空間矢量SPLK #1000100000000010B,T1CON ;連續(xù)增減計數(shù)方式,預分頻=1;-變量初始化程序-LDP #6 ; 指向B1SPLK #0347H,T_SAMPLE ;采樣周期=50us *224=
16、839秒=347H, Q24格式SPLK #16000,T1_PERIODS ;T1周期值的Q5格式,500*32SPLK #11585,MAX_V ; 最大參考電壓幅值1/ ,Q14格式SPLK #0,SET_F ; SET F=0SPLK #10053,F_OMEGA ;頻率調(diào)節(jié)比-角頻率轉換率,Q5格式;當SET_F=1時,對應最大角頻率250Hz*25=10053SPLK #0,THETA_L ;低字,Q12格式SPLK #0,THETA_H ; 高字,Q12格式LAR AR0,#THETA_90 ; 傳送常用角度和逆陣數(shù)據(jù)LAR AR1,#(28-1) ; 28個LACC #ANGL
17、ES_ ; 指向源LAR AR0INIT_TBLTBLR *+,AR1 ; 下一個ADD #1 ; 下一個地址BANZ INIT_TBL,AR0 ;AR1=0結束SPLK #29335,THETA_I ; 相角查表索引,180/,Q9格式SPLK #31291,THETA_S ; -扇區(qū)數(shù)轉換系數(shù),6/(2),Q15格式SPLK #SIN_ENTRY_,SIN_ENTRY ;SIN表起始地址SPLK #(SIN_ENTRY_+90),SIN_END ;SIN表結束地址LDP #232SPLK #0000100001000010B,T1CON ;使能T1CLRC INTM ; 開總中斷;-主循環(huán)
18、程序(SET_F由外部輸入)-MAIN_LOOPLDP #6LT SET_F ; 將頻率調(diào)節(jié)比(Q16格式)轉換成角頻率MPYU F_OMEGA ; Q21PAC ; 積送ACC, Q5格式SACH OMEGA ; 保存角頻率,Q5格式LT SET_F ;將頻率調(diào)節(jié)比(Q16格式)轉換成參考電壓MPYU MAX_V ; Q16*Q14=Q30PACSACH SET_V ; 保存參考電壓幅值,Q14格式B MAIN_LOOP ; 循環(huán);-假中斷處理-PHANTOMCLRC INTMRET;-T1下溢中斷處理子程序-_C_INT2SST #ST0,ST0_SAVE ; 保存現(xiàn)場ST0SST #ST
19、1,ST1_SAVE ; 保存ST1LDP #6SACH ACCHSACL ACCL ; 保存ACCSPH P_HISPL P_LO ; 保存 PMPY #1 ; P=TSPL T_SAVE ; 保存 TSAR AR0,AR0_SAVE ; 保存AR0CLRC SXMLDP #224LACC PIVR ;讀偏移地址SUB #029H ; T1 下溢中斷?BCND T1UF_ISR,EQ ;是下溢中斷跳T1UF_ISRRESTLDP #6 ;否則恢復現(xiàn)場LAR AR0, AR0_SAVE ; 恢復AR0LT P_LO ;恢復PMPY #1LPH P_HILT T_SAVE ;恢復TLACC AC
20、CH,16ADDS ACCL ;恢復ACCLDP #0 ;指向B2LST #ST1,ST1_SAVE ; 恢復ST1LST #ST0,ST0_SAVE ; 恢復ST0CLRC INTM ; 開中斷RET ; 返回T1UF_ISRLDP #232SPLK #0FFFH,EVAIFRA ; 清中斷標志LDP #6 ; 計算轉角增量LT OMEGA ; Q5MPY T_SAMPLE ; Q5*Q24PAC ;積存ACC, Q13SFR ; 右移一位成Q12格式ADD THETA_H,16 ; Q12ADDS THETA_L ;計算絕對位置SACH THETA_H ;保存SACL THETA_LBCN
21、D CHK_UPLIM,GEQ ;如果大于0檢查上限ADD THETA_360,16 ;否則與2比較,Q12SACH THETA_H ; 保存B RND_THETACHK_UPLIMSUB THETA_360,16 ;與2比較,Q12BCND REST_THETA,LEQ ; 如果在范圍內(nèi)恢復THETA_HSACH THETA_HB RND_THETAREST_THETAADD THETA_360,16 ; 恢復THETA_HRND_THETAADD #1,15 ; 圓整并保留高字SACH THETA_R ;保存LACC #1 ;假設THETA_H在第一象限SACL SS ; SIN符號=1S
22、ACL SC ; COS符號=1LACC THETA_RSACL THETA_M ; 存入THETA_MSUB THETA_90 ;BCND E_Q,LEQ ;在第一象限則跳轉SPLK #-1,SC ; COS符號=1LACC THETA_180SUB THETA_R ; 180-SACL THETA_M ;存入THETA_MBCND E_Q,GEQ ;在第二象限則跳轉SPLK #-1,SS ;SIN符號=-1LACC THETA_RSUB THETA_180 ;THETA-180SACL THETA_M ;存入THETA_MLACC THETA_270SUB THETA_RBCND E_Q,
23、GEQ ;在第三象限則跳轉SPLK #1,SC ; COS符號=1LACC THETA_360SUB THETA_RSACL THETA_M ; 在第四象限E_QLT THETA_M ; Q12.計算查表索引MPYU THETA_I ; Q12*Q9PACSACH SIN_INDX ; Q5LACC SIN_INDX,11 ;左移11位SACH SIN_INDX ;相當于右移5位變成Q0格式,即整數(shù)LACC SIN_ENTRY ;查SIN表ADD SIN_INDXTBLR SIN_THETALACC SIN_ENDSUB SIN_INDX ;TBLR COS_THETA ;LT SS ;查CO
24、S表MPY SIN_THETA ;修改符號,Q14PACSACL SIN_THETA ; 左移16位保存,Q14LT SCMPY COS_THETA ; 修改符號, Q14PACSACL COS_THETA ;左移16位保存,Q14LT SET_V ;開始計算UA , UBMPY COS_THETA ; Q14*Q14PACSACH UA ; UA ,Q12格式MPY SIN_THETA ; Q14*Q14PACSACH UB ; UB, Q12格式LT THETA_R ; Q12格式.確定扇區(qū)MPY THETA_S ; Q12*Q15PACSACH SECTORLACC SECTOR,5SA
25、CH SECTOR ; 相當于右移11位變成Q0格式(整數(shù))LACC #DEC_MS ;逆陣數(shù)據(jù)首地址ADD SECTOR,2SACL TEMP ;產(chǎn)生地址指針LAR AR0,TEMP ; 指向逆陣表LT UA ; Q12格式.計算UA*M(1,1)+UB*M(1,2)MPY *+ ; M(1,1) UA, Q12*Q14PAC ; Q10格式LT UB ; Q12MPY *+ ; M(1,2) UB, Q12*Q14APAC ; 0.5*C1, Q10BCND CMP1BIG0,GEQ ; 如果大于0繼續(xù)LACC #0 ; 否則0CMP1BIG0SACH TEMP ; 0.5*C1,Q10格
26、式LT TEMP ; Q10格式MPY T1_PERIODS ; Q10*Q5PAC ; Q15格式SACH CMP_1,1 ; 0.5*C1*TP,Q0格式LT UA ;計算UA*M(2,1)+UB*M(2,2)MPY *+ ; M(2,1) UA,Q12*Q14PAC ; Q10格式LT UB ; Q12格式MPY *+ ; M(2,2) UB: Q12*Q14APAC ; 0.5*C2,Q10BCND CMP2BIG0,GEQ ; 如果大于0繼續(xù)LACC #0 ;否則0CMP2BIG0SACH TEMP ; 0.5*C2,Q10格式LT TEMP ; Q10格式MPY T1_PERIOD
27、S ; Q10*Q5PAC ; Q15格式SACH CMP_2,1 ; 0.5*C2*TP,Q0格式LACC #500 ; T1周期值SUB CMP_1SUB CMP_2 ; Q0格式BCND CMP0BIG0,GEQ ;如果大于0繼續(xù)LACC #0 ;否則0CMP0BIG0SACL CMP_0LACC CMP_0,15 ; 相當于右移1位,除2SACH CMP_0 ; 0.25*C0*TPLACC #FIRST_ ;指向第一次比較匹配的比較寄存器地址表入口地址ADD SECTORTBLR FIRST_TOG ;查到第一次比較匹配的比較器地址LAR AR0,FIRST_TOG ;指向該地址LA
28、CC CMP_0SACL * ; CMP_0送入該比較器LACC #SECOND_ ;指向第二次比較匹配的比較寄存器地址表入口地址ADD SECTORTBLR SEC_TOG ;查到第二次比較匹配的比較器地址LAR AR0,SEC_TOG ;指向該地址LACC CMP_0ADD CMP_1 ; CMP_0+CMP_1SACL * ;送入該比較器LACC #CMPR3SUB FIRST_TOGADD #CMPR2SUB SEC_TOGADD #CMPR1SACL TEMP ;計算第三次比較匹配的比較器地址LAR AR0,TEMP ;指向該地址LACC CMP_0ADD CMP_1ADD CMP_
29、2 ; CMP_0+CMP_1+CMP_2SACL * ; 送入該比較器B REST ; 返回.data;-數(shù)據(jù)段-ANGLES_ .word 01922H ; /2, Q12格式.word 03244H ; , Q12格式.word 04B66H ; 3/2, Q12格式.word 06488H ; 2, Q12格式.word 20066 ; 矩陣A的逆陣數(shù)據(jù),每一個逆陣有4個數(shù)據(jù),Q14格式.word 11585 ; 按參考電壓所在的扇區(qū)索引.word 0.word 23170.word -20066.word 11585.word 20066.word 11585.word 0.word 23170.word -20066.word -11585.word 0.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人瓷磚銷售合同范例
- 體育用品合同范例
- 倉儲用地交易合同范例
- 個人運輸協(xié)議合同范例
- 住宿賓館裝飾合同范例
- 小區(qū)物資交易合同范例
- 勞務出口合同范例
- 批量采購衛(wèi)浴合同范例
- 賣方期貨合同范例
- 別墅交易銷售合同范例
- 幼兒園教師職稱五套試題及答案
- 廣東2024年廣東省通信管理局局屬單位招聘筆試歷年典型考題及考點附答案解析
- 報告文學研究
- 棄土綜合利用協(xié)議
- 幼兒園中班語言課件:《小花貓交朋友》
- SH/T 3065-2024 石油化工管式爐急彎彎管工程技術規(guī)范(正式版)
- 2024年《藝術概論》知識考試題庫(附答案)
- GB/T 43878-2024旋挖鉆機截齒
- 攤位安全責任書
- 《紙質(zhì)文物修復與保護》課件-03紙質(zhì)文物病害類型
- 美育的知與行智慧樹知到期末考試答案2024年
評論
0/150
提交評論