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

📄 hgq.asm

📁 我在公司做的基于430F206的互感器现场效验仪.有原理图印板图及源程序,已定型.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	LDPK	_Usav
	ZALS	_Usav
	ADDH	_Usav+1
	MAR	* ,AR3
	SACL	*+
	SACH	*-
	.line	79
;>>>> 				VA_point->I_CT=Iav; 
	LDPK	_Iav
	ZALS	_Iav
	ADDH	_Iav+1
	ADRK	2
	SACL	*+
	SACH	*-,AR4
	.line	80
;>>>> 		   		VA_point++;
	LDPK	_VA_point
	LAR	AR4,_VA_point
	ADRK	4
	SAR	AR4,_VA_point
	.line	81
;>>>> 				KeyNode.nkey=0; 
	LACK	0
	LDPK	_KeyNode
	SACL	_KeyNode
	.line	82
;>>>> 				VA_bhd();
	CALL	_VA_bhd,AR1
	.line	83
;>>>> 				VA_int++;
	LDPK	_VA_int
	LAC	_VA_int
	ADDK	1
	SACL	_VA_int
	.line	84
;>>>> 				err10_flag=1;
	LACK	1
	MAR	* ,AR2
	LARK	AR2,24
	MAR	*0+
	SACL	* 
	B	L54
L67:
	.line	86
;>>>> 			else if(KeyNode.nPage==16865||KeyNode.nPage==16992||KeyNode.nPage==17635||KeyNode.nPage==18278)
	LDPK	_KeyNode+3
	LAC	_KeyNode+3
	SUBK	16865
	BZ	LL6
	LAC	_KeyNode+3
	SUBK	16992
	BZ	LL6
	LAC	_KeyNode+3
	SUBK	17635
	BZ	LL6
	LAC	_KeyNode+3
	SUBK	18278
	BNZ	L54
LL6:
	.line	88
;>>>> 				if(err10_flag==1)
	MAR	* ,AR2
	ADRK	21
	LAC	* 
	SUBK	1
	BNZ	L54
	.line	90
;>>>> 					VA_10err();
	CALL	_VA_10err,AR1
	.line	91
;>>>> 					err10_flag=0;
	LACK	0
	MAR	* ,AR2
	LARK	AR2,24
	MAR	*0+
	SACL	* 
L54:
	.line	24
	LDPK	_KeyNode+3
	LAC	_KeyNode+3
	SUBK	14109
	MAR	* ,AR2
	BZ	L53
	LAC	_KeyNode+3
	SUBK	14787
	BZ	L53
	LAC	_KeyNode+3
	SUBK	15430
	BZ	L53
	LAC	_KeyNode+3
	SUBK	16073
	BZ	L53
	LAC	_KeyNode+3
	SUBK	16865
	BZ	L53
	LAC	_KeyNode+3
	SUBK	16992
	BZ	L53
	LAC	_KeyNode+3
	SUBK	17635
	BZ	L53
	LAC	_KeyNode+3
	SUBK	18278
	BZ	L53
EPI0_4:
	.line	98
	MAR	* ,AR1
	SBRK	26
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	407,000000000H,25

	.sym	_VA_ctr1,_VA_ctr1,32,2,0
	.globl	_VA_ctr1

	.func	409
;>>>> 	void	VA_ctr1(void)
******************************************************
* FUNCTION DEF : _VA_ctr1
******************************************************
_VA_ctr1:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 	    asm("	setc	intm");
	setc	intm
	.line	4
;>>>> 		reg_tcr=0x0c20;
	LACK	3104
	MAR	* ,AR0
	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
	.line	7
;>>>> 		sample_prd=1;
	LACK	1
	LDPK	_sample_prd
	SACL	_sample_prd
	.line	8
;>>>> 		sample_ctr(256);	
	LACK	256
	SACL	*+
	CALL	_sample_ctr
	MAR	*-
	.line	9
;>>>> 		pga_set(0,0);
	LACK	0
	SACL	*+
	SACL	*+
	CALL	_pga_set
	SBRK	2
	.line	10
;>>>> 		pga_set(1,0); 
	LACK	0
	SACL	*+
	LACK	1
	SACL	*+
	CALL	_pga_set
	SBRK	2
	.line	11
;>>>> 		pga=pga_u[0]+(pga_u[1]<<5);
	LDPK	_pga_u+1
	LAC	_pga_u+1,5
	ADD	_pga_u
	SACL	* 
	OUT	* ,0200h
	.line	13
;>>>> 		jdq_ctr(1,VA_jdq+jdqa+jdqb);
	LAC	_jdqa
	ADD	_VA_jdq
	ADD	_jdqb
	SACL	*+
	LACK	1
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
	.line	14
;>>>> 		sample(1);
	LACK	1
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	15
;>>>> 		uk=max_I(pr);
	LALK	_pr+0
	SACL	*+
	CALL	_max_I
	MAR	*-
	LDPK	_uk
	SACL	_uk
	SACH	_uk+1
	.line	16
;>>>> 		ik=max_I(pi);
	LALK	_pi+0
	SACL	*+
	CALL	_max_I
	MAR	*-
	LDPK	_ik
	SACL	_ik
	SACH	_ik+1
	.line	17
;>>>> 		if(uk<0.7)
	LALK	FL20
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$LT
	BZ	L71
	.line	19
;>>>> 			if(jdqa==0x04)
	LAC	_jdqa
	SUBK	4
	BNZ	L72
	.line	21
;>>>> 				jdqa=0x08;
	LACK	8
	SACL	_jdqa
	.line	22
;>>>> 				ua_xs=124.0/624.0;
	LALK	FL21
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	B	L75
L72:
	.line	24
;>>>> 			else if(jdqa==0x08)
	LAC	_jdqa
	SUBK	8
	BNZ	L75
	.line	26
;>>>> 				jdqa=0xa;
	LACK	10
	SACL	_jdqa
	.line	27
;>>>> 				ua_xs=1.0;
	LALK	FL4
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	B	L75
L71:
	.line	30
;>>>> 		else if(uk>4.5)
	LALK	FL22
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$GT
	BZ	L75
	.line	32
;>>>> 			if(jdqa==0x0a)
	LAC	_jdqa
	SUBK	10
	BNZ	L77
	.line	34
;>>>> 				jdqa=0x08;
	LACK	8
	SACL	_jdqa
	.line	35
;>>>> 				ua_xs=124.0/624.0;
	LALK	FL21
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	B	L75
L77:
	.line	37
;>>>> 			else if(jdqa=0x08)
	LACK	8
	SACL	_jdqa
	BZ	L75
	.line	39
;>>>> 				jdqa=0x04;
	LACK	4
	SACL	_jdqa
	.line	40
;>>>> 				ua_xs=24.0/624.0;
	LALK	FL23
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
L75:
	.line	44
;>>>> 		if(ik<0.4)
	MAR	* ,AR1
	LALK	FL24
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_ik+0,*+
	CALL	F$$LT
	BZ	L80
	.line	46
;>>>> 			if(jdqb==0x00)
	LAC	_jdqb
	BNZ	L82
	.line	48
;>>>> 				jdqb=0x10;
	LACK	16
	SACL	_jdqb
	.line	49
;>>>> 				ub_xs=12.0;
	LALK	FL25
	LRLK	AR3,_ub_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	B	L82
L80:
	.line	52
;>>>> 		else if(ik>4.5)
	LALK	FL22
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_ik+0,*+
	CALL	F$$GT
	BZ	L82
	.line	54
;>>>> 			if(jdqb=0x10)
	LACK	16
	SACL	_jdqb
	BZ	L82
	.line	56
;>>>> 				jdqb=0x00;
	LACK	0
	SACL	_jdqb
	.line	57
;>>>> 				ub_xs=1.00;
	LALK	FL4
	LRLK	AR3,_ub_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
L82:
	.line	60
;>>>> 		jdq_ctr(1,VA_jdq+jdqa+jdqb);
	LAC	_jdqa
	ADD	_VA_jdq
	ADD	_jdqb
	MAR	* ,AR1
	SACL	*+
	LACK	1
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
EPI0_5:
	.line	61
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	469,000000000H,1

	.sym	_VA_ctr,_VA_ctr,32,2,0
	.globl	_VA_ctr

	.func	471
;>>>> 	void	VA_ctr(void)
;>>>> 		int i,j;
******************************************************
* FUNCTION DEF : _VA_ctr
******************************************************
_VA_ctr:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+

	.line	4
;>>>> 	    asm("	setc	intm");
	setc	intm
	.sym	_i,1,4,1,16
	.sym	_j,2,4,1,16
	.line	5
;>>>> 		reg_tcr=0x0c20;
	LACK	3104
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0fff8h,AR3
	.line	6
;>>>> 		out_fre=50.0;
	LALK	FL18
	LRLK	AR3,_out_fre+0
	RPTK	1
	TBLR	*+
	.line	7
;>>>> 		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
	.line	8
;>>>> 		sample_prd=1;
	LACK	1
	LDPK	_sample_prd
	SACL	_sample_prd
	.line	9
;>>>> 		sample_ctr(256);	
	LACK	256
	SACL	*+
	CALL	_sample_ctr
	MAR	*-
	.line	10
;>>>> 		jdq_ctr(1,VA_jdq);
	BLKD	_VA_jdq+0,*+
	LACK	1
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
	.line	11
;>>>> 		ua_xs=2.0/624.0;
	LALK	FL26
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	.line	12
;>>>> 		ub_xs=1.0;
	LALK	FL4
	LRLK	AR3,_ub_xs+0
	RPTK	1
	TBLR	*+
	.line	13
;>>>> 		pga_set(0,0);
	MAR	* ,AR1
	LACK	0
	SACL	*+
	SACL	*+
	CALL	_pga_set
	SBRK	2
	.line	14
;>>>> 		pga_set(1,0); 
	LACK	0
	SACL	*+
	LACK	1
	SACL	*+
	CALL	_pga_set
	SBRK	2
	.line	15
;>>>> 		pga=pga_u[0]+(pga_u[1]<<5);
	LDPK	_pga_u+1
	LAC	_pga_u+1,5
	ADD	_pga_u
	SACL	* 
	OUT	* ,0200h
	.line	16
;>>>> 		sample(1);
	LACK	1
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	17
;>>>> 		uk=max_I(pr);
	LALK	_pr+0
	SACL	*+
	CALL	_max_I
	MAR	*-
	LDPK	_uk
	SACL	_uk
	SACH	_uk+1
	.line	18
;>>>> 		if(uk<0.3)
	LALK	FL27
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$LT
	BZ	L85
	.line	20
;>>>> 			jdqa=0x04;
	LACK	4
	SACL	_jdqa
	.line	21
;>>>> 			jdq_ctr(1,VA_jdq+jdqa);
	ADD	_VA_jdq
	SACL	*+
	LACK	1
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
	.line	22
;>>>> 			ua_xs=24.0/624.0;
	LALK	FL23
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	.line	23
;>>>> 			sample(1);
	MAR	* ,AR1
	LACK	1
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	24
;>>>> 			uk=max_I(pr);		
	LALK	_pr+0
	SACL	*+
	CALL	_max_I
	MAR	*-
	LDPK	_uk
	SACL	_uk
	SACH	_uk+1
	.line	25
;>>>> 			if(uk<0.7)
	LALK	FL20
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$LT
	BZ	L85
	.line	27
;>>>> 				jdqa=0x08;
	LACK	8
	SACL	_jdqa
	.line	28
;>>>> 				jdq_ctr(1,VA_jdq+jdqa);
	ADD	_VA_jdq
	SACL	*+
	LACK	1
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
	.line	29
;>>>> 				ua_xs=124.0/624.0;
	LALK	FL21
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	.line	30
;>>>> 				sample(1);
	MAR	* ,AR1
	LACK	1
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	31
;>>>> 				uk=max_I(pr);
	LALK	_pr+0
	SACL	*+
	CALL	_max_I
	MAR	*-
	LDPK	_uk
	SACL	_uk
	SACH	_uk+1
	.line	32
;>>>> 				if(uk<0.7)
	LALK	FL20
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_uk+0,*+
	CALL	F$$LT
	BZ	L85
	.line	34
;>>>> 					jdqa=0xa;
	LACK	10
	SACL	_jdqa
	.line	35
;>>>> 					ua_xs=1.0;
	LALK	FL4
	LRLK	AR3,_ua_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
L85:
	.line	39
;>>>> 		sample(1);
	MAR	* ,AR1
	LACK	1
	SACL	*+
	CALL	_sample
	MAR	*-
	.line	40
;>>>> 		ik=max_I(pi);
	LALK	_pi+0
	SACL	*+
	CALL	_max_I
	MAR	*-
	LDPK	_ik
	SACL	_ik
	SACH	_ik+1
	.line	41
;>>>> 		if(ik<0.4)
	LALK	FL24
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_ik+0,*+
	CALL	F$$LT
	BZ	L88
	.line	43
;>>>> 			jdqb=0x10;
	LACK	16
	SACL	_jdqb
	.line	44
;>>>> 			ub_xs=12.0;
	LALK	FL25
	LRLK	AR3,_ub_xs+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
L88:
	.line	46
;>>>> 		jdq_ctr(1,VA_jdq+jdqa+jdqb);
	LAC	_jdqa
	ADD	_VA_jdq
	ADD	_jdqb
	MAR	* ,AR1
	SACL	*+
	LACK	1
	SACL	*+
	CALL	_jdq_ctr
	SBRK	2
EPI0_6:
	.line	47
	SBRK	4
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	517,000000000H,3

	.sym	_CT_measure,_CT_measure,32,2,0
	.globl	_CT_measure

	.func	520
;>>>> 	void CT_measure(void)
;>>>> 		int i;
******************************************************
* FUNCTION DEF : _CT_measure
******************************************************
_CT_measure:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,2
	LAR	AR0,*0+

	.sym	_i,1,4,1,16
	.line	4
;>>>> 		if(CT2_mode==0)
	LDPK	_CT2_mode
	LAC	_CT2_mode
	BNZ	L89
	.line	6
;>>>> 			SR=CT1/5.0;
	LALK	FL3
	RPTK	1
	TBLR	*+
	SSXM
	LDPK	_CT1
	LAC	_CT1
	CALL	F$$ITOF
	CALL	F$$DIV
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_SR
	SACL	_SR
	SACH	_SR+1
	.line	7
;>>>> 			Zb=SVA/25.0;
;>>>> 		else
	LALK	FL28
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_SVA+0,*+
	CALL	F$$DIV
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_Zb
	SACL	_Zb
	SACH	_Zb+1
	B	L90
L89:
	.line	11
;>>>> 			SR=CT1;
	SSXM
	LDPK	_CT1
	LAC	_CT1
	CALL	F$$ITOF
	MAR	*-
	ZALH	*-
	ADDS	* 
	LDPK	_SR
	SACL	_SR
	SACH	_SR+1
	.line	12
;>>>> 			Zb=SVA;
	LDPK	_SVA
	ZALS	_SVA
	ADDH	_SVA+1
	LDPK	_Zb
	SACL	_Zb
	SACH	_Zb+1
L90:
	.line	21
;>>>> 		if(COS_mode>1.0) XS_cos=1.0;
	LALK	FL4
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_COS_mode+0,*+
	CALL	F$$GT
	BZ	L91
	LALK	FL4
	LRLK	AR3,_XS_cos+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	B	L92
L91:
	.line	22
;>>>> 		else if(COS_mode<0.0) XS_cos=0.0;
	LALK	FL15
	RPTK	1
	TBLR	*+
	RPTK	1
	BLKD	_COS_mode+0,*+
	CALL	F$$LT
	BZ	L93
	LALK	FL15
	LRLK	AR3,_XS_cos+0
	MAR	* ,AR3
	RPTK	1
	TBLR	*+
	B	L92
L93:
	.line	23
;>>>> 		else	XS_cos=COS_mode;
	LDPK	_COS_mode
	ZALS	_COS_mode
	ADDH	_COS_mode+1
	LDPK	_XS_cos
	SACL	_XS_cos
	SACH	_XS_cos+1
L92:
	.line	24
;>>>> 	    XS_sin=sqrt(1-XS_cos*XS_cos);
	MAR	* ,AR1
	RPTK	1
	BLKD	_XS_cos+0,*+
	RPTK	1
	BLKD	_XS_cos+0,*+
	CALL	F$$MUL
	LALK	FL4
	RPTK	1
	TBLR	*+
	CALL	F$$SUB
	CALL	_sqrt
	SBRK	2
	LDPK	_XS_sin
	SACL	_XS_sin
	SACH	_XS_sin+1
	.line	25
;>>>> 		DC_R();
	CALL	_DC_R
	.line	26
;>>>> 		ratio();
	CALL	_ratio
	.line	27
;>>>> 		if(KeyNode.nPage==13291)
	LDPK	_KeyNode+3
	LAC	_KeyNode+3
	SUBK	13291
	BNZ	L94
	.line	29
;>>>> 			admit(); 
	CALL	_admit
	.line	30
;>>>> 			error(); 
	CALL	_error
	B	L95
L94:
	.line	32
;>>>> 	    else	if(KeyNode.nPage==13733)
	LAC	_KeyNode+3
	SUBK	13733
	BNZ	L95
	.line	34
;>>>> 	    	admitbfb();
	CALL	_admitbfb
	.line	35
;>>>> 	    	errorbfb();
	CALL	_errorbfb
L95:
	.line	37
;>>>> 	    init_dsp();
	CALL	_init_dsp
EPI0_7:
	.line	38
	SBRK	3
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	557,000000000H,2

	.sym	_CT_burden,_CT_burden,32,2,0
	.globl	_CT_burden

	.func	560
;>>>> 	void CT_burden(void)
;>>>> 		unsigned int i,j,k; 
******************************************************
* FUNCTION DEF : _CT_burden
******************************************************
_CT_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	9
;>>>> 		ad7538=0; 
	LACK	0
	SACL	* 
	OUT	* ,0e100h,AR1
	.line	10
;>>>> 		jdq_ctr(2,0x8+0x60+0x1);
	LACK	105
	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

⌨️ 快捷键说明

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