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

📄 buffer.asm

📁 dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,fir等的很多程序.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	SBRK	3
	ADD	*+,AR0
	SACL	* 
	LT	* 
	MPYK	13
	PAC
	ADLK	_buffer+1,0
	SACL	* 
	LAR	AR3,* ,AR3
	LACK	3
	SACL	* ,AR2
	.line	20
;>>>> 		       	for(j=0;j<8;j++)
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L139
	MAR	*-
	RSXM ;;;
L138:
	.line	22
;>>>> 		       		buffer[(buffer[0]-num_card+i)*13+2+j] = labeldata[i*10+3+j];	// copy uid
	LT	*+
	MPYK	10
	PAC
	ADDK	3
	ADLK	_labeldata+0,0
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR2
	LDPK	_buffer
	LAC	_buffer
	ADRK	2
	SUB	* 
	SBRK	3
	ADD	*+,AR0
	SACL	* 
	LT	* ,AR2
	MPYK	13
	PAC
	ADDK	2
	ADLK	_buffer+0,0
	ADD	* ,AR0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	20
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*-
	SUBK	8
	BLZ	L138
L139:
	.line	24
;>>>> 		       	getBufferTime();	//get time
	CALL	_getBufferTime,AR1
	.line	25
;>>>> 		       	buffer[(buffer[0]-num_card+i)*13+10] = Day;
	LDPK	_buffer
	LAC	_buffer
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* 
	MPYK	13
	PAC
	ADLK	_buffer+10,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_Day,* ,AR2
	.line	26
;>>>> 		       	buffer[(buffer[0]-num_card+i)*13+11] = Hour;
	LAC	_buffer
	ADRK	3
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* 
	MPYK	13
	PAC
	ADLK	_buffer+11,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_Hour,* ,AR2
	.line	27
;>>>> 		       	buffer[(buffer[0]-num_card+i)*13+12] = Minute;
	LAC	_buffer
	ADRK	3
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* 
	MPYK	13
	PAC
	ADLK	_buffer+12,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_Minute,* ,AR2
	.line	28
;>>>> 		       	buffer[(buffer[0]-num_card+i)*13+13] = Second;
	LAC	_buffer
	ADRK	3
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* 
	MPYK	13
	PAC
	ADLK	_buffer+13,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_Second,* ,AR2
	.line	17
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	ADRK	3
	SUBS	* 
	BLZ	L136
	B	EPI0_12
L134:
	.line	31
;>>>> 		else if( labeldata[0] == 0 )
	LDPK	_labeldata
	LAC	_labeldata
EPI0_12:
	.line	34
	MAR	* ,AR1
	SBRK	7
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	636,000000000H,6

	.sym	_dbTimer,_dbTimer,32,3,0

	.func	637
;>>>> 	static void dbTimer( )
;>>>> 		uchar i,j;   
******************************************************
* FUNCTION DEF : _dbTimer
******************************************************
_dbTimer:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,6
	LAR	AR0,*0+,AR2

	.sym	_i,1,12,1,16
	.sym	_j,2,12,1,16
	.sym	_flags,3,12,1,16
	.sym	_num_card,4,12,1,16
	.sym	_len,5,12,1,16
	.line	4
;>>>> 		uchar flags = 0;	            
;>>>> 	   	uchar num_card;
;>>>> 	   	uchar len;   	
	LACK	0
	LARK	AR2,3
	MAR	*0+
	SACL	* ,AR1
	.line	8
;>>>> 	    myInvOut();   	
	CALL	_myInvOut
	.line	9
;>>>> 		num_card = labeldata[0];  
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	BLKD	#_labeldata,*+,AR0
	.line	10
;>>>> 		len = 1+1+(c_db_n+1)*5+4;	// db_adr+db_n+db+timer
	LDPK	_c_db_n
	LAC	_c_db_n
	ADDK	1
	SACL	* 
	LT	* ,AR2
	MPYK	5
	PAC
	ADDK	6
	SACL	*-
	.line	11
;>>>> 		if( num_card != 0 )
	LAC	* 
	BZ	EPI0_13
	.line	13
;>>>> 			bReadTag = 1;
	LACK	1
	LDPK	_bReadTag
	SACL	_bReadTag
	.line	14
;>>>> 			if(buffer[0] >= 0x0b){return;}
;>>>> 			//buffer[0] += num_card;
	LDPK	_buffer
	ZALS	_buffer
	SUBK	11
	BGEZ	EPI0_13
	.line	17
;>>>> 			flags = ISOFlagsSys&0xfb;	// not inventory
	LACK	251
	LDPK	_ISOFlagsSys
	AND	_ISOFlagsSys
	MAR	*-
	SACL	* 
	.line	18
;>>>> 		    flags |= 0x60;			// address_flag	,option_flag
	ORK	96
	SACL	* 
	.line	19
;>>>> 		    for(i=0;i<num_card;i++)		// read multiple blocks
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	ADRK	3
	SUBS	* 
	BGEZ	EPI0_13
	MAR	*-
L144:
	.line	21
;>>>> 				viccdata[0] = 15;     	//len
	LACK	15
	LDPK	_viccdata
	SACL	_viccdata
	.line	22
;>>>> 		      	viccdata[1] = flags;    //flags
	BLDD	*-,#_viccdata+1
	.line	23
;>>>> 		      	viccdata[2] = 0x23;	//cmd
	LACK	35
	LDPK	_viccdata+2
	SACL	_viccdata+2
	.line	24
;>>>> 		      	for(j=0;j<8;j++)	// copy uid
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L147
	MAR	*-
	RSXM ;;;
L146:
	.line	26
;>>>> 		      		viccdata[3+j] = labeldata[i*10+10-j];	      			
	LT	*+
	MPYK	10
	PAC
	ADDK	10
	ADLK	_labeldata+0,0
	SUB	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_viccdata+3,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	24
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*-
	SUBK	8
	BLZ	L146
L147:
	.line	28
;>>>> 		      	viccdata[11] = c_db_adr;	//start addr
	LDPK	_c_db_adr
	BLDD	_c_db_adr,#_viccdata+11
	.line	29
;>>>> 		      	viccdata[12] = c_db_n;		// length
	BLDD	_c_db_n,#_viccdata+12
	.line	30
;>>>> 		      	wr_crc_send();                                                    
	CALL	_wr_crc_send,AR1
	.line	32
;>>>> 	   			ISOMode = ISOModeSys&0xe7;	//read ,all	   		
	LACK	231
	LDPK	_ISOModeSys
	AND	_ISOModeSys
	LDPK	_ISOMode
	SACL	_ISOMode
	.line	33
;>>>> 	   			sendISOCmd();
	CALL	_sendISOCmd
	.line	34
;>>>> 	    		CS_RAM_1;
	LACK	63487
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	2056
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	.line	36
;>>>> 	      		if(viccdata[1] == 0)	// read correctly
	LDPK	_viccdata+1
	LAC	_viccdata+1
	BNZ	L148
	.line	38
;>>>> 	      			buffer[0] ++;
	LDPK	_buffer
	LAC	_buffer
	ADDK	1
	SACL	_buffer
	.line	39
;>>>> 	      			buffer[(buffer[0]-num_card+i)*len+1] = c_db_adr;	
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	*-,AR0
	PAC
	ADLK	_buffer+1,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_c_db_adr,* ,AR2
	.line	40
;>>>> 	      			buffer[(buffer[0]-num_card+i)*len+2] = c_db_n;	
	LAC	_buffer
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* ,AR0
	PAC
	ADLK	_buffer+2,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_c_db_n,* ,AR2
	.line	41
;>>>> 	      			for(j=0;j<(c_db_n+1)*5;j++)// copy block status and block data
	LACK	0
	SBRK	3
	SACL	* ,AR0
	LDPK	_c_db_n
	ZALS	_c_db_n
	ADDK	1
	SACL	* 
	LT	* 
	LACK	5
	SACL	*
	MPYU	*,AR2
	ZALS	* 
	SPAC
	BGEZ	L150
	RSXM ;;;
L149:
	.line	43
;>>>> 	      				buffer[(buffer[0]-num_card+i)*len+3+j] = viccdata[2+j];
	LAC	* ,AR0
	ADLK	_viccdata+2,0
	SACL	* 
	LAR	AR3,* ,AR2
	LDPK	_buffer
	LAC	_buffer
	ADRK	2
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* 
	PAC
	ADDK	3
	ADLK	_buffer+0,0
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	41
	LAC	* 
	ADDK	1
	SACL	* ,AR0
	LDPK	_c_db_n
	ZALS	_c_db_n
	ADDK	1
	SACL	* 
	LT	* 
	LACK	5
	SACL	*
	MPYU	*,AR2
	ZALS	* 
	SPAC
	BLZ	L149
L150:
	.line	45
;>>>> 	      			getBufferTime();	//get time
	CALL	_getBufferTime,AR1
	.line	46
;>>>> 		        	buffer[(buffer[0]-num_card+i)*len+(len-3)] = Day;
	LDPK	_buffer
	LAC	_buffer
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* 
	PAC
	SUBK	3
	RSXM
	ADLK	_buffer+0,0
	ADD	*-,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_Day,* ,AR2
	.line	47
;>>>> 	        		buffer[(buffer[0]-num_card+i)*len+(len-2)] = Hour;
	LAC	_buffer
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* 
	PAC
	SUBK	2
	ADLK	_buffer+0,0
	ADD	*-,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_Hour,* ,AR2
	.line	48
;>>>> 	        		buffer[(buffer[0]-num_card+i)*len+(len-1)] = Minute;
	LAC	_buffer
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* 
	PAC
	SUBK	1
	ADLK	_buffer+0,0
	ADD	*-,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_Minute,* ,AR2
	.line	49
;>>>> 	        		buffer[(buffer[0]-num_card+i)*len+(len-0)] = Second;
;>>>> 		else
	LAC	_buffer
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* 
	PAC
	ADLK	_buffer+0,0
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_Second,* 
L148:
	.line	19
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	ADRK	3
	SUBS	*-
	BLZ	L144
EPI0_13:
	.line	56
	MAR	* ,AR1
	SBRK	7
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	692,000000000H,6

	.sym	_serialDbTimer,_serialDbTimer,32,3,0

	.func	693
;>>>> 	static void serialDbTimer()
;>>>> 		uchar i,j;   
******************************************************
* FUNCTION DEF : _serialDbTimer
******************************************************
_serialDbTimer:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,6
	LAR	AR0,*0+,AR2

	.sym	_i,1,12,1,16
	.sym	_j,2,12,1,16
	.sym	_flags,3,12,1,16
	.sym	_num_card,4,12,1,16
	.sym	_len,5,12,1,16
	.line	4
;>>>> 		uchar flags = 0;	            
;>>>> 	   	uchar num_card; 
;>>>> 	   	uchar len;   	
	LACK	0
	LARK	AR2,3
	MAR	*0+
	SACL	* ,AR1
	.line	8
;>>>> 		myInvOut();   
	CALL	_myInvOut
	.line	9
;>>>> 		num_card = labeldata[0];   			     		
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	BLKD	#_labeldata,* 
	.line	10
;>>>> 		if( num_card != 0 )
	LAC	* 
	BZ	L152
	.line	12
;>>>> 			bReadTag = 1;
	LACK	1
	LDPK	_bReadTag
	SACL	_bReadTag
	.line	13
;>>>> 			if(buffer[0] >= 0x0b) {return;}                   		
;>>>> 	        //buffer[0] += num_card;	        
	LDPK	_buffer
	ZALS	_buffer
	SUBK	11
	BGEZ	EPI0_14
	.line	15
;>>>> 			len = 1+8+1+1+(c_db_n+1)*5+4;	//tr_typ+snr+db_adr+db_n+snr
	LDPK	_c_db_n
	LAC	_c_db_n
	ADDK	1
	MAR	*+,AR0
	SACL	* 
	LT	* ,AR2
	MPYK	5
	PAC
	ADDK	15
	SACL	* 
	.line	17
;>>>> 			flags = ISOFlagsSys&0xfb;	// not inventory
	LACK	251
	LDPK	_ISOFlagsSys
	AND	_ISOFlagsSys
	SBRK	2
	SACL	* 
	.line	18
;>>>> 	        flags |= 0x60;			// address_flag	,option_flag
	ORK	96
	SACL	* 
	.line	19
;>>>> 	        for(i=0;i<num_card;i++)		// read multiple blocks
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	ADRK	3
	SUBS	* 
	BGEZ	EPI0_14
	MAR	*-
L154:
	.line	21
;>>>> 	           	viccdata[0] = 15;     	//len
	LACK	15
	LDPK	_viccdata
	SACL	_viccdata
	.line	22
;>>>> 	      		viccdata[1] = flags;    //flags
	BLDD	*-,#_viccdata+1
	.line	23
;>>>> 	      		viccdata[2] = 0x23;	//cmd
	LACK	35
	LDPK	_viccdata+2
	SACL	_viccdata+2
	.line	24
;>>>> 	      		for(j=0;j<8;j++)	// copy uid
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L157
	MAR	*-
	RSXM ;;;
L156:
	.line	26
;>>>> 	      			viccdata[3+j] = labeldata[i*10+10-j];	      			
	LT	*+
	MPYK	10
	PAC
	ADDK	10
	ADLK	_labeldata+0,0
	SUB	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_viccdata+3,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	24
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*-
	SUBK	8
	BLZ	L156
L157:
	.line	28
;>>>> 	      		viccdata[11] = c_db_adr;	//start addr
	LDPK	_c_db_adr
	BLDD	_c_db_adr,#_viccdata+11
	.line	29
;>>>> 	      		viccdata[12] = c_db_n;		// length
	BLDD	_c_db_n,#_viccdata+12
	.line	30
;>>>> 	      		wr_crc_send();                                                    
	CALL	_wr_crc_send,AR1
	.line	31
;>>>> 	   			ISOMode = ISOModeSys&0xe7;	//read ,all	   			
	LACK	231
	LDPK	_ISOModeSys
	AND	_ISOModeSys
	LDPK	_ISOMode
	SACL	_ISOMode
	.line	32
;>>>> 	   			sendISOCmd();
	CALL	_sendISOCmd
	.line	33
;>>>> 	   			CS_RAM_1;
	LACK	63487
	LDPK	_MCRC
	AND	_MCRC
	SACL	_MCRC
	LACK	2056
	LDPK	_PFDATDIR
	OR	_PFDATDIR
	SACL	_PFDATDIR
	.line	35
;>>>> 	   			if(viccdata[1] == 0)	// read correctly
	LDPK	_viccdata+1
	LAC	_viccdata+1
	BNZ	L158
	.line	37
;>>>> 	   				buffer[0] ++;
	LDPK	_buffer
	LAC	_buffer
	ADDK	1
	SACL	_buffer
	.line	38
;>>>> 	   				buffer[(buffer[0]-num_card+i)*len+1] = 0x03;	//tr_typ
	MAR	* ,AR2
	LARK	AR2,4
	MAR	*0+
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* ,AR0
	PAC
	ADLK	_buffer+1,0
	SACL	* 
	LAR	AR3,* ,AR3
	LACK	3
	SACL	* ,AR2
	.line	39
;>>>> 	   				for(j=0;j<8;j++)//copy uid
	LACK	0
	SBRK	3
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L160
	MAR	*-
	RSXM ;;;
L159:
	.line	41
;>>>> 	      				buffer[(buffer[0]-num_card+i)*len+2+j] = labeldata[i*10+3+j];
	LT	*+
	MPYK	10
	PAC
	ADDK	3
	ADLK	_labeldata+0,0
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR2
	LDPK	_buffer
	LAC	_buffer
	ADRK	2
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	* 
	PAC
	ADDK	2
	ADLK	_buffer+0,0
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	.line	39
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*-
	SUBK	8
	BLZ	L159
L160:
	.line	43
;>>>> 	      			buffer[(buffer[0]-num_card+i)*len+10] = c_db_adr;
	LAC	_buffer
	LARK	AR2,4
	MAR	*0+
	SUB	* 
	SBRK	3
	ADD	* ,AR0
	SACL	* 
	LT	* ,AR2
	ADRK	4
	MPYU	*-,AR0
	PAC
	ADLK	_buffer+10,0
	SACL	* 
	LAR	AR3,* ,AR3
	BLKD	#_c_db_adr,* ,AR2
	.line	44
;>>>> 	      			buffer[(buffer[0]-num_card+i)*len+11] = c_db_n;
	LAC	_buffer
	SUB	* 
	S

⌨️ 快捷键说明

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