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

📄 backward.src

📁 motor_control.zip
💻 SRC
📖 第 1 页 / 共 3 页
字号:
; 	//IN4=1;
; 	IN5=1;
			; SOURCE LINE # 262
	SETB 	IN5
; 	IN6=1;
			; SOURCE LINE # 263
	SETB 	IN6
; 	START=0;
			; SOURCE LINE # 264
	CLR  	START
; 	time1=1;
			; SOURCE LINE # 265
	MOV  	time1,#01H
; 	time2=1;
			; SOURCE LINE # 266
	MOV  	time2,#01H
; 	counter1=170;
			; SOURCE LINE # 267
	MOV  	counter1,#0AAH
; 	counter2=30;
			; SOURCE LINE # 268
	MOV  	counter2,#01EH
?C0044:
; 	//BACK=0;         	
; 	while(1)
			; SOURCE LINE # 270
; 	{	 
			; SOURCE LINE # 271
; 		LEDG=~LEDG;
			; SOURCE LINE # 272
	CPL  	LEDG
; 		EA=1;
			; SOURCE LINE # 273
	SETB 	EA
; 		avge=pingjun();
			; SOURCE LINE # 274
	LCALL	pingjun
	MOV  	avge+03H,R7
	MOV  	avge+02H,R6
	MOV  	avge+01H,R5
	MOV  	avge,R4
; 		BCD_H_L(avge-200,0); 	   
			; SOURCE LINE # 275
	MOV  	A,R7
	ADD  	A,#038H
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#0FFH
	MOV  	R6,A
	CLR  	A
	MOV  	R5,A
	LCALL	_BCD_H_L
; 		a=IN0;
			; SOURCE LINE # 276
	MOV  	C,IN0
	CLR  	A
	RLC  	A
	MOV  	a?,A
; 		bb=IN1;
			; SOURCE LINE # 277
	MOV  	C,IN1
	CLR  	A
	RLC  	A
	MOV  	bb,A
; 		c=IN2;
			; SOURCE LINE # 278
	MOV  	C,IN2
	CLR  	A
	RLC  	A
	MOV  	c?,A
; 		//d=IN3;
; 		//e=IN4;
; 		f=IN5;
			; SOURCE LINE # 281
	MOV  	C,IN5
	CLR  	A
	RLC  	A
	MOV  	f,A
; 		g=IN6;
			; SOURCE LINE # 282
	MOV  	C,IN6
	CLR  	A
	RLC  	A
	MOV  	g,A
; 		if(backward==1)
			; SOURCE LINE # 283
	MOV  	A,backward
	CJNE 	A,#01H,?C0046
; 		{
			; SOURCE LINE # 284
; 		START=1;
			; SOURCE LINE # 285
	SETB 	START
; 		BACK=0;
			; SOURCE LINE # 286
	CLR  	BACK
; 		judgementback(90,20,20);
			; SOURCE LINE # 287
	MOV  	R3,#014H
	MOV  	R5,#014H
	MOV  	R7,#05AH
	LCALL	_judgementback
; 		}
			; SOURCE LINE # 288
?C0046:
; 
; 		if(forward==1)
			; SOURCE LINE # 290
	MOV  	A,forward
	CJNE 	A,#01H,?C0047
; 		{ 
			; SOURCE LINE # 291
; 		START=1;
			; SOURCE LINE # 292
	SETB 	START
; 		BACK=1;	//前进
			; SOURCE LINE # 293
	SETB 	BACK
; 		judgement(90,20,20);
			; SOURCE LINE # 294
	MOV  	R3,#014H
	MOV  	R5,#014H
	MOV  	R7,#05AH
	LCALL	_judgement
; 		
; 		}
			; SOURCE LINE # 296
?C0047:
; 	   if(black==1)		
			; SOURCE LINE # 297
	MOV  	A,black
	CJNE 	A,#01H,?C0048
; 	   {
			; SOURCE LINE # 298
; 	    START=1;
			; SOURCE LINE # 299
	SETB 	START
; 	    TR1=1; //开定时器
			; SOURCE LINE # 300
	SETB 	TR1
; 		time2=0;	    
			; SOURCE LINE # 301
	CLR  	A
	MOV  	time2,A
; 		judgement(90,20,20);
			; SOURCE LINE # 302
	MOV  	R3,#014H
	MOV  	R5,#014H
	MOV  	R7,#05AH
	LCALL	_judgement
; 		}
			; SOURCE LINE # 303
?C0048:
; 	   if(keykey==1) 
			; SOURCE LINE # 304
	MOV  	A,keykey
	XRL  	A,#01H
	JNZ  	?C0044
; 
;   		{
			; SOURCE LINE # 306
; 			chazhi1=abs((int)(avge-avge0));
			; SOURCE LINE # 307
	CLR  	C
	MOV  	A,avge+03H
	SUBB 	A,avge0+03H
	MOV  	R7,A
	MOV  	A,avge+02H
	SUBB 	A,avge0+02H
	MOV  	R6,A
	LCALL	_abs
	MOV  	chazhi1?956,R7
; 			if(chazhi1>=20)    
			; SOURCE LINE # 308
	MOV  	A,chazhi1?956
	CLR  	C
	SUBB 	A,#014H
	JC   	?C0050
; 			{
			; SOURCE LINE # 309
; 	  			START=1;
			; SOURCE LINE # 310
	SETB 	START
; 				counter2=30;
			; SOURCE LINE # 311
	MOV  	counter2,#01EH
; 				if(avge>(avge0+chazhi-3)) 
			; SOURCE LINE # 312
	MOV  	A,chazhi?955
	ADD  	A,avge0+03H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,avge0+02H
	MOV  	R6,A
	CLR  	A
	ADDC 	A,avge0+01H
	MOV  	R5,A
	CLR  	A
	ADDC 	A,avge0
	MOV  	R4,A
	MOV  	A,R7
	ADD  	A,#0FDH
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	A,R5
	ADDC 	A,#0FFH
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,#0FFH
	MOV  	R4,A
	MOV  	R3,avge+03H
	MOV  	R2,avge+02H
	MOV  	R1,avge+01H
	MOV  	R0,avge
	SETB 	C
	LCALL	?C?ULCMP
	JC   	?C0051
; 		 		{ 
			; SOURCE LINE # 313
; 		   			BACK=0;
			; SOURCE LINE # 314
	CLR  	BACK
; 					delayms(5);
			; SOURCE LINE # 315
	MOV  	R7,#05H
	MOV  	R6,#00H
	LCALL	_delayms
; 					judgement(45,0,10);
			; SOURCE LINE # 316
	LCALL	L?0076
; 		 		}
			; SOURCE LINE # 317
?C0051:
; 	   			if(avge<(avge0-chazhi)) 
			; SOURCE LINE # 318
	MOV  	R7,chazhi?955
	XCH  	A,R3
	MOV  	A,R7
	XCH  	A,R3
	CLR  	C
	MOV  	A,avge0+03H
	SUBB 	A,R3
	MOV  	R7,A
	MOV  	A,avge0+02H
	SUBB 	A,#00H
	MOV  	R6,A
	MOV  	A,avge0+01H
	SUBB 	A,#00H
	MOV  	R5,A
	MOV  	A,avge0
	SUBB 	A,#00H
	MOV  	R4,A
	MOV  	R3,avge+03H
	MOV  	R2,avge+02H
	MOV  	R1,avge+01H
	MOV  	R0,avge
	CLR  	C
	LCALL	?C?ULCMP
	JC   	$ + 5H
	LJMP 	?C0044
; 		  		{
			; SOURCE LINE # 319
; 		  
; 		   			BACK=1;
			; SOURCE LINE # 321
; 					delayms(5);
			; SOURCE LINE # 322
; 					judgement(45,0,10);
			; SOURCE LINE # 323
; 		  
; 		  		}	
			; SOURCE LINE # 325
; 	 		}		
			; SOURCE LINE # 326
	LJMP 	?C0075
?C0050:
; 			else if((chazhi1<20)&&(chazhi1>10))
			; SOURCE LINE # 327
	MOV  	A,chazhi1?956
	CLR  	C
	SUBB 	A,#014H
	JC   	$ + 5H
	LJMP 	?C0054
	MOV  	A,chazhi1?956
	SUBB 	A,#0AH
	JC   	?C0054
; 	 		{	
			; SOURCE LINE # 328
; 			    counter2=30;
			; SOURCE LINE # 329
	MOV  	counter2,#01EH
; 			  	if(avge>(avge0+chazhi-3)) 
			; SOURCE LINE # 330
	MOV  	A,chazhi?955
	ADD  	A,avge0+03H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,avge0+02H
	MOV  	R6,A
	CLR  	A
	ADDC 	A,avge0+01H
	MOV  	R5,A
	CLR  	A
	ADDC 	A,avge0
	MOV  	R4,A
	MOV  	A,R7
	ADD  	A,#0FDH
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	A,R5
	ADDC 	A,#0FFH
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,#0FFH
	MOV  	R4,A
	MOV  	R3,avge+03H
	MOV  	R2,avge+02H
	MOV  	R1,avge+01H
	MOV  	R0,avge
	SETB 	C
	LCALL	?C?ULCMP
	JC   	?C0055
; 		 		{ 
			; SOURCE LINE # 331
; 		  			 START=1;					 
			; SOURCE LINE # 332
	SETB 	START
; 		  			 BACK=0;
			; SOURCE LINE # 333
	CLR  	BACK
; 					 delayms(5);
			; SOURCE LINE # 334
	MOV  	R7,#05H
	MOV  	R6,#00H
	LCALL	_delayms
; 		   			 judgement(45,0,10);
			; SOURCE LINE # 335
	LCALL	L?0076
; 		 		}
			; SOURCE LINE # 336
?C0055:
; 	   			if(avge<(avge0-chazhi)) 
			; SOURCE LINE # 337
	MOV  	R7,chazhi?955
	XCH  	A,R3
	MOV  	A,R7
	XCH  	A,R3
	CLR  	C
	MOV  	A,avge0+03H
	SUBB 	A,R3
	MOV  	R7,A
	MOV  	A,avge0+02H
	SUBB 	A,#00H
	MOV  	R6,A
	MOV  	A,avge0+01H
	SUBB 	A,#00H
	MOV  	R5,A
	MOV  	A,avge0
	SUBB 	A,#00H
	MOV  	R4,A
	MOV  	R3,avge+03H
	MOV  	R2,avge+02H
	MOV  	R1,avge+01H
	MOV  	R0,avge
	CLR  	C
	LCALL	?C?ULCMP
	JC   	$ + 5H
	LJMP 	?C0044
; 		  		{
			; SOURCE LINE # 338
; 		   			START=1;
			; SOURCE LINE # 339
	SETB 	START
; 		   			BACK=1;
			; SOURCE LINE # 340
?C0075:
	SETB 	BACK
; 					delayms(5);
			; SOURCE LINE # 341
	MOV  	R7,#05H
	MOV  	R6,#00H
	LCALL	_delayms
; 		   			judgement(45,0,10);
			; SOURCE LINE # 342
	LCALL	L?0077
; 				 }	
			; SOURCE LINE # 343
; 	 		}		
			; SOURCE LINE # 344
	LJMP 	?C0044
?C0054:
; 	 		else     
; 			{
			; SOURCE LINE # 346
; 				START=0;
			; SOURCE LINE # 347
	CLR  	START
; 				TR1=1; //开定时器
			; SOURCE LINE # 348
	SETB 	TR1
; 				time1=0; 
			; SOURCE LINE # 349
	CLR  	A
	MOV  	time1,A
; 				time2=1;
			; SOURCE LINE # 350
	MOV  	time2,#01H
; 							
; 			}	
			; SOURCE LINE # 352
;     	}
			; SOURCE LINE # 353
; 	   
; 	}
			; SOURCE LINE # 355
	LJMP 	?C0044
; END OF main

CSEG	AT	0004BH
	LJMP	PCA_ISR

; }
; /*PCA中断子程序*/
; void PCA_ISR (void) interrupt 9

	RSEG  ?PR?PCA_ISR?BACKWARD
	USING	0
PCA_ISR:
			; SOURCE LINE # 358
; {
; 	
; 	CCF0 = 0;			/*清匹配中断标志*/
			; SOURCE LINE # 361
	CLR  	CCF0
; 
; } 
			; SOURCE LINE # 363
	RETI 	
; END OF PCA_ISR

CSEG	AT	0009BH
	LJMP	led

;  /*键盘中断子程序*/
; void led(void)  interrupt 19

	RSEG  ?PR?led?BACKWARD
	USING	0
led:
	PUSH 	ACC
	PUSH 	B
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	MOV  	A,R0
	PUSH 	ACC
	MOV  	A,R1
	PUSH 	ACC
	MOV  	A,R2
	PUSH 	ACC
	MOV  	A,R3
	PUSH 	ACC
	MOV  	A,R4
	PUSH 	ACC
	MOV  	A,R5
	PUSH 	ACC
	MOV  	A,R6
	PUSH 	ACC
	MOV  	A,R7
	PUSH 	ACC
	USING	0
			; SOURCE LINE # 365
