📄 converter.asm
字号:
.title "Converter.asm"
.include "Init_54x.asm"
*SIN25K
SINSTP .set 0H
SIN25P .set 1H
SINNB0 .set 2H
SINNB1 .set 3H
SININT .set 4H
SINTLP .set 5H
SINOUT .set 6H
COS25P .set 7H
COSOUT .set 8H
*MAIN
TEMPM .set 9H
INPHASE .set 0AH
QUAD .set 0BH
MUOUT .set 19H
MIXDIN .set 1BH
K_IF80 .set 25/80*128 ;步进相位步长
MAIN IDLE #1 ;等待下一个中频采样数据输入
CALL SIN25K ;产生25kHZ的中频正弦余弦信号子程序
STM #MIXDIN+K_AD,AR3 ;数字正交混频
STM #COSOUT+K_AD,AR4
MPY *AR4,*AR3,A
STH A,INPHASE ;同相分量
STM #SINOUT+K_AD,AR4
MPY *AR4,*AR3,A
STH A,QUAD ;正交分量
B MAIN
SIN25K: ST #K_IF80,SINSTP ;设置中频步长
SIN2GO LD SIN25P,A ;SIN25P存着数字压控振荡器上一时刻的相位
ADD SINSTP,A
AND #07FH,A
STL A,SIN25P ;迭代出这一次相位的地址
ADD #SINTAB,A ;读出这次正弦值
READA SINOUT
LD SIN25P,A ;迭代出这次的余弦值的地址
ADD #32,A
AND #7FH,A
READA COSOUT
SINRET RET
**
SINTAB
.word 07FFFH,07FD8H,07F61H,07E9CH,07D89H,07C29H,07A7CH,07884H
.word O764BH,073B5H,070E2H,06DC9H,06A6DH,066CFH,062F1H,05ED7H
.word 05A82H,055F5H,05133H,04C3FH,0471CH,041CEH,03C56H,036BAH
.word 030FBH,02B1FH,02528H,01F1AH,018F9H,012C8H,00C8CH,00648H
.word 00000H,0F9B8H,0F374H,0ED38H,0E707H,0E0E6H,0DAD8H,0D4E1H
.word 0CF05H,0C946H,0C3AAH,0BE32H,0B8E4H,0B3C1H,0AECDH,0AA0BH
.word 0A57EH,0A129H,09D0FH,09931H,09593H,09237H,08F1EH,08C4BH
.word 089BFH,0877CH,08584H,083D7H,08277H,08164H,0809FH,08028H
.word 08001H,08028H,0809FH,08164H,08277H,083D7H,08584H,0877CH
.word 089BFH,08C4BH,08F1EH,09237H,09593H,09931H,09D0FH,0A129H
.word 0A57EH,0AA0BH,0AECDH,0B3C1H,0B8E4H,0BE32H,0C3AAH,0C946H
.word 0CF05H,0D4E1H,0DAD8H,0E0E6H,0E707H,0ED38H,0F374H,0F9B8H
.word 00000H,00648H,00C8CH,012C8H,018F9H,01F1AH,02528H,02B1FH
.word 030FBH,036BAH,03C56H,041CEH,0471CH,04C3FH,05133H,055F5H
.word 05A82H,05ED7H,062F1H,066CFH,06ADDH,06DC9H,070E2H,073B5H
.word 0764BH,07884H,07A7CH,07C29H,07D89H,07E9CH,07F61H,07FD8H
.word 07FFFH
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -