📄 zxb2.asm
字号:
;******************************************************
;合成波产生
;************************************
.include "F2407REGS.H" ;引用头部文件
.def _c_int0
.bss A,1
.bss B,1
.bss C,1
.bss Y1,1
.bss Y0,1
OutBuf1 .equ 300h
OutBuf2 .equ 800h
OutBuf3 .equ 900h
.text
_c_int0
SETC INTM
CLRC SXM
CLRC OVM
CLRC CNF
LDP #0E0H
SPLK #82FEH,SCSR1 ;CLKIN=10 M,CLKOUT= 20M
SPLK #0E8h,WDCR ;关看门狗
LDP #0
SPLK #0002h,IMR ;允许INT2中断
SPLK #0FFFFh,IFR ;清所有中断标志
;产生正弦波的频率为1kHz,采样频率为10kHz (系数定标Q10)
LDP #00H
SPLK #0678DH,A ;系数A
SPLK #0c000H,B ;系数B
SPLK #025A2H,C ;系数C
SPLK #00H,Y0
SPLK #25A2H,Y1
LAR AR6,#OutBuf1 ;输出波形存放起始地址
CALL ZXB
;正弦波频率f=100Hz,采样频率Fs=10KHz,定标Q14
SPLK #07fbfH,A ;系数A
SPLK #0c000H,B ;系数B
SPLK #0405H,C ;系数C
SPLK #00H,Y0
SPLK #405H,Y1
LAR AR6,#OutBuf2 ;输出波形存放起始地址
CALL ZXB
LAR AR1,#OutBuf1
LAR AR2,#OutBuf2
LAR AR3,#127
LAR AR4,#OutBuf3 ; 合成波形存放起始地址
LOOP1 MAR *,AR1
LACC *+,0,AR2
ADD *+,0,AR4
SACL *+,0,AR3
BANZ LOOP1
WAIT NOP
B WAIT
ZXB LAR AR3,#127
loop
LACC #00H
LDP #00H
LT Y0
MPY B
LTD Y1
MPY A
APAC
SACH Y1,2 ;将y(k)保存,以便下次计算y(k+1)时用
MAR *,AR6
SACH *+,2,AR3 ;输出波形存放300起始地址
BANZ loop
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -