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

📄 rfid.src

📁 c8051f310xmodembootloader.rar
💻 SRC
📖 第 1 页 / 共 2 页
字号:
; 
; 	  }
			; SOURCE LINE # 50
;     }
			; SOURCE LINE # 51
?C0005:
	MOV  	DPTR,#i?040
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	LJMP 	?C0003
?C0004:
; 
;     if(i==10)
			; SOURCE LINE # 53
	MOV  	DPTR,#i?040
	MOVX 	A,@DPTR
	XRL  	A,#0AH
	JNZ  	?C0007
; 	{
			; SOURCE LINE # 54
; 	    for(j=0;j<10;j++)  //新进入的标签?登记!
			; SOURCE LINE # 55
;---- Variable 'j?041' assigned to Register 'R7' ----
	MOV  	R7,A
?C0008:
; 		{
			; SOURCE LINE # 56
; 		   if(tagnr[j].save_state==0)		     
			; SOURCE LINE # 57
	MOV  	A,R7
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr+07H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr+07H)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	JNZ  	?C0010
; 		   {
			; SOURCE LINE # 58
; 		     nr=j;
			; SOURCE LINE # 59
	MOV  	DPTR,#nr?042
	MOV  	A,R7
	MOVX 	@DPTR,A
; 			 tagnr[nr].save_state =FLG_NEW;
			; SOURCE LINE # 60
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr+07H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr+07H)
	MOV  	DPH,A
	MOV  	A,#01H
	MOVX 	@DPTR,A
; 			 break;
			; SOURCE LINE # 61
	SJMP 	?C0007
; 		   }
			; SOURCE LINE # 62
; 		  
; 
; 		}
			; SOURCE LINE # 65
?C0010:
	INC  	R7
	MOV  	A,R7
	CJNE 	A,#0AH,?C0008
; 	}
			; SOURCE LINE # 66
?C0007:
; 	if(nr>10)		       //防止nr出错	,这里可以考虑老化掉登记了最久的卡
			; SOURCE LINE # 67
	MOV  	DPTR,#nr?042
	MOVX 	A,@DPTR
	MOV  	R7,A
	SETB 	C
	SUBB 	A,#0AH
	JC   	$ + 5H
	LJMP 	?C0013
; 	{
			; SOURCE LINE # 68
; 	 return;
; 	}
			; SOURCE LINE # 70
?C0012:
; 
; 
;     switch(tagnr[nr].save_state)
			; SOURCE LINE # 73
	MOV  	A,R7
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr+07H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr+07H)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	ADD  	A,#0FEH
	JNZ  	$ + 5H
	LJMP 	?C0019
	INC  	A
	JZ   	$ + 5H
	LJMP 	?C0013
; 	{
			; SOURCE LINE # 74
;        case FLG_NEW:
			; SOURCE LINE # 75
?C0015:
; 
; 		  for(i=0;i<6;i++)
			; SOURCE LINE # 77
	CLR  	A
	MOV  	DPTR,#i?040
	MOVX 	@DPTR,A
?C0016:
; 		  {
			; SOURCE LINE # 78
; 		     tagnr[nr].save_id[i] =reply->tag_id[i];    //复制卡号
			; SOURCE LINE # 79
	MOV  	DPTR,#i?040
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#reply?045
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#06H
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,R4
	MOV  	DPH,A
	MOV  	A,DPL
	ADD  	A,R7
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,DPH
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R6,A
	MOV  	DPTR,#nr?042
	MOVX 	A,@DPTR
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr)
	MOV  	DPH,A
	MOV  	A,DPL
	ADD  	A,R7
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,DPH
	MOV  	DPH,A
	MOV  	A,R6
	MOVX 	@DPTR,A
; 		  }
			; SOURCE LINE # 80
	MOV  	DPTR,#i?040
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	MOVX 	A,@DPTR
	CJNE 	A,#06H,?C0016
?C0017:
; 	    
; 		  tagnr[nr].save_io         =reply->tag_flag;   //进出标记
			; SOURCE LINE # 82
	MOV  	DPTR,#reply?045
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#0CH
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,R6
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#nr?042
	MOVX 	A,@DPTR
	MOV  	R6,A
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr+06H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr+06H)
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
; 		  tagnr[nr].save_state      =FLG_OLD;
			; SOURCE LINE # 83
	MOV  	A,R6
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr+07H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr+07H)
	MOV  	DPH,A
	MOV  	A,#02H
	MOVX 	@DPTR,A
; 		  tagnr[nr].save_inactivity =INACTIVITY_TIME;   //登记就开启溢出
			; SOURCE LINE # 84
	MOV  	R0,#LOW (INACTIVITY_TIME)
	MOV  	A,@R0
	MOV  	R7,A
	MOV  	A,R6
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr+08H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr+08H)
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
; 	      
; 		  
;        	  wiegandout(wiefmt,CHANL_DIN); //全新卡需要输出wieand
			; SOURCE LINE # 87
	MOV  	R0,#LOW (wiefmt)
	MOV  	A,@R0
	MOV  	R7,A
	MOV  	R5,#01H
	LCALL	_wiegandout
; 
; 		  relay_work();
			; SOURCE LINE # 89
	LCALL	relay_work
; 		  event_relay=RELAY_TIME_IN;
			; SOURCE LINE # 90
	MOV  	R0,#LOW (RELAY_TIME_IN)
	MOV  	A,@R0
	MOV  	R0,#LOW (event_relay)
	MOV  	@R0,A
; 
; 		  break; 
			; SOURCE LINE # 92
	RET  	
; 
; 	  case FLG_OLD:
			; SOURCE LINE # 94
?C0019:
; 
; 		   for(i=0;i<6;i++)								//旧卡只登记并赋值重计算老化时间
			; SOURCE LINE # 96
	CLR  	A
	MOV  	DPTR,#i?040
	MOVX 	@DPTR,A
?C0020:
; 		   {
			; SOURCE LINE # 97
; 		     tagnr[nr].save_id[i] =reply->tag_id[i];    //复制卡号
			; SOURCE LINE # 98
	MOV  	DPTR,#i?040
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#reply?045
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#06H
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,R4
	MOV  	DPH,A
	MOV  	A,DPL
	ADD  	A,R7
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,DPH
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R6,A
	MOV  	DPTR,#nr?042
	MOVX 	A,@DPTR
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr)
	MOV  	DPH,A
	MOV  	A,DPL
	ADD  	A,R7
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,DPH
	MOV  	DPH,A
	MOV  	A,R6
	MOVX 	@DPTR,A
; 		   }
			; SOURCE LINE # 99
	MOV  	DPTR,#i?040
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	MOVX 	A,@DPTR
	CJNE 	A,#06H,?C0020
?C0021:
; 	    
; 		  tagnr[nr].save_io         =reply->tag_flag;   //进出标记
			; SOURCE LINE # 101
	MOV  	DPTR,#reply?045
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#0CH
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,R6
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#nr?042
	MOVX 	A,@DPTR
	MOV  	R6,A
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr+06H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr+06H)
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
; 		  tagnr[nr].save_state      =FLG_OLD;
			; SOURCE LINE # 102
	MOV  	A,R6
	MOV  	B,#09H
	MUL  	AB
	ADD  	A,#LOW (tagnr+07H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (tagnr+07H)
	MOV  	DPH,A
	MOV  	A,#02H
	MOVX 	@DPTR,A
; 		  //tagnr[nr].save_inactivity =INACTIVITY_TIME; //登记就开启溢出
; 		  //离开卡后再次输出wie 与每ns输出区别
; 
; 
; 		   if(INACTIVITY_TIME==0)  //连续输出
			; SOURCE LINE # 107
	MOV  	R0,#LOW (INACTIVITY_TIME)
	MOV  	A,@R0
	JNZ  	?C0013
; 		    {
			; SOURCE LINE # 108
; 	         Beef(1,GREEN);	           // 蜂鸣器和LED 但旧卡不连续发送卡号等待时间到
			; SOURCE LINE # 109
	MOV  	R5,A
	MOV  	R7,#01H
	LCALL	_Beef
; 			 wiegandout(wiefmt,CHANL_DIN);   //全新卡需要输出wieand
			; SOURCE LINE # 110
	MOV  	R0,#LOW (wiefmt)
	MOV  	A,@R0
	MOV  	R7,A
	MOV  	R5,#01H
	LCALL	_wiegandout
; 			}
			; SOURCE LINE # 111
; 		   break; 		           // 老化更新后再次读到时作新卡输出
			; SOURCE LINE # 112
; 
; 	  default:
			; SOURCE LINE # 114
; 		   break;
			; SOURCE LINE # 115
; 	 }
			; SOURCE LINE # 116
;   			
; 
;  }	
			; SOURCE LINE # 119
;   
;   else
;   {
			; SOURCE LINE # 122
;     //if(DEBUG) Printf_String("\r\n[msg:]crc error"); 
;   }	 
			; SOURCE LINE # 124
; 
; }
			; SOURCE LINE # 126
?C0013:
	RET  	
; END OF AnalyseFrame

; /******************************************************************************
; ** 函数: SeekFrame()
; ** 入参: txdata
; ** 返回: 
; ** 说明:
; ******************************************************************************/
; void SeekFrame(UCHAR cmdd)

	RSEG  ?PR?_SeekFrame?RFID
_SeekFrame:
	USING	0
			; SOURCE LINE # 133
	MOV  	DPTR,#cmdd?146
	MOV  	A,R7
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 134
;  
;   ULONG idata sum;
;   UINT  result;
; 
;   FIND_TAG xdata *seek;
; 
; 
; 
;   seek = (FIND_TAG xdata *)(txdata + 4);  //指针偏移 
			; SOURCE LINE # 143
	INC  	DPTR
	MOV  	A,#HIGH (txdata+04H)
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#LOW (txdata+04H)
	MOVX 	@DPTR,A
