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

📄 backward.src

📁 motor_control.zip
💻 SRC
📖 第 1 页 / 共 3 页
字号:
	ADDC 	A,avgad?444+02H
	MOV  	avgad?444+02H,A
	MOV  	A,R5
	ADDC 	A,avgad?444+01H
	MOV  	avgad?444+01H,A
	MOV  	A,R4
	ADDC 	A,avgad?444
	MOV  	avgad?444,A
; 		    //delayms(10);
; 	      }
			; SOURCE LINE # 83
	INC  	R3
	CJNE 	R3,#0FH,?C0007
?C0008:
; 	   avgad=avgad/15;
			; SOURCE LINE # 84
	MOV  	R7,avgad?444+03H
	MOV  	R6,avgad?444+02H
	MOV  	R5,avgad?444+01H
	MOV  	R4,avgad?444
	CLR  	A
	MOV  	R3,#0FH
	MOV  	R2,A
	MOV  	R1,A
	MOV  	R0,A
	LCALL	?C?ULDIV
	MOV  	avgad?444+03H,R7
	MOV  	avgad?444+02H,R6
	MOV  	avgad?444+01H,R5
	MOV  	avgad?444,R4
; 	   for(i=0;i<15;i++)
			; SOURCE LINE # 85
	CLR  	A
	MOV  	R3,A
?C0010:
; 	      {
			; SOURCE LINE # 86
; 	   
; 	   	     data0[i]=state;
			; SOURCE LINE # 88
	MOV  	R7,state?445+03H
	MOV  	R6,state?445+02H
	MOV  	R5,state?445+01H
	MOV  	R4,state?445
	MOV  	A,R3
	ADD  	A,ACC
	ADD  	A,ACC
	ADD  	A,#LOW (data0)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (data0)
	MOV  	DPH,A
	LCALL	?C?LSTXDATA
; 		     avgad1+=data0[i];
			; SOURCE LINE # 89
	MOV  	A,R3
	ADD  	A,ACC
	ADD  	A,ACC
	ADD  	A,#LOW (data0)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (data0)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R5,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,avgad1?443+03H
	MOV  	avgad1?443+03H,A
	MOV  	A,R6
	ADDC 	A,avgad1?443+02H
	MOV  	avgad1?443+02H,A
	MOV  	A,R5
	ADDC 	A,avgad1?443+01H
	MOV  	avgad1?443+01H,A
	MOV  	A,R4
	ADDC 	A,avgad1?443
	MOV  	avgad1?443,A
; 		     //delayms(10);
; 	      }
			; SOURCE LINE # 91
	INC  	R3
	CJNE 	R3,#0FH,?C0010
?C0011:
; 	   avgad1=avgad1/15;
			; SOURCE LINE # 92
	MOV  	R7,avgad1?443+03H
	MOV  	R6,avgad1?443+02H
	MOV  	R5,avgad1?443+01H
	MOV  	R4,avgad1?443
	CLR  	A
	MOV  	R3,#0FH
	MOV  	R2,A
	MOV  	R1,A
	MOV  	R0,A
	LCALL	?C?ULDIV
	MOV  	avgad1?443+03H,R7
	MOV  	avgad1?443+02H,R6
	MOV  	avgad1?443+01H,R5
	MOV  	avgad1?443,R4
; 	   avge=(avgad+avgad1)/4;
			; SOURCE LINE # 93
	MOV  	A,avgad?444+03H
	ADD  	A,avgad1?443+03H
	MOV  	R7,A
	MOV  	A,avgad?444+02H
	ADDC 	A,avgad1?443+02H
	MOV  	R6,A
	MOV  	A,avgad?444+01H
	ADDC 	A,avgad1?443+01H
	MOV  	R5,A
	MOV  	A,avgad?444
	ADDC 	A,avgad1?443
	MOV  	R4,A
	CLR  	A
	MOV  	R3,#04H
	MOV  	R2,A
	MOV  	R1,A
	MOV  	R0,A
	LCALL	?C?ULDIV
	MOV  	avge+03H,R7
	MOV  	avge+02H,R6
	MOV  	avge+01H,R5
	MOV  	avge,R4
; 		
; 	   //CH452_Write(CH452_DIG1|bb);
; 	   //CH452_Write(CH452_DIG0|c);
; 	   return(avge);
			; SOURCE LINE # 97
; }
			; SOURCE LINE # 98
?C0013:
	RET  	
; END OF pingjun

; 
; 
; 
; /****精确秒延时****/	
; 
; void delay_s(uchar n)

	RSEG  ?PR?_delay_s?BACKWARD
