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

📄 tbtx.asm

📁 我在公司做的基于430F206的互感器现场效验仪.有原理图印板图及源程序,已定型.
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	ADRK	3
	LAC	* 
	ADDK	5
	ANDK	0FFFFh
	SBRK	3
	SUBS	* 
	ADRK	2
	BGZ	L47
L48:
	.line	20
;>>>> 	  i=TbSentTxCrc(nTbTxCh,Len+5);
	LARK	AR2,4
	MAR	*0+
	LAC	* ,AR1
	ADDK	5
	SACL	*+
	LALK	_nTbTxCh+0
	SACL	*+
	CALL	_TbSentTxCrc
	SBRK	2
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	22
;>>>> 	  if(i==False)
	LAC	* 
	BNZ	L49
	.line	23
;>>>> 	    {reg_p=(unsigned int *)reg_imr;
	LACK	4
	MAR	*+
	SACL	* 
	.line	24
;>>>> 		 if((*reg_p & 0x0010)==0)
	LAR	AR3,* ,AR3
	BIT	* ,11
	BBNZ	L51
	.line	25
;>>>> 		 {*reg_p |=0x00010;
	LACK	16
	OR	* 
	SACL	* 
	B	L51
L49:
	.line	28
;>>>> 	  else nNewSysDataWrPreAdr+=4;
	LAC	_nNewSysDataWrPreAdr
	ADDK	4
	SACL	_nNewSysDataWrPreAdr
L51:
	.line	29
;>>>> 	  return(i);   
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	ZALS	* 
EPI0_9:
	.line	30
	MAR	* ,AR1
	SBRK	6
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	278,000000000H,5

	.sym	_TbTranRxData,_TbTranRxData,32,2,0
	.globl	_TbTranRxData

	.func	279
;>>>> 	void TbTranRxData(int *nTime)
******************************************************
* FUNCTION DEF : _TbTranRxData
******************************************************
_TbTranRxData:

LF10	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,4
	LAR	AR0,*0+

	.sym	_nTime,-3+LF10,20,9,16
	.sym	_i,1,14,1,16
	.sym	_pd,2,30,1,16
	.sym	_ps,3,30,1,16
	.line	2
;>>>> 	unsigned int	i;
;>>>> 	unsigned int	*pd,*ps;
	.line	5
;>>>> 	  i=TbGetRxCrc(nTbRxCh);	
	LALK	_nTbRxCh+0
	SACL	*+
	CALL	_TbGetRxCrc
	MAR	*-,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	6
;>>>> 	  if(i==False) {return; }
	LAC	* 
	BZ	EPI0_10
	.line	7
;>>>> 	  if(i==1)
	LAC	* 
	SUBK	1
	BNZ	L54
	.line	9
;>>>> 		TbTranTxData(0x1515,1,nTbRxCh,nTbTxCh);/*err*/
	LALK	_nTbTxCh+0
	MAR	* ,AR1
	SACL	*+
	LALK	_nTbRxCh+0
	SACL	*+
	LACK	1
	SACL	*+
	LACK	5397
	SACL	*+
	CALL	_TbTranTxData
	SBRK	4
	.line	10
;>>>> 		return;
;>>>> 	  switch(nTbRxCh[0])
;>>>> 	  {case 0x1515 :
	B	EPI0_10
L55:
	.line	15
;>>>> 	     *nTime=0x5555;
;>>>> 	   case 0x55aa :
	MAR	* ,AR2
	LARK	AR2,-3+LF10
	MAR	*0+
	LAR	AR3,* ,AR3
	SPLK	#21845,* 
	.line	30
;>>>> 	*/		break;
;>>>> 	   case 0x550a :
	B	EPI0_10
L58:
	.line	34
;>>>> 	       i=0;
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	35
;>>>> 		break;
;>>>> 	   case 0x3355 :
	B	EPI0_10
L59:
	.line	39
;>>>> 			*nTime=0; 
	MAR	* ,AR2
	LARK	AR2,-3+LF10
	MAR	*0+
	LAR	AR3,* ,AR3
	LACK	0
	SACL	* ,AR1
	.line	40
;>>>> 			WrSysData(); 
	CALL	_WrSysData
	.line	41
;>>>> 			break; 
;>>>> 	   case 0x2255 :          /*Claim New data*/
	B	EPI0_10
L60:
	.line	46
;>>>> 			bNewSysRdData=True;
	LDPK	_bNewSysRdData
	SPLK	#65535,_bNewSysRdData
	.line	47
;>>>> 			nNewSysDataRdPreAdr=0;
	LACK	0
	SACL	_nNewSysDataRdPreAdr
	.line	48
;>>>> 			RdSysData();nNewSysDataRdPreAdr+=4;
	CALL	_RdSysData,AR1
	LDPK	_nNewSysDataRdPreAdr
	LAC	_nNewSysDataRdPreAdr
	ADDK	4
	SACL	_nNewSysDataRdPreAdr
	.line	49
;>>>> 			*nTime=0;
	MAR	* ,AR2
	LARK	AR2,-3+LF10
	MAR	*0+
	LAR	AR3,* ,AR3
	LACK	0
	SACL	* 
	.line	51
;>>>> 			break;
;>>>> 	   case 0x2200 :          /**/
	B	EPI0_10
L61:
	.line	55
;>>>> 			pd=(unsigned *)nTbTxCh[2];
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	BLKD	#_nTbTxCh+2,* 
	.line	56
;>>>> 			if((unsigned)pd<0x100)return;
	ZALS	* 
	SUBK	256
	BLZ	EPI0_10
	.line	57
;>>>> 			for(i=0,ps=nTbRxCh+4;i<nTbRxCh[3];i++)
	LACK	0
	MAR	*-
	SACL	* 
	LALK	_nTbRxCh+4
	ADRK	2
	SACL	* 
	SBRK	2
	ZALS	* 
	LDPK	_nTbRxCh+3
	SUBS	_nTbRxCh+3
	BGEZ	L64
	ADRK	2
L63:
	.line	58
;>>>> 			*pd++=*ps++;
	LAR	AR3,*-
	LAR	AR4,*+,AR3
	LAC	*+,AR2
	SAR	AR3,*-,AR4
	SACL	*+,AR2
	SAR	AR4,*-
	.line	57
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	LDPK	_nTbRxCh+3
	SUBS	_nTbRxCh+3
	ADRK	2
	BLZ	L63
L64:
	.line	62
;>>>> 			RdSysData();nNewSysDataRdPreAdr+=4;
	CALL	_RdSysData,AR1
	LDPK	_nNewSysDataRdPreAdr
	LAC	_nNewSysDataRdPreAdr
	ADDK	4
	SACL	_nNewSysDataRdPreAdr
	.line	63
;>>>> 			*nTime=0; 
	MAR	* ,AR2
	LARK	AR2,-3+LF10
	MAR	*0+
	LAR	AR3,* ,AR3
	LACK	0
	SACL	* 
	.line	65
;>>>> 			break;
;>>>> 	   case 0x4444	:
	B	EPI0_10
L65:
	.line	68
;>>>> 	   		bRefurbish=False;
	LACK	0
	LDPK	_bRefurbish
	SACL	_bRefurbish
	.line	69
;>>>> 	   		bNewSysWrData=False;
	SACL	_bNewSysWrData
	.line	70
;>>>> 	   		break;
;>>>> 	   case 0x6666	:
	B	EPI0_10
L66:
	.line	72
;>>>> 	   		KeyNode.nkey=nTbRxCh[2];
	LDPK	_nTbRxCh+2
	BLDD	_nTbRxCh+2,#_KeyNode
	.line	73
;>>>> 			KeyNode.nPageType=nTbRxCh[3];
	BLDD	_nTbRxCh+3,#_KeyNode+1
	.line	74
;>>>> 			KeyNode.nCs=nTbRxCh[4];
	BLDD	_nTbRxCh+4,#_KeyNode+2
	.line	75
;>>>> 			KeyNode.nPage=nTbRxCh[5];
	BLDD	_nTbRxCh+5,#_KeyNode+3
	.line	76
;>>>> 			KeyNode.nCursor=nTbRxCh[6];
	BLDD	_nTbRxCh+6,#_KeyNode+4
	.line	77
;>>>> 			KeyNode.nCursorPreLine=nTbRxCh[7];
	BLDD	_nTbRxCh+7,#_KeyNode+5
	.line	78
;>>>> 			KeyNode.nCursorOldLine=nTbRxCh[8];
	BLDD	_nTbRxCh+8,#_KeyNode+6
	.line	79
;>>>> 			TbTranTxData(0x6666,1,nTbRxCh,nTbTxCh);
	LALK	_nTbTxCh+0
	MAR	* ,AR1
	SACL	*+
	LALK	_nTbRxCh+0
	SACL	*+
	LACK	1
	SACL	*+
	LACK	26214
	SACL	*+
	CALL	_TbTranTxData
	SBRK	4
	.line	80
;>>>> 	   default :{;break;}
	B	EPI0_10
L54:
	.line	12
	LDPK	_nTbRxCh
	ZALS	_nTbRxCh
	SUBK	5397
	BZ	L55
	SUBK	3307
	BZ	L61
	SUBK	85
	BZ	L60
	SUBK	4352
	BZ	L59
	SUBK	4335
	BZ	L65
	SUBK	4294
	BZ	L58
	SUBK	160
	BZ	EPI0_10
	SUBK	4284
	BZ	L66
EPI0_10:
	.line	82
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	360,000000000H,4

	.sym	_SysTb,_SysTb,32,2,0
	.globl	_SysTb

	.func	361
;>>>> 	void SysTb(int *nTime,unsigned nConstTime)
******************************************************
* FUNCTION DEF : _SysTb
******************************************************
_SysTb:

LF11	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR2

	.sym	_nTime,-3+LF11,20,9,16
	.sym	_nConstTime,-4+LF11,14,9,16
	.line	2
;>>>> 	{   TbTranRxData(nTime);
	LARK	AR2,-3+LF11
	MAR	*0+
	LAC	* ,AR1
	SACL	*+
	CALL	_TbTranRxData
	MAR	*-
	.line	11
;>>>> 	*/    if(bNewSysRdData && *nTime>300)
	LDPK	_bNewSysRdData
	LAC	_bNewSysRdData
	BZ	L68
	MAR	* ,AR2
	LARK	AR2,-3+LF11
	MAR	*0+
	LAR	AR3,* ,AR3
	SSXM
	LAC	* 
	SUBK	300
	BLEZ	L68
	.line	13
;>>>> 		  RdSysData();*nTime=0;
	CALL	_RdSysData,AR1
	MAR	* ,AR2
	LARK	AR2,-3+LF11
	MAR	*0+
	LAR	AR3,* ,AR3
	LACK	0
	SACL	* 
L68:
	.line	15
;>>>> 	    if(bNewSysWrData && *nTime>400)
	LDPK	_bNewSysWrData
	LAC	_bNewSysWrData
	BZ	L69
	MAR	* ,AR2
	LARK	AR2,-3+LF11
	MAR	*0+
	LAR	AR3,* ,AR3
	SSXM
	LAC	* 
	SUBK	400
	BLEZ	L69
	.line	17
;>>>> 	     WrSysData();*nTime=0;
	CALL	_WrSysData,AR1
	MAR	* ,AR2
	LARK	AR2,-3+LF11
	MAR	*0+
	LAR	AR3,* ,AR3
	LACK	0
	SACL	* 
L69:
	.line	19
;>>>> 	    if(*nTime>nConstTime)
	MAR	* ,AR2
	LARK	AR2,-3+LF11
	MAR	*0+
	LAR	AR3,*-,AR3
	ZALS	* ,AR2
	SUBS	* 
	BLEZ	L70
	.line	21
;>>>> 	     nNewSysDataWrPreAdr=0;*nTime=0;
	LACK	0
	LDPK	_nNewSysDataWrPreAdr
	SACL	_nNewSysDataWrPreAdr
	MAR	* ,AR3
	SACL	* ,AR1
	.line	22
;>>>> 	     bNewSysWrData=True;
	SPLK	#65535,_bNewSysWrData
	.line	23
;>>>> 	     WrSysData();
	CALL	_WrSysData
L70:
	.line	25
;>>>> 	    if(bNewSysWrData==False && bRefurbish==True)
	LDPK	_bNewSysWrData
	LAC	_bNewSysWrData
	BNZ	L71
	ZALS	_bRefurbish
	RSXM
	SUBK	-1
	BNZ	L71
	.line	27
;>>>> 	     nNewSysDataWrPreAdr=0;*nTime=0;bNewSysWrData=True;
	LACK	0
	SACL	_nNewSysDataWrPreAdr
	MAR	* ,AR2
	LARK	AR2,-3+LF11
	MAR	*0+
	LAR	AR3,* ,AR3
	SACL	* ,AR1
	SPLK	#65535,_bNewSysWrData
	.line	28
;>>>> 	     WrSysData();
	CALL	_WrSysData
L71:
EPI0_11:
	.line	30
	MAR	* ,AR1
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	390,000000000H,1

	.sym	_test,_test,32,2,0
	.globl	_test

	.func	391
;>>>> 	void test() 
;>>>> 	unsigned int	a[30],i;
******************************************************
* FUNCTION DEF : _test
******************************************************
_test:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,32
	LAR	AR0,*0+,AR2

	.sym	_a,1,62,1,480,,30
	.sym	_i,31,14,1,16
	.line	4
;>>>> 	for(i=0;i<20;i++)a[i]=i;
	LACK	0
	LARK	AR2,31
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	20
	BGEZ	L73
L72:
	LAR	AR3,* ,AR3
	MAR	*0+,AR2
	LAC	* ,AR3
	MAR	*+
	SACL	* ,AR2
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	20
	BLZ	L72
L73:
	.line	5
;>>>> 	TbTranTxData(0x55aa,10,a,nTbTxCh);
	LALK	_nTbTxCh+0
	MAR	* ,AR1
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	LACK	10
	SACL	*+
	LACK	21930
	SACL	*+
	CALL	_TbTranTxData
	SBRK	4
	.line	6
;>>>> 	for(i=0;i<0x7ff;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,31
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	2047
	BGEZ	L75
L74:
	.line	7
;>>>> 		a[0]=i;
	LAC	* 
	SBRK	30
	SACL	* 
	.line	6
	ADDK	1
	ADRK	30
	SACL	* 
	ZALS	* 
	SUBK	2047
	BLZ	L74
L75:
	.line	8
;>>>> 	for(i=0;i<0x7ff;i++)
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	2047
	BGEZ	L77
L76:
	.line	9
;>>>> 		a[0]=i;
	LAC	* 
	SBRK	30
	SACL	* 
	.line	8
	ADDK	1
	ADRK	30
	SACL	* 
	ZALS	* 
	SUBK	2047
	BLZ	L76
L77:
	.line	10
;>>>> 	for(i=0;i<0x7ff;i++)
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	2047
	BGEZ	L79
L78:
	.line	11
;>>>> 		a[0]=i;
	LAC	* 
	SBRK	30
	SACL	* 
	.line	10
	ADDK	1
	ADRK	30
	SACL	* 
	ZALS	* 
	SUBK	2047
	BLZ	L78
L79:
EPI0_12:
	.line	12
	MAR	* ,AR1
	SBRK	33
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	402,000000000H,32

	.sym	_nTbTxCh,_nTbTxCh,62,2,4096,,256
	.globl	_nTbTxCh

	.sym	_cc1,_cc1,14,2,16
	.globl	_cc1

	.sym	_len,_len,4,2,16
	.globl	_len

	.sym	_bRefurbish,_bRefurbish,14,2,16
	.globl	_bRefurbish

	.sym	_reg_point1,_reg_point1,30,2,16
	.globl	_reg_point1

	.sym	_reg_point2,_reg_point2,30,2,16
	.globl	_reg_point2

	.sym	_nTbRxChLen,_nTbRxChLen,14,2,16
	.globl	_nTbRxChLen

	.sym	_nTbRxBegin,_nTbRxBegin,14,2,16
	.globl	_nTbRxBegin

	.sym	_bTbTxSoh,_bTbTxSoh,14,2,16
	.globl	_bTbTxSoh

	.sym	_ccc,_ccc,62,2,320,,20
	.globl	_ccc

	.sym	_nNewSysDataRdPreAdr,_nNewSysDataRdPreAdr,4,2,16
	.globl	_nNewSysDataRdPreAdr

	.sym	_nTbRxCrc,_nTbRxCrc,14,2,16
	.globl	_nTbRxCrc

	.sym	_bNewSysRdData,_bNewSysRdData,14,2,16
	.globl	_bNewSysRdData

	.sym	_nTbTxChBuf,_nTbTxChBuf,62,2,4096,,256
	.globl	_nTbTxChBuf

	.sym	_nTbRxCh,_nTbRxCh,62,2,4096,,256
	.globl	_nTbRxCh

	.sym	_nTbRxEnd,_nTbRxEnd,14,2,16
	.globl	_nTbRxEnd

	.sym	_bNewSysWrData,_bNewSysWrData,14,2,16
	.globl	_bNewSysWrData

	.sym	_nTbRxChBuf,_nTbRxChBuf,62,2,4096,,256
	.globl	_nTbRxChBuf

	.sym	_nNewSysDataWrPreAdr,_nNewSysDataWrPreAdr,4,2,16
	.globl	_nNewSysDataWrPreAdr

	.sym	_bTbRxSoh,_bTbRxSoh,14,2,16
	.globl	_bTbRxSoh

	.sym	_nTbTxCrc,_nTbTxCrc,14,2,16
	.globl	_nTbTxCrc

	.sym	_nTbTxEnd,_nTbTxEnd,14,2,16
	.globl	_nTbTxEnd

	.sym	_nTbTxBegin,_nTbTxBegin,14,2,16
	.globl	_nTbTxBegin

	.sym	_KeyNode,_KeyNode,8,2,112,_StructKeyNode
	.globl	_KeyNode
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	I$$SAVE
	.global	I$$REST
	.end

⌨️ 快捷键说明

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