PID 控制的51汇编程序 2
;//**************************************************************************************************************
;//功 能: 整形乘法 long int PID_MUL(int a,int b) 用时13.5uS/932-12MHz
;//设 计 者: 牟联树
;//日 期: 2003.12.28
;//版 本 号: 1.0
;//申 明:
;//**************************************************************************************************************
PUBLIC _PID_MUL
RSEG ?PR?PID_MUL?PIDWork
_PID_MUL:
PID_MUL: push acc
push psw
clr f0 ;符号判断
mov a,r4
jb acc.7,PID_Ma
sjmp PID_Md
PID_Ma: setb f0
mov a,r5
cpl a
add a,#1
mov r5,a
mov a,r4
cpl a
addc a,#0
mov r4,a
PID_Md:; mov a,r6
; mov c,acc.7
;jnb f0,PID_Mf
; cpl c
PID_Mf:; mov f0,c
; jb acc.7,PID_Mb
; sjmp PID_Mc
PID_Mb:; clr c
; mov a,r7
; subb a,#1
; cpl a
; mov r7,a
; mov a,r6
; subb a,#0
; cpl a
; mov r6,a
PID_Mc: mov a,r5
mov b,r7
mul ab
xch a,r7
mov r3,b
mov b,r4
mul ab
add a,r3
mov r3,a
mov a,b
addc a,#0
xch a,r5
mov b,r6
mul ab
addc a,r3
xch a,r6
xch a,r5
addc a,b
xch a,r5
mov b,r4
mul ab
addc a,r5
mov r5,a
mov a,b
addc a,#0
mov r4,a
jb f0,PID_Me
pop psw
pop acc
ret
PID_Me: mov a,r7
cpl a
add a,#1
mov r7,a
mov a,r6
cpl a
addc a,#0
mov r6,a
mov a,r5
cpl a
addc a,#0
mov r5,a
mov a,r4
cpl a
addc a,#0
mov r4,a
pop psw
pop acc
ret
END
tengjingshu_112148725 2009-4-7 21:32