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

📄 senorpe.src

📁 motor_control.zip
💻 SRC
📖 第 1 页 / 共 3 页
字号:
			; SOURCE LINE # 233
	CLR  	SPOKER
; 	IN0=1;
			; SOURCE LINE # 234
	SETB 	IN0
; 	IN1=1;
			; SOURCE LINE # 235
	SETB 	IN1
; 	IN2=1;
			; SOURCE LINE # 236
	SETB 	IN2
; 	IN3=1;
			; SOURCE LINE # 237
	SETB 	IN3
; 	IN4=1;
			; SOURCE LINE # 238
	SETB 	IN4
; 	START=0;
			; SOURCE LINE # 239
	CLR  	START
; 	time1=1;
			; SOURCE LINE # 240
	MOV  	time1,#01H
; 	time2=1;
			; SOURCE LINE # 241
	MOV  	time2,#01H
; 	counter1=170;
			; SOURCE LINE # 242
	MOV  	counter1,#0AAH
; 	counter2=30;
			; SOURCE LINE # 243
	MOV  	counter2,#01EH
?C0042:
; 	//BACK=0;         	
; 	while(1)
			; SOURCE LINE # 245
; 	{	 
			; SOURCE LINE # 246
; 		LEDG=~LEDG;
			; SOURCE LINE # 247
	CPL  	LEDG
; 		EA=1;
			; SOURCE LINE # 248
	SETB 	EA
; 		avge=pingjun();
			; SOURCE LINE # 249
	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 # 250
	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 # 251
	MOV  	C,IN0
	CLR  	A
	RLC  	A
	MOV  	a?,A
; 		bb=IN1;
			; SOURCE LINE # 252
	MOV  	C,IN1
	CLR  	A
	RLC  	A
	MOV  	bb,A
; 		c=IN2;
			; SOURCE LINE # 253
	MOV  	C,IN2
	CLR  	A
	RLC  	A
	MOV  	c?,A
; 		d=IN3;
			; SOURCE LINE # 254
	MOV  	C,IN3
	CLR  	A
	RLC  	A
	MOV  	d,A
; 		e=IN4;
			; SOURCE LINE # 255
	MOV  	C,IN4
	CLR  	A
	RLC  	A
	MOV  	e,A
; 		if(forward==1)
			; SOURCE LINE # 256
	MOV  	A,forward
	CJNE 	A,#01H,?C0044
; 		{ 
			; SOURCE LINE # 257
; 		START=1;
			; SOURCE LINE # 258
	SETB 	START
; 		BACK=1;	//前进
			; SOURCE LINE # 259
	SETB 	BACK
; 		judgement(80,20,20);
			; SOURCE LINE # 260
	MOV  	R3,#014H
	MOV  	R5,#014H
	MOV  	R7,#050H
	LCALL	_judgement
; 		
; 		}
			; SOURCE LINE # 262
?C0044:
; 	   if(black==1)		
			; SOURCE LINE # 263
	MOV  	A,black
	CJNE 	A,#01H,?C0045
; 	   {
			; SOURCE LINE # 264
; 	    START=1;
			; SOURCE LINE # 265
	SETB 	START
; 	    TR1=1; //开定时器
			; SOURCE LINE # 266
	SETB 	TR1
; 		time2=0;	    
			; SOURCE LINE # 267
	CLR  	A
	MOV  	time2,A
; 		judgement(80,20,20);
			; SOURCE LINE # 268
	MOV  	R3,#014H
	MOV  	R5,#014H
	MOV  	R7,#050H
	LCALL	_judgement
; 		}
			; SOURCE LINE # 269
?C0045:
; 	   if(keykey==1) 
			; SOURCE LINE # 270
	MOV  	A,keykey
	CJNE 	A,#01H,?C0042
; 
;   		{
			; SOURCE LINE # 272
; 			chazhi1=abs((int)(avge-avge0));
			; SOURCE LINE # 273
	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?853,R7
; 			if(chazhi1>=20)    
			; SOURCE LINE # 274
	MOV  	A,chazhi1?853
	CLR  	C
	SUBB 	A,#014H
	JC   	?C0047
; 			{
			; SOURCE LINE # 275
; 	  			START=1;
			; SOURCE LINE # 276
	SETB 	START
; 				counter2=30;
			; SOURCE LINE # 277
	MOV  	counter2,#01EH
; 				if(avge>(avge0+chazhi-3)) 
			; SOURCE LINE # 278
	MOV  	A,chazhi?852
	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   	?C0048
; 		 		{ 
			; SOURCE LINE # 279
; 		   			BACK=0;
			; SOURCE LINE # 280
; 					judgement(50,0,10);
			; SOURCE LINE # 281
	LCALL	L?0071
; 		 		}
			; SOURCE LINE # 282
?C0048:
; 	   			if(avge<(avge0-chazhi)) 
			; SOURCE LINE # 283
	MOV  	R7,chazhi?852
	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 	?C0042
; 		  		{
			; SOURCE LINE # 284
; 		  
; 		   			BACK=1;
			; SOURCE LINE # 286
; 					judgement(50,0,10);
			; SOURCE LINE # 287
; 		  
; 		  		}	
			; SOURCE LINE # 289
; 	 		}		
			; SOURCE LINE # 290
	SJMP 	?C0070
?C0047:
; 			else if((chazhi1<20)&&(chazhi1>10))
			; SOURCE LINE # 291
	MOV  	A,chazhi1?853
	CLR  	C
	SUBB 	A,#014H
	JNC  	?C0051
	MOV  	A,chazhi1?853
	SUBB 	A,#0AH
	JC   	?C0051
; 	 		{	
			; SOURCE LINE # 292
; 			    counter2=30;
			; SOURCE LINE # 293
	MOV  	counter2,#01EH
; 			  	if(avge>(avge0+chazhi-3)) 
			; SOURCE LINE # 294
	MOV  	A,chazhi?852
	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   	?C0052
; 		 		{ 
			; SOURCE LINE # 295
; 		  			 START=1;					 
			; SOURCE LINE # 296
	SETB 	START
; 		  			 BACK=0;
			; SOURCE LINE # 297
; 		   			 judgement(50,0,10);
			; SOURCE LINE # 298
	LCALL	L?0071
; 		 		}
			; SOURCE LINE # 299
?C0052:
; 	   			if(avge<(avge0-chazhi)) 
			; SOURCE LINE # 300
	MOV  	R7,chazhi?852
	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 	?C0042
; 		  		{
			; SOURCE LINE # 301
; 		   			START=1;
			; SOURCE LINE # 302
	SETB 	START
; 		   			BACK=1;
			; SOURCE LINE # 303
?C0070:
	SETB 	BACK
; 		   			judgement(50,0,10);
			; SOURCE LINE # 304
	LCALL	L?0072
; 				 }	
			; SOURCE LINE # 305
; 	 		}		
			; SOURCE LINE # 306
	LJMP 	?C0042
?C0051:
; 	 		else     
; 			{
			; SOURCE LINE # 308
; 				START=0;
			; SOURCE LINE # 309
	CLR  	START
; 				TR1=1; //开定时器
			; SOURCE LINE # 310
	SETB 	TR1
; 				time1=0; 
			; SOURCE LINE # 311
	CLR  	A
	MOV  	time1,A
; 				time2=1;
			; SOURCE LINE # 312
	MOV  	time2,#01H
; 							
; 			}	
			; SOURCE LINE # 314
;     	}
			; SOURCE LINE # 315
; 	   
; 	}
			; SOURCE LINE # 317
	LJMP 	?C0042
; END OF main

CSEG	AT	0004BH
	LJMP	PCA_ISR

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

	RSEG  ?PR?PCA_ISR?SENORPE
	USING	0
PCA_ISR:
			; SOURCE LINE # 320
; {
; 	
; 	CCF0 = 0;			/*清匹配中断标志*/
			; SOURCE LINE # 323
	CLR  	CCF0
; 
; } 
			; SOURCE LINE # 325
	RETI 	
; END OF PCA_ISR

CSEG	AT	0009BH
	LJMP	led

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

	RSEG  ?PR?led?SENORPE
	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 # 327
; { 
;    uchar key;
;    EA=0;
			; SOURCE LINE # 330
	CLR  	EA
;    
;    key=CH452_Read();
			; SOURCE LINE # 332
	LCALL	CH452_Read
	MOV  	key?1054,R7
;    
;    if(0x62==key)
			; SOURCE LINE # 334
	MOV  	A,key?1054
	CJNE 	A,#062H,?C0057
;    {
			; SOURCE LINE # 335
;    	delayms(2);
			; SOURCE LINE # 336
	MOV  	R7,#02H
	MOV  	R6,#00H
	LCALL	_delayms
; 	avge0=avge;
			; SOURCE LINE # 337
	MOV  	avge0+03H,avge+03H
	MOV  	avge0+02H,avge+02H
	MOV  	avge0+01H,avge+01H
	MOV  	avge0,avge
; 	black=0;	
			; SOURCE LINE # 338
	MOV  	black,#00H
; 	BCD_H_L(avge0-200,1); 
			; SOURCE LINE # 339
	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 # 340
?C0057:
;   if(0x63==key)
			; SOURCE LINE # 341
	MOV  	A,key?1054
	CJNE 	A,#063H,?C0058
; 	  {	
			; SOURCE LINE # 342
; 	  delayms(2);
			; SOURCE LINE # 343
	MOV  	R7,#02H
	MOV  	R6,#00H
	LCALL	_delayms
; 	  black=1;
			; SOURCE LINE # 344
	MOV  	black,#01H
; 	  //START=1;
; 	  	  }	
			; SOURCE LINE # 346
?C0058:
; 	   EA=1;
			; SOURCE LINE # 347
	SETB 	EA
;   }
			; SOURCE LINE # 348
	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?SENORPE
	USING	1
TIMER1_ISR:
	PUSH 	ACC
	PUSH 	B
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	USING	1
	MOV  	PSW,#08H
			; SOURCE LINE # 351
; {
; 	
; 	TF1=0;
			; SOURCE LINE # 354
	CLR  	TF1
; 	TH1=0x7D;
			; SOURCE LINE # 355
	MOV  	TH1,#07DH
; 	TL1=0xFB;
			; SOURCE LINE # 356
	MOV  	TL1,#0FBH
; 	if(time1==1)	//执行黑线判断程序17s
			; SOURCE LINE # 357
	MOV  	A,time1
	CJNE 	A,#01H,?C0060
; 	{
			; SOURCE LINE # 358
; 	   if(--counter1==0)
			; SOURCE LINE # 359
	DJNZ 	counter1,?C0060
; 	   {
			; SOURCE LINE # 360
; 	       TR1=0;	//关定时器
			; SOURCE LINE # 361
	CLR  	TR1
; 		   time1=0;	//标志
			; SOURCE LINE # 362
	MOV  	time1,#00H
; 		   keykey=1;//执行角度黑线判断程序
			; SOURCE LINE # 363
	MOV  	keykey,#01H
; 		   black=0;	//不执行黑线判断程序
			; SOURCE LINE # 364
	MOV  	black,#00H
; 	   }
			; SOURCE LINE # 365
; 	  
; 	}
			; SOURCE LINE # 367
?C0060:
; 	if(time2==1)	  //判断3s后5s显示
			; SOURCE LINE # 368
	MOV  	A,time2
	CJNE 	A,#01H,?C0064
; 	{ if(--counter2==0)
			; SOURCE LINE # 369
	DJNZ 	counter2,?C0064
; 	   {
			; SOURCE LINE # 370
; 	       TR1=0; //关定时器
			; SOURCE LINE # 371
	CLR  	TR1
; 		   time2=0;//标志
			; SOURCE LINE # 372
	MOV  	time2,#00H
; 		   confirm();//计数显示
			; SOURCE LINE # 373
	LCALL	confirm
; 		   keykey=0;
			; SOURCE LINE # 374
	MOV  	keykey,#00H
; 		   forward=1;//平衡后前进
			; SOURCE LINE # 375
	MOV  	forward,#01H
; 			
; 		   
; 		   
; 	   } 
			; SOURCE LINE # 379
; 	}
			; SOURCE LINE # 380
; 
; }			; SOURCE LINE # 382
?C0064:
	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 + -