; { 
;    uchar key;
;    EA=0;
			; SOURCE LINE # 368
	CLR  	EA
;    
;    key=CH452_Read();
			; SOURCE LINE # 370
	LCALL	CH452_Read
	MOV  	key?1157,R7
;    
;    if(0x62==key)
			; SOURCE LINE # 372
	MOV  	A,key?1157
	CJNE 	A,#062H,?C0060
;    {
			; SOURCE LINE # 373
;    	delayms(2);
			; SOURCE LINE # 374
	MOV  	R7,#02H
	MOV  	R6,#00H
	LCALL	_delayms
; 	avge0=avge;
			; SOURCE LINE # 375
	MOV  	avge0+03H,avge+03H
	MOV  	avge0+02H,avge+02H
	MOV  	avge0+01H,avge+01H
	MOV  	avge0,avge
; 	black=0;	
			; SOURCE LINE # 376
	MOV  	black,#00H
; 	BCD_H_L(avge0-200,1); 
			; SOURCE LINE # 377
	MOV  	A,avge0+03H
	ADD  	A,#038H
	MOV  	R7,A
	MOV  	A,avge0+02H
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	R5,#01H
	LCALL	_BCD_H_L
;     }
			; SOURCE LINE # 378
?C0060:
;   if(0x63==key)
			; SOURCE LINE # 379
	MOV  	A,key?1157
	CJNE 	A,#063H,?C0061
; 	  {	
			; SOURCE LINE # 380
; 	  delayms(2);
			; SOURCE LINE # 381
	MOV  	R7,#02H
	MOV  	R6,#00H
	LCALL	_delayms
; 	  black=1;
			; SOURCE LINE # 382
	MOV  	black,#01H
; 	  //START=1;
; 	  	  }	
			; SOURCE LINE # 384
?C0061:
; 	   EA=1;
			; SOURCE LINE # 385
	SETB 	EA
;   }
			; SOURCE LINE # 386
	POP  	ACC
	MOV  	R7,A
	POP  	ACC
	MOV  	R6,A
	POP  	ACC
	MOV  	R5,A
	POP  	ACC
	MOV  	R4,A
	POP  	ACC
	MOV  	R3,A
	POP  	ACC
	MOV  	R2,A
	POP  	ACC
	MOV  	R1,A
	POP  	ACC
	MOV  	R0,A
	POP  	PSW
	POP  	DPL
	POP  	DPH
	POP  	B
	POP  	ACC
	RETI 	
