⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iirrt.asm

📁 this base on DSP a iir design
💻 ASM
字号:
      .title  "iir.asm" 
      .copy   "init.h" 
      .copy   "vector.h" 
      .def	start
    ;  .data
      .bss    B0,5,1
B1    .equ    B0+1 
B2    .equ    B0+2
B3    .equ    B0+3
B4    .equ    B0+4
      .bss    A1,4,1
A2    .equ    A1+1   
A3    .equ    A1+2 
A4    .equ    A1+3
      .bss    Y0,5,1
Y1    .equ    Y0+1
Y2    .equ    Y0+2
Y3    .equ    Y0+3
Y4    .equ    Y0+4 
      .bss    W0,5,1
W1    .equ    W0+1 
W2    .equ    W0+2 
W3    .equ    W0+3 
W4    .equ    W0+4    
      .data
INPUT	       .copy  	"testdata.dat" ;模拟输入在数据存储区0x300 
OUTPUT_BUFF    .sect   "output"   ;输出数据在数据区0x2000
OUTPUT         .space  128*16    ;  K_FRAME_SIZE*16 ;
     .text
     ;b    _START
    ;滤波器系数的分子系数b0=02Ah,b1=0A9h,b2=0FEh,b3=0A9h,b4=02Ah。
B_tbl:  .word     02Ah,0A9h,0FEh,0A9h,02Ah      ;coefficient table :B
    ;滤波器系数的分母系数-a1=4ABEh,-a2=0B7A8h,-a3=20BBh,-a4=0FA38h
A_tbl:  .word     4ABEh,0B7A8h,20BBh,0FA38h     ;coefficient table :A
w_tbl:  .word     0,0,0,0,0     ;data table :w
y_tbl:  .word     0,0,0,0,0     ;data table :y  


*
*transfer coefficients and values from program memory to
*data memory
*
        
        LAR  AR2,#2000h    ;#800h output adddr
        LAR  AR1,#300h     ;input addr
      ;LACL #111b
      ;SACL 73h
      ;OUT  73h,PMST
start:  setc  INTM      ;global  interrupt  disable
        ;LAR  AR3,#127 
        
        mar   *,ar4     ;select  AR4
        lar   ar4,#B0   ;move  coefficients  from
        rpt   #4        ;program memory  to data memory
        blpd  #B_tbl,*+
        lar   ar4,#A1
        rpt   #3      
        blpd  #A_tbl,*+
        lar   ar4,#W0   ;move data from program memory
        rpt   #4        ;to data memory
        blpd  #w_tbl,*+
        lar   ar4,#Y1
        rpt   #3    
        blpd  #y_tbl,*+
*
*begin  filter calculations
*
        ldp   #W0
        lacl  #0      ;set  ACC  to 0
        lt    W4      ;begin  sum of  products
        mpy   B4      ;(w4*A4)+
        ltd   W3
        mpy   B3      ;(w3*A3)+
        ltd   W2
        mpy   B2      ;(w2*A2)+
        ltd   W1
        mpy   B1      ;(w1*A1)+
        ltd   W0
        mpy   B0      ;(w0*A0)
        APAC
        ltd   Y4  
        mpy   A4     ; (y4*B4)+
        ltd   Y3  
        mpy   A3     ; (y3*B3)+
        ltd   Y2  
        mpy   A2     ; (y2*B2)+
        ltd   Y1  
        mpy   A1     ; (y1*B1)+
        apac
        SACH  Y0,3
        DMOV  Y0
        LARP  2  ;
        SACH  *+,3        ;store  result

        b     start ;continuous loop-no  exit


inpt1:	ret				; Unused interrupt routines
inpt23:	ret
timer:  ret
codtx:	ret
codrx:	ret
uart:	ret
    
    .end
       
       
       
       
       
  
                 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -