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

📄 main1.asm

📁 这里面有很多dsp应用程序源码
💻 ASM
字号:
;ZY13DSP12BD mfilter1.0
;Mr Li Xiao Bei 
;Hu Bei Zhong You
;2004.6.9
;mfilter1.0
;======================== main.asm =========================
;       
		.mmregs
		.def _c_int00
		.include c54.inc
		.ref c54init
		.ref table
		.def Get_ADValue
        ;A/D输入地址
PA1     .set 0x0008        
		;D/A输出地址
PA0		.set 0x0002
	    .bss	y,1		    ;y
	    .data
ad_data .usect  "ad_data",256 ;一共采样128个点来完成滤波的实验
xn	    .usect	"xn",80	    ;xn
h	    .usect	"h",80		;h
        .sect   "progsys"
        .align  0x10
_c_int00:    
        STM 	#0x0f80,SP           	
		CALL 	c54init         ;设置相应的采样率来完成实验项目
		LD 		#ad_data,DP
		SSBX 	FRCT			 ;小数乘法
		STM  	#h,AR1
		RPT  	#79
		MVPD 	table,*AR1+     ;将滤波系数从程序存储区搬移到数据存储区
		STM  	#h+79,AR4   
		STM  	#ad_data,AR5    ;将A/D数据缓冲区的首地址赋值给AR5
		STM  	#256,AR6        ;将缓冲区大小初始值赋127
		STM     #79,AR7         ;对滤波器输入数据xn进行计数
		STM  	#80,BK          ;设置循环缓冲器的长度
		STM  	#-1,AR0         
		STM  	#xn,AR3
		MVDD 	*AR5+,*AR3      ;将A/D采集进来的数据输入xn进行运算
		STM  	#xn+79,AR3      ;将AR3指向循环缓冲区的最后一位数据
;		LD   	#xn,DP
FIR:
		RPTZ 	A,#79
		MAC	 	*AR3+0%,*AR4+0%,A
		STH	 	A,@y
		PORTW 	@y,PA0
		BANZ    bbb,*AR7-
		STM  	#ad_data,AR5    ;将A/D数据缓冲区的首地址赋值给AR5		
bbb:
		MVDD 	*AR5+,*AR3+0%
		B		FIR
	
**********ISR Get A/D Value and Filter*************
Get_ADValue:
*Read AD Value
		;PSHM	AR5
		;PSHM	AR6
        PORTR 	PA1,*AR5+
        BANZ	aaa,*AR6-
        ;STM		#127,AR6        ;开始刷新A/D数据缓冲区
		;STM  	#ad_data,AR5    ;将A/D数据缓冲区的首地址赋值给AR5        
        STM		#0,IMR      ;关闭定时器
aaa:    
        ;POPM	AR6
        ;POPM	AR5		
        RETE
		.end
                                  
     

⌨️ 快捷键说明

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