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

📄 hgq.asm

📁 我在公司做的基于430F206的互感器现场效验仪.有原理图印板图及源程序,已定型.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;>>>> 		ub_xs=6.00;
	LALK	FL29
	LRLK	AR3,_ub_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	.line	13
;>>>> 		ua_xs=0.30;
	LALK	FL27
	LRLK	AR3,_ua_xs+0
	RPTK	1
	TBLR	*+
	.line	14
;>>>> 		for(i=0x100;i<0x3fff;i=i+0x100)
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SPLK	#256,* 
	ZALS	* 
	SUBK	16383
	BGEZ	L98
L97:
	.line	16
;>>>> 			ad7538=i;
	OUT	*+,0e100h
	.line	17
;>>>> 			for(j=0;j<0xffff;j++)
	LACK	0
	SACL	* 
	ZALS	* 
	RSXM
	SUBK	-1
	BGEZ	L100
	MAR	*+
L99:
	.line	18
;>>>> 			for(k=0;k<0x10;k++);
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	16
	BGEZ	L102
L101:
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	16
	BLZ	L101
L102:
	.line	17
	MAR	*-
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*+
	RSXM
	SUBK	-1
	BLZ	L99
L100:
	.line	19
;>>>> 			sample(5);  
	MAR	* ,AR1
	LACK	5
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	20
;>>>> 			kkfft();
	CALL	_kkfft
	.line	21
;>>>> 			if(ik>0.4||uk>3.0) break;
	LALK	FL24
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_ik+0,*+
	CALL	F$$GT
	BNZ	L98
	LALK	FL16
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$GT
	BNZ	L98
	.line	14
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	256
	SACL	* 
	ZALS	* 
	SUBK	16383
	BLZ	L97
L98:
	.line	23
;>>>> 		sample(5);      
	MAR	* ,AR1
	LACK	5
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	24
;>>>> 		kkfft();
	CALL	_kkfft
	.line	25
;>>>> 		if(uk*ua_xs<0.3)
	LALK	FL27
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_ua_xs+0,*+
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$MUL
	CALL	F$$LT
	BZ	L104
	.line	27
;>>>> 			jdq_ctr(2,0x8+0x60);
	LACK	104
	SACL	*+
	LACK	2
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
	.line	28
;>>>> 			ua_xs=3.0;
	LALK	FL16
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	.line	29
;>>>> 			sample(5);
	MAR	* ,AR1
	LACK	5
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	30
;>>>> 			kkfft();
	CALL	_kkfft
	.line	31
;>>>> 			if(uk*ua_xs<0.3)
	LALK	FL27
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_ua_xs+0,*+
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$MUL
	CALL	F$$LT
	BZ	L104
	.line	33
;>>>> 				jdq_ctr(1,0x01+0x80);
	LACK	129
	SACL	*+
	LACK	1
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
	.line	34
;>>>> 				ua_xs=30.0;
	LALK	FL30
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
L104:
	.line	37
