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

📄 main.asm

📁 FIR滤波器包括所有的源程序
💻 ASM
字号:
     .title  "main.asm"
     .copy   "dsp_init.h"
H:   .equ  3F0h      ;存放滤波器系数的起始地址
X:   .equ  300h      ;存放输入数据的起始地址
Y:   .equ  2300h     ;存放滤波器输出数据的起始地址
XN:  .equ  380h      ;线性缓冲区
     .data 
     
INPUT	       .copy   "fir.dat" ;模拟输入在数据存储区0x300 
OUTPUT         .sect   "output"       ;输出数据在数据区0x2300
               .space   200*16         ;K_FRAME_SIZE*16 ;
  ;h0=h10=000h,h1=h9=2FEh,h2=h8=675h,h3=h7=9AFh,h4=h6=0BF9h,h5=0CCCh
DH:  .word  0ff3ch,000h,02FEh,0675h,09AFh,0BF9h,0CCCh
     .word  0BF9h, 09AFh, 0675h, 02FEh, 000h,0ff3ch   ;滤波器系数 
     .text
START: 
      SETC OVM
      LARP  1
      LAR   AR1,#H
      RPT   #12
      BLDD  #DH,*+            ;将滤波器系数移至3f0h开始的单元中
      LAR   AR0,#XN           ;  #380h
      ZAC
      MAR   *,AR0
      RPT   #12
      SACL  *+                 ;将存放N个样本的数据缓冲区清0
      LAR   AR1,#X
      LAR   AR3,#Y
      LAR   AR4,#200
NEXT: SETC  OVM
      LAR   AR5,#38ch        ;N(13)个单元数据缓冲区的底部
      LAR   AR2,#H
      MAR   *,AR1
      LACC  *+
      LDP   #7
      SACL  XN               ;读入样本到数据缓冲区的顶部
      MAR   *,AR5
      ZAC
      LT    *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5 
      LTD   *-,AR2
      MPY   *+,AR5      
      LTD   *-,AR2  
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+,AR5
      LTD   *-,AR2
      MPY   *+
      APAC                    ;读取N个输入样本并进行N次乘法和累加
      LARP  3
      SACH  *+,2              ;保存滤波器输出,滤波结果右移14位
      LARP  4
      BANZ   NEXT
HERE:  B   HERE
       .end

⌨️ 快捷键说明

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