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

📄 filter.asm

📁 filter程序 低通滤波低通滤波低通滤波低通滤波低通滤波低通滤波低通滤波低通滤波低通滤波
💻 ASM
字号:
*************************************
*************滤波 程序***************
*************************************

				.mmregs
				.ref	filter_start
				.def	START 
K_DATA_SIZE		.set	256			;input data number
K_BUFFER_SIZE	.set    32			;buffer > a and b,buffer=2e
K_STACK_SIZE	.set 	256		
K_A				.set 	21			;a var number
;K_B				.set 	4			;b var number
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",K_BUFFER_SIZE*2
bufferdatax		.usect	"filter_vars",K_BUFFER_SIZE*2

				.data
				.global inputdata
inputdata
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
	.WORD 21315,  4595, -2444, 11368, 15066, -2014, -8408,  6957
	.WORD 12897, -1643, -5536, 11893, 19128,  4966,   428, 16305
				
				
				.text
				.asg AR2,ORIGIN
				.asg AR3,INPUT
				.asg AR4,FILTER
				.asg AR5,OUTPUT
START:
				NOP
				NOP
				NOP
				NOP
				SSBX	FRCT
				NOP
				NOP
				NOP
				SSBX	INTM
				NOP
				NOP
				NOP
				
				LD		#DATA_DP,DP
				STM		#SYSTEM_STACK,SP
				CALL	filter_start
				NOP
				NOP
				NOP
LOOP:
				B 	LOOP
				
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 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 	a1,a2,a3
				.def 	filter_start	
a0			.set	03fch
a1			.set	0321h	
a2			.set	-0000h		
a3			.set	-0406h		
a4			.set	-06a1h
a5			.set	-05a2h
a6			.set	0000h
a7			.set	0960h
a8			.set	13e6h
a9			.set	1c23h
a10			.set	1cb3h
a11			.set	1c23h
a12			.set	13e6h
a13			.set	0960h
a14			.set	0000h
a15			.set	-05a2h
a16			.set	-06a1h
a17			.set	-0406h
a18			.set	-0000h
a19			.set	0321h
a20			.set	03fch

				.text
filter_start:
				STM		#K_CIR,BK
				STM		#1,AR0
				STM		#inputdata,ORIGIN
				STM		#bufferdatax,INPUT
				;STM		#bufferdatay,FILTER
				STM		#filterdata,OUTPUT
				nop
				nop
				nop
				RPT		#K_A-1
				MVDD	*ORIGIN+,*INPUT+0%
				STM		#bufferdatax,INPUT
				
				;RPT		#K_A-1
				;MVDD	*INPUT+0%,*FILTER+0%
				;STM		#bufferdatay,FILTER
				;STM		#bufferdatax,INPUT
				
				STM		#K_DATA_SIZE-20-1,BRC
				RPTB	filter_end-1
				
				;wait interupt
				
				MVDD	*ORIGIN+,*INPUT
				RPT		#K_A-1-1
				MAR		*INPUT-0%
				MPY		*INPUT+0%,#a20,B			;从前往后算
				LD		B,A
				MPY		*INPUT+0%,#a19,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a18,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a17,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a16,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a15,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a14,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a13,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a12,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a11,B		
				ADD 	B,A		
				MPY		*INPUT+0%,#a10,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a9,B		
				ADD 	B,A
				MPY		*INPUT+0%,#a8,B
				ADD     B,A
				MPY		*INPUT+0%,#a7,B
				ADD 	B,A
				MPY		*INPUT+0%,#a6,B
				ADD 	B,A
				MPY		*INPUT+0%,#a5,B
				ADD 	B,A
				MPY		*INPUT+0%,#a4,B
				ADD 	B,A
				MPY		*INPUT+0%,#a3,B
				ADD 	B,A
				MPY		*INPUT+0%,#a2,B
				ADD 	B,A		
				MPY		*INPUT+0%,#a1,B
				ADD 	B,A
				MPY		*INPUT+0%,#a0,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%
				
filter_end:		NOP
				NOP
				NOP
				RET
				.end
		






⌨️ 快捷键说明

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