;>>>> 		for(i=0;i<10;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	10
	BGEZ	L107
	MAR	* ,AR1
L106:
	.line	39
;>>>> 			sample(5);      
	LACK	5
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	40
;>>>> 			kkfft();
	CALL	_kkfft
	.line	41
;>>>> 			ukr1[i]=uk/(ik/Rcaiyang1);
	LALK	FL31
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_ik+0,*+
	CALL	F$$DIV
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$DIV
	MAR	*-,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,1,AR0
	ADLK	_ukr1+0,0
	SACL	* 
	LAR	AR3,* ,AR1
	ZALH	*-
	ADDS	* ,AR3
	SACL	*+
	SACH	*-,AR2
	.line	37
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* ,AR1
	SUBK	10
	BLZ	L106
L107:
	.line	43
;>>>> 		CT_bd=ratio_lb(ukr1);
	LALK	_ukr1+0
	MAR	* ,AR1
	SACL	*+
	CALL	_ratio_lb
	MAR	*-
	LDPK	_CT_bd
	SACL	_CT_bd
	SACH	_CT_bd+1
	.line	44
;>>>> 		CT_cos=cos(angle1*pii/180.0);  
	LALK	FL32
	RPTK	1
	TBLR	*+
	LALK	FL33
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_angle1+0,*+
	CALL	F$$MUL
	CALL	F$$DIV
	CALL	_cos
	SBRK	2
	LDPK	_CT_cos
	SACL	_CT_cos
	SACH	_CT_cos+1
	.line	45
;>>>> 		CT_R=CT_bd*CT_cos;
	RPTK	1
	BLKD	_CT_cos+0,*+
	RPTK	1
	BLKD	_CT_bd+0,*+
	CALL	F$$MUL
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_CT_R
	SACL	_CT_R
	SACH	_CT_R+1
	.line	46
;>>>> 		CT_X=CT_bd*sin(angle1*pii/180.0);
	LALK	FL32
	RPTK	1
	TBLR	*+
	LALK	FL33
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_angle1+0,*+
	CALL	F$$MUL
	CALL	F$$DIV
	CALL	_sin
	SBRK	2
	SACL	*+
	SACH	*+
	RPTK	1
	BLKD	_CT_bd+0,*+
	CALL	F$$MUL
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_CT_X
	SACL	_CT_X
	SACH	_CT_X+1
	.line	47
;>>>> 		if(CT2_mode ==0)
	LDPK	_CT2_mode
	LAC	_CT2_mode
	BNZ	L108
	.line	49
;>>>> 			CT_VA=25.0*CT_bd;
	RPTK	1
	BLKD	_CT_bd+0,*+
	LALK	FL28
	RPTK	1
	TBLR	*+
	CALL	F$$MUL
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_CT_VA
	SACL	_CT_VA
	SACH	_CT_VA+1
	B	L109
L108:
	.line	51
;>>>> 		else CT_VA=CT_bd;
	LDPK	_CT_bd
	ZALS	_CT_bd
	ADDH	_CT_bd+1
	LDPK	_CT_VA
	SACL	_CT_VA
	SACH	_CT_VA+1
L109:
	.line	52
;>>>> 		init_dsp();
	CALL	_init_dsp
EPI0_8:
	.line	53
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	612,000000000H,4

	.sym	_PT_burden,_PT_burden,32,2,0
	.globl	_PT_burden

	.func	615
;>>>> 	void PT_burden(void)
;>>>> 		unsigned int i,j,k; 
******************************************************
* FUNCTION DEF : _PT_burden
******************************************************
_PT_burden:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,4
	LAR	AR0,*0+,AR0

	.sym	_i,1,14,1,16
	.sym	_j,2,14,1,16
	.sym	_k,3,14,1,16
	.line	4
;>>>> 		reg_tcr=0x0c20; 
	LACK	3104
	SACL	* 
	OUT	* ,0fff8h,AR3
	.line	5
;>>>> 		out_fre=50.0;
	LALK	FL18
	LRLK	AR3,_out_fre+0
	RPTK	1
	TBLR	*+
	.line	6
;>>>> 		reg_prd=(int)(15625.0/out_fre-1.0);  
	MAR	* ,AR1
	LALK	FL4
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_out_fre+0,*+
	LALK	FL19
	RPTK	1
	TBLR	*+
	CALL	F$$DIV
	CALL	F$$SUB
	CALL	F$$FTOI
	SACL	* 
	OUT	* ,0fff9h,AR0
	.line	7
;>>>> 		sample_prd=1;
	LACK	1
	LDPK	_sample_prd
	SACL	_sample_prd
	.line	8
;>>>> 		ad7538=0;
	LACK	0
	SACL	* 
	OUT	* ,0e100h,AR1
	.line	9
;>>>> 		admit_ctr_pga=0x8+0x04;
	LACK	12
	SACL	_admit_ctr_pga
	.line	10
;>>>> 		jdq_ctr(2,0x8+0x04+0x1);
	LACK	13
	SACL	*+
	LACK	2
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
	.line	11
;>>>> 		jdq_ctr(1,0x01);
	LACK	1
	SACL	*+
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
	.line	12
;>>>> 		R_caiyang=20.00;
	LALK	FL7
	LRLK	AR3,_R_caiyang+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	.line	13
;>>>> 		ub_xs=1.00;
	LALK	FL4
	LRLK	AR3,_ub_xs+0
	RPTK	1
	TBLR	*+
	.line	14
;>>>> 		ua_xs=0.30;
	LALK	FL27
	LRLK	AR3,_ua_xs+0
	RPTK	1
	TBLR	*+
	.line	15
;>>>> 		for(i=0x100;i<0x3fff;i=i+0x100)
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SPLK	#256,* 
	ZALS	* 
	SUBK	16383
	BGEZ	L111
L110:
	.line	17
;>>>> 			ad7538=i;
	OUT	*+,0e100h
	.line	18
;>>>> 			for(j=0;j<0xffff;j++)
	LACK	0
	SACL	* 
	ZALS	* 
	RSXM
	SUBK	-1
	BGEZ	L113
	MAR	*+
L112:
	.line	19
;>>>> 			for(k=0;k<0x10;k++);
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	16
	BGEZ	L115
L114:
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	16
	BLZ	L114
L115:
	.line	18
	MAR	*-
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*+
	RSXM
	SUBK	-1
	BLZ	L112
L113:
	.line	20
;>>>> 			sample(5);  
	MAR	* ,AR1
	LACK	5
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	21
;>>>> 			kkfft();
	CALL	_kkfft
	.line	22
;>>>> 			if(uk>6.0||ik>3.0) break;
	LALK	FL29
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$GT
	BNZ	L111
	LALK	FL16
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_ik+0,*+
	CALL	F$$GT
	BNZ	L111
	.line	15
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	256
	SACL	* 
	ZALS	* 
	SUBK	16383
	BLZ	L110
L111:
	.line	24
;>>>> 		sample(5);
	MAR	* ,AR1
	LACK	5
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	25
;>>>> 		kkfft();
	CALL	_kkfft
	.line	26
;>>>> 		if(ik<0.3)
	LALK	FL27
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_ik+0,*+
	CALL	F$$LT
	BZ	L117
	.line	28
;>>>> 			admit_ctr_pga=0x8+0x10;
	LACK	24
	LDPK	_admit_ctr_pga
	SACL	_admit_ctr_pga
	.line	29
;>>>> 			jdq_ctr(2,0x8+0x10+0x1);
	LACK	25
	SACL	*+
	LACK	2
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
	.line	30
;>>>> 			R_caiyang=200.0;
	LALK	FL34
	LRLK	AR3,_R_caiyang+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	.line	31
;>>>> 			for(j=0;j<0xffff;j++);
	LACK	0
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	ZALS	* 
	RSXM
	SUBK	-1
	BGEZ	L119
L118:
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	-1
	BLZ	L118
L119:
	.line	32
;>>>> 			sample(5);
	MAR	* ,AR1
	LACK	5
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	33
;>>>> 			kkfft();
	CALL	_kkfft
L117:
	.line	41
;>>>> 		admit_pga();
	CALL	_admit_pga
	.line	42
;>>>> 		for(i=0;i<10;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	10
	BGEZ	L121
	MAR	* ,AR1
L120:
	.line	44
;>>>> 			sample(5);
	LACK	5
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	45
;>>>> 			kkfft();
	CALL	_kkfft
	.line	46
;>>>> 			ukr1[i]=(ik/R_caiyang)*1000.0/uk;
	RPTK	1
	BLKD	_uk+0,*+
	LALK	FL35
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_R_caiyang+0,*+
	RPTK	1
	BLKD	_ik+0,*+
	CALL	F$$DIV
	CALL	F$$MUL
	CALL	F$$DIV
	MAR	*-,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,1,AR0
	ADLK	_ukr1+0,0
	SACL	* 
	LAR	AR3,* ,AR1
	ZALH	*-
	ADDS	* ,AR3
	SACL	*+
	SACH	*-,AR2
	.line	42
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* ,AR1
	SUBK	10
	BLZ	L120
L121:
	.line	48
;>>>> 		PT_bd=ratio_lb(ukr1);
	LALK	_ukr1+0
	MAR	* ,AR1
	SACL	*+
	CALL	_ratio_lb
	MAR	*-
	LDPK	_PT_bd
	SACL	_PT_bd
	SACH	_PT_bd+1
	.line	49
;>>>> 		PT_cos=cos(angle1*pii/180.0); 
	LALK	FL32
	RPTK	1
	TBLR	*+
	LALK	FL33
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_angle1+0,*+
	CALL	F$$MUL
	CALL	F$$DIV
	CALL	_cos
	SBRK	2
	LDPK	_PT_cos
	SACL	_PT_cos
	SACH	_PT_cos+1
	.line	50
;>>>> 		PT_G=PT_bd*PT_cos-0.0016;
	LALK	FL36
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_PT_cos+0,*+
	RPTK	1
	BLKD	_PT_bd+0,*+
	CALL	F$$MUL
	CALL	F$$SUB
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_PT_G
	SACL	_PT_G
	SACH	_PT_G+1
	.line	51
;>>>> 		PT_B=PT_bd*sin(-angle1*pii/180.0);
	LALK	FL32
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_angle1+0,*+
	LALK	FL33
	RPTK	1
	TBLR	*+
	CALL	F$$MUL
	CALL	F$$NEG
	CALL	F$$DIV
	CALL	_sin
	SBRK	2
	SACL	*+
	SACH	*+
	RPTK	1
	BLKD	_PT_bd+0,*+
	CALL	F$$MUL
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_PT_B
	SACL	_PT_B
	SACH	_PT_B+1
	.line	52
;>>>> 		PT_bd=sqrt(PT_G*PT_G+PT_B*PT_B);
	RPTK	1
	BLKD	_PT_B+0,*+
	RPTK	1
	BLKD	_PT_B+0,*+
	CALL	F$$MUL
	RPTK	1
	BLKD	_PT_G+0,*+
	RPTK	1
	BLKD	_PT_G+0,*+
	CALL	F$$MUL
	CALL	F$$ADD
	CALL	_sqrt
	SBRK	2
	LDPK	_PT_bd
	SACL	_PT_bd
	SACH	_PT_bd+1
	.line	53
;>>>> 		if(PT_mode==0)	PT_VA=10.0*PT_bd;
	LDPK	_PT_mode
	LAC	_PT_mode
	BNZ	L122
	RPTK	1
	BLKD	_PT_bd+0,*+
	LALK	FL10
	RPTK	1
	TBLR	*+
	CALL	F$$MUL
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_PT_VA
	SACL	_PT_VA
	SACH	_PT_VA+1
	B	L123
L122:
	.line	54
;>>>> 		else if(PT_mode==1)	PT_VA=10.0*PT_bd/3.0;
	LAC	_PT_mode
	SUBK	1
	BNZ	L124
	LALK	FL16
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_PT_bd+0,*+
	LALK	FL10
	RPTK	1
	TBLR	*+
	CALL	F$$MUL
	CALL	F$$DIV
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_PT_VA
	SACL	_PT_VA
	SACH	_PT_VA+1
	B	L123
L124:
	.line	55
;>>>> 		else	PT_VA=10.0*PT_bd/9.0; 
	LALK	FL37
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_PT_bd+0,*+
	LALK	FL10
	RPTK	1
	TBLR	*+
	CALL	F$$MUL
	CALL	F$$DIV
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_PT_VA
	SACL	_PT_VA
	SACH	_PT_VA+1
L123:
	.line	57
;>>>> 		PT_arr[4]=PT_bd;
	LDPK	_PT_bd
	ZALS	_PT_bd
	ADDH	_PT_bd+1
	LDPK	_PT_arr+8
	SACL	_PT_arr+8
	SACH	_PT_arr+9
	.line	58
;>>>> 		PT_arr[5]=PT_cos;
	LDPK	_PT_cos
	ZALS	_PT_cos
	ADDH	_PT_cos+1
	LDPK	_PT_arr+10
	SACL	_PT_arr+10
	SACH	_PT_arr+11
	.line	59
;>>>> 		PT_arr[6]=PT_VA;
	LDPK	_PT_VA
	ZALS	_PT_VA
	ADDH	_PT_VA+1
	LDPK	_PT_arr+12
	SACL	_PT_arr+12
	SACH	_PT_arr+13
	.line	60
;>>>> 		init_dsp();
	CALL	_init_dsp
EPI0_9:
	.line	61
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	675,000000000H,4

	.sym	_PT_err,_PT_err,32,2,0
	.globl	_PT_err

	.func	678
;>>>> 	void	PT_err(void)
******************************************************
* FUNCTION DEF : _PT_err
******************************************************
_PT_err:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		PT_measure();
	CALL	_PT_measure
	.line	4
;>>>> 		if(PT1_mode==0)PT1_volt=PT1_temp*1.0;
	LDPK	_PT1_mode
	LAC	_PT1_mode
	BNZ	L125
	LALK	FL4
	RPTK	1
	TBLR	*+
	LDPK	_PT1_temp
	ZALS	_PT1_temp
	ADDH	_PT1_temp+1
	CALL	F$$LTOF
	CALL	F$$MUL
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_PT1_volt
	SACL	_PT1_volt
	SACH	_PT1_volt+1
	B	L126
L125:
	.line	5
;>>>> 		else	PT1_volt=PT1_temp/sqrt_3;
	LALK	FL38
	RPTK	1
	TBLR	*+
	LDPK	_PT1_temp
	ZALS	_PT1_temp
	ADDH	_PT1_temp+1
	CALL	F$$LTOF
	CALL	F$$DIV
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_PT1_volt
	SACL	_PT1_volt
	SACH	_PT1_volt+1
L126:
	.line	6
;>>>> 		if(PT_mode==0)PT2_volt=100.0;
	LDPK	_PT_mode
	LAC	_PT_mode
	BNZ	L127
	LALK	FL39
	LRLK	AR3,_PT2_volt+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	B	L128
L127:
	.line	7
;>>>> 		else if(PT_mode==1)PT2_volt=100.0/sqrt_3;
	LAC	_PT_mode
	SUBK	1
	BNZ	L129
	LALK	FL40
	LRLK	AR3,_PT2_volt+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	B	L128
L129:
	.line	8
;>>>> 		else	PT2_volt=100.0/3.0;
	LALK	FL41
	LRLK	AR3,_PT2_volt+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
L128:
	.line	9
;>>>> 		PT_SR=PT1_volt/PT2_volt;
	MAR	* ,AR1
	RPTK	1
	BLKD	_PT2_volt+0,*+
	RPTK	1
	BLKD	_PT1_volt+0,*+
	CALL	F$$DIV
	MAR	*-
	ZALH	*-
	ADDS	* 

⌨️ 快捷键说明

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