www.pudn.com > rtu.rar > POWER32.A96
; File name =POWER32.A96 ; compile with model(nt-ef) control ; #pragma model(nt-ef) ; mk196 ; 设计 何风涛 RSEG WATCHDOG EQU 0000AH;;;;;;;FAST; R0 EQU 00000H;;;;;;;FAST; WSR EQU 00014H;;;;;;;FAST; REAL00 EQU 00080H;;;;;;;FAST; IMAG00 EQU 00082H;;;;;;;FAST; REAL01 EQU 00084H;;;;;;;FAST; IMAG01 EQU 00086H;;;;;;;FAST; REAL02 EQU 00088H;;;;;;;FAST; IMAG02 EQU 0008AH;;;;;;;FAST; REAL03 EQU 0008CH;;;;;;;FAST; IMAG03 EQU 0008EH;;;;;;;FAST; REAL04 EQU 00090H;;;;;;;FAST; IMAG04 EQU 00092H;;;;;;;FAST; REAL05 EQU 00094H;;;;;;;FAST; IMAG05 EQU 00096H;;;;;;;FAST; REAL06 EQU 00098H;;;;;;;FAST; IMAG06 EQU 0009AH;;;;;;;FAST; REAL07 EQU 0009CH;;;;;;;FAST; IMAG07 EQU 0009EH;;;;;;;FAST; REAL08 EQU 000A0H;;;;;;;FAST; IMAG08 EQU 000A2H;;;;;;;FAST; REAL09 EQU 000A4H;;;;;;;FAST; IMAG09 EQU 000A6H;;;;;;;FAST; REAL10 EQU 000A8H;;;;;;;FAST; IMAG10 EQU 000AAH;;;;;;;FAST; REAL11 EQU 000ACH;;;;;;;FAST; IMAG11 EQU 000AEH;;;;;;;FAST; REAL12 EQU 000B0H;;;;;;;FAST; IMAG12 EQU 000B2H;;;;;;;FAST; REAL13 EQU 000B4H;;;;;;;FAST; IMAG13 EQU 000B6H;;;;;;;FAST; REAL14 EQU 000B8H;;;;;;;FAST; IMAG14 EQU 000BAH;;;;;;;FAST; REAL15 EQU 000BCH;;;;;;;FAST; IMAG15 EQU 000BEH;;;;;;;FAST; REAL16 EQU 000C0H;;;;;;;FAST; IMAG16 EQU 000C2H;;;;;;;FAST; REAL17 EQU 000C4H;;;;;;;FAST; IMAG17 EQU 000C6H;;;;;;;FAST; REAL18 EQU 000C8H;;;;;;;FAST; IMAG18 EQU 000CAH;;;;;;;FAST; REAL19 EQU 000CCH;;;;;;;FAST; IMAG19 EQU 000CEH;;;;;;;FAST; REAL20 EQU 000D0H;;;;;;;FAST; IMAG20 EQU 000D2H;;;;;;;FAST; REAL21 EQU 000D4H;;;;;;;FAST; IMAG21 EQU 000D6H;;;;;;;FAST; REAL22 EQU 000D8H;;;;;;;FAST; IMAG22 EQU 000DAH;;;;;;;FAST; REAL23 EQU 000DCH;;;;;;;FAST; IMAG23 EQU 000DEH;;;;;;;FAST; REAL24 EQU 000E0H;;;;;;;FAST; IMAG24 EQU 000E2H;;;;;;;FAST; REAL25 EQU 000E4H;;;;;;;FAST; IMAG25 EQU 000E6H;;;;;;;FAST; REAL26 EQU 000E8H;;;;;;;FAST; IMAG26 EQU 000EAH;;;;;;;FAST; REAL27 EQU 000ECH;;;;;;;FAST; IMAG27 EQU 000EEH;;;;;;;FAST; REAL28 EQU 000F0H;;;;;;;FAST; IMAG28 EQU 000F2H;;;;;;;FAST; REAL29 EQU 000F4H;;;;;;;FAST; IMAG29 EQU 000F6H;;;;;;;FAST; REAL30 EQU 000F8H;;;;;;;FAST; IMAG30 EQU 000FAH;;;;;;;FAST; REAL31 EQU 000FCH;;;;;;;FAST; IMAG31 EQU 000FEH;;;;;;;FAST; PQCOS EQU 00050H;;;;;;;FAST; PQSK EQU 00052H;;;;;;;FAST; TEMPERATURE EQU 00054H;;;;;;;FAST; ADWINDOWS EQU 00056H;;;;;;;FAST; COSVL EQU 00058H;;;;;;;FAST; SINVL EQU 0005AH;;;;;;;FAST; WORK EQU 0005CH;;;;;;;FAST; WTMP EQU 0005EH;;;;;;;FAST; SUX EQU 00060H;;;;;;;FAST; SUX01 EQU 00060H;;;;;;;FAST; SUX23 EQU 00062H;;;;;;;FAST; SUX0 EQU 00060H;;;;;;;FAST; SUX1 EQU 00061H;;;;;;;FAST; SUX2 EQU 00062H;;;;;;;FAST; SUX3 EQU 00063H;;;;;;;FAST; SUY EQU 00064H;;;;;;;FAST; SUY01 EQU 00064H;;;;;;;FAST; SUY23 EQU 00066H;;;;;;;FAST; SUY0 EQU 00064H;;;;;;;FAST; SUY1 EQU 00065H;;;;;;;FAST; SUY2 EQU 00066H;;;;;;;FAST; SUY3 EQU 00067H;;;;;;;FAST; SUP EQU 00068H;;;;;;;FAST; SUP01 EQU 00068H;;;;;;;FAST; SUP23 EQU 0006AH;;;;;;;FAST; SUQ EQU 0006CH;;;;;;;FAST; SUQ01 EQU 0006CH;;;;;;;FAST; SUQ23 EQU 0006EH;;;;;;;FAST; ZREAL EQU 00070H;;;;;;;FAST; ZREALL EQU 00070H;;;;;;;FAST; ZREALH EQU 00071H;;;;;;;FAST; ZIMAG EQU 00072H;;;;;;;FAST; ZIMAGL EQU 00072H;;;;;;;FAST; ZIMAGH EQU 00073H;;;;;;;FAST; TANVL EQU 00074H;;;;;;;FAST; ARCVL EQU 00076H;;;;;;;FAST; XBSUM EQU 00078H;;;;;;;FAST; XBSUM01 EQU 00078H;;;;;;;FAST; XBSUM23 EQU 0007AH;;;;;;;FAST; SUN EQU 0007CH;;;;;;;FAST; SUN01 EQU 0007CH;;;;;;;FAST; SUN23 EQU 0007EH;;;;;;;FAST; CSEG extrn SIN:null extrn TAN:null PUBLIC POWER; WORK(WSR)*WTMP(WSR) CSEG POWER: CLR SUP; CLR SUQ; CLR SUN01; LDB WSR, WORK; LD ZREAL, REAL01; 基波 LD SUX01, IMAG01; LDB WSR, WTMP; LD ZIMAG, REAL01; 基波 LD SUX23, IMAG01; ADD SUX01, PQCOS; 功率补偿 PLOOP: CALL DZARC; LD ARCVL, SUX01; LD SUN23, SUX23; LD SINVL, SIN[SUX01]; SUB SUX01, #9000; NEG SUX01; LD COSVL, SIN[SUX01]; JBC SUX23, 0H, CNEXT0 NEG COSVL; CNEXT0: JBC SUX23, 1H, SNEXT0; NEG SINVL; SNEXT0: MUL SUX, ZREAL, ZIMAG; SUX=ZREAL*ZIMAG=U*I; DIV SUX, #10000; MUL SUY, SUX01, COSVL; ADD SUP, SUY23; MUL SUY, SUX01, SINVL; ADD SUQ, SUY23; LD SUN01, JXNST[SUN01] BR [SUN01] XCASE02:LD SUN01, #02; LDB WSR, WORK; LD ZREAL, REAL02; 二次谐波 LD SUX01, IMAG02; LD REAL17, SUN23; SUN23 基波功角象限值 LD IMAG17, ARCVL; ARCVL 基波功角 LDB WSR, WTMP; LD ZIMAG, REAL02; 二次谐波 LD SUX23, IMAG02; LJMP PLOOP; XCASE03:LD SUN01, #04; LDB WSR, WORK; LD ZREAL, REAL03; 三次谐波 LD SUX01, IMAG03; LD REAL18, SUN23; SUN23 02次谐波功角象限值 LD IMAG18, ARCVL; ARCVL 02次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL03; 三次谐波 LD SUX23, IMAG03; LJMP PLOOP; XCASE04:LD SUN01, #06; LDB WSR, WORK; LD ZREAL, REAL04; 四次谐波 LD SUX01, IMAG04; LD REAL19, SUN23; SUN23 03次谐波功角象限值 LD IMAG19, ARCVL; ARCVL 03次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL04; 四次谐波 LD SUX23, IMAG04; LJMP PLOOP; XCASE05:LD SUN01, #08; LDB WSR, WORK; LD ZREAL, REAL05; 05次谐波 LD SUX01, IMAG05; LD REAL20, SUN23; SUN23 04次谐波功角象限值 LD IMAG20, ARCVL; ARCVL 04次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL05; 05次谐波 LD SUX23, IMAG05; LJMP PLOOP; XCASE06:LD SUN01, #10; LDB WSR, WORK; LD ZREAL, REAL06; 06次谐波 LD SUX01, IMAG06; LD REAL21, SUN23; SUN23 05次谐波功角象限值 LD IMAG21, ARCVL; ARCVL 05次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL06; 06次谐波 LD SUX23, IMAG06; LJMP PLOOP; XCASE07:LD SUN01, #12; LDB WSR, WORK; LD ZREAL, REAL07; 07次谐波 LD SUX01, IMAG07; LD REAL22, SUN23; SUN23 06次谐波功角象限值 LD IMAG22, ARCVL; ARCVL 06次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL07; 07次谐波 LD SUX23, IMAG07; LJMP PLOOP; XCASE08:LD SUN01, #14; LDB WSR, WORK; LD ZREAL, REAL08; 08次谐波 LD SUX01, IMAG08; LD REAL23, SUN23; SUN23 07次谐波功角象限值 LD IMAG23, ARCVL; ARCVL 07次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL08; 08次谐波 LD SUX23, IMAG08; LJMP PLOOP; XCASE09:LD SUN01, #16; LDB WSR, WORK; LD ZREAL, REAL09; 09次谐波 LD SUX01, IMAG09; LD REAL24, SUN23; SUN23 08次谐波功角象限值 LD IMAG24, ARCVL; ARCVL 08次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL09; 09次谐波 LD SUX23, IMAG09; LJMP PLOOP; XCASE10:LD SUN01, #18; LDB WSR, WORK; LD ZREAL, REAL10; 10次谐波 LD SUX01, IMAG10; LD REAL25, SUN23; SUN23 09次谐波功角象限值 LD IMAG25, ARCVL; ARCVL 09次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL10; 10次谐波 LD SUX23, IMAG10; LJMP PLOOP; XCASE11:LD SUN01, #20; LDB WSR, WORK; LD ZREAL, REAL11; 11次谐波 LD SUX01, IMAG11; LD REAL26, SUN23; SUN23 10次谐波功角象限值 LD IMAG26, ARCVL; ARCVL 10次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL11; 11次谐波 LD SUX23, IMAG11; LJMP PLOOP; XCASE12:LD SUN01, #22; LDB WSR, WORK; LD ZREAL, REAL12; 12次谐波 LD SUX01, IMAG12; LD REAL27, SUN23; SUN23 11次谐波功角象限值 LD IMAG27, ARCVL; ARCVL 11次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL12; 12次谐波 LD SUX23, IMAG12; LJMP PLOOP; XCASE13:LD SUN01, #24; LDB WSR, WORK; LD ZREAL, REAL13; 13次谐波 LD SUX01, IMAG13; LD REAL28, SUN23; SUN23 12次谐波功角象限值 LD IMAG28, ARCVL; ARCVL 12次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL13; 13次谐波 LD SUX23, IMAG13; LJMP PLOOP; XCASE14:LDB WSR, WORK; LD ZREAL, REAL14; 1-13次谐波 LD REAL29, SUN23; SUN23 13次谐波功角象限值 LD IMAG29, ARCVL; ARCVL 13次谐波功角 LDB WSR, WTMP; LD ZIMAG, REAL14; 1-13次谐波 SJMP SPOWER; JXNST: DCW XCASE02; DCW XCASE03; DCW XCASE04; DCW XCASE05; DCW XCASE06; DCW XCASE07; DCW XCASE08; DCW XCASE09; DCW XCASE10; DCW XCASE11; DCW XCASE12; DCW XCASE13; DCW XCASE14; SPOWER: MUL SUX, ZREAL, ZIMAG; 实在功率 S DIV SUX, #10000; LD SUN01, SUX01; 实在功率 MUL SUX, SUP01, PQSK; DIV SUX, #10000; LD SUP01, SUX01; CLR SUP23; MUL SUX, SUQ01, PQSK; DIV SUX, #10000; LD SUQ01, SUX01; CLR SUQ23; ;SUP 有功功率 ;SUQ 无功功率 ;SUN01 实在功率 RET PUBLIC DZARC; SUX01=SUX01-SUX23=-18000--0--18000 CSEG DZARC: LD SUY01, SUX01; LD SUY23, SUX23; SHRA SUY01, #01H; SHRA SUY23, #01H; SUB SUY01, SUY23; CMP SUY01, R0; JGE DZ000; NEG SUY01; DZ000: CMP SUY01, #16383; JGE DZ500; SUB SUX01, SUX23; CLR SUX23; CMP SUX01, R0; JGE DZ002; DZ001<0; DZ002>0; DZ001: NEG SUX01; OR SUX23, #0080H; DZ002: CMP SUX01, #9000; JLE DZ101; CMP SUX01, #18000; JLE DZ201; CMP SUX01, #27000; JLE DZ301; SUB SUX01, #27000; SUB SUX01, #9000; NEG SUX01; DZ401: JBS SUX23, 7H, DZ444; LD SUX23, #0002H; 第四象限 RET; DZ444: CLR SUX23; 第一象限 RET; DZ101: JBS SUX23, 7H, DZ111; CLR SUX23; 第一象限 RET; DZ111: LD SUX23, #0002H; 第四象限 RET; DZ201: JBS SUX23, 7H, DZ222; SUB SUX01, #18000; 第二象限 NEG SUX01; LD SUX23, #0001H; RET; DZ222: SUB SUX01, #18000; 第三象限 NEG SUX01; LD SUX23, #0003H; RET; DZ301: JBS SUX23, 7H, DZ333; SUB SUX01, #18000; 第三象限 LD SUX23, #0003H; RET; DZ333: SUB SUX01, #18000; 第二象限 LD SUX23, #0001H; RET; DZ500: CMP SUX01, R0; JGE DZ700; DZ600: ADD SUX01, #18000; 第一象限 SUB SUX23, #18000; NEG SUX23; ADD SUX01, SUX23; CLR SUX23; RET; DZ700: SUB SUX01, #18000; 第四象限 NEG SUX01; ADD SUX23, #18000; ADD SUX01, SUX23; CMP SUX01, R0; JE DZ701; LD SUX23, #0002H; RET; DZ701: CLR SUX23; RET; END