; END OF led

CSEG	AT	0001BH
	LJMP	TIMER1_ISR

; 
; /*定时器中断子程序*/
; void TIMER1_ISR (void) interrupt 3 using 1

	RSEG  ?PR?TIMER1_ISR?BACKWARD
	USING	1
TIMER1_ISR:
	PUSH 	ACC
	PUSH 	B
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	USING	1
	MOV  	PSW,#08H
			; SOURCE LINE # 389
; {
; 	
; 	TF1=0;
			; SOURCE LINE # 392
	CLR  	TF1
; 	TH1=0x7D;
			; SOURCE LINE # 393
	MOV  	TH1,#07DH
; 	TL1=0xFB;
			; SOURCE LINE # 394
	MOV  	TL1,#0FBH
; 	if(time1==1)	//执行黑线判断程序17s
			; SOURCE LINE # 395
	MOV  	A,time1
	CJNE 	A,#01H,?C0063
; 	{
			; SOURCE LINE # 396
; 	   if(--counter1==0)
			; SOURCE LINE # 397
	DJNZ 	counter1,?C0063
; 	   {
			; SOURCE LINE # 398
; 	       TR1=0;	//关定时器
			; SOURCE LINE # 399
	CLR  	TR1
; 		   time1=0;	//标志
			; SOURCE LINE # 400
	MOV  	time1,#00H
; 		   keykey=1;//执行角度黑线判断程序
			; SOURCE LINE # 401
	MOV  	keykey,#01H
; 		   black=0;	//不执行黑线判断程序
			; SOURCE LINE # 402
	MOV  	black,#00H
; 	   }
			; SOURCE LINE # 403
; 	  
; 	}
			; SOURCE LINE # 405
?C0063:
; 	if(time2==1)	  //判断3s后5s显示
			; SOURCE LINE # 406
	MOV  	A,time2
	CJNE 	A,#01H,?C0067
; 	{ if(--counter2==0)
			; SOURCE LINE # 407
	DJNZ 	counter2,?C0067
; 	   {
			; SOURCE LINE # 408
; 	       TR1=0; //关定时器
			; SOURCE LINE # 409
	CLR  	TR1
; 		   time2=0;//标志
			; SOURCE LINE # 410
	MOV  	time2,#00H
; 		   confirm();//计数显示
			; SOURCE LINE # 411
	LCALL	confirm
; 		   keykey=0;
			; SOURCE LINE # 412
	MOV  	keykey,#00H
; 		   forward=1;//平衡后前进
			; SOURCE LINE # 413
	MOV  	forward,#01H
; 			
; 		   
; 		   
; 	   } 
			; SOURCE LINE # 417
; 	}
			; SOURCE LINE # 418
; 
; }			; SOURCE LINE # 420
?C0067:
	POP  	PSW
	POP  	DPL
	POP  	DPH
	POP  	B
	POP  	ACC
	RETI 	
; END OF TIMER1_ISR

	END

⌨️ 快捷键说明

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