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

📄 ad.asm

📁 基于54x系列芯片的低通汇编程序
💻 ASM
字号:
***************************************************************
*******************TLV1571调试程序*****************************
***************************************************************
                   .mmregs
                   .def jump
                   .def start
                   
        
K_SAMPLE_NUM       .set 256
K_BUFFER_SIZE	.set		8
				;缓冲大小,必须大于a和b,并且必须是2的正整数次幂
K_A				.set		3			;a向量的个数
K_B				.set		4			;b向量的个数
K_CIR			.set		K_BUFFER_SIZE
K_kk			.usect "filter_vars",K_BUFFER_SIZE
bufferdatay		.usect "filter_vars",K_BUFFER_SIZE*2
bufferdatax		.usect "filter_vars",K_BUFFER_SIZE*2
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

***********************************************************
*	Y(z)   0.1589+0.4768*(z-1)+0.4768*(z-2)+0.1589*(z-3)  *                                          
*   ──=───────────────────────  *                                               
*   X(z)   1-(-0.1268*(z-1)+0.5239*(z-2)-0.1257*(z-3))    *                                               
***********************************************************	

           .def  b1,b2,b3,b4,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
***********************************************************
*******************重新映射中断向量的变量******************
***********************************************************
K_IPTR            .set       000111000b<<07





K_TEMP            .set       1111111b



D_PMST            .usect     "pmst",1
                  
                  .sect      "prog"
start:				SSBX FRCT
                  LDM   PMST,A
                  
                                    
                  AND   #K_TEMP,A
                  OR    #K_IPTR,A
                  STL   A,ar2
                  MVDM  ar2,PMST
                  
             
                  
     

*******************************************************
*******************设置初始值**************************
*******************************************************
      stm        #d_temp,ar2
      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        #in_data,ar5
      STM  			#K_CIR,BK
      STM  			#1,AR0         
             ;STM  #inputdata,ar6
             STM  #bufferdatax,ar3
             STM  #bufferdatay,ar4 
********************************************************
*************写状态字***********************************
********************************************************
      portr     0FFFFH,*ar2
      rpt	  #20
      nop
      nop
      nop
      portw    *ar1+,07FFFH
      rpt      #20
      nop
      portw    *ar1,07FFFH
      nop
      nop
      portr    0FFFFh,*ar2
      rpt      #10
      nop
      nop
**********************************************************
********************中断设置******************************
**********************************************************
      stm        #0008h,IMR
      nop
      nop
      stm        #0008h,IFR
      nop
      rsbx       intm
      nop
**********************************************************
********************定时器设置******************************
**********************************************************      
      stm 	#0810h,tcr
      nop
      nop
      stm   #0100h,PRD
      nop
      nop
      stm	#0829h,TCR
      nop
      nop
*********************************************************************
*******等待中断,使用累加器A做计数器,当写完K_SAMPLE_NUM个数据后,******
***********重置累加器A,并使AR5指向out_data的开始地址*****************
*********************************************************************                                                                    
WAIT:   NOP
        NOP
        BC  WAIT,ANEQ
        NOP
        STM #out_data,ar7
        LD  #K_SAMPLE_NUM,A
        B   WAIT
        NOP
******************************************************************
**********中断服务程序,用以读装换信号,放入out_data区**************
******************************************************************
jump:   SUB    #1h,A
        rsbx   xf
        rpt    #5
        nop
        portr  07FFFH,*ar5
        
        rpt   #5
        nop
        ssbx  xf
        nop
        nop
        nop
        ;PSHM	AR0
		;STM	#d_temp,ar0	
		;portr	0FFFFh,*ar0  ;读别的端口,使A/D转换器的CS为高
		;POPM	AR0
        CALL filter_start
        nop
        nop
        
        nop
        portr 0FFFFH,*ar2
        nop
        nop
        ;portw *ar5+,0BFFFH
		portw *ar7+,0BFFFH
		nop
		nop
		rete

filter_TEST:
		STL	A,	AR6
		LDM	*AR5,	A
		sfta A,#2
		STL	A,	*AR7
		
		LDM	AR6,	A
		nop
		nop
		ret



filter_start:
			 STL	A,	AR6	
			 ld *ar5,a
			sfta a,+6
			stl a,*ar5
             ;RPT  #K_A-1
             ;MVDD *ar6+,*ar3+0%
             ;STM  #bufferdatax,ar3
             
             ;RPT  #K_A-1
             ;MVDD *ar3+0%,*ar4+0% 
             ;STM  #bufferdatay,ar4 
             ;STM  #bufferdatax,ar3
             
             ;STM  #K_DATA_SIZE-3-1,BRC
             ;RPTB filter_end-1
             
             MVDD *ar5,*ar3
             RPT  #K_B-1-1
             MAR  *ar3-0%
             MPY  *ar3+0%,#b4,B
             LD   B,A
             MPY  *ar3+0%,#b3,B
             ADD  B,A
             MPY  *ar3+0%,#b2,B
             ADD  B,A
             MPY  *ar3+0%,#b1,B
             ADD  B,A          
             MPY  *ar4+0%,#a3,B
             ADD  B,A
             MPY  *ar4+0%,#a2,B
             ADD  B,A
             MPY  *ar4+0%,#a1,B
             ADD  B,A
             STH  A,*ar4-0%
             nop
             nop
             sfta a,-4
             STH  A,*ar7
             nop
             nop
             LDM	AR6,	A
             nop
             nop
             MAR  *ar4-0%
filter_end:  NOP
             RET		
        .end                                                                                                                                                                            

⌨️ 快捷键说明

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