;   memcpy(txdata, SiHead, 4); 
			; SOURCE LINE # 144
	MOV  	R0,#LOW (txdata)
	MOV  	R4,#HIGH (txdata)
	MOV  	R5,#01H
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (SiHead)
	MOV  	R1,#LOW (SiHead)
	MOV  	R6,#00H
	MOV  	R7,#04H
	LCALL	?C?COPY
;   seek->data_len=17;				  	  //数据长度
			; SOURCE LINE # 145
	MOV  	DPTR,#seek?149
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,#011H
	MOVX 	@DPTR,A
;   seek->cmd=cmdd;                         //命令  01=普通讯卡 02=加卡
			; SOURCE LINE # 146
	MOV  	DPTR,#cmdd?146
	MOVX 	A,@DPTR
	MOV  	DPL,R7
	MOV  	DPH,R6
	INC  	DPTR
	MOVX 	@DPTR,A
;   memcpy(seek->reader_id, MyID, 4); 	  //基站系统号
			; SOURCE LINE # 147
	MOV  	DPTR,#seek?149+01H
	MOVX 	A,@DPTR
	ADD  	A,#02H
	MOV  	R7,A
	MOV  	DPTR,#seek?149
	MOVX 	A,@DPTR
	ADDC 	A,#00H
	MOV  	R0,AR7
	MOV  	R4,A
	MOV  	R5,#01H
	MOV  	R3,#01H
	MOV  	R2,#HIGH (MyID)
	MOV  	R1,#LOW (MyID)
	MOV  	R6,#00H
	MOV  	R7,#04H
	LCALL	?C?COPY
;   //TagID[5]=Search_CT;					  //卡末尾号
;   memcpy(seek->tag_id, TagID, 6);
			; SOURCE LINE # 149
	MOV  	DPTR,#seek?149+01H
	MOVX 	A,@DPTR
	ADD  	A,#06H
	MOV  	R7,A
	MOV  	DPTR,#seek?149
	MOVX 	A,@DPTR
	ADDC 	A,#00H
	MOV  	R0,AR7
	MOV  	R4,A
	MOV  	R5,#01H
	MOV  	R3,#01H
	MOV  	R2,#HIGH (TagID)
	MOV  	R1,#LOW (TagID)
	MOV  	R6,#00H
	MOV  	R7,#06H
	LCALL	?C?COPY
; 
;   seek->skey[0]=0xff;					  //未处理密钥
			; SOURCE LINE # 151
	MOV  	DPTR,#seek?149
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	ADD  	A,#0CH
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,R6
	MOV  	DPH,A
	MOV  	A,#0FFH
	MOVX 	@DPTR,A
;   seek->skey[1]=0xff;
			; SOURCE LINE # 152
	MOV  	A,R7
	ADD  	A,#0DH
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,R6
	MOV  	DPH,A
	MOV  	A,#0FFH
	MOVX 	@DPTR,A
;   seek->skey[2]=0xff;
			; SOURCE LINE # 153
	MOV  	A,R7
	ADD  	A,#0EH
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,R6
	MOV  	DPH,A
	MOV  	A,#0FFH
	MOVX 	@DPTR,A
;   seek->skey[3]=0xff;
			; SOURCE LINE # 154
	MOV  	A,R7
	ADD  	A,#0FH
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,R6
	MOV  	DPH,A
	MOV  	A,#0FFH
	MOVX 	@DPTR,A
;   sum = (ULONG)cksum(txdata+4,17-1);	  //从长度开始算SUM
			; SOURCE LINE # 155
	MOV  	R6,#HIGH (txdata+04H)
	MOV  	R7,#LOW (txdata+04H)
	MOV  	R5,#010H
	MOV  	R4,#00H
	LCALL	_cksum
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	R0,#LOW (sum?147)
	LCALL	?C?LSTIDATA
; 
;   result = (UINT)(sum + (sum >> 17-1));
			; SOURCE LINE # 157
	MOV  	R0,#LOW (sum?147)
	LCALL	?C?LLDIDATA
	MOV  	R0,#010H
	LCALL	?C?ULSHR
	MOV  	R3,AR7
	MOV  	R2,AR6
	MOV  	R0,#LOW (sum?147)
	LCALL	?C?LLDIDATA
	MOV  	A,R7
	ADD  	A,R3
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,R2
	MOV  	R6,A
;---- Variable 'result?148' assigned to Register 'R6/R7' ----
;   seek->crc=result;						  //处理校验
			; SOURCE LINE # 158
	MOV  	DPTR,#seek?149
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#010H
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,R4
	MOV  	DPH,A
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
; }
			; SOURCE LINE # 159
	RET  	
; END OF _SeekFrame

	END

⌨️ 快捷键说明

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