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

📄 timerauto.src

📁 motor_control.zip
💻 SRC
📖 第 1 页 / 共 3 页
字号:
	MOV  	time2,A
; 		judgement(90,20,20);
			; SOURCE LINE # 330
	LCALL	L?0093
; 		}
			; SOURCE LINE # 331
?C0049:
; 	   if(keykey==1) 
			; SOURCE LINE # 332
	MOV  	A,keykey
	XRL  	A,#01H
	JNZ  	?C0044
; 
;   		{
			; SOURCE LINE # 334
; 			chazhi1=abs((int)(avge-avge0));
			; SOURCE LINE # 335
	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?1055,R7
; 			if(chazhi1>=20)    
			; SOURCE LINE # 336
	MOV  	A,chazhi1?1055
	CLR  	C
	SUBB 	A,#014H
	JC   	?C0051
; 			{
			; SOURCE LINE # 337
; 	  			START=1;
			; SOURCE LINE # 338
	SETB 	START
; 				counter2=30;
			; SOURCE LINE # 339
	MOV  	counter2,#01EH
; 				if(avge>(avge0+chazhi-3)) 
			; SOURCE LINE # 340
	MOV  	A,chazhi?1054
	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 # 341
; 		   			BACK=0;
			; SOURCE LINE # 342
; 					//delayms(5);
; 					judgementback(0,50,15);
			; SOURCE LINE # 344
	LCALL	L?0092
; 		 		}
			; SOURCE LINE # 345
?C0052:
; 	   			if(avge<(avge0-chazhi)) 
			; SOURCE LINE # 346
	MOV  	R7,chazhi?1054
	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 # 347
; 		  
; 		   			BACK=1;
			; SOURCE LINE # 349
; 					//delayms(5);
; 					judgement(0,50,15);
			; SOURCE LINE # 351
; 		  
; 		  		}	
			; SOURCE LINE # 353
; 	 		}		
			; SOURCE LINE # 354
	SJMP 	?C0091
?C0051:
; 			else if((chazhi1<20)&&(chazhi1>10))
			; SOURCE LINE # 355
	MOV  	A,chazhi1?1055
	CLR  	C
	SUBB 	A,#014H
	JNC  	?C0055
	MOV  	A,chazhi1?1055
	SUBB 	A,#0AH
	JC   	?C0055
; 	 		{	
			; SOURCE LINE # 356
; 			    counter2=30;
			; SOURCE LINE # 357
	MOV  	counter2,#01EH
; 			  	if(avge>(avge0+chazhi-3)) 
			; SOURCE LINE # 358
	MOV  	A,chazhi?1054
	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   	?C0056
; 		 		{ 
			; SOURCE LINE # 359
; 		  			 START=1;					 
			; SOURCE LINE # 360
	SETB 	START
; 		  			 BACK=0;
			; SOURCE LINE # 361
; 					 //delayms(5);
; 		   			 judgementback(0,50,15);
			; SOURCE LINE # 363
	LCALL	L?0092
; 		 		}
			; SOURCE LINE # 364
?C0056:
; 	   			if(avge<(avge0-chazhi)) 
			; SOURCE LINE # 365
	MOV  	R7,chazhi?1054
	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 # 366
; 		   			START=1;
			; SOURCE LINE # 367
	SETB 	START
; 		   			BACK=1;
			; SOURCE LINE # 368
?C0091:
	SETB 	BACK
; 					//delayms(5);
; 		   			judgement(0,50,15);
			; SOURCE LINE # 370
	MOV  	R3,#0FH
	MOV  	R5,#032H
	CLR  	A
	MOV  	R7,A
	LCALL	_judgement
; 				 }	
			; SOURCE LINE # 371
; 	 		}		
			; SOURCE LINE # 372
	LJMP 	?C0044
?C0055:
; 	 		else     
; 			{
			; SOURCE LINE # 374
; 				START=0;
			; SOURCE LINE # 375
	CLR  	START
; 				TR1=1; //开定时器
			; SOURCE LINE # 376
	SETB 	TR1
; 				time1=0; 
			; SOURCE LINE # 377
	CLR  	A
	MOV  	time1,A
; 				time2=1;
			; SOURCE LINE # 378
	MOV  	time2,#01H
; 							
; 			}	
			; SOURCE LINE # 380
;     	}
			; SOURCE LINE # 381
; 	   
; 	}
			; SOURCE LINE # 383
	LJMP 	?C0044
; END OF main

CSEG	AT	0004BH
	LJMP	PCA_ISR

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

	RSEG  ?PR?PCA_ISR?TIMERAUTO
	USING	0
PCA_ISR:
			; SOURCE LINE # 386
; {
; 	
; 	CCF0 = 0;			/*清匹配中断标志*/
			; SOURCE LINE # 389
	CLR  	CCF0
; 
; } 
			; SOURCE LINE # 391
	RETI 	
; END OF PCA_ISR

CSEG	AT	0009BH
	LJMP	led

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

	RSEG  ?PR?led?TIMERAUTO
	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 # 393
; { 
;    uchar key,t;
;    EA=0;
			; SOURCE LINE # 396
	CLR  	EA
;    
;    key=CH452_Read();
			; SOURCE LINE # 398
	LCALL	CH452_Read
	MOV  	key?1256,R7
;    
;    if(0x62==key)
			; SOURCE LINE # 400
	MOV  	A,key?1256
	CJNE 	A,#062H,?C0061
;    {
			; SOURCE LINE # 401
;    	delayms(2);
			; SOURCE LINE # 402
	MOV  	R7,#02H
	MOV  	R6,#00H
	LCALL	_delayms
; 	avge0=avge;
			; SOURCE LINE # 403
	MOV  	avge0+03H,avge+03H
	MOV  	avge0+02H,avge+02H
	MOV  	avge0+01H,avge+01H
	MOV  	avge0,avge
; 	black=0;	
			; SOURCE LINE # 404
	MOV  	black,#00H
; 	BCD_H_L(avge0-200,1); 
			; SOURCE LINE # 405
	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 # 406
?C0061:
; 	if(0x63==key)
			; SOURCE LINE # 407
	MOV  	A,key?1256
	XRL  	A,#063H
	JNZ  	?C0062
; 	  {	
			; SOURCE LINE # 408
; 	  delayms(2);
			; SOURCE LINE # 409
	MOV  	R7,#02H
	MOV  	R6,A
	LCALL	_delayms
; 	  black=1;
			; SOURCE LINE # 410
	MOV  	black,#01H
; 	  xianshi=0;
			; SOURCE LINE # 411
	MOV  	xianshi,#00H
; 	  TR0=1;
			; SOURCE LINE # 412
	SETB 	TR0
; 	  for(t=0;t<8;t++)
			; SOURCE LINE # 413
	MOV  	t?1257,#00H
?C0063:
;       		CH452_Write((CH452_DIG0+ (t<<8))|16);
			; SOURCE LINE # 414
	MOV  	A,t?1257
	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?1257
	MOV  	A,t?1257
	CLR  	C
	SUBB 	A,#08H
	JC   	?C0063
?C0064:
; 	  CH452_Write(CH452_DIG1);
			; SOURCE LINE # 415
	MOV  	R7,#00H
	MOV  	R6,#09H
	LCALL	_CH452_Write
; 	  stage_clk_start();
			; SOURCE LINE # 416
	LCALL	stage_clk_start
; 	  	  }
			; SOURCE LINE # 417
?C0062:
;  	if(0x7A==key)
			; SOURCE LINE # 418
	MOV  	A,key?1256
	CJNE 	A,#07AH,?C0066
;       {
			; SOURCE LINE # 419
; 	   delayms(2);
			; SOURCE LINE # 420
	MOV  	R7,#02H
	MOV  	R6,#00H
	LCALL	_delayms
; 	   counter1=counter1+10;
			; SOURCE LINE # 421
	MOV  	A,#0AH
	ADD  	A,counter1
	MOV  	counter1,A
; 	   	CH452_Write(CH452_DIG3 | 1);
			; SOURCE LINE # 422
	MOV  	R7,#01H
	MOV  	R6,#0BH
	LCALL	_CH452_Write
; 	  }
			; SOURCE LINE # 423
?C0066:
; 	  
; 	if(0x7B==key)	
			; SOURCE LINE # 425
	MOV  	A,key?1256
	CJNE 	A,#07BH,?C0067
; 	  {
			; SOURCE LINE # 426
; 	   delayms(2);
			; SOURCE LINE # 427
	MOV  	R7,#02H
	MOV  	R6,#00H
	LCALL	_delayms
; 	   counter1=counter1-10;
			; SOURCE LINE # 428
	MOV  	A,#0F6H
	ADD  	A,counter1
	MOV  	counter1,A
; 	   CH452_Write(CH452_DIG3 | 0);
			; SOURCE LINE # 429
	MOV  	R7,#00H
	MOV  	R6,#0BH
	LCALL	_CH452_Write
; 	  }	  
			; SOURCE LINE # 430
?C0067:
;   	
; 	   EA=1;
			; SOURCE LINE # 432
	SETB 	EA
;   }
			; SOURCE LINE # 433
	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	0000BH
	LJMP	T0_ISR

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

	RSEG  ?PR?T0_ISR?TIMERAUTO
	USING	0
T0_ISR:
	PUSH 	ACC
	PUSH 	B
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	USING	0
	MOV  	PSW,#00H
			; SOURCE LINE # 436
; {
; 	TR0=0;
			; SOURCE LINE # 438
	CLR  	TR0
; 	TF0=0;
			; SOURCE LINE # 439
	CLR  	TF0
; 	TH0=0x7D	;					
			; SOURCE LINE # 440
	MOV  	TH0,#07DH
; 	TL0=0xCC	;	//0xCC由0xCB+1得来
			; SOURCE LINE # 441
	MOV  	TL0,#0CCH
; 	TR0=1;
			; SOURCE LINE # 442
	SETB 	TR0
; 	if(T0_OF<10)
			; SOURCE LINE # 443
	MOV  	A,T0_OF
	CLR  	C
	SUBB 	A,#0AH
	JNC  	?C0069
; 		T0_OF++;
			; SOURCE LINE # 444
	INC  	T0_OF
	SJMP 	?C0075
?C0069:
; 	else
; 	{	
			; SOURCE LINE # 446
; 		
; 		if(sec<59)
			; SOURCE LINE # 448
	MOV  	A,sec
	CLR  	C
	SUBB 	A,#03BH
	JNC  	?C0071
; 			sec++;
			; SOURCE LINE # 449
	INC  	sec
?C0071:
; 		if(sec==59)
			; SOURCE LINE # 450
	MOV  	A,sec
	CJNE 	A,#03BH,?C0072
; 		{
			; SOURCE LINE # 451
; 			sec=0;
			; SOURCE LINE # 452
	MOV  	sec,#00H
; 			min++;
			; SOURCE LINE # 453
	INC  	min
; 			CH452_Write(CH452_DIG3 | min);		 	//先写min,因为人眼分辨不出
			; SOURCE LINE # 454
	MOV  	R7,min
	MOV  	A,#0BH
	MOV  	R6,A
	LCALL	_CH452_Write
; 			//CH452_Write(CH452_DIG3 | (min/10));
; 			CH452_Write(0x1FB);
			; SOURCE LINE # 456
	MOV  	R7,#0FBH
	MOV  	R6,#01H
	LCALL	_CH452_Write
; 		}
			; SOURCE LINE # 457
?C0072:
; 		CH452_Write(CH452_DIG1 | (sec%10));
			; SOURCE LINE # 458
	MOV  	A,sec
	MOV  	B,#0AH
	DIV  	AB
	MOV  	R7,B
	MOV  	A,#09H
	MOV  	R6,A
	LCALL	_CH452_Write
; 		CH452_Write(CH452_DIG2 | (sec/10));
			; SOURCE LINE # 459
	MOV  	A,sec
	MOV  	B,#0AH
	DIV  	AB
	MOV  	R7,A
	MOV  	A,#0AH
	MOV  	R6,A
	LCALL	_CH452_Write
; 		if(stage_clk_flag)
			; SOURCE LINE # 460
	MOV  	A,stage_clk_flag
	JZ   	?C0073
; 		{
			; SOURCE LINE # 461
; 			stage_sec++;
			; SOURCE LINE # 462
	INC  	stage_sec
; 			CH452_Write(CH452_DIG4 | (stage_sec%10));
			; SOURCE LINE # 463
	MOV  	A,stage_sec
	MOV  	B,#0AH
	DIV  	AB
	MOV  	R7,B
	MOV  	A,#0CH
	MOV  	R6,A
	LCALL	_CH452_Write
; 			if(stage_sec/10)  CH452_Write(CH452_DIG5 | (stage_sec/10));
			; SOURCE LINE # 464
	MOV  	A,stage_sec
	MOV  	B,#0AH
	DIV  	AB
	MOV  	R7,A
	JZ   	?C0073
	MOV  	A,#0DH
	MOV  	R6,A
	LCALL	_CH452_Write
; 		}
			; SOURCE LINE # 465
?C0073:
; 		T0_OF=0;
			; SOURCE LINE # 466
	MOV  	T0_OF,#00H
; 	}	
			; SOURCE LINE # 467
; }
			; SOURCE LINE # 468
?C0075:
	POP  	PSW
	POP  	DPL
	POP  	DPH
	POP  	B
	POP  	ACC
	RETI 	
; END OF T0_ISR

CSEG	AT	0001BH
	LJMP	TIMER1_ISR

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

	RSEG  ?PR?TIMER1_ISR?TIMERAUTO
	USING	1
TIMER1_ISR:
	PUSH 	ACC
	PUSH 	B
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	USING	1
	MOV  	PSW,#08H
			; SOURCE LINE # 471
; {
; 	uchar i;
; 	TF1=0;
			; SOURCE LINE # 474
	CLR  	TF1
; 	TH1=0x7D;
			; SOURCE LINE # 475
	MOV  	TH1,#07DH
; 	TL1=0xFB;
			; SOURCE LINE # 476
	MOV  	TL1,#0FBH
; 	if(time1==1)	//执行黑线判断程序17s
			; SOURCE LINE # 477
	MOV  	A,time1
	CJNE 	A,#01H,?C0076
; 	{
			; SOURCE LINE # 478
; 	   if(--counter1==0)
			; SOURCE LINE # 479
	DJNZ 	counter1,?C0076
; 	   {
			; SOURCE LINE # 480
; 	       TR1=0;	//关定时器
			; SOURCE LINE # 481
	CLR  	TR1
; 		   time1=0;	//标志
			; SOURCE LINE # 482
	MOV  	time1,#00H
; 		   keykey=1;//执行角度黑线判断程序
			; SOURCE LINE # 483
	MOV  	keykey,#01H
; 		   black=0;	//不执行黑线判断程序
			; SOURCE LINE # 484
	MOV  	black,#00H
; 	   }
			; SOURCE LINE # 485
; 	  
; 	}
			; SOURCE LINE # 487
?C0076:
; 	if(time2==1)	  //判断3s后5s显示
			; SOURCE LINE # 488
	MOV  	A,time2
	XRL  	A,#01H
	JNZ  	?C0083
; 	{ if(--counter2==0)
			; SOURCE LINE # 489
	DEC  	counter2
	MOV  	A,counter2
	JNZ  	?C0083
; 	   {
			; SOURCE LINE # 490
; 	       TR1=0; //关定时器
			; SOURCE LINE # 491
	CLR  	TR1
; 		   time2=0;//标志
			; SOURCE LINE # 492
	MOV  	time2,A
; 		   keykey=0;		   
			; SOURCE LINE # 493
	MOV  	keykey,A
; 		   stage_clk_stop();//显示平衡的时间
			; SOURCE LINE # 494
	LCALL	stage_clk_stop
; 		   for(i=5;i>0;i--)
			; SOURCE LINE # 495
	MOV  	i?1458,#05H
?C0080:
; 			{	
			; SOURCE LINE # 496
; 				CH452_Write(CH452_DIG7 | i);
			; SOURCE LINE # 497
	MOV  	R7,i?1458
	MOV  	A,#0FH
	MOV  	R6,A
	LCALL	_CH452_Write
; 				SPOKER=1;
			; SOURCE LINE # 498
	SETB 	SPOKER
; 				delay_s(1);
			; SOURCE LINE # 499
	MOV  	R7,#01H
	LCALL	_delay_s
; 				SPOKER=0;
			; SOURCE LINE # 500
	CLR  	SPOKER
; 				delay_s(1);
			; SOURCE LINE # 501
	LCALL	_delay_s
; 			}
			; SOURCE LINE # 502
	DEC  	i?1458
	MOV  	A,i?1458
	SETB 	C
	SUBB 	A,#00H
	JNC  	?C0080
?C0081:
; 		   CH452_Write(CH452_DIG7);//计数显示	
			; SOURCE LINE # 503
	MOV  	R7,#00H
	MOV  	R6,#0FH
	LCALL	_CH452_Write
; 		   stage_clk_start();
			; SOURCE LINE # 504
	LCALL	stage_clk_start
;            forward=1;//平衡后前进
			; SOURCE LINE # 505
	MOV  	forward,#01H
; 		   		   
; 	   } 
			; SOURCE LINE # 507
; 	}
			; SOURCE LINE # 508
; 
; }			; SOURCE LINE # 510
?C0083:
	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 + -