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

📄 ad.asm

📁 基于54x系列芯片的低通汇编程序
💻 ASM
字号:
***************************************************************
*******************TLV1571调试程序*****************************
***************************************************************
                   .mmregs
                   .def jump
                   .def start
                   ;.def time


K_SAMPLE_NUM       .set 256
out_data           .usect    "out_vars",K_SAMPLE_NUM
in_data            .usect    "in_vars",1
d_cr0_send         .usect    "cr_send",1
d_cr1_send         .usect    "cr_send",1

d_temp             .usect    "temp",1
k_cr0_send         .set 0080h
k_cr1_send         .set 0100h
***********************************************************
********************滤波器初始化***************************
***********************************************************
			    ;.def        START2
		   		
K_DATA_SIZE     .set		256			;输入数据个数
K_BUFFER_SIZE	.set		8
				;缓冲大小,必须大于a和b,并且必须是2的正整数次幂
K_STACK_SIZE    .set		256			;堆栈大小
K_A				.set		3			;a向量的个数
K_B				.set		4			;b向量的个数
K_CIR			.set		K_BUFFER_SIZE

;STACK			.usect	"stack",K_STACK_SIZE
;SYSTEM_STACK	.set    K_STACK_SIZE+STACK

DATA_DP			.usect "filter_vars",0
filterdata		.usect "filter_vars",K_DATA_SIZE
bufferdatay		.usect "filter_vars",256
bufferdatax		.usect "filter_vars",K_BUFFER_SIZE*2

		
			



***********************************************************
*******************重新映射中断向量的变量******************
***********************************************************
K_IPTR            .set       000111000b<<07





K_TEMP            .set       1111111b



D_PMST            .usect     "pmst",1
************************************************************
************************************************************

                  .sect      "prog"
                  
                  .asg AR2,ORIGIN
			.asg AR3,INPUT
			.asg AR4,FILTER
			.asg AR5,OUTPUT
			.def  b1,b2,b3,a1,a2,a3
b1         .set   1456H           ;b1=0.1589
b2         .set   3D07H           ;b2=0.4768
b3         .set   3D07H           ;b3=0.4768
b4         .set   1456H           ;b4=0.1589
a1         .set  -103AH           ;a1=-0.1268
a2         .set   430FH           ;a2=0.5239
a3         .set  -1016H           ;a3=-0.1257
		  	
			
start:
                  SSBX FRCT
                  LDM   PMST,A


                  AND   #K_TEMP,A
                  OR    #K_IPTR,A
                  STL   A,ar6
                  MVDM  ar6,PMST

      stm 	#0ffffh,tcr
      stm   #00177h,PRD
      stm	#08e4h,TCR

*******************************************************
*******************设置初始值**************************
*******************************************************
      stm        #d_temp,ar6
      stm        #d_cr0_send,ar1
      st         #k_cr0_send,*ar1+
      st         #k_cr1_send,ar1
      stm        #d_cr0_send,ar1
      ;LD         #K_SAMPLE_NUM,A
      stm        #out_data,ar7

********************************************************
		 STM  #K_CIR,BK
             STM  #1,AR0
             STM  #out_data,ORIGIN
             STM  #bufferdatax,INPUT
             STM  #bufferdatay,FILTER
             STM  #filterdata,OUTPUT

            RPT  #K_A-1
            ;MVDD *ORIGIN+,*INPUT+0%
             STM  #0, *INPUT+0%
             STM  #bufferdatax,INPUT

             RPT  #K_A-1
             MVDD *INPUT+0%,*FILTER+0%
            ; STM  #0,*FILTER+0%
             STM  #bufferdatay,FILTER
           ;  STM  #bufferdatax,INPUT
********************************************************
*************写状态字***********************************
********************************************************
      portr     0FFFFH,*ar6
      nop
      nop
      nop
      portw    *ar1+,07FFFH
      rpt      #8
      nop
      portw    *ar1,07FFFH
      portr    01h,*ar6
      rpt      #10
      nop
      nop
**********************************************************
********************中断设置******************************
**********************************************************
      stm        #0008h,IMR
      nop
      nop
      stm        #0000h,IFR
      nop
      rsbx       intm
      nop
*********************************************************************
*******等待中断,使用累加器A做计数器,当写完K_SAMPLE_NUM个数据后,******
***********重置累加器A,并使AR5指向out_data的开始地址*****************
*********************************************************************
WAIT:   NOP
        NOP
       ; BC  WAIT,ANEQ
       ; NOP
       ;STM #out_data,ar7
       ; STM #filterdata,ar5
        ;LD  #K_SAMPLE_NUM,A
        B   WAIT
        NOP
******************************************************************
**********中断服务程序,用以读装换信号,放入out_data区**************
******************************************************************
jump:   ;SUB    #1h,A
        rsbx   xf
        rpt    #5
        nop
        portr  07FFFH,*ar7


********************归一化, 移位********************
	 			LD		*ORIGIN, A
				SFTA	A, 6, B
				STL		B, *ORIGIN
********************归一化, 移位********************
        rpt   #5
        nop
        ssbx  xf
        nop
        portr 0FFFFH,*ar6
        nop
        nop
        nop
        nop
**********************************
   		
             MVDD *ORIGIN,*INPUT
             RPT  #K_B-1-1
             MAR  *INPUT-0%
             MPY  *INPUT+0%,#b4,B
             LD   B,A
             MPY  *INPUT+0%,#b3,B
             ADD  B,A
             MPY  *INPUT+0%,#b2,B
             ADD  B,A
             MPY  *INPUT+0%,#b1,B
             ADD  B,A
             MPY  *FILTER+0%,#a3,B
             ADD  B,A
             MPY  *FILTER+0%,#a2,B
             ADD  B,A
             MPY  *FILTER+0%,#a1,B
             ADD  B,A
             STH  A,*FILTER-0%
             STH  A,*OUTPUT
             MAR  *FILTER-0%

********************归一化, 移位********************
	 			LD		*OUTPUT, A
				SFTA	A, -4, B
				STL		B, *OUTPUT
********************归一化, 移位********************
**********************************
        portw *OUTPUT,0BFFFH
        nop
        nop
        rete
;time:
	;	portw *ar7+,0BFFFH
	;	nop
	;	nop
	;	rete
		
        .end

⌨️ 快捷键说明

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