算术平均滤波
所谓算术平均滤波就是把n个采样值相加,然后取其算术平均值作为本次有效的采样信号
PUSH PSW ;现场保护
PUSH A
MOV FLAG,#00H ;进位位清零
MOV R0,DATA ;设置数据存储区首址
MOV R7,#08H ;设置采样数据个数
CLR A ;清累加器
LOOP: ADD A,@R0 ;两数相加
JNC NEXT ;无进位,转NEXT
INC FLAG ;有进位,进位位加1
NEXT: INC R0 ;数据指针加1
DJNZ R7, LOOP ;未加完,继续加
MOV R7,#03H ;设置循环次数
DIVIDE: MOV TEMP,A ;保存累加器中的内容
MOV A,FLAG ;累加结果除2
CLR C
RRC A
MOV FLAG,A
MOV A,TEMP
RRC A
DJNZ R7,DIVIDE ;未结束,继续执行
MOV SAMP,A ;保存结果至SAMP中
POP A ;恢复现场
POP PSW
RET