_delay_s:
			; SOURCE LINE # 104
	MOV  	n?546,R7
; {	
			; SOURCE LINE # 105
; 	#pragma asm
; 	//USING 0
	  
; n_:
	  n_:
; 	MOV R2,#50		//系统时钟如果分别是2M,4M,8M,16M
	  MOV R2,#50		 
; 					//则R2值分别为		25,50,100,200
	  
; R2_:
	  R2_:
; 	MOV R1,#40
	  MOV R1,#40
; R1_:
	  R1_:
; 	MOV R0,#50	
	  MOV R0,#50	
; R0_:
	  R0_:
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP	   
	  NOP	   
; 
	  
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP		
	  NOP		
; 
	  
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP		
	  NOP		
; 
	  
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	NOP		
	  NOP		
; 
	  
; 	NOP
	  NOP
; 	NOP
	  NOP
; 	//NOP
	  
; 	//NOP
	  
; 	DJNZ R0,R0_	  
	  DJNZ R0,R0_	  
; 	DJNZ R1,R1_	  
	  DJNZ R1,R1_	  
; 	DJNZ R2,R2_	  
	  DJNZ R2,R2_	  
; 	DJNZ n?546,n_  
	  DJNZ n?546,n_  
; 	#pragma endasm
; }
			; SOURCE LINE # 145
	RET  	
; END OF _delay_s

; void confirm(void)

	RSEG  ?PR?confirm?BACKWARD
confirm:
	USING	0
			; SOURCE LINE # 146
; {	  
			; SOURCE LINE # 147
; 	uchar i,t;
; 	for(t=0;t<7;t++)
			; SOURCE LINE # 149
	CLR  	A
	MOV  	t?648,A
?C0015:
;   		CH452_Write((CH452_DIG0+ (t<<8))|16);
			; SOURCE LINE # 150
	MOV  	A,t?648
	MOV  	R6,A
	CLR  	A
	ADD  	A,#00H
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#08H
	MOV  	R6,A
	MOV  	A,R7
	ORL  	A,#010H
	MOV  	R7,A
	LCALL	_CH452_Write
	INC  	t?648
	MOV  	A,t?648
	CLR  	C
	SUBB 	A,#07H
	JC   	?C0015
?C0016:
; 	for(i=5;i>0;i--)
			; SOURCE LINE # 151
	MOV  	i?647,#05H
?C0018:
; 	{	
			; SOURCE LINE # 152
; 		CH452_Write(CH452_DIG7 | i);
			; SOURCE LINE # 153
	MOV  	R7,i?647
	MOV  	A,#0FH
	MOV  	R6,A
	LCALL	_CH452_Write
; 		SPOKER=1;
			; SOURCE LINE # 154
	SETB 	SPOKER
; 		delay_s(1);
			; SOURCE LINE # 155
	MOV  	R7,#01H
	LCALL	_delay_s
; 		SPOKER=0;
			; SOURCE LINE # 156
	CLR  	SPOKER
; 		delay_s(1);
			; SOURCE LINE # 157
	LCALL	_delay_s
; 	}
			; SOURCE LINE # 158
	DEC  	i?647
	MOV  	A,i?647
	SETB 	C
	SUBB 	A,#00H
	JNC  	?C0018
?C0019:
; 		CH452_Write(CH452_DIG7);
			; SOURCE LINE # 159
	MOV  	R7,#00H
	MOV  	R6,#0FH
	LJMP 	_CH452_Write
; END OF confirm

; 	
; }
; void judgement (uchar modi,uchar modi1,uchar dem)

	RSEG  ?PR?_judgement?BACKWARD
L?0076:
	USING	0
L?0077:
	MOV  	R3,#0AH
	CLR  	A
	MOV  	R5,A
	MOV  	R7,#02DH
_judgement:
	USING	0
			; SOURCE LINE # 162
	MOV  	modi?749,R7
	MOV  	modi1?750,R5
	MOV  	dem?751,R3
; {			   //if(d==0&&e==0)
			; SOURCE LINE # 163
; 				//{
;  					if((a==1&&bb==0&&c==0)||(a==1&&bb==1&&c==0))
			; SOURCE LINE # 165
	MOV  	A,a?
	CJNE 	A,#01H,?C0024
	MOV  	A,bb
	JNZ  	?C0024
	MOV  	A,c?
	JZ   	?C0023
?C0024:
	MOV  	A,a?
	XRL  	A,#01H
	JNZ  	?C0022
	MOV  	A,bb
	XRL  	A,#01H
	JNZ  	?C0022
	MOV  	A,c?
	JNZ  	?C0022
?C0023:
; 					{	left=1;
			; SOURCE LINE # 166
	MOV  	left,#01H
; 						right=0;
			; SOURCE LINE # 167
	CLR  	A
	MOV  	right,A
; 						speedchange(modi1,1);
			; SOURCE LINE # 168
	MOV  	R5,#01H
	MOV  	R7,modi1?750
	LCALL	_speedchange
; 						speedchange(modi,0);
			; SOURCE LINE # 169
	CLR  	A
	MOV  	R5,A
; 						delayms(dem);
			; SOURCE LINE # 170
; 					 }
			; SOURCE LINE # 171
	SJMP 	?C0069
?C0022:
; 					else if((a==0&&bb==0&&c==1)||(a==0&&bb==1&&c==1))
			; SOURCE LINE # 172
	MOV  	A,a?
	JNZ  	?C0028
	MOV  	A,bb
	JNZ  	?C0028
	MOV  	A,c?
	XRL  	A,#01H
	JZ   	?C0027
?C0028:
	MOV  	A,a?
	JNZ  	?C0026
	MOV  	A,bb
	XRL  	A,#01H
	JNZ  	?C0026
	MOV  	A,c?
	CJNE 	A,#01H,?C0026
?C0027:
; 					{
			; SOURCE LINE # 173
; 						left=0;
			; SOURCE LINE # 174
	CLR  	A
	MOV  	left,A
; 						right=1;	 
			; SOURCE LINE # 175
	MOV  	right,#01H
; 	     				speedchange(modi1,0);
			; SOURCE LINE # 176
	MOV  	R5,A
	MOV  	R7,modi1?750
	LCALL	_speedchange
; 						speedchange(modi,1);
			; SOURCE LINE # 177
	MOV  	R5,#01H
?C0068:
; 					   delayms(dem);
			; SOURCE LINE # 178
; 					 }
			; SOURCE LINE # 179
	SJMP 	?C0069
?C0026:
; 					else if((a==0&&bb==1&&c==0))
			; SOURCE LINE # 180
	MOV  	A,a?
	JNZ  	?C0030
	MOV  	A,bb
	XRL  	A,#01H
	JNZ  	?C0030
	MOV  	A,c?
	JNZ  	?C0030
; 					{   
			; SOURCE LINE # 181
; 						left=0;
			; SOURCE LINE # 182
	MOV  	left,A
; 						right=0;
			; SOURCE LINE # 183
	MOV  	right,A
; 	    				speedchange(modi,0);
			; SOURCE LINE # 184
	MOV  	R5,A
	MOV  	R7,modi?749
	LCALL	_speedchange
; 						speedchange(modi,1);
			; SOURCE LINE # 185
	MOV  	R5,#01H
?C0069:
	MOV  	R7,modi?749
	LCALL	_speedchange
; 						delayms(dem);
			; SOURCE LINE # 186
; 					}
			; SOURCE LINE # 187
	SJMP 	?C0070
?C0030:
; 					else if(a&&bb&&c)	 //停止&&(d||e)
			; SOURCE LINE # 188
	MOV  	A,a?
	JZ   	?C0032
	MOV  	A,bb
	JZ   	?C0032
	MOV  	A,c?
	JZ   	?C0032
;   					{
			; SOURCE LINE # 189
;   					
; 					START=0;
			; SOURCE LINE # 191
	CLR  	START
; 					forward=0;
			; SOURCE LINE # 192
	CLR  	A
	MOV  	forward,A
; 					confirm();
			; SOURCE LINE # 193
	LCALL	confirm
;   					backward=1;
			; SOURCE LINE # 194
	MOV  	backward,#01H
;  					}	  
			; SOURCE LINE # 195
	RET  	
?C0032:
; 	           		else //if (a==0&&bb==0&&c==0)
; 					{
			; SOURCE LINE # 197
; 	     				if(left==1)
			; SOURCE LINE # 198
	MOV  	A,left
	CJNE 	A,#01H,?C0034
; 		 				{
			; SOURCE LINE # 199
; 		 	  		    speedchange(modi1,0);
			; SOURCE LINE # 200
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi1?750
; 						speedchange(modi,1); }
			; SOURCE LINE # 201
	SJMP 	?C0071
?C0034:
; 		 				else if(right==1)
			; SOURCE LINE # 202
	MOV  	A,right
	CJNE 	A,#01H,?C0036
; 		 				{
			; SOURCE LINE # 203
; 		 	             speedchange(modi,0);
			; SOURCE LINE # 204
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi?749
	LCALL	_speedchange
; 						 speedchange(modi1,1);}
			; SOURCE LINE # 205
	MOV  	R5,#01H
	MOV  	R7,modi1?750
	SJMP 	?C0072
?C0036:
; 		 				else
; 		  				{
			; SOURCE LINE # 207
; 	        		    speedchange(modi,0);
			; SOURCE LINE # 208
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi?749
?C0071:
	LCALL	_speedchange
; 						speedchange(modi,1);}
			; SOURCE LINE # 209
	MOV  	R5,#01H
	MOV  	R7,modi?749
?C0072:
	LCALL	_speedchange
?C0035:
; 						delayms(dem);
			; SOURCE LINE # 210
?C0070:
	MOV  	R7,dem?751
	MOV  	R6,#00H
	LCALL	_delayms
; 					}
			; SOURCE LINE # 211
; 				//}
; 			//	if((d==1)&&(e==0))	 //左拐
;   			//	{
;   			//	    PCA0CPH1=0xff;
; 			//		PCA0CPH0=0x33;
;  			//		delayms(40);
; 			//	}	  
; 			//	if(d==0&&e==1)	 //右拐
;   			//	{
;   			//		PCA0CPH0=0xff;
; 			//		PCA0CPH1=0x33;
;   			//		delayms(40);
;  			//	}	  
; 			   
; 
; }
			; SOURCE LINE # 227
?C0038:
	RET  	
; END OF _judgement

; void judgementback (uchar modi,uchar modi1,uchar dem)

	RSEG  ?PR?_judgementback?BACKWARD
_judgementback:
	USING	0
			; SOURCE LINE # 228
	MOV  	modi?852,R7
	MOV  	modi1?853,R5
	MOV  	dem?854,R3
; {	 
			; SOURCE LINE # 229
; 	if(f==1&&g==0)
			; SOURCE LINE # 230
	MOV  	A,f
	CJNE 	A,#01H,?C0039
	MOV  	A,g
	JNZ  	?C0039
; 	{
			; SOURCE LINE # 231
; 	 speedchange(modi1,1);
			; SOURCE LINE # 232
	MOV  	R5,#01H
	MOV  	R7,modi1?853
; 	 speedchange(modi,0);
			; SOURCE LINE # 233
; 	 
; 	}
			; SOURCE LINE # 235
	SJMP 	?C0073
?C0039:
; 	else if(f==0&&g==1)
			; SOURCE LINE # 236
	MOV  	A,f
	JNZ  	?C0041
	MOV  	A,g
	CJNE 	A,#01H,?C0041
; 	{
			; SOURCE LINE # 237
; 	 speedchange(modi,1);
			; SOURCE LINE # 238
	MOV  	R5,#01H
	MOV  	R7,modi?852
	LCALL	_speedchange
; 	 speedchange(modi1,0);
			; SOURCE LINE # 239
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi1?853
; 	 
; 	}						
			; SOURCE LINE # 241
	SJMP 	?C0074
?C0041:
; 	else
; 	{
			; SOURCE LINE # 243
; 		speedchange(modi,1);
			; SOURCE LINE # 244
	MOV  	R5,#01H
	MOV  	R7,modi?852
?C0073:
	LCALL	_speedchange
; 	 	speedchange(modi,0);
			; SOURCE LINE # 245
	CLR  	A
	MOV  	R5,A
	MOV  	R7,modi?852
?C0074:
	LCALL	_speedchange
; 	}					
			; SOURCE LINE # 246
?C0040:
; 	delayms(dem);
			; SOURCE LINE # 247
	MOV  	R7,dem?854
	MOV  	R6,#00H
	LJMP 	_delayms
; END OF _judgementback

; }
; void main(void)

	RSEG  ?PR?main?BACKWARD
main:
	USING	0
			; SOURCE LINE # 249
; {	
			; SOURCE LINE # 250
; 	uchar chazhi=4;
			; SOURCE LINE # 251
	MOV  	chazhi?955,#04H
; 	uchar chazhi1;
; 	Init_Device();
			; SOURCE LINE # 253
	LCALL	Init_Device
; 	CH452_Init();	  /* CH452初始化 */
			; SOURCE LINE # 254
	LCALL	CH452_Init
; 	LEDG=0; 
			; SOURCE LINE # 255
	CLR  	LEDG
; 	SPOKER=0;
			; SOURCE LINE # 256
	CLR  	SPOKER
; 	IN0=1;
			; SOURCE LINE # 257
	SETB 	IN0
; 	IN1=1;
			; SOURCE LINE # 258
	SETB 	IN1
; 	IN2=1;
			; SOURCE LINE # 259
	SETB 	IN2
; 	//IN3=1;

⌨️ 快捷键说明

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