📄 get_vector.asm
字号:
//***********************************************************************
/*this vector is to calculate the vector used by the main program
r14,r15 pass the arizmuth and elevation,r2,r3 pass the address of
the real and image result*/
/*这个程序用于求给定方位角和仰角时天线阵列的阵列流行
1元素:a(1)=exp(-j*2*pi*((x*cos(sita)+ysin(sita))*cos(fei)+z*sin(fei))/rbd)
第2-6个元素:a(6)=exp(-j*2*pi(x*cos(sita)+ysin(sita))*cos(fei)
/rbd);其中rbd指的是波长,sita为方位角,fei为俯仰角*/
//***********************************************************************
#define pi 3.1415926535897932384
#define fac 2*pi/60 //60代表的是波长为60mm---频率为5Ghz
#define x1 -100.0//-85.595//90//85.595 //90mm 从此开始的宏定义天线阵的阵元座标
#define x2 58.0//0.0//27.812 //0.0//27.812=90cos72
#define x3 -100.0//85.595//-72.812//-85.595 //-72.812=-90cos36
#define x4 -58.0//52.901//-72.812
#define x5 -100.0//-52.901//27.812//52.901
#define x6 41.0
#define y1 100.0//-27.812//0.0//27.812
#define y2 100.0//-90//85.595//90 //85.595=90sin72
#define y3 58.0//27.812//52.901//27.812 //52.901=90sin36
#define y4 100.0//72.812//-52.901
#define y5 -58.0//72.812//-85.595//-72.812
#define y6 -41.0
#define z1 25.0//单位:毫米
#define z2 0.0
#define z3 0.0
#define z4 0.0
#define z5 0.0
#define z6 0.0
//.var cjmp_temp;
.section program;
.extern cosine,sine;
.global get_vector_a;
get_vector_a:
j30=cjmp;;
j2=xr2;;j3=xr3;;
xr13=pi/180.0;;
xfr0=r14*r13;;//xr14是方位角sita,xr15是仰角fei
call cosine(np);;
xr20=xr0;;//保存cos(sita)
xr1=x1;;//第1个阵元的x值
xfr5=r1*r0;;//x*cos(sita)
xfr0=r13*r14;;
call sine(np);;
xr21=xr0;;//保存sin(sita)
xr6=y1;;//第1个阵元的y值
xfr4=r0*r6;;//y*sin(sita)
xfr24=r5+r4;;//x*cos(sita)+y*sin(sita)
xfr0=r15*r13;;//fei角
call cosine (np);;
xr7=fac;;
xfr8=r7*r0;;//
xr22=xr8;;//fac*cos(fai)
xfr24=r24*r8;;//(x*cos(sita)+y*sin(sita))*fac*cos(fei)
xfr0=r15*r13;;//fei角
call sine (np);;
xr7=fac;;
xfr9=r0*r7;;//fac*sin(fei)
xr1=z1;;//第1个阵元的z值
xfr9=r1*r9;;//
xfr9=r9+r24;;//(x*cos(sita)+y*sin(sita))*fac*cos(fei)+z*fac*sin(fei)
xr0=xr9;;
call cosine(np);;//cos()
[j2+0]=xr0;;
xr0=xr9;;
call sine(np);;//sin()
[j3+0]=xr0;;
xr1=x2;;xr6=y2;;
xfr1=r1*r20;;xfr6=r6*r21;;//
xfr1=r1+r6;;//x*cos(sita)+y*sin(sita)
xfr1=r1*r22;;
xr0=xr1;;
call cosine(np);;
[j2+1]=xr0;;
xr0=xr1;;
call sine(np);;
[j3+1]=xr0;;
xr1=x3;;xr6=y3;;
xfr1=r1*r20;;xfr6=r6*r21;;//
xfr1=r1+r6;;//x*cos(sita)+y*sin(sita)
xfr1=r1*r22;;
xr0=xr1;;
call cosine(np);;
[j2+2]=xr0;;
xr0=xr1;;
call sine(np);;
[j3+2]=xr0;;
xr1=x4;;xr6=y4;;
xfr1=r1*r20;;xfr6=r6*r21;;//
xfr1=r1+r6;;//x*cos(sita)+y*sinIsita)
xfr1=r1*r22;;
xr0=xr1;;
call cosine(np);;
[j2+3]=xr0;;
xr0=xr1;;
call sine(np);;
[j3+3]=xr0;;
xr1=x5;;xr6=y5;;
xfr1=r1*r20;;xfr6=r6*r21;;//
xfr1=r1+r6;;//x*cos(sita)+y*sinIsita)
xfr1=r1*r22;;
xr0=xr1;;
call cosine(np);;
[j2+4]=xr0;;
xr0=xr1;;
call sine(np);;
[j3+4]=xr0;;
xr1=x6;;xr6=y6;;
xfr1=r1*r20;;xfr6=r6*r21;;//
xfr1=r1+r6;;//x*cos(sita)+y*sinIsita)
xfr1=r1*r22;;
xr0=xr1;;
call cosine(np);;
[j2+5]=xr0;;
xr0=xr1;;
call sine(np);;
[j3+5]=xr0;;
cjmp=j30;;
nop;nop;nop;;
CJMP(ABS)(NP);;
get_vector_a.end:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -