scanner.asm

来自「dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,f」· 汇编 代码 · 共 3,856 行 · 第 1/5 页

ASM
3,856
字号
	.line	24
;>>>> 				case 0x61:{snrTimeComPrefix();break;}
	CALL	_snrTimeComPrefix,AR1
	B	L43
L47:
	.line	26
;>>>> 				case 0x02:{db();break;}
	CALL	_db,AR1
	B	L43
L48:
	.line	27
;>>>> 				case 0x22:{dbTime();break;}
	CALL	_dbTime,AR1
	B	L43
L49:
	.line	28
;>>>> 				case 0x42:{dbComPrefix();break;}
	CALL	_dbComPrefix,AR1
	B	L43
L50:
	.line	29
;>>>> 				case 0x62:{dbTimeComPrefix();break;}
	CALL	_dbTimeComPrefix,AR1
	B	L43
L51:
	.line	31
;>>>> 				case 0x03:{snrDb();	break;}
	CALL	_snrDb,AR1
	B	L43
L52:
	.line	32
;>>>> 				case 0x23:{snrDbTime();	break;}
	CALL	_snrDbTime,AR1
	B	L43
L53:
	.line	33
;>>>> 				case 0x43:{snrDbComPrefix();break;}
	CALL	_snrDbComPrefix,AR1
	B	L43
L54:
	.line	34
;>>>> 				case 0x63:{snrDbTimeComPrefix();break;}		
	CALL	_snrDbTimeComPrefix,AR1
	B	L43
L55:
	.line	35
;>>>> 				default:  {snr();break;}		
	CALL	_snr,AR1
	B	L43
L41:
	.line	19
	ZALS	_scan_data
	SUBK	1
	BZ	L42
	SUBK	1
	BZ	L47
	SUBK	1
	BZ	L51
	SUBK	30
	BZ	L44
	SUBK	1
	BZ	L48
	SUBK	1
	BZ	L52
	SUBK	30
	BZ	L45
	SUBK	1
	BZ	L49
	SUBK	1
	BZ	L53
	SUBK	30
	BZ	L46
	SUBK	1
	BZ	L50
	SUBK	1
	BZ	L54
	B	L55
L43:
	.line	37
;>>>> 			scanReadCounter = 0;	
	LACK	0
	LDPK	_scanReadCounter
	SACL	_scanReadCounter
L40:
EPI0_3:
	.line	39
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	177,000000000H,4

	.sym	_snr,_snr,32,3,0

	.func	178
;>>>> 	static void snr(void)
;>>>> 			uchar i,j;
;>>>> 			uchar num_card;	
******************************************************
* FUNCTION DEF : _snr
******************************************************
_snr:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,4
	LAR	AR0,*0+

	.sym	_i,1,12,1,16
	.sym	_j,2,12,1,16
	.sym	_num_card,3,12,1,16
	.line	6
;>>>> 			myInvOut(); 		  	
	CALL	_myInvOut
	.line	7
;>>>> 	      	num_card = labeldata[0];
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	BLKD	#_labeldata,* 
	.line	8
;>>>> 	      	if(num_card != 0)bReadTag = 1;
	LAC	* 
	BZ	L56
	LACK	1
	LDPK	_bReadTag
	SACL	_bReadTag
L56:
	.line	9
;>>>> 	      	if( num_card == 1)
	LAC	* 
	SUBK	1
	BNZ	L57
	.line	11
;>>>> 	      		for(i=0;i<8;i++)currUid[i] = labeldata[3+i];//copy uid to current UID       		
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L59
L58:
	LAC	* ,AR0
	ADLK	_labeldata+3,0
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_currUid+0,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	BLZ	L58
L59:
	.line	12
;>>>> 		      	if( compareUid()==0 )	//same uid
	CALL	_compareUid,AR1
	BNZ	L60
	.line	14
;>>>> 		      		if(trigger == 0)// single read
	LDPK	_trigger
	LAC	_trigger
	BNZ	L66
	.line	16
;>>>> 				      	for(j=0;j<8;j++)serialPortOutput1byte(labeldata[3+j]);
	LACK	0
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L63
L62:
	LAC	* ,AR0
	ADLK	_labeldata+3,0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	BLZ	L62
L63:
	.line	17
;>>>> 				      	if(ec == 0x0d0a)
	LDPK	_ec
	LAC	_ec
	SUBK	3338
	BNZ	L64
	.line	19
;>>>> 				      		serialPortOutput1byte(ec>>8);
	RSXM
	LAC	_ec,7
	MAR	* ,AR1
	SACH	*+,1
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	20
;>>>> 				      		serialPortOutput1byte(ec&0xff);
	LACK	255
	LDPK	_ec
	AND	_ec
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
	B	L66
L64:
	.line	22
;>>>> 				      	else 	serialPortOutput1byte(ec&0xff);	//send ec
;>>>> 				else	// different uid
	ADDK	3338
	ANDK	255
	MAR	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
	B	L66
L60:
	.line	27
;>>>> 					for(j=0;j<8;j++)serialPortOutput1byte(labeldata[3+j]);
	LACK	0
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L68
L67:
	LAC	* ,AR0
	ADLK	_labeldata+3,0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	BLZ	L67
L68:
	.line	28
;>>>> 					if(ec == 0x0d0a)
	LDPK	_ec
	LAC	_ec
	SUBK	3338
	BNZ	L69
	.line	30
;>>>> 				      	serialPortOutput1byte(ec>>8);
	RSXM
	LAC	_ec,7
	MAR	* ,AR1
	SACH	*+,1
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	31
;>>>> 				      	serialPortOutput1byte(ec&0xff);
	LACK	255
	LDPK	_ec
	AND	_ec
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
	B	L66
L69:
	.line	33
;>>>> 					else 	serialPortOutput1byte(ec&0xff);	//send ec					
	ADDK	3338
	ANDK	255
	MAR	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
L66:
	.line	35
;>>>> 				for(i=0;i<8;i++)lastUid[i] = currUid[i];//copy current uid as last uid		      		
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L73
L71:
	LAC	* ,AR0
	ADLK	_currUid+0,0
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_lastUid+0,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	BLZ	L71
	B	L73
L57:
	.line	37
;>>>> 	      	else if( num_card >= 2 )//exist card
	ZALS	* 
	SUBK	2
	BLZ	L73
	.line	39
;>>>> 	      		for(i=0;i<num_card;i++)
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	ADRK	2
	SUBS	* 
	BGEZ	L73
	MAR	*-
L75:
	.line	41
;>>>> 	      			for(j=0;j<8;j++)
	LACK	0
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L78
	MAR	*-
L77:
	.line	43
;>>>> 	      				serialPortOutput1byte(labeldata[i*10+3+j]);
	LT	*+
	MPYK	10
	PAC
	ADDK	3
	RSXM
	ADLK	_labeldata+0,0
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-,AR2
	.line	41
	LARK	AR2,2
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	*-
	SUBK	8
	BLZ	L77
L78:
	.line	45
;>>>> 	      			if(ec == 0x0d0a)
	LDPK	_ec
	LAC	_ec
	SUBK	3338
	BNZ	L79
	.line	47
;>>>> 	      				serialPortOutput1byte(ec>>8);
	RSXM
	LAC	_ec,7
	MAR	* ,AR1
	SACH	*+,1
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	48
;>>>> 	      				serialPortOutput1byte(ec&0xff);
	LACK	255
	LDPK	_ec
	AND	_ec
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
	B	L80
L79:
	.line	50
;>>>> 	      			else 	serialPortOutput1byte(ec&0xff);	//send ec
;>>>> 	      	else{;	}    //error  	
	ADDK	3338
	ANDK	255
	MAR	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
L80:
	.line	39
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	ADRK	2
	SUBS	*-
	BLZ	L75
L73:
EPI0_4:
	.line	54
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	231,000000000H,4

	.sym	_snrTime,_snrTime,32,3,0

	.func	232
;>>>> 	static void snrTime(void)
;>>>> 		uchar i,j;
;>>>> 		uchar num_card;		
******************************************************
* FUNCTION DEF : _snrTime
******************************************************
_snrTime:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,4
	LAR	AR0,*0+

	.sym	_i,1,12,1,16
	.sym	_j,2,12,1,16
	.sym	_num_card,3,12,1,16
	.line	6
;>>>> 		myInvOut();      	
	CALL	_myInvOut
	.line	7
;>>>> 	    num_card = labeldata[0];  
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	BLKD	#_labeldata,* 
	.line	8
;>>>> 	    if(num_card != 0)bReadTag = 1;    	
	LAC	* 
	BZ	L81
	LACK	1
	LDPK	_bReadTag
	SACL	_bReadTag
L81:
	.line	9
;>>>> 	    if( num_card == 1)
	LAC	* 
	SUBK	1
	BNZ	L82
	.line	11
;>>>> 	    	for(i=0;i<8;i++)currUid[i] = labeldata[3+i];//copy uid to current UID      		
	LACK	0
	SBRK	2
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L84
L83:
	LAC	* ,AR0
	ADLK	_labeldata+3,0
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_currUid+0,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	BLZ	L83
L84:
	.line	12
;>>>> 	    	getBufferTime();   		
	CALL	_getBufferTime,AR1
	.line	13
;>>>> 		   	if(compareUid()==0 )	// same uid
	CALL	_compareUid
	BNZ	L85
	.line	15
;>>>> 		   		if(trigger == 0)// single read
	LDPK	_trigger
	LAC	_trigger
	BNZ	L93
	.line	17
;>>>> 			      	for(j=0;j<8;j++)serialPortOutput1byte(labeldata[3+j]);
	LACK	0
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L88
L87:
	LAC	* ,AR0
	ADLK	_labeldata+3,0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	BLZ	L87
L88:
	.line	18
;>>>> 	    			if(sc == 0x0d0a)
	LDPK	_sc
	LAC	_sc
	SUBK	3338
	BNZ	L89
	.line	20
;>>>> 	    				serialPortOutput1byte(sc>>8);
	RSXM
	LAC	_sc,7
	MAR	* ,AR1
	SACH	*+,1
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	21
;>>>> 	    				serialPortOutput1byte(sc&0xff);
	LACK	255
	LDPK	_sc
	AND	_sc
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
	B	L90
L89:
	.line	23
;>>>> 	    			else 	serialPortOutput1byte(sc&0xff);//send out sc
	ADDK	3338
	ANDK	255
	MAR	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
L90:
	.line	24
;>>>> 	    			serialPortOutput1byte(Day);
	BLKD	_Day+0,*+
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	25
;>>>> 	    			serialPortOutput1byte(Hour);
	BLKD	_Hour+0,*+
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	26
;>>>> 	    			serialPortOutput1byte(Minute);
	BLKD	_Minute+0,*+
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	27
;>>>> 	    			serialPortOutput1byte(Second);	//send out time
	BLKD	_Second+0,*+
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	28
;>>>> 	    			if(ec == 0x0d0a)
	LDPK	_ec
	LAC	_ec
	SUBK	3338
	BNZ	L91
	.line	30
;>>>> 	    				serialPortOutput1byte(ec>>8);
	RSXM
	LAC	_ec,7
	SACH	*+,1
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	31
;>>>> 	    				serialPortOutput1byte(ec&0xff);
	LACK	255
	LDPK	_ec
	AND	_ec
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
	B	L93
L91:
	.line	33
;>>>> 	    			else 	serialPortOutput1byte(ec&0xff);//sendout ec
;>>>> 			else	//different uid
	ADDK	3338
	ANDK	255
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
	B	L93
L85:
	.line	38
;>>>> 				for(j=0;j<8;j++)serialPortOutput1byte(labeldata[3+j]);     				
	LACK	0
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L95
L94:
	LAC	* ,AR0
	ADLK	_labeldata+3,0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	BLZ	L94
L95:
	.line	39
;>>>> 	    		if(sc == 0x0d0a)
	LDPK	_sc
	LAC	_sc
	SUBK	3338
	BNZ	L96
	.line	41
;>>>> 	    			serialPortOutput1byte(sc>>8);
	RSXM
	LAC	_sc,7
	MAR	* ,AR1
	SACH	*+,1
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	42
;>>>> 	    			serialPortOutput1byte(sc&0xff);
	LACK	255
	LDPK	_sc
	AND	_sc
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
	B	L97
L96:
	.line	44
;>>>> 	    		else 	serialPortOutput1byte(sc&0xff);//send out sc
	ADDK	3338
	ANDK	255
	MAR	* ,AR1
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
L97:
	.line	45
;>>>> 	    		serialPortOutput1byte(Day);
	BLKD	_Day+0,*+
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	46
;>>>> 	    		serialPortOutput1byte(Hour);
	BLKD	_Hour+0,*+
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	47
;>>>> 	    		serialPortOutput1byte(Minute);
	BLKD	_Minute+0,*+
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	48
;>>>> 	    		serialPortOutput1byte(Second);	//send out time
	BLKD	_Second+0,*+
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	49
;>>>> 	    		if(ec == 0x0d0a)
	LDPK	_ec
	LAC	_ec
	SUBK	3338
	BNZ	L98
	.line	51
;>>>> 	    			serialPortOutput1byte(ec>>8);
	RSXM
	LAC	_ec,7
	SACH	*+,1
	CALL	_serialPortOutput1byte
	MAR	*-
	.line	52
;>>>> 	    			serialPortOutput1byte(ec&0xff);
	LACK	255
	LDPK	_ec
	AND	_ec
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
	B	L93
L98:
	.line	54
;>>>> 	    		else 	serialPortOutput1byte(ec&0xff);//sendout ec					
	ADDK	3338
	ANDK	255
	SACL	*+
	CALL	_serialPortOutput1byte
	MAR	*-
L93:
	.line	56
;>>>> 			for(i=0;i<8;i++)lastUid[i] = currUid[i];//copy current uid as last uid		      		
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	ZALS	* 
	SUBK	8
	BGEZ	L102
L100:
	LAC	* ,AR0
	ADLK	_currUid+0,0
	SACL	* 
	LAR	AR3,* ,AR2
	LAC	* ,AR0
	ADLK	_lastUid+0,0
	SACL	* 
	LAR	AR4,* ,AR3
	LAC	* ,AR4
	SACL	* ,AR2
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	BLZ	L100
	B	L102
L82:
	.line	58
;>>>> 	    else if( num_card >= 2 )//exist card
	ZALS	* 
	SUBK	2
	BLZ	L102
	.line	60
;>>>> 	    	getBufferTime();
	CALL	_getBufferTime,AR1
	.line	61

⌨️ 快捷键说明

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