📄 pid.asm
字号:
;**************************************************************
;** 文件名:pid.asm **
;** 功 能:pid调节器 **
;*************************************************************
.include "F2407REGS.H" ;引用头部文件
.def _c_int0
.bss VREF,1
.bss V,1
.bss VE0,1
.bss VE1,1
.bss VE2,1
.bss PIDTMP1,1
.bss PIDTMP2,1
.bss PIDTMP3,1
.bss KP,1
.bss KI,1
.bss KD,1
.bss U,1
X .equ 300h
Y: .equ 200h ;存放输出波形的起始地址
.text
_c_int0
SETC INTM
CLRC SXM
CLRC OVM
CLRC CNF
LDP #0E0H
SPLK #82FEH,SCSR1 ;CLKIN=10 M,CLKOUT= 20M
SPLK #0E8h,WDCR ;关看门狗
LDP #0
SPLK #0002h,IMR ;允许INT2中断
SPLK #0FFFFh,IFR ;清所有中断标志
;参数初始化
SPLK #00H,VREF
SPLK #00H,V
SPLK #00H,VE0
SPLK #00H,VE1
SPLK #00H,VE2
SPLK #00H,PIDTMP1
SPLK #00H,PIDTMP2
SPLK #00H,PIDTMP3
SPLK #00H,U
SPLK #055H,KP
SPLK #08fH,KI
SPLK #05H,KD
LAR AR2,#X ; 输入初始化(为阶跃函数)
MAR *,AR2
LACL #00H
RPT #26
SACL *+
LACL #010FFH
RPT #100
SACL *+
LAR AR2,#Y ; 输出清零
MAR *,AR2
LACL #00H
RPT #127
SACL *+
LAR AR3,#127
LAR AR2,#Y ;存放输出波形的起始地址
LAR AR1,#X ;存放输入波形的起始地址
MAIN MAR *,AR1
LACL *+
SACL VREF
CALL PID
MAR *,AR2
LACL U
SACL *+
SACL V ;闭环
LARP 3
BANZ MAIN
WAIT NOP
B WAIT
PID:
SETC SXM ;参考《TMS320LF240x DSP结构、原理及应用》
LDP #0 ;刘和平等编著,北航出版社 310页
LACL VREF
SUB V
SACL VE2
SUB VE1
SACL PIDTMP1
SUB VE1
ADD VE0
SACL PIDTMP3
LT KP
MPY PIDTMP1
PAC
RPT #4
SFL
SACH PIDTMP1,1
LT KI
MPY VE2
PAC
RPT #4
SFL
SACH PIDTMP2,1
LT KD
MPY PIDTMP3
PAC
RPT #4
SFL
SACH PIDTMP3,1
LACL U
ADD PIDTMP1
ADD PIDTMP2
ADD PIDTMP3
SACL U
SUB #4B00H
BCND PID1,LEQ
SPLK #4A3DH,U
B PID2
PID1: BIT U,0
BCND PID2,NTC
SPLK #0,U
PID2: LACL VE1
SACL VE0
LACL VE2
SACL VE1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -