📄 lms.asm
字号:
;*****************************************************************************
; Function: uart.asm
; Version : 1.00
; Description: uart
;
; Copyright Texas instruments Inc, 2000
;*****************************************************************************
.mmregs
; .global _sample_buff
;*****************************************************************************
.def _lms
.global _sindata
MU .set 327 ;收敛因子U=0.01 ,Q15
WN .set 200h ;滤波器系数的起始地址
X0 .set 3BFH
XN .set 3feh
Y .set 70h
ONE .set 71h
U .set 72h
ERR .set 73h
D .set 74h
ERRF .set 75h
.text
_lms:setc intm
nop
MAR *,AR1
sst #1,*+
sst #0,*+
sar ar0,*+
sar ar1,*+
SAR AR3,*+
sar ar4,*+
SAR AR5,*+
sacl *+
sach *+ ;以上为保护寄存器
LDP #0H
mar *,ar0
lacc #0h
lar ar0,#0200h
RPT #63
SACL *+ ;将从200H开始的64个单元清0, 以存放滤波器系数
LAR AR0,#03BFH
RPT #63
SACL *+ ;将03bfh开始的64个单元清0, 以存储输入样值
lacc #01h
sacl ONE ;(ONE)=1
lacc MU
SACL U ;(U)=MU
SETC SXM ;置符号扩展位和益处模式
SETC OVM
SPM #01H
LAR AR5,#_sindata ;存放输入波形的起始地址
LAR AR6,#2000H ;存放输出波形的起始地址
LAR AR7,#127
INPUT:
MAR *,AR5
LACC *+
SACL D ;读输入数据放入暂存单元
MAR *,AR3
SETC CNF ;把B0块指定为程序存储器
MPY #0H ;PREG=0
LACC ONE,15 ;采用上舍入的方法减小误差
LAR AR3,XN ;AR3=03FEH,新值地址
FIR:
RPT #63
MACD 0FF00H,*- ;计算输出y(n)
CLRC CNF ;B0指定为数据存储器
APAC
SACH Y ;暂时存储滤波器的输出 因为PM=1 结果不用再左移一位
MAR *,AR6
SACH *+,AR3 ;存储滤波器的输出 2000H开始的数据区
MAR *+
LACC D
SACL *
SUB Y ;e(n)=d(n)-y(n)=x(n)-y(n)
SACL ERR
LT ERR
MPY U
PAC ;PERG左移一位--->ACC
ADD ONE,15 ;采用上舍入的方法减小误差(四舍五入)
SACH ERRF ;U*e(n)
LAR AR1,#63
LAR AR2,#WN ;AR2指向滤波器系数
LAR AR3,#XN ;AR3指向数据样值
LT ERRF
MAR *,AR3 ;有待滤波的输入数据起始地址 3bfh
MPY *-,AR2 ;U*e(n)*x(n-N+1)
ALP:
ZALR *,AR3
MPYA *-,AR2 ;w(n+1)=w(n)+U*e(n)*x(n-N+1)
SACH *+,AR1 ;保存w(n+1)
BANZ ALP,*-,AR2
MAR *,AR7 ;重复127次
BANZ INPUT
rtint:LDP #0H
nop
splk #0004h,ifr
nop
MAR *,AR1
mar *-
lacc *-,16
add *-
LAR AR5,*-
nop
LAR AR4,*-
nop
LAR AR3,*-
nop
lar ar1,*
nop
mar *-
lar ar0,*-
nop
lst #0,*-
nop
lst #1,*
nop
clrc intm
ret
; .endif
;end of file. please do not remove. it is left here to ensure that no lines of code are removed by any editor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -